# Copyright (C) 2022 - 2025 ANSYS, Inc. and/or its affiliates.
# SPDX-License-Identifier: MIT
#
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

"""The following is an overview of the classes, interfaces and enumerations of the STK Object Model."""

__all__ = ["AberrationType", "Access", "AccessAdvancedSettings", "AccessAllowedTimeIntervals", "AccessConstraint",
"AccessConstraintAnalysisWorkbench", "AccessConstraintAnalysisWorkbenchCollection",
"AccessConstraintAnalysisWorkbenchComponent", "AccessConstraintAngle", "AccessConstraintBackground",
"AccessConstraintCentralBodyObstruction", "AccessConstraintCollection", "AccessConstraintCondition",
"AccessConstraintExclZonesCollection", "AccessConstraintGrazingAltitude", "AccessConstraintGroundTrack",
"AccessConstraintIntervals", "AccessConstraintLatitudeLongitudeZone", "AccessConstraintMinMaxBase",
"AccessConstraintObjExAngle", "AccessConstraintPluginMinMax", "AccessConstraintThirdBody",
"AccessConstraintTimeSlipRange", "AccessConstraintType", "AccessEventDetection", "AccessGraphics", "AccessSampling",
"AccessTargetTime", "AccessTargetTimesCollection", "AccessTimePeriod", "AccessTimeType", "ActionType",
"AdditionalGainLoss", "AdditionalGainLossCollection", "AdvCAT", "AdvCATAdvancedEllipsoid", "AdvCATAdvancedSettings",
"AdvCATAvailableObjectCollection", "AdvCATChosenObject", "AdvCATChosenObjectCollection", "AdvCATConjunctionType",
"AdvCATEllipsoidClassType", "AdvCATGraphics3D", "AdvCATPreFilters", "AdvCATSecondaryEllipsoidsVisibilityType",
"Aircraft", "AircraftExportTools", "AircraftGraphics", "AircraftGraphics3D", "AircraftWGS84WarningType",
"AltitudeReferenceType", "AnalysisWorkbenchAccessConstraintType", "AnimationActionType", "AnimationDirectionType",
"AnimationEndTimeMode", "AnimationOptionType", "Antenna", "AntennaBeam", "AntennaBeamCollection",
"AntennaBeamSelectionStrategy", "AntennaBeamSelectionStrategyAggregate", "AntennaBeamSelectionStrategyMaximumGain",
"AntennaBeamSelectionStrategyMinimumBoresightAngle", "AntennaBeamSelectionStrategyScriptPlugin", "AntennaBeamTransmit",
"AntennaContourEIRP", "AntennaContourFluxDensity", "AntennaContourGain", "AntennaContourGraphics",
"AntennaContourLevel", "AntennaContourLevelCollection", "AntennaContourRIP", "AntennaContourSpectralFluxDensity",
"AntennaContourType", "AntennaControl", "AntennaControlReferenceType", "AntennaGraphics", "AntennaGraphics3D",
"AntennaGraphicsCoordinateSystem", "AntennaModel", "AntennaModelANSYSffdFormat", "AntennaModelApertureCircularBessel",
"AntennaModelApertureCircularBesselEnvelope", "AntennaModelApertureCircularCosine",
"AntennaModelApertureCircularCosinePedestal", "AntennaModelApertureCircularCosineSquared",
"AntennaModelApertureCircularCosineSquaredPedestal", "AntennaModelApertureCircularSincIntegerPower",
"AntennaModelApertureCircularSincRealPower", "AntennaModelApertureCircularUniform",
"AntennaModelApertureRectangularCosine", "AntennaModelApertureRectangularCosinePedestal",
"AntennaModelApertureRectangularCosineSquared", "AntennaModelApertureRectangularCosineSquaredPedestal",
"AntennaModelApertureRectangularSincIntegerPower", "AntennaModelApertureRectangularSincRealPower",
"AntennaModelApertureRectangularUniform", "AntennaModelCosecantSquared", "AntennaModelCosecantSquaredSidelobeType",
"AntennaModelDipole", "AntennaModelElevationAzimuthCuts", "AntennaModelExternal", "AntennaModelGIMROC",
"AntennaModelGPSFRPA", "AntennaModelGPSGlobal", "AntennaModelGaussian", "AntennaModelHelix",
"AntennaModelHemispherical", "AntennaModelHfssEepArray", "AntennaModelIEEE1979", "AntennaModelITUBO1213CoPolar",
"AntennaModelITUBO1213CrossPolar", "AntennaModelITUF1245", "AntennaModelITUS1528R12Circular",
"AntennaModelITUS1528R12Rectangular", "AntennaModelITUS1528R13", "AntennaModelITUS465", "AntennaModelITUS580",
"AntennaModelITUS672Circular", "AntennaModelITUS672Rectangular", "AntennaModelITUS731", "AntennaModelInputType",
"AntennaModelIntelSat", "AntennaModelIsotropic", "AntennaModelOpticalGaussian", "AntennaModelOpticalSimple",
"AntennaModelParabolic", "AntennaModelPencilBeam", "AntennaModelPhasedArray", "AntennaModelRectangularPattern",
"AntennaModelRemcomUanFormat", "AntennaModelScriptPlugin", "AntennaModelSquareHorn", "AntennaModelTicraGRASPFormat",
"AntennaModelType", "AntennaNoiseTemperature", "AntennaSystem", "AntennaVolumeGraphics", "AntennaVolumeLevel",
"AntennaVolumeLevelCollection", "AreaTarget", "AreaTargetCommonTasks", "AreaTargetGraphics", "AreaTargetGraphics3D",
"AreaType", "AreaTypeEllipse", "AreaTypePattern", "AreaTypePatternCollection", "Atmosphere",
"AtmosphericAbsorptionModel", "AtmosphericAbsorptionModelCOMPlugin", "AtmosphericAbsorptionModelGraphics3DACAP",
"AtmosphericAbsorptionModelITURP676Version13", "AtmosphericAbsorptionModelITURP676Version9",
"AtmosphericAbsorptionModelScriptPlugin", "AtmosphericAbsorptionModelSimpleSatcom",
"AtmosphericAbsorptionModelTIREM320", "AtmosphericAbsorptionModelTIREM331", "AtmosphericAbsorptionModelTIREM550",
"AtmosphericAbsorptionModelType", "AtmosphericDensityModel", "AtmosphericTurbulenceModel",
"AtmosphericTurbulenceModelConstant", "AtmosphericTurbulenceModelHufnagelValley", "AtmosphericTurbulenceModelType",
"AttitudeCoordinateAxes", "AttitudeInclude", "AttitudeProfile", "AttitudeProfileAlignedAndConstrained",
"AttitudeProfileAlignmentOffset", "AttitudeProfileAviator", "AttitudeProfileConstraintOffset",
"AttitudeProfileCoordinatedTurn", "AttitudeProfileFixedInAxes", "AttitudeProfileGPS", "AttitudeProfileInertial",
"AttitudeProfilePrecessingSpin", "AttitudeProfileSpinAboutSettings", "AttitudeProfileSpinning",
"AttitudeProfileYawToNadir", "AttitudeScheduleTimesCollection", "AttitudeScheduleTimesElement", "AttitudeStandardBasic",
"AttitudeStandardOrbit", "AttitudeStandardRoute", "AttitudeStandardTrajectory", "AttitudeStandardType",
"AttitudeTorque", "AvailableFeatures", "AxisOffset", "AzElMaskType", "BasicAzElMask", "BeamSelectionStrategyType",
"Beamformer", "BeamformerASCIIFile", "BeamformerBlackmanHarris", "BeamformerCosine", "BeamformerCosineX",
"BeamformerCustomTaperFile", "BeamformerDolphChebyshev", "BeamformerHamming", "BeamformerHann", "BeamformerMVDR",
"BeamformerRaisedCosine", "BeamformerRaisedCosineSquared", "BeamformerScript", "BeamformerTaylor", "BeamformerType",
"BeamformerUniform", "BeerBouguerLambertLawLayer", "BeerBouguerLambertLawLayerCollection",
"BorderWallUpperLowerEdgeAltitudeReference", "BoresightType", "BuildHeightReferenceMethod", "BuildingHeightUnit",
"CCSDSDateFormat", "CCSDSEphemerisFormatType", "CCSDSReferenceFrame", "CCSDSTimeSystem", "CentralBody",
"CentralBodyCollection", "CentralBodyEllipsoid", "CentralBodyTerrainCollection", "CentralBodyTerrainCollectionElement",
"Chain", "ChainConnection", "ChainConnectionCollection", "ChainConstellationConstraintsMode", "ChainConstraints",
"ChainCoverageAssetMode", "ChainGraphics", "ChainGraphics2DAnimation", "ChainGraphics2DStatic", "ChainGraphics3D",
"ChainOptimalStrandCalculationScalarMetricType", "ChainOptimalStrandCompareStrandsType",
"ChainOptimalStrandLinkCompareType", "ChainOptimalStrandMetricType", "ChainOptimalStrandOpts",
"ChainParentPlatformRestriction", "ChainTimePeriod", "ChainTimePeriodType", "ChainUserSpecifiedTimePeriod",
"CircularApertureInputType", "ClassicalLocation", "ClassicalLocationArgumentOfLatitude",
"ClassicalLocationEccentricAnomaly", "ClassicalLocationMeanAnomaly", "ClassicalLocationTimePastAscendingNode",
"ClassicalLocationTimePastPerigee", "ClassicalLocationTrueAnomaly", "ClassicalOrientation", "ClassicalSizeShape",
"ClassicalSizeShapeAltitude", "ClassicalSizeShapeMeanMotion", "ClassicalSizeShapePeriod", "ClassicalSizeShapeRadius",
"ClassicalSizeShapeSemimajorAxis", "CloudsAndFogFadingLossModel", "CloudsAndFogFadingLossModelP840Version6",
"CloudsAndFogFadingLossModelP840Version7", "CloudsAndFogFadingLossModelType", "CloudsAndFogLiquidWaterChoiceType",
"CommRadCartesianLocation", "CommRadComplexNumber", "CommRadComplexNumberCollection", "CommRadPluginConfiguration",
"CommSystem", "CommSystemAccessEventDetection", "CommSystemAccessEventDetectionSamplesOnly",
"CommSystemAccessEventDetectionSubsample", "CommSystemAccessEventDetectionType", "CommSystemAccessOptions",
"CommSystemAccessSamplingMethod", "CommSystemAccessSamplingMethodAdaptive", "CommSystemAccessSamplingMethodFixed",
"CommSystemAccessSamplingMethodType", "CommSystemConstrainingRole", "CommSystemGraphics", "CommSystemGraphics3D",
"CommSystemLinkSelectionCriteria", "CommSystemLinkSelectionCriteriaMaximumElevation",
"CommSystemLinkSelectionCriteriaMinimumRange", "CommSystemLinkSelectionCriteriaScriptPlugin",
"CommSystemLinkSelectionCriteriaType", "CommSystemReferenceBandwidth", "CommSystemSaveMode", "Component",
"ComponentAttrLinkEmbedControl", "ComponentDirectory", "ComponentInfo", "ComponentInfoCollection",
"ComponentLinkEmbedControlReferenceType", "ConnectAuthenticationMode", "Constants", "Constellation",
"ConstellationConstraintObjectRestriction", "ConstellationConstraintRestriction",
"ConstellationConstraintRestrictionType", "ConstellationConstraints", "ConstellationFromToParentConstraint",
"ConstellationGraphics", "ConstellationRouting", "ConstraintBackground", "ConstraintGroundTrack", "ConstraintLighting",
"Coverage3dDrawAtAltitudeMode", "CoverageAdvancedSettings", "CoverageAltitudeMethod", "CoverageAreaTargetsCollection",
"CoverageAssetGrouping", "CoverageAssetListCollection", "CoverageAssetListElement", "CoverageAssetStatus",
"CoverageBounds", "CoverageBoundsCustomBoundary", "CoverageBoundsCustomRegions", "CoverageBoundsGlobal",
"CoverageBoundsLatitude", "CoverageBoundsLatitudeLine", "CoverageBoundsLatitudeLongitudeRegion",
"CoverageBoundsLongitudeLine", "CoverageCustomRegionAlgorithm", "CoverageDataRetention", "CoverageDefinition",
"CoverageEllipse", "CoverageEllipseCollection", "CoverageGraphics", "CoverageGraphics2DAnimation",
"CoverageGraphics2DProgress", "CoverageGraphics2DStatic", "CoverageGraphics3D", "CoverageGraphics3DAttributes",
"CoverageGrid", "CoverageGridClass", "CoverageGridInspector", "CoverageGridPointSelection",
"CoverageGroundAltitudeMethod", "CoverageInterval", "CoverageLatLonBox", "CoverageLatLonBoxCollection",
"CoveragePointAltitudeMethod", "CoveragePointDefinition", "CoveragePointFileListCollection",
"CoveragePointLocationMethod", "CoverageRegionAccessAccelerationType", "CoverageRegionFilesCollection",
"CoverageResolution", "CoverageResolutionArea", "CoverageResolutionDistance", "CoverageResolutionLatLon",
"CoverageSatisfactionType", "CoverageSelectedGridPoint", "CustomPropagationModel", "DataProviderCollection",
"DataProviderElement", "DataProviderElementType", "DataProviderElements", "DataProviderFixed", "DataProviderGroup",
"DataProviderInterval", "DataProviderResult", "DataProviderResultCategory", "DataProviderResultDataSet",
"DataProviderResultDataSetCollection", "DataProviderResultInterval", "DataProviderResultIntervalCollection",
"DataProviderResultStatisticResult", "DataProviderResultStatistics", "DataProviderResultSubSection",
"DataProviderResultSubSectionCollection", "DataProviderResultTextMessage", "DataProviderResultTimeArrayElements",
"DataProviderResultTimeVaryingExtremumResult", "DataProviderTimeVarying", "DataProviderType", "DataProviders",
"DataSaveMode", "DelaunayG", "DelaunayGOverSQRTmu", "DelaunayGType", "DelaunayH", "DelaunayHOverSQRTmu",
"DelaunayHType", "DelaunayL", "DelaunayLOverSQRTmu", "DelaunayLType", "DemodulatorModel", "DemodulatorModel16PSK",
"DemodulatorModel8PSK", "DemodulatorModelBOC", "DemodulatorModelBPSK", "DemodulatorModelDPSK",
"DemodulatorModelExternal", "DemodulatorModelExternalSource", "DemodulatorModelFSK", "DemodulatorModelMSK",
"DemodulatorModelNFSK", "DemodulatorModelNarrowbandUniform", "DemodulatorModelOQPSK", "DemodulatorModelPulsedSignal",
"DemodulatorModelQAM1024", "DemodulatorModelQAM128", "DemodulatorModelQAM16", "DemodulatorModelQAM256",
"DemodulatorModelQAM32", "DemodulatorModelQAM64", "DemodulatorModelQPSK", "DemodulatorModelScriptPlugin",
"DemodulatorModelType", "DemodulatorModelWidebandGaussian", "DemodulatorModelWidebandUniform", "DeticPositionType",
"DeticSizeAltitude", "DeticSizeRadius", "DirectionProvider", "DirectionProviderASCIIFile", "DirectionProviderLink",
"DirectionProviderObject", "DirectionProviderScript", "DirectionProviderType", "DisplayTimesDuringAccess",
"DisplayTimesTimeComponent", "DisplayTimesType", "DistanceOnSphere", "DragModel", "EOIR", "EOIRFlightType",
"EOIRMaterialElement", "EOIRMaterialElementCollection", "EOIRShape", "EOIRShapeBox", "EOIRShapeCollection",
"EOIRShapeCone", "EOIRShapeCoupler", "EOIRShapeCustomMesh", "EOIRShapeCylinder", "EOIRShapeGEOComm", "EOIRShapeLEOComm",
"EOIRShapeLEOImaging", "EOIRShapeMaterialSpecificationType", "EOIRShapeNone", "EOIRShapeObject", "EOIRShapePlate",
"EOIRShapeSphere", "EOIRShapeTargetSignature", "EOIRShapeType", "EOIRStage", "EOIRStagePlume", "EOIRThermalModelType",
"Element", "ElementCollection", "ElementConfiguration", "ElementConfigurationASCIIFile", "ElementConfigurationCircular",
"ElementConfigurationHexagon", "ElementConfigurationHfssEepFile", "ElementConfigurationLinear",
"ElementConfigurationPolygon", "ElementConfigurationType", "EphemExportToolFileFormat", "EphemSourceType",
"EphemerisCoordinateSystemType", "EphemerisCovarianceType", "EquinoctialFormulation", "EquinoctialSizeShape",
"EquinoctialSizeShapeMeanMotion", "EquinoctialSizeShapeSemimajorAxis", "ErrorCode", "EventDetection",
"EventDetectionNoSubSampling", "EventDetectionSubSampling", "ExportToolStepSize", "ExportToolStepSizeType",
"ExportToolTimePeriod", "ExportToolTimePeriodType", "ExportToolVersionFormat", "ExternalEphemerisFormatType",
"ExternalFileMessageLevelType", "Facility", "FacilityGraphics", "FacilityGraphics3D", "FigureOfMerit",
"FigureOfMeritAcrossAssets", "FigureOfMeritAssetListCollection", "FigureOfMeritAssetListElement",
"FigureOfMeritCompute", "FigureOfMeritConstraintName", "FigureOfMeritDefinitionAccessConstraint",
"FigureOfMeritDefinitionAccessSeparation", "FigureOfMeritDefinitionAgeOfData", "FigureOfMeritDefinitionCompute",
"FigureOfMeritDefinitionDataBest4", "FigureOfMeritDefinitionDataBestN", "FigureOfMeritDefinitionDataMinimumMaximum",
"FigureOfMeritDefinitionDataMinimumNumberOfAssets", "FigureOfMeritDefinitionDataPercentLevel",
"FigureOfMeritDefinitionDilutionOfPrecision", "FigureOfMeritDefinitionNavigationAccuracy",
"FigureOfMeritDefinitionResponseTime", "FigureOfMeritDefinitionRevisitTime", "FigureOfMeritDefinitionScalarCalculation",
"FigureOfMeritDefinitionSimpleCoverage", "FigureOfMeritDefinitionSystemAgeOfData",
"FigureOfMeritDefinitionSystemResponseTime", "FigureOfMeritDefinitionTimeAverageGap", "FigureOfMeritDefinitionType",
"FigureOfMeritEndGapOption", "FigureOfMeritGraphics", "FigureOfMeritGraphics2DAccumulation",
"FigureOfMeritGraphics2DAttributes", "FigureOfMeritGraphics2DAttributesAnimation", "FigureOfMeritGraphics2DColorMethod",
"FigureOfMeritGraphics2DColorOptions", "FigureOfMeritGraphics2DContourType", "FigureOfMeritGraphics2DContours",
"FigureOfMeritGraphics2DContoursAnimation", "FigureOfMeritGraphics2DDirection",
"FigureOfMeritGraphics2DFloatingPointFormat", "FigureOfMeritGraphics2DLegend", "FigureOfMeritGraphics2DLegendWindow",
"FigureOfMeritGraphics2DLevelAttributesCollection", "FigureOfMeritGraphics2DLevelAttributesElement",
"FigureOfMeritGraphics2DPositionOnMap", "FigureOfMeritGraphics2DRampColor", "FigureOfMeritGraphics2DRangeColorOptions",
"FigureOfMeritGraphics2DTextOptions", "FigureOfMeritGraphics3D", "FigureOfMeritGraphics3DAttributes",
"FigureOfMeritGraphics3DLegendWindow", "FigureOfMeritGridInspector", "FigureOfMeritInvalidValueActionType",
"FigureOfMeritMethod", "FigureOfMeritNavigationAccuracyMethod", "FigureOfMeritNavigationAccuracyMethodConstant",
"FigureOfMeritNavigationAccuracyMethodElevationAngle", "FigureOfMeritNavigationComputeType",
"FigureOfMeritSatisfaction", "FigureOfMeritSatisfactionType", "FigureOfMeritUncertainties",
"FrequencySpecificationType", "GPSAttitudeModelType", "GPSReferenceWeek", "GeodeticSize", "GeometricElementType",
"Graphics2DRangeContours", "Graphics3DACAPCoefficientDataType", "Graphics3DACAPSolarActivityConfigurationType",
"Graphics3DArticulationFile", "Graphics3DAzElMask", "Graphics3DBorderWall", "Graphics3DDataDisplayCollection",
"Graphics3DDataDisplayElement", "Graphics3DDetailThreshold", "Graphics3DFontSize", "Graphics3DFormat",
"Graphics3DLabelSwapDistance", "Graphics3DLabelSwapDistanceType", "Graphics3DLocation", "Graphics3DMarker",
"Graphics3DMarkerFile", "Graphics3DMarkerOrientation", "Graphics3DMarkerOriginType", "Graphics3DMarkerShape",
"Graphics3DModelArticulation", "Graphics3DModelCollection", "Graphics3DModelFile", "Graphics3DModelItem",
"Graphics3DModelPointing", "Graphics3DModelTransformation", "Graphics3DModelTransformationCollection",
"Graphics3DModelglTFImageBased", "Graphics3DOffset", "Graphics3DOffsetAttachment", "Graphics3DOffsetLabel",
"Graphics3DOffsetRotate", "Graphics3DOffsetTransformation", "Graphics3DPointableElementsCollection",
"Graphics3DPointableElementsElement", "Graphics3DRangeContours", "Graphics3DReferenceAngle", "Graphics3DReferenceAxes",
"Graphics3DReferencePlane", "Graphics3DReferencePoint", "Graphics3DReferenceVector",
"Graphics3DReferenceVectorGeometryToolComponentCollection", "Graphics3DVaporTrail", "Graphics3DVector",
"Graphics3DXOrigin", "Graphics3DYOrigin", "GroundVehicle", "GroundVehicleExportTools", "GroundVehicleGraphics",
"GroundVehicleGraphics3D", "HFSSFarFieldDataGainType", "HelpContextIdentifierType", "IAccessAdvanced",
"IAccessConstraint", "IAccessConstraintMinMaxBase", "IAccessInterval", "IAnimation", "IAntennaBeam",
"IAntennaBeamSelectionStrategy", "IAntennaContour", "IAntennaModel", "IAntennaModelOpticalSimple", "IAreaTypeData",
"IAtmosphericAbsorptionModel", "IAtmosphericAbsorptionModelITURP676", "IAtmosphericAbsorptionModelTIREM",
"IAtmosphericTurbulenceModel", "IAzElMaskData", "IBeamformer", "ICelestialBodyInformation",
"ICelestialBodyInformationCollection", "IChainTimePeriod", "IClassicalLocation", "IClassicalSizeShape", "ICloneable",
"ICloudsAndFogFadingLossModel", "ICommSystemAccessEventDetection", "ICommSystemAccessSamplingMethod",
"ICommSystemLinkSelectionCriteria", "IComponentInfo", "IComponentLinkEmbedControl",
"IConstellationConstraintRestriction", "ICoverageBounds", "ICoverageResolution", "IDataProvider", "IDataProviderInfo",
"IDelaunayActionVariable", "IDemodulatorModel", "IDirectionProvider", "IDisplayDistance", "IDisplayTime",
"IDisplayTimesData", "IEOIR", "IEOIRShapeObject", "IElementConfiguration", "IElementConfigurationPolygon",
"IEventDetectionStrategy", "IFigureOfMeritDefinition", "IFigureOfMeritDefinitionCompute",
"IFigureOfMeritDefinitionData", "IFigureOfMeritDefinitionDilutionOfPrecision", "IFigureOfMeritDefinitionResponseTime",
"IFigureOfMeritGraphics2DAttributes", "IFigureOfMeritGraphics2DContours", "IFigureOfMeritNavigationAccuracyMethod",
"IFlightPathAngle", "IGeodeticSize", "IGraphics3DMarkerData", "IGraphics3DModel", "IGraphics3DModelData",
"IGraphics3DReferenceAnalysisWorkbenchComponent", "IGreatArcGraphics", "IGreatArcGraphics3D", "IGreatArcVehicle",
"IIonosphericFadingLossModel", "ILaserAtmosphericLossModel", "ILaserPropagationChannel",
"ILaserTroposphericScintillationLossModel", "ILatitudeLongitudeAltitudePosition", "ILifetimeInformation",
"IModulatorModel", "IModulatorModelScriptPlugin", "IOrbitDisplayData", "IOrientationAscNode", "IPlatformRFEnvironment",
"IPointingStrategy", "IPolarization", "IPolarizationCrossPolLeakage", "IPolarizationElliptical",
"IPolarizationHorizontal", "IPolarizationLinear", "IPolarizationVertical", "IPositionSourceData", "IPropagator",
"IPropagatorSGP4LoadData", "IProvideSpatialInfo", "IRFFilterModel", "IRadarActivity", "IRadarClutterGeometryModel",
"IRadarClutterGeometryModelPlugin", "IRadarClutterMap", "IRadarClutterMapInheritable", "IRadarClutterMapModel",
"IRadarClutterMapModelConstantCoefficient", "IRadarClutterMapModelPlugin", "IRadarContinuousWaveAnalysisMode",
"IRadarCrossSectionComputeStrategy", "IRadarModeBistaticReceiver", "IRadarModeBistaticTransmitter",
"IRadarModeMonostatic", "IRadarModel", "IRadarProbabilityOfDetection", "IRadarProbabilityOfDetectionCFAR",
"IRadarPulseIntegration", "IRadarSTCAttenuation", "IRadarSTCAttenuationMap", "IRadarWaveformSearchTrack",
"IRainLossModel", "IReTransmitterModel", "IReceiverModel", "IReceiverModelScriptPlugin", "IRefractionModelBase",
"ISRPModelBase", "ISTKObject", "ISTKObjectCollection", "ISTKObjectElementCollection", "ISamplingMethodStrategy",
"IScatteringPointModel", "IScatteringPointProvider", "ISensorPattern", "ISensorPointing",
"ISensorPointingTargetedBoresight", "ISensorProjectionDisplayDistance", "ISolarActivityConfiguration",
"ITargetSelectionMethod", "ITerrainNormData", "ITimePeriod", "ITransmitterModel", "ITransmitterModelScriptPlugin",
"ITroposphericScintillationFadingLossModel", "IUrbanTerrestrialLossModel", "IVehicleAttitude",
"IVehicleAttitudeProfile", "IVehicleAttitudeSlewBase", "IVehicleAttitudeStandard", "IVehicleBreakAngle",
"IVehicleCoordinateAxes", "IVehicleGPSAlmanacProperties", "IVehicleGraphics2DAttributes",
"IVehicleGraphics2DAttributesBasic", "IVehicleGraphics2DAttributesDisplayState", "IVehicleGraphics2DElevation",
"IVehicleGraphics2DPass", "IVehicleGraphics2DTimeComponentsElement", "IVehicleGraphics2DTimeEventType",
"IVehicleGraphics3DAttributes", "IVehicleGraphics3DBPlaneTargetPointPosition", "IVehicleGraphics3DProximity",
"IVehicleGraphics3DProximityAreaObject", "IVehicleGraphics3DSigmaScale", "IVehicleGraphics3DSystemsElementBase",
"IVehicleGraphics3DTickData", "IVehicleHPOPDragModel", "IVehicleImpact", "IVehicleImpactLocation", "IVehicleLaunch",
"IVehicleLaunchControl", "IVehicleLeadTrailData", "IVehicleLeadTrailDataFraction", "IVehicleLeadTrailDataTime",
"IVehiclePassNumbering", "IVehiclePointing", "IVehicleSolarFluxGeoMagnitude", "IVehicleWaypointAltitudeReference",
"IVolumetricGridDefinition", "IWaveform", "IWaveformSelectionStrategy", "IntegratorStepSizeControl",
"IntegratorTimeRegularization", "IntersectionType", "IonosphericFadingLossModel",
"IonosphericFadingLossModelP531Version13", "IonosphericFadingLossModelType", "IvClockHost", "IvTimeSense",
"KeyValueCollection", "LOPAtmosphericDensityModel", "LabelNote", "LabelNoteCollection", "LaserAtmosphericLossModel",
"LaserAtmosphericLossModelBeerBouguerLambertLaw", "LaserEnvironment", "LaserPropagationLossModelType",
"LaserPropagationLossModels", "LaserTroposphericScintillationLossModel",
"LaserTroposphericScintillationLossModelITURP1814", "LaserTroposphericScintillationLossModelType",
"LatitudeLongitudeAltitudeCentric", "LatitudeLongitudeAltitudeDetic", "LatitudeLongitudeAltitudePosition",
"LatticeType", "LaunchVehicle", "LaunchVehicleControlFixedApogeeAltitude", "LaunchVehicleControlFixedDeltaV",
"LaunchVehicleControlFixedDeltaVMinimumEccentricity", "LaunchVehicleControlFixedTimeOfFlight",
"LaunchVehicleExportTools", "LaunchVehicleGraphics", "LaunchVehicleGraphics3D", "LaunchVehicleInitialState",
"LaunchVehicleLocationCentric", "LaunchVehicleLocationDetic", "LeadTrailData", "LevelAttribute",
"LevelAttributeCollection", "LightingObstructionModelType", "LimitsExceededBehaviorType", "LineTarget",
"LineTargetGraphics", "LineTargetGraphics3D", "LineTargetPoint", "LineTargetPointCollection", "LineWidth", "LinkMargin",
"LinkMarginType", "LinkToObject", "LoadMethod", "LocationVectorGeometryToolPoint", "LookAheadPropagator",
"LowAltitudeAtmosphericDensityModel", "MODTRANLookupTablePropagationModel", "MODTRANPropagationModel", "MTO",
"MTOAnalysis", "MTOAnalysisFieldOfView", "MTOAnalysisPosition", "MTOAnalysisRange", "MTOAnalysisVisibility",
"MTODefaultGraphics2DTrack", "MTODefaultGraphics3DTrack", "MTODefaultTrack", "MTOEntirety", "MTOGlobalTrackOptions",
"MTOGraphics", "MTOGraphics2DFadeTimes", "MTOGraphics2DGlobalTrackOptions", "MTOGraphics2DLeadTrailTimes",
"MTOGraphics2DLine", "MTOGraphics2DMarker", "MTOGraphics2DTrack", "MTOGraphics2DTrackCollection", "MTOGraphics3D",
"MTOGraphics3DDropLines", "MTOGraphics3DGlobalTrackOptions", "MTOGraphics3DMarker", "MTOGraphics3DModel",
"MTOGraphics3DModelArticulation", "MTOGraphics3DPoint", "MTOGraphics3DSwapDistances", "MTOGraphics3DTrack",
"MTOGraphics3DTrackCollection", "MTOInputDataType", "MTOObjectInterval", "MTORangeMode", "MTOTrack",
"MTOTrackCollection", "MTOTrackEvaluationType", "MTOTrackPoint", "MTOTrackPointCollection", "MTOVisibilityMode",
"MarkerShape3d", "MarkerType", "MethodToComputeSunPosition", "MilitaryStandard2525bSymbols", "Missile", "MissileEOIR",
"MissileExportTools", "MissileGraphics", "MissileGraphics3D", "MixedSphericalFlightPathAngleHorizontal",
"MixedSphericalFlightPathAngleType", "MixedSphericalFlightPathAngleVertical", "ModelGltfReflectionMapType", "ModelType",
"ModtranAerosolModelType", "ModtranCloudModelType", "ModulatorModel", "ModulatorModel16PSK", "ModulatorModel8PSK",
"ModulatorModelBOC", "ModulatorModelBPSK", "ModulatorModelDPSK", "ModulatorModelExternal",
"ModulatorModelExternalSource", "ModulatorModelFSK", "ModulatorModelMSK", "ModulatorModelNFSK",
"ModulatorModelNarrowbandUniform", "ModulatorModelOQPSK", "ModulatorModelPulsedSignal", "ModulatorModelQAM1024",
"ModulatorModelQAM128", "ModulatorModelQAM16", "ModulatorModelQAM256", "ModulatorModelQAM32", "ModulatorModelQAM64",
"ModulatorModelQPSK", "ModulatorModelScriptPluginCustomPSD", "ModulatorModelScriptPluginIdealPSD", "ModulatorModelType",
"ModulatorModelWidebandGaussian", "ModulatorModelWidebandUniform", "NoiseTemperatureComputeType", "NoteShowType",
"NotificationFilterMask", "ObjectCoverage", "ObjectCoverageFigureOfMerit", "ObjectLaserEnvironment", "ObjectLink",
"ObjectLinkCollection", "ObjectRFEnvironment", "OceanTides", "OffsetFrameType", "OnePointAccess",
"OnePointAccessConstraint", "OnePointAccessConstraintCollection", "OnePointAccessResult",
"OnePointAccessResultCollection", "OnePointAccessStatus", "OnePointAccessSummary", "OrbitState", "OrbitStateCartesian",
"OrbitStateClassical", "OrbitStateCoordinateSystem", "OrbitStateDelaunay", "OrbitStateDetic", "OrbitStateEquinoctial",
"OrbitStateMixedSpherical", "OrbitStateSpherical", "OrientationAscNode", "OrientationLongitudeOfAscending",
"OrientationRightAscensionOfAscendingNode", "PRFMode", "PassBreak", "PassBreakNumberingDateOfFirstPass",
"PassBreakNumberingFirstPassNumber", "PathCollection", "Place", "PlaceGraphics", "PlaceGraphics3D", "Planet",
"PlanetCommonTasks", "PlanetGraphics", "PlanetGraphics3D", "PlanetOrbitDisplayTime", "PlanetOrbitDisplayType",
"PlanetPositionCentralBody", "PlanetPositionFile", "PlanetPositionSourceType", "PlatformLaserEnvironment",
"PointTargetGraphics3DModel", "PointingStrategy", "PointingStrategyFixed", "PointingStrategySpinning",
"PointingStrategyTargeted", "PointingStrategyType", "Polarization", "PolarizationElliptical", "PolarizationHorizontal",
"PolarizationLeftHandCircular", "PolarizationLinear", "PolarizationReferenceAxis", "PolarizationRightHandCircular",
"PolarizationType", "PolarizationVertical", "Preferences", "PreferencesConnect", "PreferencesPythonPlugins",
"PreferencesVDF", "Priority", "PriorityCollection", "ProgressBarEventArguments", "ProjectionHorizontalDatumType",
"PropagationChannel", "Propagator11Parameters", "Propagator11ParametersDescriptor",
"Propagator11ParametersDescriptorCollection", "PropagatorAviator", "PropagatorBallistic",
"PropagatorDefinitionExportTool", "PropagatorDisplayCoordinateType", "PropagatorGPS", "PropagatorGreatArc",
"PropagatorHPOP", "PropagatorHPOPStaticForceModelSettings", "PropagatorHPOPThirdBodyGravityCollection",
"PropagatorHPOPThirdBodyGravityElement", "PropagatorJ2Perturbation", "PropagatorJ4Perturbation", "PropagatorLOP",
"PropagatorLOPThirdBodyGravity", "PropagatorRealtime", "PropagatorRealtimeCartesianPoints",
"PropagatorRealtimeDeticPoints", "PropagatorRealtimeHeadingPitch", "PropagatorRealtimePointBuilder",
"PropagatorRealtimeUTMPoints", "PropagatorSGP4", "PropagatorSGP4AutoUpdate", "PropagatorSGP4AutoUpdateFileSource",
"PropagatorSGP4AutoUpdateOnlineSource", "PropagatorSGP4AutoUpdateProperties", "PropagatorSGP4CommonTasks",
"PropagatorSGP4LoadFile", "PropagatorSGP4OnlineAutoLoad", "PropagatorSGP4OnlineLoad",
"PropagatorSGP4PropagatorSettings", "PropagatorSGP4Segment", "PropagatorSGP4SegmentCollection",
"PropagatorSGP4SwitchMethod", "PropagatorSP3", "PropagatorSP3File", "PropagatorSP3FileCollection", "PropagatorSPICE",
"PropagatorSPICESegment", "PropagatorSPICESegmentsCollection", "PropagatorSTKExternal", "PropagatorSimpleAscent",
"PropagatorTwoBody", "PropagatorType", "PropagatorUserExternal", "PulseWidthMode", "RCSComputeStrategy",
"RFEnvironment", "RFFilterModel", "RFFilterModelBessel", "RFFilterModelButterworth", "RFFilterModelChebyshev",
"RFFilterModelCosineWindow", "RFFilterModelElliptic", "RFFilterModelExternal", "RFFilterModelFIR",
"RFFilterModelFIRBoxCar", "RFFilterModelGaussianWindow", "RFFilterModelHammingWindow", "RFFilterModelIIR",
"RFFilterModelRCLowPass", "RFFilterModelRaisedCosine", "RFFilterModelRectangular", "RFFilterModelRootRaisedCosine",
"RFFilterModelScriptPlugin", "RFFilterModelSinc", "RFFilterModelSincEnvelopeSinc", "RFFilterModelType",
"RFInterference", "Radar", "RadarAccessGraphics", "RadarActivity", "RadarActivityAlwaysActive",
"RadarActivityAlwaysInactive", "RadarActivityTimeComponentList", "RadarActivityTimeComponentListCollection",
"RadarActivityTimeComponentListElement", "RadarActivityTimeIntervalList", "RadarActivityTimeIntervalListCollection",
"RadarActivityTimeIntervalListElement", "RadarActivityType", "RadarAntennaBeam", "RadarAntennaBeamCollection",
"RadarClutter", "RadarClutterGeometry", "RadarClutterGeometryModelType", "RadarClutterMapModelType",
"RadarContinuousWaveAnalysisMode", "RadarContinuousWaveAnalysisModeFixedTime", "RadarContinuousWaveAnalysisModeGoalSNR",
"RadarCrossSection", "RadarCrossSectionComputeStrategy", "RadarCrossSectionComputeStrategyAnsysCSVFile",
"RadarCrossSectionComputeStrategyConstantValue", "RadarCrossSectionComputeStrategyExternalFile",
"RadarCrossSectionComputeStrategyPlugin", "RadarCrossSectionComputeStrategyScriptPlugin",
"RadarCrossSectionContourGraphicsPolarization", "RadarCrossSectionContourLevel",
"RadarCrossSectionContourLevelCollection", "RadarCrossSectionFrequencyBand", "RadarCrossSectionFrequencyBandCollection",
"RadarCrossSectionGraphics", "RadarCrossSectionGraphics3D", "RadarCrossSectionInheritable", "RadarCrossSectionModel",
"RadarCrossSectionVolumeGraphics", "RadarCrossSectionVolumeLevel", "RadarCrossSectionVolumeLevelCollection",
"RadarDopplerClutterFilters", "RadarFrequencySpecificationType", "RadarGraphics", "RadarGraphics3D", "RadarJamming",
"RadarMode", "RadarModeBistaticReceiver", "RadarModeBistaticReceiverSAR", "RadarModeBistaticReceiverSearchTrack",
"RadarModeBistaticTransmitter", "RadarModeBistaticTransmitterSAR", "RadarModeBistaticTransmitterSearchTrack",
"RadarModeMonostatic", "RadarModeMonostaticSAR", "RadarModeMonostaticSearchTrack", "RadarModel",
"RadarModelBistaticReceiver", "RadarModelBistaticTransmitter", "RadarModelMonostatic", "RadarModelMultifunction",
"RadarModelType", "RadarModulator", "RadarMultifunctionDetectionProcessing",
"RadarMultifunctionWaveformStrategySettings", "RadarMultipathGraphics", "RadarProbabilityOfDetection",
"RadarProbabilityOfDetectionCFAR", "RadarProbabilityOfDetectionCFARCellAveraging",
"RadarProbabilityOfDetectionCFAROrderedStatistics", "RadarProbabilityOfDetectionNonCFAR",
"RadarProbabilityOfDetectionPlugin", "RadarProbabilityOfDetectionType", "RadarPulseIntegrationFixedNumberOfPulses",
"RadarPulseIntegrationGoalSNR", "RadarPulseIntegrationType", "RadarPulseIntegratorType", "RadarReceiver",
"RadarSARPulseIntegrationAnalysisMode", "RadarSNRContourType", "RadarSTCAttenuation", "RadarSTCAttenuationDecayFactor",
"RadarSTCAttenuationDecaySlope", "RadarSTCAttenuationMapAzimuthRange", "RadarSTCAttenuationMapElevationRange",
"RadarSTCAttenuationMapRange", "RadarSTCAttenuationPlugin", "RadarSTCAttenuationType", "RadarSarPRFMode",
"RadarSarPcrMode", "RadarSarRangeResolutionMode", "RadarSearchTrackPRFMode", "RadarSearchTrackPulseWidthMode",
"RadarSwerlingCase", "RadarTransmitter", "RadarTransmitterMultifunction",
"RadarWaveformBistaticReceiverSearchTrackContinuous", "RadarWaveformBistaticReceiverSearchTrackFixedPRF",
"RadarWaveformBistaticTransmitterSearchTrackContinuous", "RadarWaveformBistaticTransmitterSearchTrackFixedPRF",
"RadarWaveformMonostaticSearchTrackContinuous", "RadarWaveformMonostaticSearchTrackFixedPRF",
"RadarWaveformSarPulseDefinition", "RadarWaveformSarPulseIntegration", "RadarWaveformSearchTrackPulseDefinition",
"RadarWaveformSearchTrackType", "RadiationPressure", "RainLossModel", "RainLossModelCCIR1983", "RainLossModelCrane1982",
"RainLossModelCrane1985", "RainLossModelITURP618Version10", "RainLossModelITURP618Version12",
"RainLossModelITURP618Version13", "RainLossModelScriptPlugin", "RainLossModelType", "ReTransmitterModelComplex",
"ReTransmitterModelMedium", "ReTransmitterModelSimple", "ReTransmitterOpMode", "ReceivePolarizationElliptical",
"ReceivePolarizationHorizontal", "ReceivePolarizationLeftHandCircular", "ReceivePolarizationLinear",
"ReceivePolarizationRightHandCircular", "ReceivePolarizationVertical", "Receiver", "ReceiverGraphics",
"ReceiverGraphics3D", "ReceiverModel", "ReceiverModelCable", "ReceiverModelComplex", "ReceiverModelLaser",
"ReceiverModelMedium", "ReceiverModelMultibeam", "ReceiverModelScriptPluginLaser", "ReceiverModelScriptPluginRF",
"ReceiverModelSimple", "ReceiverModelType", "RectangularApertureInputType", "RefractionCoefficients",
"RefractionModelEffectiveRadiusMethod", "RefractionModelITURP8344", "RefractionModelSCFMethod",
"RepeatGroundTrackNumbering", "RotationRateAndOffset", "RouteGraphics3DMarkerType", "STKObject",
"STKObjectChangedEventArguments", "STKObjectCutCopyPasteEventArguments", "STKObjectModelContext",
"STKObjectPreDeleteEventArguments", "STKObjectRoot", "STKObjectType", "SamplingMethod", "SamplingMethodAdaptive",
"SamplingMethodFixedStep", "Satellite", "SatelliteCollection", "SatelliteExportTools", "SatelliteGraphics",
"SatelliteGraphics3D", "SatelliteGraphics3DModel", "ScatteringPointCollection", "ScatteringPointCollectionElement",
"ScatteringPointModel", "ScatteringPointModelConstantCoefficient", "ScatteringPointModelPlugin",
"ScatteringPointModelType", "ScatteringPointModelWindTurbine", "ScatteringPointProvider",
"ScatteringPointProviderCollection", "ScatteringPointProviderCollectionElement", "ScatteringPointProviderList",
"ScatteringPointProviderListType", "ScatteringPointProviderPlugin", "ScatteringPointProviderPointsFile",
"ScatteringPointProviderRangeOverCFARCells", "ScatteringPointProviderSinglePoint",
"ScatteringPointProviderSmoothOblateEarth", "ScatteringPointProviderType", "Scenario", "Scenario3dFont",
"Scenario3dPointSize", "ScenarioAnimation", "ScenarioAnimationTimePeriod", "ScenarioBeforeSaveEventArguments",
"ScenarioDatabase", "ScenarioDatabaseCollection", "ScenarioEarthData", "ScenarioEndLoopType", "ScenarioGraphics",
"ScenarioGraphics3D", "ScenarioRefreshDeltaType", "ScenarioSpaceEnvironment", "ScenarioTimeStepType", "ScheduleTime",
"ScheduleTimeCollection", "Sensor", "SensorAccessAdvancedSettings", "SensorAltitudeCrossingDirection",
"SensorAltitudeCrossingSideType", "SensorAzElBoresightAxisType", "SensorAzElMaskFile", "SensorCommonTasks",
"SensorComplexConicPattern", "SensorCustomPattern", "SensorEOIRBand", "SensorEOIRBandCollection",
"SensorEOIRBandImageQuality", "SensorEOIRBandOpticalInputMode", "SensorEOIRBandOpticalTransmissionMode",
"SensorEOIRBandQuantizationMode", "SensorEOIRBandQuantumEfficiencyMode", "SensorEOIRBandRadiometricParameterLevelType",
"SensorEOIRBandSaturationMode", "SensorEOIRBandSpatialInputMode",
"SensorEOIRBandSpectralRelativeSystemResponseUnitsType", "SensorEOIRBandSpectralShape", "SensorEOIRBandWavelengthType",
"SensorEOIRJitterType", "SensorEOIRPattern", "SensorEOIRProcessingLevelType", "SensorEOIRRadiometricPair",
"SensorEOIRSaturationCollection", "SensorEOIRScanMode", "SensorEOIRSensitivityCollection", "SensorGraphics",
"SensorGraphics3D", "SensorGraphics3DInheritFrom2D", "SensorGraphics3DOffset", "SensorGraphics3DProjectionElement",
"SensorGraphics3DProjectionTimeDependencyType", "SensorGraphics3DProjectionType", "SensorGraphics3DPulse",
"SensorGraphics3DPulseFrequencyPreset", "SensorGraphics3DPulseStyle", "SensorGraphics3DSpaceProjectionCollection",
"SensorGraphics3DTargetProjectionCollection", "SensorGraphics3DVisualAppearance", "SensorHalfPowerPattern",
"SensorLocation", "SensorPattern", "SensorPointing", "SensorPointing3DModel", "SensorPointingAlongVector",
"SensorPointingExternal", "SensorPointingFixed", "SensorPointingFixedInAxes", "SensorPointingGrazingAltitude",
"SensorPointingSchedule", "SensorPointingSpinning", "SensorPointingTargeted", "SensorPointingTargetedBoresightFixed",
"SensorPointingTargetedBoresightTrack", "SensorPointingTargetedBoresightType", "SensorProjection",
"SensorProjectionConstantAltitude", "SensorProjectionDisplayDistance", "SensorProjectionDistanceType",
"SensorProjectionObjectAltitude", "SensorRectangularPattern", "SensorRefractionType", "SensorSARPattern",
"SensorScanMode", "SensorSimpleConicPattern", "SensorTarget", "SensorTargetCollection", "SensorUnknownPattern", "Ship",
"ShipExportTools", "ShipGraphics", "ShipGraphics3D", "SolarActivityConfiguration",
"SolarActivityConfigurationSolarFlux", "SolarActivityConfigurationSunspotNumber", "SolarFluxGeoMagneticFileSettings",
"SolarFluxGeoMagneticValueSettings", "SolarRadiationPressureModelGPS", "SolarRadiationPressureModelPlugin",
"SolarRadiationPressureModelPluginSettings", "SolarRadiationPressureModelSpherical", "SolarRadiationPressureModelType",
"SolarRadiationPressureShadowModelType", "SolidTide", "SolidTides", "SpaceEnvironment",
"SpaceEnvironmentCrresProtonActivity", "SpaceEnvironmentCrresRadiationActivity", "SpaceEnvironmentGraphics",
"SpaceEnvironmentMagneticExternalField", "SpaceEnvironmentMagneticField", "SpaceEnvironmentMagneticFieldColorMode",
"SpaceEnvironmentMagneticFieldColorScaleType", "SpaceEnvironmentMagneticMainField",
"SpaceEnvironmentMagnitudeFieldGraphics2D", "SpaceEnvironmentMagnitudeFieldLine", "SpaceEnvironmentNasaModelsActivity",
"SpaceEnvironmentParticleFlux", "SpaceEnvironmentRadiation", "SpaceEnvironmentRadiationDoseRateCollection",
"SpaceEnvironmentRadiationDoseRateElement", "SpaceEnvironmentRadiationEnergyMethodEnergies",
"SpaceEnvironmentRadiationEnergyValues", "SpaceEnvironmentRadiationEnvironment", "SpaceEnvironmentSAAChannel",
"SpaceEnvironmentSAAContour", "SpaceEnvironmentSAAFluxLevel", "SpaceEnvironmentScenarioGraphics3D",
"SpaceEnvironmentVehicleTemperature", "SpacingUnit", "SpatialState", "SphericalFlightPathAngleHorizontal",
"SphericalFlightPathAngleVertical", "SphericalFlightPathAzimuthType", "SpiceInterpolation", "Star", "StarCollection",
"StarGraphics", "StarGraphics3D", "StarInformation", "StarReferenceFrame", "StatisticType", "Subset",
"SurfaceReference", "Swath", "SwathComputationalMethod", "SystemNoiseTemperature", "TIREMPolarizationType", "Target",
"TargetGraphics", "TargetGraphics3D", "TargetSelectionMethod", "TargetSelectionMethod",
"TargetSelectionMethodClosingVelocity", "TargetSelectionMethodPriority", "TargetSelectionMethodRange", "Terrain",
"TerrainCollection", "TerrainFileType", "TerrainNormalSlopeAzimuth", "TerrainNormalType", "TextOutlineStyle",
"ThirdBodyGravitySourceType", "TickData", "Tileset3D", "Tileset3DCollection", "Tileset3DSourceType",
"TimeIntervalCollection", "TimeIntervalCollectionReadOnly", "TimePeriod", "TimePeriodValue", "TimePeriodValueType",
"TimeVaryingExtremum", "TrackMode", "TrajectoryType", "TransferFunctionInputBackOffOutputBackOffTable",
"TransferFunctionInputBackOffOutputBackOffTableRow", "TransferFunctionInputBackOffVsCOverImTable",
"TransferFunctionInputBackOffVsCOverImTableRow", "TransferFunctionPolynomialCollection", "TransferFunctionType",
"Transmitter", "TransmitterGraphics", "TransmitterGraphics3D", "TransmitterModel", "TransmitterModelCable",
"TransmitterModelComplex", "TransmitterModelLaser", "TransmitterModelMedium", "TransmitterModelMultibeam",
"TransmitterModelScriptPluginLaser", "TransmitterModelScriptPluginRF", "TransmitterModelSimple", "TransmitterModelType",
"TroposphericScintillationAverageTimeChoiceType", "TroposphericScintillationFadingLossModel",
"TroposphericScintillationFadingLossModelP618Version12", "TroposphericScintillationFadingLossModelP618Version8",
"TroposphericScintillationFadingLossModelType", "UrbanTerrestrialLossModel", "UrbanTerrestrialLossModelTwoRay",
"UrbanTerrestrialLossModelType", "UrbanTerrestrialLossModelWirelessInSite64", "VectorAxesConnectType",
"VehicleAccessAdvancedSettings", "VehicleAltitudeReference", "VehicleAttitude", "VehicleAttitudeExportTool",
"VehicleAttitudeExternal", "VehicleAttitudeMaximumSlewAcceleration", "VehicleAttitudeMaximumSlewRate",
"VehicleAttitudePointing", "VehicleAttitudeRealTime", "VehicleAttitudeRealTimeDataReference",
"VehicleAttitudeSlewConstrained", "VehicleAttitudeSlewFixedRate", "VehicleAttitudeSlewFixedTime",
"VehicleAttitudeTargetSlew", "VehicleAttitudeTrendingControlAviator", "VehicleBreakAngleBreakByLatitude",
"VehicleBreakAngleBreakByLongitude", "VehicleBreakAngleType", "VehicleCentralBodies",
"VehicleConsiderAnalysisCollection", "VehicleConsiderAnalysisCollectionElement", "VehicleConsiderAnalysisType",
"VehicleCoordinateAxesCustom", "VehicleCoordinateSystem", "VehicleCorrelationListCollection",
"VehicleCorrelationListElement", "VehicleCorrelationListType", "VehicleCovariance", "VehicleDefinition",
"VehicleDirection", "VehicleDuration", "VehicleEOIR", "VehicleEclipseBodies", "VehicleEclipsingBodies",
"VehicleEllipseDataCollection", "VehicleEllipseDataElement", "VehicleEllipseOptionType",
"VehicleEphemerisBinaryExportTool", "VehicleEphemerisCCSDSExportTool", "VehicleEphemerisCCSDSv2ExportTool",
"VehicleEphemerisCode500ExportTool", "VehicleEphemerisExportTool", "VehicleEphemerisSPICEExportTool",
"VehicleExponentialDensityModelParameters", "VehicleFrame", "VehicleGPSAlmanacProperties",
"VehicleGPSAlmanacPropertiesSEM", "VehicleGPSAlmanacPropertiesSP3", "VehicleGPSAlmanacPropertiesYUMA",
"VehicleGPSAlmanacType", "VehicleGPSAutoUpdate", "VehicleGPSAutoUpdateFileSource", "VehicleGPSAutoUpdateOnlineSource",
"VehicleGPSAutoUpdateProperties", "VehicleGPSAutomaticUpdateSourceType", "VehicleGPSElement",
"VehicleGPSElementCollection", "VehicleGPSElementSelectionType", "VehicleGPSSpecifyAlmanac", "VehicleGPSSwitchMethod",
"VehicleGeomagneticFluxSourceType", "VehicleGeomagneticFluxUpdateRateType", "VehicleGraphics2DAttributeType",
"VehicleGraphics2DAttributesAccess", "VehicleGraphics2DAttributesCustom", "VehicleGraphics2DAttributesOrbit",
"VehicleGraphics2DAttributesRealtime", "VehicleGraphics2DAttributesRoute", "VehicleGraphics2DAttributesTimeComponents",
"VehicleGraphics2DAttributesTrajectory", "VehicleGraphics2DElevation", "VehicleGraphics2DElevationContours",
"VehicleGraphics2DElevationGroundElevation", "VehicleGraphics2DElevationSwathHalfWidth",
"VehicleGraphics2DElevationVehicleHalfAngle", "VehicleGraphics2DElevationsCollection",
"VehicleGraphics2DElevationsElement", "VehicleGraphics2DGroundEllipsesCollection",
"VehicleGraphics2DGroundEllipsesElement", "VehicleGraphics2DInterval", "VehicleGraphics2DIntervalsCollection",
"VehicleGraphics2DLeadDataFraction", "VehicleGraphics2DLeadDataTime", "VehicleGraphics2DLeadTrailData",
"VehicleGraphics2DLighting", "VehicleGraphics2DLightingElement", "VehicleGraphics2DLine", "VehicleGraphics2DOffset",
"VehicleGraphics2DOptionType", "VehicleGraphics2DOrbitPassData", "VehicleGraphics2DPass",
"VehicleGraphics2DPassResolution", "VehicleGraphics2DPassShowPasses", "VehicleGraphics2DPasses",
"VehicleGraphics2DRoutePassData", "VehicleGraphics2DRouteResolution", "VehicleGraphics2DSAA", "VehicleGraphics2DSwath",
"VehicleGraphics2DTimeComponentsCollection", "VehicleGraphics2DTimeComponentsEventCollectionElement",
"VehicleGraphics2DTimeComponentsEventElement", "VehicleGraphics2DTimeEventType", "VehicleGraphics2DTimeEventTypeLine",
"VehicleGraphics2DTimeEventTypeMarker", "VehicleGraphics2DTimeEventTypeText", "VehicleGraphics2DTimeEventsCollection",
"VehicleGraphics2DTimeEventsElement", "VehicleGraphics2DTrailDataFraction", "VehicleGraphics2DTrailDataTime",
"VehicleGraphics2DTrajectoryPassData", "VehicleGraphics2DTrajectoryResolution", "VehicleGraphics2DVisibleSideType",
"VehicleGraphics2DWaypointMarker", "VehicleGraphics2DWaypointMarkersCollection",
"VehicleGraphics2DWaypointMarkersElement", "VehicleGraphics3DAttributeType", "VehicleGraphics3DAttributesBasic",
"VehicleGraphics3DAttributesIntervals", "VehicleGraphics3DBPlaneEvent", "VehicleGraphics3DBPlaneInstance",
"VehicleGraphics3DBPlaneInstancesCollection", "VehicleGraphics3DBPlanePoint", "VehicleGraphics3DBPlanePointCollection",
"VehicleGraphics3DBPlaneTargetPoint", "VehicleGraphics3DBPlaneTargetPointPosition",
"VehicleGraphics3DBPlaneTargetPointPositionCartesian", "VehicleGraphics3DBPlaneTargetPointPositionPolar",
"VehicleGraphics3DBPlaneTemplate", "VehicleGraphics3DBPlaneTemplateDisplayCollection",
"VehicleGraphics3DBPlaneTemplateDisplayElement", "VehicleGraphics3DBPlaneTemplatesCollection",
"VehicleGraphics3DBPlanes", "VehicleGraphics3DBearingBox", "VehicleGraphics3DBearingEllipse",
"VehicleGraphics3DControlBox", "VehicleGraphics3DCovariance", "VehicleGraphics3DCovariancePointingContour",
"VehicleGraphics3DDataFraction", "VehicleGraphics3DDataTime", "VehicleGraphics3DDefaultAttributes",
"VehicleGraphics3DDropLinePathItem", "VehicleGraphics3DDropLinePathItemCollection",
"VehicleGraphics3DDropLinePositionItem", "VehicleGraphics3DDropLinePositionItemCollection",
"VehicleGraphics3DDropLineType", "VehicleGraphics3DElevationContours", "VehicleGraphics3DEllipsoid",
"VehicleGraphics3DGeoBox", "VehicleGraphics3DIntervalsCollection", "VehicleGraphics3DIntervalsElement",
"VehicleGraphics3DLeadTrailData", "VehicleGraphics3DLineOfBearing", "VehicleGraphics3DModelRoute",
"VehicleGraphics3DModelTrajectory", "VehicleGraphics3DOrbitDropLines", "VehicleGraphics3DOrbitPassData",
"VehicleGraphics3DOrbitProximity", "VehicleGraphics3DOrbitTickMarks", "VehicleGraphics3DOrbitTrackData",
"VehicleGraphics3DPass", "VehicleGraphics3DPathTickMarks", "VehicleGraphics3DRoute", "VehicleGraphics3DRouteDropLines",
"VehicleGraphics3DRouteProximity", "VehicleGraphics3DSAA", "VehicleGraphics3DSigmaScale",
"VehicleGraphics3DSigmaScaleProbability", "VehicleGraphics3DSigmaScaleScale", "VehicleGraphics3DSize",
"VehicleGraphics3DSystemsCollection", "VehicleGraphics3DSystemsElement", "VehicleGraphics3DSystemsSpecialElement",
"VehicleGraphics3DTickDataLine", "VehicleGraphics3DTickDataPoint", "VehicleGraphics3DTrajectory",
"VehicleGraphics3DTrajectoryDropLines", "VehicleGraphics3DTrajectoryPassData", "VehicleGraphics3DTrajectoryProximity",
"VehicleGraphics3DTrajectoryTickMarks", "VehicleGraphics3DTrajectoryTrackData", "VehicleGraphics3DVelocityCovariance",
"VehicleGraphics3DWaypointMarkersCollection", "VehicleGraphics3DWaypointMarkersElement", "VehicleGravity",
"VehicleGroundEllipseElement", "VehicleGroundEllipsesCollection", "VehicleHPOPCentralBodyGravity",
"VehicleHPOPDragModel", "VehicleHPOPDragModelPlugin", "VehicleHPOPDragModelPluginSettings",
"VehicleHPOPDragModelSpherical", "VehicleHPOPForceModel", "VehicleHPOPForceModelDrag",
"VehicleHPOPForceModelDragOptions", "VehicleHPOPForceModelMoreOptions", "VehicleHPOPSolarRadiationPressure",
"VehicleHPOPSolarRadiationPressureModel", "VehicleHPOPSolarRadiationPressureOptions", "VehicleImpact",
"VehicleImpactLocation", "VehicleImpactLocationCentric", "VehicleImpactLocationDetic",
"VehicleImpactLocationLaunchAzEl", "VehicleImpactLocationPoint", "VehicleInertia", "VehicleInitialState",
"VehicleIntegratedAttitude", "VehicleIntegrationModel", "VehicleIntegrator", "VehicleInterpolation",
"VehicleInterpolationMethod", "VehicleLOPCentralBodyGravity", "VehicleLOPDragSettings", "VehicleLOPForceModel",
"VehicleLOPForceModelDrag", "VehicleLOPSolarRadiationPressure", "VehicleLaunch", "VehicleLaunchControl",
"VehicleLookAheadMethod", "VehicleMassProperties", "VehicleMethod", "VehiclePartialPassMeasurement",
"VehiclePassNumbering", "VehiclePhysicalData", "VehiclePluginPropagator", "VehiclePluginSettings",
"VehiclePositionVelocityCollection", "VehiclePositionVelocityElement", "VehiclePredictorCorrectorScheme",
"VehiclePropagationFrame", "VehicleSGP4AutomaticUpdateSourceType", "VehicleSGP4TLESelectionType", "VehicleSlewMode",
"VehicleSlewTimingBetweenTargetType", "VehicleSolarFluxGeomagneticType", "VehicleSpaceEnvironmentApSource",
"VehicleSpaceEnvironmentComputationMode", "VehicleSpaceEnvironmentDetectorGeometry",
"VehicleSpaceEnvironmentDetectorType", "VehicleSpaceEnvironmentDoseChannel", "VehicleSpaceEnvironmentF10P7SourceType",
"VehicleSpaceEnvironmentMaterial", "VehicleSpaceEnvironmentShapeModel", "VehicleSpatialInformation",
"VehicleTargetPointingCollection", "VehicleTargetPointingElement", "VehicleTargetPointingIntervalCollection",
"VehicleTargetTimes", "VehicleVector", "VehicleWaypointAltitudeReference", "VehicleWaypointAltitudeReferenceTerrain",
"VehicleWaypointComputationMethod", "VehicleWaypointInterpolationMethod", "VehicleWaypointsCollection",
"VehicleWaypointsElement", "VehicleZonalPropagatorInitialState", "Volumetric", "VolumetricAdvancedSettings",
"VolumetricAnalysisInterval", "VolumetricDataExportFormatType", "VolumetricDefinitionType",
"VolumetricDisplayQualityType", "VolumetricDisplayVolumeType", "VolumetricExportTool", "VolumetricExternalFile",
"VolumetricGraphics3D", "VolumetricGraphics3DActiveGridPoints", "VolumetricGraphics3DCrossSection",
"VolumetricGraphics3DCrossSectionPlane", "VolumetricGraphics3DCrossSectionPlaneCollection", "VolumetricGraphics3DGrid",
"VolumetricGraphics3DLegend", "VolumetricGraphics3DSpatialCalculationLevel",
"VolumetricGraphics3DSpatialCalculationLevelCollection", "VolumetricGraphics3DSpatialCalculationLevels",
"VolumetricGraphics3DVolume", "VolumetricGridSpatialCalculation", "VolumetricLegendNumericNotationType",
"VolumetricLevelOrder", "VolumetricSaveComputedDataType", "VolumetricSpatialCalculationEvaluationType",
"VolumetricVolumeGridExportType", "Waveform", "WaveformPulseDefinition", "WaveformRectangular",
"WaveformSelectionStrategy", "WaveformSelectionStrategyFixed", "WaveformSelectionStrategyRangeLimits",
"WaveformSelectionStrategyType", "WaveformType", "WirelessInSite64GeometryData"]

from ctypes import POINTER
from enum import IntEnum, IntFlag
import typing

from ..analysis_workbench import (
    IAnalysisWorkbenchComponent,
    ITimeToolTimeArray,
    ITimeToolTimeIntervalList,
    IVectorGeometryToolAxes,
)
from ..internal import coclassutil as agcls, comutil as agcom, dataanalysisutil as agdata, marshall as agmarshall
from ..internal.apiutil import (
    EnumeratorProxy,
    InterfaceProxy,
    OutArg,
    SupportsDeleteCallback,
    get_interface_property,
    initialize_from_source_object,
    set_class_attribute,
    set_interface_attribute,
)
from ..internal.comutil import IDispatch, IUnknown
from ..internal.eventutil import ISTKObjectRootEventHandler
from ..stkutil import (
    AzElAboutBoresight,
    ConversionUtility,
    CoordinateSystem,
    DirectionType,
    DoublesCollection,
    EulerOrientationSequenceType,
    ExecuteCommandResult,
    ExecuteMultipleCommandsMode,
    ExecuteMultipleCommandsResult,
    FillStyle,
    ICartesian3Vector,
    IDirection,
    ILocationData,
    IOrbitState,
    IOrientation,
    IPosition,
    LineStyle,
    YPRAnglesSequence,
)
from ..utilities import colors as agcolor
from ..utilities.exceptions import STKRuntimeError


def _raise_uninitialized_error(*args):
    raise STKRuntimeError("Valid STK object model classes are returned from STK methods and should not be created independently.")

class Constants(IntEnum):
    """Constants contains base IDs for various structures."""

    ERROR_BASE = 0x200
    """Error base."""
    HELP_CONTEXT_BASE = 0x1000
    """Help context base."""

Constants.ERROR_BASE.__doc__ = "Error base."
Constants.HELP_CONTEXT_BASE.__doc__ = "Help context base."

agcls.AgTypeNameMap["Constants"] = Constants

class HelpContextIdentifierType(IntEnum):
    """Help context IDs."""

    STK_OBJECT_COLLECTION = (Constants.HELP_CONTEXT_BASE + 1)

    STK_OBJECT = (Constants.HELP_CONTEXT_BASE + 2)

    APPLICATION = (Constants.HELP_CONTEXT_BASE + 3)

    CO_STK_OBJECT = (Constants.HELP_CONTEXT_BASE + 4)

    CO_APPLICATION = (Constants.HELP_CONTEXT_BASE + 5)

    CO_STK_OBJECT_COLLECTION = (Constants.HELP_CONTEXT_BASE + 6)

    EXECUTE_CMD_RESULT = (Constants.HELP_CONTEXT_BASE + 7)

    STK_OBJECT_ROOT_EVENTS = (Constants.HELP_CONTEXT_BASE + 8)

    LIFETIME_INFORMATION = (Constants.HELP_CONTEXT_BASE + 11)

    DATA_PROVIDER_RESULT_SUB_SECTION = (Constants.HELP_CONTEXT_BASE + 12)

    DATA_PROVIDER_RESULT_INTERVAL_COLLECTION = (Constants.HELP_CONTEXT_BASE + 13)

    DATA_PROVIDER_RESULT_INTERVAL = (Constants.HELP_CONTEXT_BASE + 14)

    DATA_PROVIDER_RESULT_DATA_SET_COLLECTION = (Constants.HELP_CONTEXT_BASE + 15)

    DATA_PROVIDER_RESULT_DATA_SET = (Constants.HELP_CONTEXT_BASE + 16)

    DATA_PROVIDER_RESULT_RESULT = (Constants.HELP_CONTEXT_BASE + 17)

    DATA_PROVIDER_RESULT_SUB_SECTION_COLLECTION = (Constants.HELP_CONTEXT_BASE + 18)

    DATA_PROVIDER_RESULT_TEXT_MESSAGE = (Constants.HELP_CONTEXT_BASE + 19)

    SUPPORT_BATCH_UPDATES = (Constants.HELP_CONTEXT_BASE + 20)

    XML_SERIALIZABLE = (Constants.HELP_CONTEXT_BASE + 21)

    STK_OBJECT_ELEMENT_COLLECTION = (Constants.HELP_CONTEXT_BASE + 22)

    ANIMATION = (Constants.HELP_CONTEXT_BASE + 23)

    STK_OBJECT_XPATH_NAVIGATOR = (Constants.HELP_CONTEXT_BASE + 24)


agcls.AgTypeNameMap["HelpContextIdentifierType"] = HelpContextIdentifierType

class ErrorCode(IntEnum):
    """Error codes."""

    OBJECT_NOT_FOUND = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 1))
    """Object not found."""
    INDEX_OUT_OF_RANGE = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 2))
    """Index out of range."""
    INVALID_ATTRIBUTE = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 3))
    """The attribute is invalid."""
    COMMAND_FAILED = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 4))
    """The command failed."""
    INVALID_ARGUMENT = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 5))
    """Invalid argument."""
    EMPTY_ARGUMENT = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 6))
    """Empty argument."""
    OBJECT_NOT_REMOVED = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 7))
    """Object was not removed."""
    FAILED_TO_RENAME_OBJECT = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 8))
    """Error renaming object."""
    UNKNOWN_CLASS_TYPE = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 9))
    """Unknown class type."""
    FAILED_TO_CREATE_OBJECT = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 10))
    """Failed to create the object."""
    OBJECT_LINK_INVALID_CHOICE = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 11))
    """Invalid choice for object link."""
    OBJECT_LINK_NO_CHOICES = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 12))
    """No choices available."""
    READ_ONLY_ATTRIBUTE = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 13))
    """Read only attribute."""
    INVALID_CONSTRAINT_LIST = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 14))
    """Invalid constraint list."""
    INVALID_CONSTRAINT = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 15))
    """InvalidConstraint."""
    LIST_READ_ONLY = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 16))
    """List if read only."""
    LIST_INSERT_FAILED = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 17))
    """Failed to insert the item into the list."""
    INVALID_LENGTH = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 18))
    """Length is invalid."""
    FAILED_TO_LOAD_FILE = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 19))
    """Error loading a file."""
    INVALID_OPERATION = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 20))
    """Invalid operation."""
    METHOD_INVOKE_FAILED = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 21))
    """Method failed."""
    DEPRECATED = (((1 << 31) | (4 << 16)) | (Constants.ERROR_BASE + 22))
    """Deprecated property or method."""

ErrorCode.OBJECT_NOT_FOUND.__doc__ = "Object not found."
ErrorCode.INDEX_OUT_OF_RANGE.__doc__ = "Index out of range."
ErrorCode.INVALID_ATTRIBUTE.__doc__ = "The attribute is invalid."
ErrorCode.COMMAND_FAILED.__doc__ = "The command failed."
ErrorCode.INVALID_ARGUMENT.__doc__ = "Invalid argument."
ErrorCode.EMPTY_ARGUMENT.__doc__ = "Empty argument."
ErrorCode.OBJECT_NOT_REMOVED.__doc__ = "Object was not removed."
ErrorCode.FAILED_TO_RENAME_OBJECT.__doc__ = "Error renaming object."
ErrorCode.UNKNOWN_CLASS_TYPE.__doc__ = "Unknown class type."
ErrorCode.FAILED_TO_CREATE_OBJECT.__doc__ = "Failed to create the object."
ErrorCode.OBJECT_LINK_INVALID_CHOICE.__doc__ = "Invalid choice for object link."
ErrorCode.OBJECT_LINK_NO_CHOICES.__doc__ = "No choices available."
ErrorCode.READ_ONLY_ATTRIBUTE.__doc__ = "Read only attribute."
ErrorCode.INVALID_CONSTRAINT_LIST.__doc__ = "Invalid constraint list."
ErrorCode.INVALID_CONSTRAINT.__doc__ = "InvalidConstraint."
ErrorCode.LIST_READ_ONLY.__doc__ = "List if read only."
ErrorCode.LIST_INSERT_FAILED.__doc__ = "Failed to insert the item into the list."
ErrorCode.INVALID_LENGTH.__doc__ = "Length is invalid."
ErrorCode.FAILED_TO_LOAD_FILE.__doc__ = "Error loading a file."
ErrorCode.INVALID_OPERATION.__doc__ = "Invalid operation."
ErrorCode.METHOD_INVOKE_FAILED.__doc__ = "Method failed."
ErrorCode.DEPRECATED.__doc__ = "Deprecated property or method."

agcls.AgTypeNameMap["ErrorCode"] = ErrorCode

class AberrationType(IntEnum):
    """The model of aberration to be used in access computations."""

    UNKNOWN = -1
    """Not supported type."""
    TOTAL = 0
    """Total: Apply the full aberration correction, when light time delay is computed."""
    ANNUAL = 1
    """Annual: Consider annual aberration only. Aberration is applied only cases where the light time delay is computed using the solar system barycenter frame."""
    NONE = 2
    """None: Ignore aberration."""

AberrationType.UNKNOWN.__doc__ = "Not supported type."
AberrationType.TOTAL.__doc__ = "Total: Apply the full aberration correction, when light time delay is computed."
AberrationType.ANNUAL.__doc__ = "Annual: Consider annual aberration only. Aberration is applied only cases where the light time delay is computed using the solar system barycenter frame."
AberrationType.NONE.__doc__ = "None: Ignore aberration."

agcls.AgTypeNameMap["AberrationType"] = AberrationType

class AnimationEndTimeMode(IntEnum):
    """Animation modes."""

    UNKNOWN = 0
    """Unknown animation mode."""
    NORMAL = 1
    """Normal animation mode."""
    REAL_TIME = 2
    """Real time animation mode."""
    X_REAL_TIME = 32
    """X times real time animation mode."""
    TIME_ARRAY = 64
    """Time array animation mode."""

AnimationEndTimeMode.UNKNOWN.__doc__ = "Unknown animation mode."
AnimationEndTimeMode.NORMAL.__doc__ = "Normal animation mode."
AnimationEndTimeMode.REAL_TIME.__doc__ = "Real time animation mode."
AnimationEndTimeMode.X_REAL_TIME.__doc__ = "X times real time animation mode."
AnimationEndTimeMode.TIME_ARRAY.__doc__ = "Time array animation mode."

agcls.AgTypeNameMap["AnimationEndTimeMode"] = AnimationEndTimeMode

class AnimationOptionType(IntEnum):
    """Animation Options."""

    CONTINUE = 0
    """Continue animating after the end time is reached."""
    LOOP = 1
    """Loop when end time is reached."""
    STOP = 2
    """End when end time is reached."""

AnimationOptionType.CONTINUE.__doc__ = "Continue animating after the end time is reached."
AnimationOptionType.LOOP.__doc__ = "Loop when end time is reached."
AnimationOptionType.STOP.__doc__ = "End when end time is reached."

agcls.AgTypeNameMap["AnimationOptionType"] = AnimationOptionType

class AnimationActionType(IntEnum):
    """Animation action options."""

    ACTION_PLAY = 0
    """Play."""
    ACTION_START = 1
    """Start."""

AnimationActionType.ACTION_PLAY.__doc__ = "Play."
AnimationActionType.ACTION_START.__doc__ = "Start."

agcls.AgTypeNameMap["AnimationActionType"] = AnimationActionType

class AnimationDirectionType(IntEnum):
    """Animation direction options."""

    NOT_AVAILABLE = 0
    """Not available."""
    FORWARD = 1
    """Forward."""
    BACKWARD = 2
    """Backward."""

AnimationDirectionType.NOT_AVAILABLE.__doc__ = "Not available."
AnimationDirectionType.FORWARD.__doc__ = "Forward."
AnimationDirectionType.BACKWARD.__doc__ = "Backward."

agcls.AgTypeNameMap["AnimationDirectionType"] = AnimationDirectionType

class AzElMaskType(IntEnum):
    """Obscura types of the facility, place or target for AzElMask definition."""

    MASK_FILE = 0x0
    """Use data in an external azimuth-elevation mask (.aem) file."""
    TERRAIN_DATA = 0x1
    """Use terrain data specified at the scenario level to define the azimuth-elevation mask."""
    NONE = 0x2
    """No azimuth-elevation mask is defined."""

AzElMaskType.MASK_FILE.__doc__ = "Use data in an external azimuth-elevation mask (.aem) file."
AzElMaskType.TERRAIN_DATA.__doc__ = "Use terrain data specified at the scenario level to define the azimuth-elevation mask."
AzElMaskType.NONE.__doc__ = "No azimuth-elevation mask is defined."

agcls.AgTypeNameMap["AzElMaskType"] = AzElMaskType

class ActionType(IntEnum):
    """Specify the action type for the Interval Access Constraint."""

    INCLUDE = 0
    """Include time intervals during which the constraint is satisfied."""
    EXCLUDE = 1
    """Exclude time intervals during which the constraint is satisfied."""

ActionType.INCLUDE.__doc__ = "Include time intervals during which the constraint is satisfied."
ActionType.EXCLUDE.__doc__ = "Exclude time intervals during which the constraint is satisfied."

agcls.AgTypeNameMap["ActionType"] = ActionType

class AxisOffset(IntEnum):
    """Specify the axis offset for the sensor 3D Vertex Offset."""

    SENSOR_RADIUS = 0
    """Sensor Radius: offset along the axis of the boresight by a distance calculated by STK using the radius entered."""
    BORESIGHT_OFFSET = 1
    """Boresight Offset: offset along the axis of the boresight by the distance specified."""

AxisOffset.SENSOR_RADIUS.__doc__ = "Sensor Radius: offset along the axis of the boresight by a distance calculated by STK using the radius entered."
AxisOffset.BORESIGHT_OFFSET.__doc__ = "Boresight Offset: offset along the axis of the boresight by the distance specified."

agcls.AgTypeNameMap["AxisOffset"] = AxisOffset

class DataProviderResultCategory(IntEnum):
    """Specify the category of results returned by the data providers."""

    INTERVAL_LIST = 0x0
    """Interval list."""
    SUB_SECTION_LIST = 0x1
    """Subsection list."""
    MESSAGE = 0x2
    """Message."""
    DATA_SET_LIST = 0x3
    """Data set list."""

DataProviderResultCategory.INTERVAL_LIST.__doc__ = "Interval list."
DataProviderResultCategory.SUB_SECTION_LIST.__doc__ = "Subsection list."
DataProviderResultCategory.MESSAGE.__doc__ = "Message."
DataProviderResultCategory.DATA_SET_LIST.__doc__ = "Data set list."

agcls.AgTypeNameMap["DataProviderResultCategory"] = DataProviderResultCategory

class DataProviderType(IntEnum):
    """Specify the type of the result returned by data providers."""

    FIXED = 1
    """Not time dependent, e.g. facility position."""
    TIME_VARYING = 2
    """Time varying, e.g. satellite position."""
    INTERVAL = 4
    """Interval, e.g. lighting data."""
    ALLOW_DUPLICATE_TIMES = 256
    """Allow duplicated times."""
    STAND_ALONE = 512
    """Do not mix data from different data providers."""
    RESULTS_DEPEND_ON_INPUT_INTERVALS = 1024
    """Results depend on evaluation interval(s)."""
    NOT_AVAILABLE_FORDYNAMIC_GRAPHS_AND_STRIP_CHARTS = 2048
    """Make unavailable for dynamic displays and strip charts."""

DataProviderType.FIXED.__doc__ = "Not time dependent, e.g. facility position."
DataProviderType.TIME_VARYING.__doc__ = "Time varying, e.g. satellite position."
DataProviderType.INTERVAL.__doc__ = "Interval, e.g. lighting data."
DataProviderType.ALLOW_DUPLICATE_TIMES.__doc__ = "Allow duplicated times."
DataProviderType.STAND_ALONE.__doc__ = "Do not mix data from different data providers."
DataProviderType.RESULTS_DEPEND_ON_INPUT_INTERVALS.__doc__ = "Results depend on evaluation interval(s)."
DataProviderType.NOT_AVAILABLE_FORDYNAMIC_GRAPHS_AND_STRIP_CHARTS.__doc__ = "Make unavailable for dynamic displays and strip charts."

agcls.AgTypeNameMap["DataProviderType"] = DataProviderType

class DataProviderElementType(IntEnum):
    """Specify the type of data returned by data providers."""

    REAL = 0
    """Real number."""
    INTEGER = 1
    """Integer."""
    STRING = 2
    """Character."""
    STRING_OR_REAL = 3
    """Character or real number."""

DataProviderElementType.REAL.__doc__ = "Real number."
DataProviderElementType.INTEGER.__doc__ = "Integer."
DataProviderElementType.STRING.__doc__ = "Character."
DataProviderElementType.STRING_OR_REAL.__doc__ = "Character or real number."

agcls.AgTypeNameMap["DataProviderElementType"] = DataProviderElementType

class AccessTimeType(IntEnum):
    """The time period to use for the access computation."""

    OBJECT_ACCESS_TIME = 0
    """Use the start and stop time set for the objects involved in the access calculations as a time period for the access computation."""
    SCENARIO_INTERVAL = 1
    """Use the start and stop time set at the scenario level as a time period for the access computation."""
    SPECIFIED_TIME_PERIOD = 2
    """The option is used to select a user-specified start and stop time to define the time period for the access computation."""
    TIME_INTERVALS = 3
    """The option is used to select a collection of intervals to define the time period for the access computation."""
    TIME_INTERVAL_LIST = 4
    """The option is used to select an event interval list to define the time period for the access computation."""

AccessTimeType.OBJECT_ACCESS_TIME.__doc__ = "Use the start and stop time set for the objects involved in the access calculations as a time period for the access computation."
AccessTimeType.SCENARIO_INTERVAL.__doc__ = "Use the start and stop time set at the scenario level as a time period for the access computation."
AccessTimeType.SPECIFIED_TIME_PERIOD.__doc__ = "The option is used to select a user-specified start and stop time to define the time period for the access computation."
AccessTimeType.TIME_INTERVALS.__doc__ = "The option is used to select a collection of intervals to define the time period for the access computation."
AccessTimeType.TIME_INTERVAL_LIST.__doc__ = "The option is used to select an event interval list to define the time period for the access computation."

agcls.AgTypeNameMap["AccessTimeType"] = AccessTimeType

class AltitudeReferenceType(IntEnum):
    """Altitude reference options."""

    MEAN_SEA_LEVEL = 0x0
    """Reference the altitude to Mean Sea Level."""
    TERRAIN = 0x1
    """Reference the altitude to terrain."""
    WGS84 = 0x2
    """WGS84: reference the altitude to the central body's reference ellipsoid."""
    ELLIPSOID = 0x3
    """Ellipsoid: reference the altitude to the central body's reference ellipsoid(non-Earth)."""

AltitudeReferenceType.MEAN_SEA_LEVEL.__doc__ = "Reference the altitude to Mean Sea Level."
AltitudeReferenceType.TERRAIN.__doc__ = "Reference the altitude to terrain."
AltitudeReferenceType.WGS84.__doc__ = "WGS84: reference the altitude to the central body's reference ellipsoid."
AltitudeReferenceType.ELLIPSOID.__doc__ = "Ellipsoid: reference the altitude to the central body's reference ellipsoid(non-Earth)."

agcls.AgTypeNameMap["AltitudeReferenceType"] = AltitudeReferenceType

class TerrainNormalType(IntEnum):
    """Methods of defining the slope of the local terrain for the facility, place or target."""

    SURFACE_NORMAL = 0x0
    """Surface normal: the normal to the terrain is along the local surface normal. This is equivalent to having a slope of zero."""
    SLOPE_AZIMUTH = 0x1
    """Slope/Azimuth: use input values of slope and azimuth to compute normal to the local terrain."""

TerrainNormalType.SURFACE_NORMAL.__doc__ = "Surface normal: the normal to the terrain is along the local surface normal. This is equivalent to having a slope of zero."
TerrainNormalType.SLOPE_AZIMUTH.__doc__ = "Slope/Azimuth: use input values of slope and azimuth to compute normal to the local terrain."

agcls.AgTypeNameMap["TerrainNormalType"] = TerrainNormalType

class LightingObstructionModelType(IntEnum):
    """Obstruction model used in lighting computations."""

    CENTRAL_BODY_SHAPE = 0x0
    """The lighting obstruction model is the surface of the central body ellipsoid."""
    AZ_EL_MASK = 0x1
    """Lighting obstruction is computed using the object's Az-El mask if defined, else uses the object's ground model."""
    TERRAIN = 0x2
    """Lighting obstruction is computed using terrain data."""
    GROUND_MODEL = 0x3
    """The lighting obstruction model is the object's ground model as used in the line-of-sight constraint computation."""

LightingObstructionModelType.CENTRAL_BODY_SHAPE.__doc__ = "The lighting obstruction model is the surface of the central body ellipsoid."
LightingObstructionModelType.AZ_EL_MASK.__doc__ = "Lighting obstruction is computed using the object's Az-El mask if defined, else uses the object's ground model."
LightingObstructionModelType.TERRAIN.__doc__ = "Lighting obstruction is computed using terrain data."
LightingObstructionModelType.GROUND_MODEL.__doc__ = "The lighting obstruction model is the object's ground model as used in the line-of-sight constraint computation."

agcls.AgTypeNameMap["LightingObstructionModelType"] = LightingObstructionModelType

class DisplayTimesType(IntEnum):
    """Display times options for the object."""

    UNKNOWN = -1
    """Unknown display type."""
    ALWAYS_OFF = 0x0
    """Graphics for the object never display."""
    ALWAYS_ON = 0x1
    """Graphics for the object always display."""
    DURING_ACCESS = 0x2
    """Graphics for the object display during access to specified objects."""
    INTERVALS = 0x3
    """Graphics for the object display during user-defined intervals."""
    DURING_CHAIN_ACCESS = 0x4
    """Graphics for the object display during chain access."""
    TIME_COMPONENT = 5
    """Graphics for the object display during the intervals provided by an interval or interval list time component."""

DisplayTimesType.UNKNOWN.__doc__ = "Unknown display type."
DisplayTimesType.ALWAYS_OFF.__doc__ = "Graphics for the object never display."
DisplayTimesType.ALWAYS_ON.__doc__ = "Graphics for the object always display."
DisplayTimesType.DURING_ACCESS.__doc__ = "Graphics for the object display during access to specified objects."
DisplayTimesType.INTERVALS.__doc__ = "Graphics for the object display during user-defined intervals."
DisplayTimesType.DURING_CHAIN_ACCESS.__doc__ = "Graphics for the object display during chain access."
DisplayTimesType.TIME_COMPONENT.__doc__ = "Graphics for the object display during the intervals provided by an interval or interval list time component."

agcls.AgTypeNameMap["DisplayTimesType"] = DisplayTimesType

class AreaType(IntEnum):
    """Methods of defining the area target's boundaries."""

    ELLIPSE = 0x0
    """Define the an elliptical area boundary using semimajor axis, semiminor axis and bearing."""
    PATTERN = 0x1
    """Specify perimeter points to define the boundary."""

AreaType.ELLIPSE.__doc__ = "Define the an elliptical area boundary using semimajor axis, semiminor axis and bearing."
AreaType.PATTERN.__doc__ = "Specify perimeter points to define the boundary."

agcls.AgTypeNameMap["AreaType"] = AreaType

class TrajectoryType(IntEnum):
    """Trajectory type for a point."""

    POINT = 0x0
    """Displays a point at the current animation time."""
    TRACE = 0x1
    """Displays a sampled trajectory of a point. This sampled trajectory displays where the point is over time without animating the scenario."""
    LINE = 0x2
    """Displays a line connecting all sampled points in the trajectory and displays lines from each sampled point in the trajectory to the center of the reference coordinate system in which the trajectory is computed."""

TrajectoryType.POINT.__doc__ = "Displays a point at the current animation time."
TrajectoryType.TRACE.__doc__ = "Displays a sampled trajectory of a point. This sampled trajectory displays where the point is over time without animating the scenario."
TrajectoryType.LINE.__doc__ = "Displays a line connecting all sampled points in the trajectory and displays lines from each sampled point in the trajectory to the center of the reference coordinate system in which the trajectory is computed."

agcls.AgTypeNameMap["TrajectoryType"] = TrajectoryType

class OffsetFrameType(IntEnum):
    """Frame options for label offset."""

    CARTESIAN = 0x0
    """Use cartesian values to offset the label."""
    PIXEL = 0x1
    """Use pixel values to offset the label."""

OffsetFrameType.CARTESIAN.__doc__ = "Use cartesian values to offset the label."
OffsetFrameType.PIXEL.__doc__ = "Use pixel values to offset the label."

agcls.AgTypeNameMap["OffsetFrameType"] = OffsetFrameType

class Scenario3dPointSize(IntEnum):
    """Font size in points."""

    FONT_SIZE_8 = 8
    """Font size: 8 points."""
    FONT_SIZE_9 = 9
    """Font size: 9 points."""
    FONT_SIZE_10 = 10
    """Font size: 10 points."""
    FONT_SIZE_11 = 11
    """Font size: 11 points."""
    FONT_SIZE_12 = 12
    """Font size: 12 points."""
    FONT_SIZE_14 = 14
    """Font size: 14 points."""
    FONT_SIZE_16 = 16
    """Font size: 16 points."""
    FONT_SIZE_18 = 18
    """Font size: 18 points."""
    FONT_SIZE_20 = 20
    """Font size: 20 points."""
    FONT_SIZE_22 = 22
    """Font size: 22 points."""
    FONT_SIZE_24 = 24
    """Font size: 24 points."""
    FONT_SIZE_26 = 26
    """Font size: 26 points."""
    FONT_SIZE_28 = 28
    """Font size: 28 points."""
    FONT_SIZE_36 = 36
    """Font size: 36 points."""
    FONT_SIZE_48 = 48
    """Font size: 48 points."""
    FONT_SIZE_72 = 72
    """Font size: 72 points."""

Scenario3dPointSize.FONT_SIZE_8.__doc__ = "Font size: 8 points."
Scenario3dPointSize.FONT_SIZE_9.__doc__ = "Font size: 9 points."
Scenario3dPointSize.FONT_SIZE_10.__doc__ = "Font size: 10 points."
Scenario3dPointSize.FONT_SIZE_11.__doc__ = "Font size: 11 points."
Scenario3dPointSize.FONT_SIZE_12.__doc__ = "Font size: 12 points."
Scenario3dPointSize.FONT_SIZE_14.__doc__ = "Font size: 14 points."
Scenario3dPointSize.FONT_SIZE_16.__doc__ = "Font size: 16 points."
Scenario3dPointSize.FONT_SIZE_18.__doc__ = "Font size: 18 points."
Scenario3dPointSize.FONT_SIZE_20.__doc__ = "Font size: 20 points."
Scenario3dPointSize.FONT_SIZE_22.__doc__ = "Font size: 22 points."
Scenario3dPointSize.FONT_SIZE_24.__doc__ = "Font size: 24 points."
Scenario3dPointSize.FONT_SIZE_26.__doc__ = "Font size: 26 points."
Scenario3dPointSize.FONT_SIZE_28.__doc__ = "Font size: 28 points."
Scenario3dPointSize.FONT_SIZE_36.__doc__ = "Font size: 36 points."
Scenario3dPointSize.FONT_SIZE_48.__doc__ = "Font size: 48 points."
Scenario3dPointSize.FONT_SIZE_72.__doc__ = "Font size: 72 points."

agcls.AgTypeNameMap["Scenario3dPointSize"] = Scenario3dPointSize

class TerrainFileType(IntEnum):
    """Terrain file type options."""

    USGS_DEM = 0
    """U.S. Geological Survey Digital Elevation Model. Moderate resolution."""
    GTOPO30 = 1
    """GTOPO30 global digital elevation model with horizontal grid spacing of 30 arc seconds. Use this for STK World terrain."""
    NIMA_NGA_TERRAIN_DIRECTORY = 2
    """NGA Digital Terrain Elevation Data (DTED)."""
    MOLA_TERRAIN = 3
    """Mars Orbiter Laser Altimeter (MOLA)terrain data."""
    GEODAS_GRID_DATA = 5
    """GEODAS (GEOphysical DAta System), an interactive database management system developed by the National Geophysical Data Center (NGDC) for use in the assimilation, storage and retrieval of geophysical data."""
    MUSE_RASTER_FILE = 6
    """MUSE Raster File: NGA elevation data that has been converted using the MUSE software raster importer. MUSE terrain files contain position information."""
    NIM0_NIMA_NGA_DTED_LEVEL_0 = 7
    """NIM0 NIMA/NGA DTED Level 0 (.dto)."""
    NIM1_NIMA_NGA_DTED_LEVEL_1 = 8
    """NIM1 NIMA/NGA DTED Level 1 (.dt1)."""
    NIM2_NIMA_NGA_DTED_LEVEL_2 = 9
    """NIM2 NIMA/NGA DTED Level 2 (.dt2)."""
    NIM3_NIMA_NGA_DTED_LEVEL_3 = 10
    """NIM3 NIMA/NGA DTED Level 3 (.dt3)."""
    NIM4_NIMA_NGA_DTED_LEVEL_4 = 11
    """NIM4  NIMA/NGA DTED Level 4 (.dt4)."""
    NIM5_NIMA_NGA_DTED_LEVEL_5 = 12
    """NIM5 NIMA/NGA DTED Level 5 (.dt5)."""
    ARC_INFO_BINARY_GRID = 13
    """Arc/Info Binary Grid Files (.adf)."""
    ARC_INFO_BINARY_GRID_MEAN_SEA_LEVEL = 14
    """Arc/Info Binary Grid - MSL (.adf)."""
    PDTT = 15
    """AGI Terrain File (.pdtt)."""
    AGI_WORLD_TERRAIN = 16
    """AGI World Terrain File (.hdr)."""
    TIFF_TERRAIN_FILE_IN_MEAN_SEA_LEVEL = 17
    """Tagged Image File Format - MSL (.tif)."""
    TIFF_TERRAIN_FILE = 18
    """Tagged Image File Format (.tif)."""
    ARC_INFO_GRID_DEPTH_MEAN_SEA_LEVEL = 19
    """ArcInfo Grid Depth MSL (.adf)."""

TerrainFileType.USGS_DEM.__doc__ = "U.S. Geological Survey Digital Elevation Model. Moderate resolution."
TerrainFileType.GTOPO30.__doc__ = "GTOPO30 global digital elevation model with horizontal grid spacing of 30 arc seconds. Use this for STK World terrain."
TerrainFileType.NIMA_NGA_TERRAIN_DIRECTORY.__doc__ = "NGA Digital Terrain Elevation Data (DTED)."
TerrainFileType.MOLA_TERRAIN.__doc__ = "Mars Orbiter Laser Altimeter (MOLA)terrain data."
TerrainFileType.GEODAS_GRID_DATA.__doc__ = "GEODAS (GEOphysical DAta System), an interactive database management system developed by the National Geophysical Data Center (NGDC) for use in the assimilation, storage and retrieval of geophysical data."
TerrainFileType.MUSE_RASTER_FILE.__doc__ = "MUSE Raster File: NGA elevation data that has been converted using the MUSE software raster importer. MUSE terrain files contain position information."
TerrainFileType.NIM0_NIMA_NGA_DTED_LEVEL_0.__doc__ = "NIM0 NIMA/NGA DTED Level 0 (.dto)."
TerrainFileType.NIM1_NIMA_NGA_DTED_LEVEL_1.__doc__ = "NIM1 NIMA/NGA DTED Level 1 (.dt1)."
TerrainFileType.NIM2_NIMA_NGA_DTED_LEVEL_2.__doc__ = "NIM2 NIMA/NGA DTED Level 2 (.dt2)."
TerrainFileType.NIM3_NIMA_NGA_DTED_LEVEL_3.__doc__ = "NIM3 NIMA/NGA DTED Level 3 (.dt3)."
TerrainFileType.NIM4_NIMA_NGA_DTED_LEVEL_4.__doc__ = "NIM4  NIMA/NGA DTED Level 4 (.dt4)."
TerrainFileType.NIM5_NIMA_NGA_DTED_LEVEL_5.__doc__ = "NIM5 NIMA/NGA DTED Level 5 (.dt5)."
TerrainFileType.ARC_INFO_BINARY_GRID.__doc__ = "Arc/Info Binary Grid Files (.adf)."
TerrainFileType.ARC_INFO_BINARY_GRID_MEAN_SEA_LEVEL.__doc__ = "Arc/Info Binary Grid - MSL (.adf)."
TerrainFileType.PDTT.__doc__ = "AGI Terrain File (.pdtt)."
TerrainFileType.AGI_WORLD_TERRAIN.__doc__ = "AGI World Terrain File (.hdr)."
TerrainFileType.TIFF_TERRAIN_FILE_IN_MEAN_SEA_LEVEL.__doc__ = "Tagged Image File Format - MSL (.tif)."
TerrainFileType.TIFF_TERRAIN_FILE.__doc__ = "Tagged Image File Format (.tif)."
TerrainFileType.ARC_INFO_GRID_DEPTH_MEAN_SEA_LEVEL.__doc__ = "ArcInfo Grid Depth MSL (.adf)."

agcls.AgTypeNameMap["TerrainFileType"] = TerrainFileType

class Tileset3DSourceType(IntEnum):
    """3DTileset source type options."""

    LOCAL_FILE = 0
    """Local File."""
    GCS = 1
    """Geospatial Content Server."""
    CESIUM_ION = 2
    """Cesium ion."""
    GOOGLE_MAPS = 3
    """Google Maps."""

Tileset3DSourceType.LOCAL_FILE.__doc__ = "Local File."
Tileset3DSourceType.GCS.__doc__ = "Geospatial Content Server."
Tileset3DSourceType.CESIUM_ION.__doc__ = "Cesium ion."
Tileset3DSourceType.GOOGLE_MAPS.__doc__ = "Google Maps."

agcls.AgTypeNameMap["Tileset3DSourceType"] = Tileset3DSourceType

class MarkerType(IntEnum):
    """Marker style options for a waypoint."""

    SHAPE = 0x0
    """Marker style is a shape (point, star, circle, etc.)."""
    IMAGE_FILE = 0x1
    """Marker style is an image from a file."""

MarkerType.SHAPE.__doc__ = "Marker style is a shape (point, star, circle, etc.)."
MarkerType.IMAGE_FILE.__doc__ = "Marker style is an image from a file."

agcls.AgTypeNameMap["MarkerType"] = MarkerType

class VectorAxesConnectType(IntEnum):
    """Methods for connecting geometric elements."""

    TRACE = 0x0
    """Trace: a single-line arc represents the path of the element."""
    SWEEP = 0x1
    """Sweep: a continuous band of color represents the path of the element."""
    LINE = 0x2
    """Line: a line is drawn at every time step representing the position of the element."""

VectorAxesConnectType.TRACE.__doc__ = "Trace: a single-line arc represents the path of the element."
VectorAxesConnectType.SWEEP.__doc__ = "Sweep: a continuous band of color represents the path of the element."
VectorAxesConnectType.LINE.__doc__ = "Line: a line is drawn at every time step representing the position of the element."

agcls.AgTypeNameMap["VectorAxesConnectType"] = VectorAxesConnectType

class Graphics3DMarkerOriginType(IntEnum):
    """Options for the Graphics3DMarker X or Y Origin property."""

    LEFT = 0x0
    """X origin: left."""
    RIGHT = 0x1
    """X origin: right."""
    CENTER = 0x2
    """X origin: center."""
    TOP = 0x3
    """Y origin: top."""
    BOTTOM = 0x4
    """Y origin: bottom."""

Graphics3DMarkerOriginType.LEFT.__doc__ = "X origin: left."
Graphics3DMarkerOriginType.RIGHT.__doc__ = "X origin: right."
Graphics3DMarkerOriginType.CENTER.__doc__ = "X origin: center."
Graphics3DMarkerOriginType.TOP.__doc__ = "Y origin: top."
Graphics3DMarkerOriginType.BOTTOM.__doc__ = "Y origin: bottom."

agcls.AgTypeNameMap["Graphics3DMarkerOriginType"] = Graphics3DMarkerOriginType

class Graphics3DLabelSwapDistanceType(IntEnum):
    """Label swap distance options."""

    UNKNOWN = -1
    """Unknown label swap distance option."""
    ALL = 0
    """All."""
    MODEL_LABEL = 1
    """Model Label."""
    MARKER_LABEL = 2
    """Marker Label."""
    MARKER = 3
    """Marker."""
    POINT = 4
    """Point."""
    CUSTOM = 5
    """Indicate that label swap distance is set to custom value."""

Graphics3DLabelSwapDistanceType.UNKNOWN.__doc__ = "Unknown label swap distance option."
Graphics3DLabelSwapDistanceType.ALL.__doc__ = "All."
Graphics3DLabelSwapDistanceType.MODEL_LABEL.__doc__ = "Model Label."
Graphics3DLabelSwapDistanceType.MARKER_LABEL.__doc__ = "Marker Label."
Graphics3DLabelSwapDistanceType.MARKER.__doc__ = "Marker."
Graphics3DLabelSwapDistanceType.POINT.__doc__ = "Point."
Graphics3DLabelSwapDistanceType.CUSTOM.__doc__ = "Indicate that label swap distance is set to custom value."

agcls.AgTypeNameMap["Graphics3DLabelSwapDistanceType"] = Graphics3DLabelSwapDistanceType

class PlanetPositionSourceType(IntEnum):
    """Options for defining a planet."""

    FILE = 0x0
    """Use a planetary ephemeris (.pe) file to define the planet."""
    CENTRAL_BODY = 0x1
    """Specify the name of a central body to define the planet."""

PlanetPositionSourceType.FILE.__doc__ = "Use a planetary ephemeris (.pe) file to define the planet."
PlanetPositionSourceType.CENTRAL_BODY.__doc__ = "Specify the name of a central body to define the planet."

agcls.AgTypeNameMap["PlanetPositionSourceType"] = PlanetPositionSourceType

class EphemSourceType(IntEnum):
    """Central body ephemeris sources."""

    ANALYTIC = 0x0
    """Analytic ephemeris: use an analytic propagator. Available when orbital elements are known for the Central Body about its parent."""
    DEFAULT = 0x2
    """Default: use STK's internal definition of the Central Body to generate ephemeris. By default, STK's internal definition uses the DE file if available."""
    SPICE = 0x3
    """SPICE: use the SPICE toolkit to generate ephemeris. Available only if a SPICE ephemeris file (.bsp) has been loaded for the selected planet."""
    JPL_DEVELOPMENTAL_EPHEMERIS = 0x4
    """Default JPL DE file."""

EphemSourceType.ANALYTIC.__doc__ = "Analytic ephemeris: use an analytic propagator. Available when orbital elements are known for the Central Body about its parent."
EphemSourceType.DEFAULT.__doc__ = "Default: use STK's internal definition of the Central Body to generate ephemeris. By default, STK's internal definition uses the DE file if available."
EphemSourceType.SPICE.__doc__ = "SPICE: use the SPICE toolkit to generate ephemeris. Available only if a SPICE ephemeris file (.bsp) has been loaded for the selected planet."
EphemSourceType.JPL_DEVELOPMENTAL_EPHEMERIS.__doc__ = "Default JPL DE file."

agcls.AgTypeNameMap["EphemSourceType"] = EphemSourceType

class PlanetOrbitDisplayType(IntEnum):
    """Orbit display options for a planet."""

    ONE_ORBIT = 0x0
    """Display one full orbit."""
    ORBIT_DISPLAY_TIME = 0x1
    """Define the displayed orbit segment in terms of the amount of the orbit traversed by the planet during the selected interval, split evenly between trailing and leading portions."""

PlanetOrbitDisplayType.ONE_ORBIT.__doc__ = "Display one full orbit."
PlanetOrbitDisplayType.ORBIT_DISPLAY_TIME.__doc__ = "Define the displayed orbit segment in terms of the amount of the orbit traversed by the planet during the selected interval, split evenly between trailing and leading portions."

agcls.AgTypeNameMap["PlanetOrbitDisplayType"] = PlanetOrbitDisplayType

class ScenarioEndLoopType(IntEnum):
    """Scenario animation cycle options."""

    END_TIME = 0x0
    """Stop animation at the specified time."""
    LOOP_AT_TIME = 0x1
    """Loop and continue the animation at the specified time."""

ScenarioEndLoopType.END_TIME.__doc__ = "Stop animation at the specified time."
ScenarioEndLoopType.LOOP_AT_TIME.__doc__ = "Loop and continue the animation at the specified time."

agcls.AgTypeNameMap["ScenarioEndLoopType"] = ScenarioEndLoopType

class ScenarioRefreshDeltaType(IntEnum):
    """Scenario animation refresh update options."""

    HIGH_SPEED = 0x0
    """High speed: STK refreshes the screen as fast as the system is able."""
    REFRESH_DELTA = 0x1
    """Refresh delta: the amount of time between refresh updates, limited by the minimum time necessary to draw the scenario."""

ScenarioRefreshDeltaType.HIGH_SPEED.__doc__ = "High speed: STK refreshes the screen as fast as the system is able."
ScenarioRefreshDeltaType.REFRESH_DELTA.__doc__ = "Refresh delta: the amount of time between refresh updates, limited by the minimum time necessary to draw the scenario."

agcls.AgTypeNameMap["ScenarioRefreshDeltaType"] = ScenarioRefreshDeltaType

class SensorPattern(IntEnum):
    """Sensor patterns."""

    COMPLEX_CONIC = 0x0
    """Complex conic: defined by specified inner and outer half angles and minimum and maximum clock angles."""
    CUSTOM = 0x1
    """Custom: import a custom sensor pattern file."""
    HALF_POWER = 0x2
    """Half power: models a parabolic antenna."""
    RECTANGULAR = 0x3
    """Rectangular: specify vertical and horizontal half-angles that will be used to model the field of view of an instrument."""
    SAR = 0x4
    """SAR: synthesizes the aperture of a larger antenna than is actually present, using SAR pattern definitions designed to model the field of regard of a SAR sensor onto the surface of the earth."""
    SIMPLE_CONIC = 0x5
    """Simple conic: defined by a specified cone angle."""
    EOIR = 0x6
    """EOIR: defined by Band Properties."""
    UNKNOWN = 0xff
    """Unknown/unsupported sensor pattern."""

SensorPattern.COMPLEX_CONIC.__doc__ = "Complex conic: defined by specified inner and outer half angles and minimum and maximum clock angles."
SensorPattern.CUSTOM.__doc__ = "Custom: import a custom sensor pattern file."
SensorPattern.HALF_POWER.__doc__ = "Half power: models a parabolic antenna."
SensorPattern.RECTANGULAR.__doc__ = "Rectangular: specify vertical and horizontal half-angles that will be used to model the field of view of an instrument."
SensorPattern.SAR.__doc__ = "SAR: synthesizes the aperture of a larger antenna than is actually present, using SAR pattern definitions designed to model the field of regard of a SAR sensor onto the surface of the earth."
SensorPattern.SIMPLE_CONIC.__doc__ = "Simple conic: defined by a specified cone angle."
SensorPattern.EOIR.__doc__ = "EOIR: defined by Band Properties."
SensorPattern.UNKNOWN.__doc__ = "Unknown/unsupported sensor pattern."

agcls.AgTypeNameMap["SensorPattern"] = SensorPattern

class SensorPointing(IntEnum):
    """Sensor pointing options."""

    ELEMENT_OF_3D_MODEL = 0x0
    """3D model: point a sensor along one of the available elements of the selected 3D Model."""
    FILE = 0x1
    """External: import a custom sensor pointing file."""
    FIXED_IN_PARENT_BODY_AXES = 0x2
    """Fixed: model sensors that are fixed in the parent object's body coordinate frame, so that they always point in the same direction relative to the parent."""
    FIXED_IN_AXES = 0x3
    """Fixed in axes: point a sensor with reference to a set of axes, using the selected orientation system."""
    SPINNING = 0x4
    """Spinning: model radars, push broom sensors and other instruments that spin, scan or sweep over time."""
    TARGETED = 0x5
    """Targeted: model sensors that track other objects."""
    BORESIGHT_GRAZING_ALTITUDE = 0x6
    """Grazing altitude: model a sensor so that the boresight vector will graze the central body at a specified altitude."""
    ALONG_VECTOR = 0x7
    """Along Vector: model a sensor so that sensor pointing alignment is controlled by using a pair of vectors defined using the Vector Geometry tool."""
    SCHEDULED = 0x8
    """Schedule: controls scheduled sensor pointing."""

SensorPointing.ELEMENT_OF_3D_MODEL.__doc__ = "3D model: point a sensor along one of the available elements of the selected 3D Model."
SensorPointing.FILE.__doc__ = "External: import a custom sensor pointing file."
SensorPointing.FIXED_IN_PARENT_BODY_AXES.__doc__ = "Fixed: model sensors that are fixed in the parent object's body coordinate frame, so that they always point in the same direction relative to the parent."
SensorPointing.FIXED_IN_AXES.__doc__ = "Fixed in axes: point a sensor with reference to a set of axes, using the selected orientation system."
SensorPointing.SPINNING.__doc__ = "Spinning: model radars, push broom sensors and other instruments that spin, scan or sweep over time."
SensorPointing.TARGETED.__doc__ = "Targeted: model sensors that track other objects."
SensorPointing.BORESIGHT_GRAZING_ALTITUDE.__doc__ = "Grazing altitude: model a sensor so that the boresight vector will graze the central body at a specified altitude."
SensorPointing.ALONG_VECTOR.__doc__ = "Along Vector: model a sensor so that sensor pointing alignment is controlled by using a pair of vectors defined using the Vector Geometry tool."
SensorPointing.SCHEDULED.__doc__ = "Schedule: controls scheduled sensor pointing."

agcls.AgTypeNameMap["SensorPointing"] = SensorPointing

class SensorPointingTargetedBoresightType(IntEnum):
    """Boresight types for sensors of targeted pointing type."""

    TRACKING = 0x0
    """Tracking: the sensor is aimed at one or more selected targets."""
    FIXED = 0x1
    """Fixed: the sensor always points in a fixed direction."""

SensorPointingTargetedBoresightType.TRACKING.__doc__ = "Tracking: the sensor is aimed at one or more selected targets."
SensorPointingTargetedBoresightType.FIXED.__doc__ = "Fixed: the sensor always points in a fixed direction."

agcls.AgTypeNameMap["SensorPointingTargetedBoresightType"] = SensorPointingTargetedBoresightType

class BoresightType(IntEnum):
    """About boresight options for sensors of targeted pointing type."""

    HOLD = 0x0
    """Hold: rotation about the Y axis followed by rotation about the new X-axis."""
    LEVEL = 0x1
    """Level: boresight is aligned with the line of sight to the target, while the sensor's x-axis is constrained to be in the plane parallel to the meridian plane passing through the target."""
    ROTATE = 0x2
    """Rotate: rotation about the sensor's or antenna's Z axis by the azimuth angle, followed by rotation about the new Y axis by 90 degrees minus the elevation angle."""
    UP_VECTOR = 0x3
    """UpVector: boresight is aligned with the line of sight to the target, while the specified constraint direction lies at a specified clock angle about the boresight from the sensor's x-axis."""

BoresightType.HOLD.__doc__ = "Hold: rotation about the Y axis followed by rotation about the new X-axis."
BoresightType.LEVEL.__doc__ = "Level: boresight is aligned with the line of sight to the target, while the sensor's x-axis is constrained to be in the plane parallel to the meridian plane passing through the target."
BoresightType.ROTATE.__doc__ = "Rotate: rotation about the sensor's or antenna's Z axis by the azimuth angle, followed by rotation about the new Y axis by 90 degrees minus the elevation angle."
BoresightType.UP_VECTOR.__doc__ = "UpVector: boresight is aligned with the line of sight to the target, while the specified constraint direction lies at a specified clock angle about the boresight from the sensor's x-axis."

agcls.AgTypeNameMap["BoresightType"] = BoresightType

class TrackMode(IntEnum):
    """Track mode options for tracking boresights."""

    RECEIVE = 0x0
    """Receive: the antenna is oriented slightly behind the current location of the other object."""
    TRANSMIT = 0x1
    """Transmit: the antenna is oriented slightly ahead of the current location of the other object."""
    TRANSPOND = 0x2
    """Transpond: the antenna points to the true location of the target object."""

TrackMode.RECEIVE.__doc__ = "Receive: the antenna is oriented slightly behind the current location of the other object."
TrackMode.TRANSMIT.__doc__ = "Transmit: the antenna is oriented slightly ahead of the current location of the other object."
TrackMode.TRANSPOND.__doc__ = "Transpond: the antenna points to the true location of the target object."

agcls.AgTypeNameMap["TrackMode"] = TrackMode

class SensorAzElBoresightAxisType(IntEnum):
    """Primary boresight axis for Sensor Az-El mask."""

    X_AXIS = 0x0
    """+/-X: calculate the primary boresight axis using the parent's body-fixed X axis."""
    Y_AXIS = 0x1
    """+/-Y: calculate the primary boresight axis using the parent's body-fixed Y axis."""
    Z_AXIS = 0x2
    """+/-Z: calculate the primary boresight axis using the parent's body-fixed Z axis."""

SensorAzElBoresightAxisType.X_AXIS.__doc__ = "+/-X: calculate the primary boresight axis using the parent's body-fixed X axis."
SensorAzElBoresightAxisType.Y_AXIS.__doc__ = "+/-Y: calculate the primary boresight axis using the parent's body-fixed Y axis."
SensorAzElBoresightAxisType.Z_AXIS.__doc__ = "+/-Z: calculate the primary boresight axis using the parent's body-fixed Z axis."

agcls.AgTypeNameMap["SensorAzElBoresightAxisType"] = SensorAzElBoresightAxisType

class SensorRefractionType(IntEnum):
    """Sensor refraction models."""

    EARTH_FOUR_THIRDS_RADIUS_METHOD = 0x0
    """4/3 Earth Radius: computes the apparent elevation due to refraction by assuming an Earth radius 4/3 of its actual value."""
    SCF_METHOD = 0x2
    """SCF Method: an implementation of the Refraction Correction model,which takes as input the surface refractivity at each facility location, based on local temperature, pressure and humidity, correcting elevation and range from apparent to true."""
    ITU_R_P834_4 = 0x3
    """ITU-R P.834-4: Compute the refracted elevation based on the non-refracted elevation angle and the mean sea level (MSL) altitude of the sensor, using empirical criteria that are contained in ITU-R P.834-4."""

SensorRefractionType.EARTH_FOUR_THIRDS_RADIUS_METHOD.__doc__ = "4/3 Earth Radius: computes the apparent elevation due to refraction by assuming an Earth radius 4/3 of its actual value."
SensorRefractionType.SCF_METHOD.__doc__ = "SCF Method: an implementation of the Refraction Correction model,which takes as input the surface refractivity at each facility location, based on local temperature, pressure and humidity, correcting elevation and range from apparent to true."
SensorRefractionType.ITU_R_P834_4.__doc__ = "ITU-R P.834-4: Compute the refracted elevation based on the non-refracted elevation angle and the mean sea level (MSL) altitude of the sensor, using empirical criteria that are contained in ITU-R P.834-4."

agcls.AgTypeNameMap["SensorRefractionType"] = SensorRefractionType

class SensorProjectionDistanceType(IntEnum):
    """Sensor 2D Graphics Projection 'Project To' options."""

    CONSTANT_ALTITUDE = 0x0
    """Constant altitude: projects the sensor to one or more altitudes above the facility/place/target, measured along the normal to the surface of the parent."""
    CONSTANT_RANGE_FROM_PARENT = 0x1
    """Constant range from parent object: projects the sensor to one or more ranges from the parent facility/place/target."""
    OBJECT_ALTITUDE = 0x2
    """Object altitude: projects the sensor to the altitude of a selected vehicle."""
    RANGE_CONSTRAINT = 0x3
    """Range constraint: projects the sensor to a specified range constraint for the facility, place or target."""

SensorProjectionDistanceType.CONSTANT_ALTITUDE.__doc__ = "Constant altitude: projects the sensor to one or more altitudes above the facility/place/target, measured along the normal to the surface of the parent."
SensorProjectionDistanceType.CONSTANT_RANGE_FROM_PARENT.__doc__ = "Constant range from parent object: projects the sensor to one or more ranges from the parent facility/place/target."
SensorProjectionDistanceType.OBJECT_ALTITUDE.__doc__ = "Object altitude: projects the sensor to the altitude of a selected vehicle."
SensorProjectionDistanceType.RANGE_CONSTRAINT.__doc__ = "Range constraint: projects the sensor to a specified range constraint for the facility, place or target."

agcls.AgTypeNameMap["SensorProjectionDistanceType"] = SensorProjectionDistanceType

class SensorLocation(IntEnum):
    """Sensor Location Type options."""

    FIXED = 0x0
    """Fixed: the location of the sensor is defined using a fixed displacement vector with respect to the parent objects body frame."""
    MODEL_3D = 0x1
    """3D Model: the location of the sensor is defined using the sensor's 3D Graphics Vertex Offset properties."""
    MODEL_3D_WITH_SCALE = 0x2
    """3D Model with Scale: the location of the sensor is defined using the sensor's 3D Graphics Vertex Offset properties. Location is computed using the scaled model defined for visualization."""
    CENTER = 0x3
    """Center: the sensor is located at the center of its parent object."""
    POINT = 0x4
    """Point: the sensor's location is based upon a Vector Geometry Tool point."""

SensorLocation.FIXED.__doc__ = "Fixed: the location of the sensor is defined using a fixed displacement vector with respect to the parent objects body frame."
SensorLocation.MODEL_3D.__doc__ = "3D Model: the location of the sensor is defined using the sensor's 3D Graphics Vertex Offset properties."
SensorLocation.MODEL_3D_WITH_SCALE.__doc__ = "3D Model with Scale: the location of the sensor is defined using the sensor's 3D Graphics Vertex Offset properties. Location is computed using the scaled model defined for visualization."
SensorLocation.CENTER.__doc__ = "Center: the sensor is located at the center of its parent object."
SensorLocation.POINT.__doc__ = "Point: the sensor's location is based upon a Vector Geometry Tool point."

agcls.AgTypeNameMap["SensorLocation"] = SensorLocation

class ScenarioTimeStepType(IntEnum):
    """Scenario animation time step options."""

    REAL_TIME = 0x0
    """Real time: the scenario animates in real time in accordance with the computer's internal clock."""
    STEP = 0x1
    """Time step: the time interval that each animation step represents. The greater this value, the greater the distance a vehicle will move in the 2D and 3D windows each time the screen is refreshed."""
    X_REAL_TIME = 0x2
    """X real time: the scenario animates at a specified multiple of real time."""
    ARRAY = 0x3
    """Time array increment: the scenario steps through times in the time array at the specified value."""

ScenarioTimeStepType.REAL_TIME.__doc__ = "Real time: the scenario animates in real time in accordance with the computer's internal clock."
ScenarioTimeStepType.STEP.__doc__ = "Time step: the time interval that each animation step represents. The greater this value, the greater the distance a vehicle will move in the 2D and 3D windows each time the screen is refreshed."
ScenarioTimeStepType.X_REAL_TIME.__doc__ = "X real time: the scenario animates at a specified multiple of real time."
ScenarioTimeStepType.ARRAY.__doc__ = "Time array increment: the scenario steps through times in the time array at the specified value."

agcls.AgTypeNameMap["ScenarioTimeStepType"] = ScenarioTimeStepType

class NoteShowType(IntEnum):
    """Options for specifying when a label note displays."""

    ON = 0x0
    """The label notes display."""
    OFF = 0x1
    """The label notes do not display."""
    INTERVALS = 0x2
    """The label notes display during user-specified intervals."""

NoteShowType.ON.__doc__ = "The label notes display."
NoteShowType.OFF.__doc__ = "The label notes do not display."
NoteShowType.INTERVALS.__doc__ = "The label notes display during user-specified intervals."

agcls.AgTypeNameMap["NoteShowType"] = NoteShowType

class GeometricElementType(IntEnum):
    """Options for the VORefCrdn Type."""

    VECTOR_ELEMENT = 0
    """Vector geometric element."""
    AXES_ELEMENT = 1
    """Axes geometric element."""
    ANGLE_ELEMENT = 2
    """Angle geometric element."""
    POINT_ELEMENT = 3
    """Point geometric element."""
    PLANE_ELEMENT = 4
    """Plane geometric element."""

GeometricElementType.VECTOR_ELEMENT.__doc__ = "Vector geometric element."
GeometricElementType.AXES_ELEMENT.__doc__ = "Axes geometric element."
GeometricElementType.ANGLE_ELEMENT.__doc__ = "Angle geometric element."
GeometricElementType.POINT_ELEMENT.__doc__ = "Point geometric element."
GeometricElementType.PLANE_ELEMENT.__doc__ = "Plane geometric element."

agcls.AgTypeNameMap["GeometricElementType"] = GeometricElementType

class SensorScanMode(IntEnum):
    """Options for the Sensor Spinning Scan Mode."""

    UNIDIRECTIONAL = 0
    """Unidirectional: scan from a specified start angle to a specified stop angle, and then begin again at the start angle."""
    BIDIRECTIONAL = 1
    """Bidirectional: scan in both directions between a specified start angle and stop angle."""
    CONTINUOUS = 2
    """Continuous: uninterrupted motion about the spin axis."""

SensorScanMode.UNIDIRECTIONAL.__doc__ = "Unidirectional: scan from a specified start angle to a specified stop angle, and then begin again at the start angle."
SensorScanMode.BIDIRECTIONAL.__doc__ = "Bidirectional: scan in both directions between a specified start angle and stop angle."
SensorScanMode.CONTINUOUS.__doc__ = "Continuous: uninterrupted motion about the spin axis."

agcls.AgTypeNameMap["SensorScanMode"] = SensorScanMode

class ConstraintBackground(IntEnum):
    """Options for the Background constraint, and Advanced vehicle constraint."""

    GROUND = 0
    """Ground only: constrains accesses when only the ground is in the background."""
    SPACE = 1
    """Space only: constrains accesses when only space is in the background of the other object."""

ConstraintBackground.GROUND.__doc__ = "Ground only: constrains accesses when only the ground is in the background."
ConstraintBackground.SPACE.__doc__ = "Space only: constrains accesses when only space is in the background of the other object."

agcls.AgTypeNameMap["ConstraintBackground"] = ConstraintBackground

class ConstraintGroundTrack(IntEnum):
    """Options for the Ground Track constraint, an Advanced vehicle constraint."""

    ASCENDING = 0
    """Ascending: constrain access to the ascending side of the satellite's ground track, defined as the portions of the ground track where the Earth-fixed latitude increases."""
    DESCENDING = 1
    """Descending: constrain access to the descending side of the satellite's ground track, defined as the portions of the ground track where the Earth-fixed latitude decreases."""

ConstraintGroundTrack.ASCENDING.__doc__ = "Ascending: constrain access to the ascending side of the satellite's ground track, defined as the portions of the ground track where the Earth-fixed latitude increases."
ConstraintGroundTrack.DESCENDING.__doc__ = "Descending: constrain access to the descending side of the satellite's ground track, defined as the portions of the ground track where the Earth-fixed latitude decreases."

agcls.AgTypeNameMap["ConstraintGroundTrack"] = ConstraintGroundTrack

class IntersectionType(IntEnum):
    """Intersection display options for sensor projection."""

    CENTRAL_BODY = 0
    """Central body: modifies the field of view of the sensor to account for its intersections with the central body."""
    NONE = 1
    """None: does not modify the field of view of the sensor by ignoring any possible intersections."""
    TERRAIN = 2
    """Terrain: modifies the field of view of the sensor to account for its intersections with the central body and terrain, defined by its North, South, East and West boundaries."""

IntersectionType.CENTRAL_BODY.__doc__ = "Central body: modifies the field of view of the sensor to account for its intersections with the central body."
IntersectionType.NONE.__doc__ = "None: does not modify the field of view of the sensor by ignoring any possible intersections."
IntersectionType.TERRAIN.__doc__ = "Terrain: modifies the field of view of the sensor to account for its intersections with the central body and terrain, defined by its North, South, East and West boundaries."

agcls.AgTypeNameMap["IntersectionType"] = IntersectionType

class ConstraintLighting(IntEnum):
    """Options for the Lighting access constraint."""

    DIRECT_SUN = 0
    """Direct sun."""
    PENUMBRA = 1
    """Penumbra."""
    PENUMBRA_OR_DIRECT_SUN = 2
    """Penumbra or direct sun."""
    PENUMBRA_OR_UMBRA = 3
    """Penumbra or umbra."""
    UMBRA = 4
    """Umbra."""
    UMBRA_OR_DIRECT_SUN = 5
    """Umbra or direct sun."""

ConstraintLighting.DIRECT_SUN.__doc__ = "Direct sun."
ConstraintLighting.PENUMBRA.__doc__ = "Penumbra."
ConstraintLighting.PENUMBRA_OR_DIRECT_SUN.__doc__ = "Penumbra or direct sun."
ConstraintLighting.PENUMBRA_OR_UMBRA.__doc__ = "Penumbra or umbra."
ConstraintLighting.UMBRA.__doc__ = "Umbra."
ConstraintLighting.UMBRA_OR_DIRECT_SUN.__doc__ = "Umbra or direct sun."

agcls.AgTypeNameMap["ConstraintLighting"] = ConstraintLighting

class SensorGraphics3DProjectionType(IntEnum):
    """Options for a sensor's 3D Graphics Projection Type."""

    ALL_INTERSECTIONS = 0
    """All intersections: the entire sensor projection is displayed."""
    CENTRAL_BODY_INTERSECTIONS = 1
    """Earth intersections: 0nly the portion of the sensor projection that intersects the Earth is displayed."""
    NONE = 2
    """None: no projection is displayed for sensors attached to facilities. For other objects, the part of the sensor projection that does not intersect with the central body is displayed."""

SensorGraphics3DProjectionType.ALL_INTERSECTIONS.__doc__ = "All intersections: the entire sensor projection is displayed."
SensorGraphics3DProjectionType.CENTRAL_BODY_INTERSECTIONS.__doc__ = "Earth intersections: 0nly the portion of the sensor projection that intersects the Earth is displayed."
SensorGraphics3DProjectionType.NONE.__doc__ = "None: no projection is displayed for sensors attached to facilities. For other objects, the part of the sensor projection that does not intersect with the central body is displayed."

agcls.AgTypeNameMap["SensorGraphics3DProjectionType"] = SensorGraphics3DProjectionType

class SensorGraphics3DPulseStyle(IntEnum):
    """Options for a sensor's 3D Graphics Pulse Style."""

    BOX = 0
    """Box style."""
    NEGATIVE_BOX = 1
    """Negative box style."""
    POSITIVE_BOX = 2
    """Positive box style."""
    SINE_WAVE = 3
    """Sine style."""
    NEGATIVE_SINE_WAVE = 4
    """Negative sine style."""
    POSITIVE_SINE_WAVE = 5
    """Positive sine style."""

SensorGraphics3DPulseStyle.BOX.__doc__ = "Box style."
SensorGraphics3DPulseStyle.NEGATIVE_BOX.__doc__ = "Negative box style."
SensorGraphics3DPulseStyle.POSITIVE_BOX.__doc__ = "Positive box style."
SensorGraphics3DPulseStyle.SINE_WAVE.__doc__ = "Sine style."
SensorGraphics3DPulseStyle.NEGATIVE_SINE_WAVE.__doc__ = "Negative sine style."
SensorGraphics3DPulseStyle.POSITIVE_SINE_WAVE.__doc__ = "Positive sine style."

agcls.AgTypeNameMap["SensorGraphics3DPulseStyle"] = SensorGraphics3DPulseStyle

class SensorGraphics3DPulseFrequencyPreset(IntEnum):
    """Options for a sensor's 3D Graphics Pulse Frequency presets."""

    FAST = 0
    """Fast: 0.333 Hz."""
    MEDIUM = 1
    """Medium: 0.167 Hz."""
    SLOW = 2
    """Slow: 0.083 Hz."""
    CUSTOM = 3
    """Custom: user-specified."""

SensorGraphics3DPulseFrequencyPreset.FAST.__doc__ = "Fast: 0.333 Hz."
SensorGraphics3DPulseFrequencyPreset.MEDIUM.__doc__ = "Medium: 0.167 Hz."
SensorGraphics3DPulseFrequencyPreset.SLOW.__doc__ = "Slow: 0.083 Hz."
SensorGraphics3DPulseFrequencyPreset.CUSTOM.__doc__ = "Custom: user-specified."

agcls.AgTypeNameMap["SensorGraphics3DPulseFrequencyPreset"] = SensorGraphics3DPulseFrequencyPreset

class LineWidth(IntEnum):
    """Line widths."""

    WIDTH1 = 0
    """Line width: 1."""
    WIDTH2 = 1
    """Line width: 2."""
    WIDTH3 = 2
    """Line width: 3."""
    WIDTH4 = 3
    """Line width: 4."""
    WIDTH5 = 4
    """Line width: 5."""
    WIDTH6 = 5
    """Line width: 6."""
    WIDTH7 = 6
    """Line width: 7."""
    WIDTH8 = 7
    """Line width: 8."""
    WIDTH9 = 8
    """Line width: 9."""
    WIDTH10 = 9
    """Line width: 10."""

LineWidth.WIDTH1.__doc__ = "Line width: 1."
LineWidth.WIDTH2.__doc__ = "Line width: 2."
LineWidth.WIDTH3.__doc__ = "Line width: 3."
LineWidth.WIDTH4.__doc__ = "Line width: 4."
LineWidth.WIDTH5.__doc__ = "Line width: 5."
LineWidth.WIDTH6.__doc__ = "Line width: 6."
LineWidth.WIDTH7.__doc__ = "Line width: 7."
LineWidth.WIDTH8.__doc__ = "Line width: 8."
LineWidth.WIDTH9.__doc__ = "Line width: 9."
LineWidth.WIDTH10.__doc__ = "Line width: 10."

agcls.AgTypeNameMap["LineWidth"] = LineWidth

class STKObjectType(IntEnum):
    """STK objects."""

    ADVCAT = 0
    """AdvCAT."""
    AIRCRAFT = 1
    """Aircraft."""
    AREA_TARGET = 2
    """Area Target."""
    ATTITUDE_COVERAGE = 3
    """Attitude Coverage."""
    CHAIN = 4
    """Chain."""
    COMM_SYSTEM = 5
    """CommSystem."""
    CONSTELLATION = 6
    """Constellation."""
    COVERAGE_DEFINITION = 7
    """Coverage Definition."""
    FACILITY = 8
    """Facility."""
    GROUND_VEHICLE = 9
    """Ground Vehicle."""
    LAUNCH_VEHICLE = 10
    """Launch Vehicle."""
    LINE_TARGET = 11
    """Line Target."""
    MTO = 12
    """MTO (Multi-Track Object)."""
    MISSILE = 13
    """Missile."""
    MISSILE_SYSTEM = 14
    """Missile System."""
    PLANET = 15
    """Planet."""
    RADAR = 16
    """Radar."""
    RECEIVER = 17
    """Receiver."""
    SATELLITE = 18
    """Satellite."""
    SCENARIO = 19
    """Scenario."""
    SENSOR = 20
    """Sensor."""
    SHIP = 21
    """Ship."""
    STAR = 22
    """Star."""
    TARGET = 23
    """Target."""
    TRANSMITTER = 24
    """Transmitter."""
    FIGURE_OF_MERIT = 25
    """Figure of Merit."""
    ROOT = 26
    """Root."""
    ACCESS = 27
    """Access."""
    OBJECT_COVERAGE = 28
    """Coverage."""
    ATTITUDE_FIGURE_OF_MERIT = 29
    """Attitude Figure of Merit."""
    SUBMARINE = 30
    """Submarine."""
    ANTENNA = 31
    """Antenna."""
    PLACE = 32
    """Place."""
    VOLUMETRIC = 33
    """Volumetric."""
    SATELLITE_COLLECTION = 34
    """SatelliteCollection."""
    SUBSET = 35
    """Subset."""

STKObjectType.ADVCAT.__doc__ = "AdvCAT."
STKObjectType.AIRCRAFT.__doc__ = "Aircraft."
STKObjectType.AREA_TARGET.__doc__ = "Area Target."
STKObjectType.ATTITUDE_COVERAGE.__doc__ = "Attitude Coverage."
STKObjectType.CHAIN.__doc__ = "Chain."
STKObjectType.COMM_SYSTEM.__doc__ = "CommSystem."
STKObjectType.CONSTELLATION.__doc__ = "Constellation."
STKObjectType.COVERAGE_DEFINITION.__doc__ = "Coverage Definition."
STKObjectType.FACILITY.__doc__ = "Facility."
STKObjectType.GROUND_VEHICLE.__doc__ = "Ground Vehicle."
STKObjectType.LAUNCH_VEHICLE.__doc__ = "Launch Vehicle."
STKObjectType.LINE_TARGET.__doc__ = "Line Target."
STKObjectType.MTO.__doc__ = "MTO (Multi-Track Object)."
STKObjectType.MISSILE.__doc__ = "Missile."
STKObjectType.MISSILE_SYSTEM.__doc__ = "Missile System."
STKObjectType.PLANET.__doc__ = "Planet."
STKObjectType.RADAR.__doc__ = "Radar."
STKObjectType.RECEIVER.__doc__ = "Receiver."
STKObjectType.SATELLITE.__doc__ = "Satellite."
STKObjectType.SCENARIO.__doc__ = "Scenario."
STKObjectType.SENSOR.__doc__ = "Sensor."
STKObjectType.SHIP.__doc__ = "Ship."
STKObjectType.STAR.__doc__ = "Star."
STKObjectType.TARGET.__doc__ = "Target."
STKObjectType.TRANSMITTER.__doc__ = "Transmitter."
STKObjectType.FIGURE_OF_MERIT.__doc__ = "Figure of Merit."
STKObjectType.ROOT.__doc__ = "Root."
STKObjectType.ACCESS.__doc__ = "Access."
STKObjectType.OBJECT_COVERAGE.__doc__ = "Coverage."
STKObjectType.ATTITUDE_FIGURE_OF_MERIT.__doc__ = "Attitude Figure of Merit."
STKObjectType.SUBMARINE.__doc__ = "Submarine."
STKObjectType.ANTENNA.__doc__ = "Antenna."
STKObjectType.PLACE.__doc__ = "Place."
STKObjectType.VOLUMETRIC.__doc__ = "Volumetric."
STKObjectType.SATELLITE_COLLECTION.__doc__ = "SatelliteCollection."
STKObjectType.SUBSET.__doc__ = "Subset."

agcls.AgTypeNameMap["STKObjectType"] = STKObjectType

class AccessConstraintType(IntEnum):
    """Available Access Constraint."""

    NONE = 0
    """None. Use interface IAccessConstraint."""
    IMAGE_QUALITY = 1
    """Image quality. Use interface IAccessConstraintMinMaxBase."""
    ALTITUDE = 2
    """Altitude. Use interface IAccessConstraintMinMaxBase."""
    ANGULAR_RATE = 3
    """Angular rate. Use interface IAccessConstraintMinMaxBase."""
    APPARENT_TIME = 4
    """Apparent time. Use interface IAccessConstraintMinMaxBase."""
    AREA_TARGET_CENTROID_ELEVATION_ANGLE = 5
    """Do not use this enumeration, as it is deprecated. Area Target centroid elevation angle. Use interface IAccessConstraintMinMaxBase."""
    AZIMUTH_ANGLE = 6
    """Azimuth angle. Use interface IAccessConstraintMinMaxBase."""
    BACKGROUND = 7
    """Background. Use interface AccessConstraintBackground."""
    BETA_ANGLE = 8
    """Beta angle. Use interface IAccessConstraintMinMaxBase."""
    VECTOR_GEOMETRY_TOOL_ANGLE = 9
    """Angle. Use interface AccessConstraintAnalysisWorkbenchComponent."""
    VECTOR_MAGNITUDE = 10
    """Vector magnitude. Use interface AccessConstraintAnalysisWorkbenchComponent."""
    CROSS_TRACK_RANGE = 11
    """Cross-track range. Use interface IAccessConstraintMinMaxBase."""
    DOPPLER_CONE_ANGLE = 12
    """Doppler cone angle. Use interface IAccessConstraintMinMaxBase."""
    DURATION = 13
    """Duration. Use interface IAccessConstraintMinMaxBase."""
    ELEVATION_ANGLE = 14
    """Elevation angle. Use interface IAccessConstraintMinMaxBase,  AccessConstraintAngle."""
    EXCLUSION_ZONE = 15
    """Exclusion zone. Use interface AccessConstraintExclZonesCollection, AccessConstraintLatitudeLongitudeZone."""
    GMT = 16
    """GMT. Use interface IAccessConstraintMinMaxBase."""
    GRAZING_ALTITUDE = 17
    """Grazing altitude. Use interface IAccessConstraintMinMaxBase."""
    GRAZING_ANGLE = 18
    """Grazing angle. Use interface IAccessConstraintMinMaxBase."""
    GROUND_ELEVATION_ANGLE = 19
    """Ground elevation angle. Use interface IAccessConstraintMinMaxBase."""
    GROUND_TRACK = 20
    """Ground track. Use interface AccessConstraintGroundTrack."""
    INCLUSION_ZONE = 21
    """Inclusion zone. Use interface AccessConstraintLatitudeLongitudeZone."""
    INTERVALS = 22
    """Intervals. Use interface AccessConstraintIntervals."""
    IN_TRACK_RANGE = 23
    """In-track range. Use interface IAccessConstraintMinMaxBase."""
    LATITUDE = 24
    """Latitude. Use interface IAccessConstraintMinMaxBase."""
    LIGHTING = 25
    """Lighting. Use interface AccessConstraintCondition."""
    LINE_OF_SIGHT = 26
    """Line of sight. Use interface IAccessConstraint."""
    LOCAL_TIME = 27
    """Local time. Use interface IAccessConstraintMinMaxBase."""
    LIGHT_OF_SIGHT_LUNAR_EXCLUSION_ANGLE = 28
    """Line of sight lunar exclusion. Use interface AccessConstraintAngle."""
    LIGHT_OF_SIGHT_SOLAR_EXCLUSION_ANGLE = 29
    """Line of sight sun exclusion. Use interface AccessConstraintAngle."""
    LUNAR_ELEVATION_ANGLE = 30
    """Lunar elevation angle. Use interface IAccessConstraintMinMaxBase."""
    MATLAB = 31
    """Matlab. Use interface IAccessConstraintMinMaxBase."""
    OBJECT_EXCLUSION_ANGLE = 32
    """Object exclusion angle. Use interface AccessConstraintObjExAngle."""
    PROPAGATION_DELAY = 33
    """Propagation delay. Use interface IAccessConstraintMinMaxBase."""
    RANGE = 34
    """Range. Use interface IAccessConstraintMinMaxBase."""
    RANGE_RATE = 35
    """Range rate. Use interface IAccessConstraintMinMaxBase."""
    SAR_AREA_RATE = 36
    """SAR area rate. Use interface IAccessConstraintMinMaxBase."""
    SAR_AZIMUTH_RESOLUTION = 37
    """SAR azimuth resolution. Use interface IAccessConstraintMinMaxBase."""
    SAR_CARRIER_TO_NOISE_RATIO = 38
    """SAR clutter-to-noise ratio. Use interface IAccessConstraintMinMaxBase."""
    SAR_EXTERNAL_DATA = 39
    """SAR external data. Use interface IAccessConstraintMinMaxBase."""
    SAR_INTEGRATION_TIME = 40
    """SAR integration time. Use interface IAccessConstraintMinMaxBase."""
    SAR_PTCR = 41
    """SAR point target-to-clutter ratio. Use interface IAccessConstraintMinMaxBase."""
    SAR_SCR = 42
    """SAR signal-to-clutter ratio. Use interface IAccessConstraintMinMaxBase."""
    SAR_SIGMA_N = 43
    """SAR sigma N. Use interface IAccessConstraintMinMaxBase."""
    SAR_SNR = 44
    """SAR signal-to-noise ratio. Use interface IAccessConstraintMinMaxBase."""
    SQUINT_ANGLE = 45
    """Squint angle. Use interface IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_CLEAR_DOPPLER = 46
    """Search-track clear doppler. Use interface IAccessConstraint."""
    SEARCH_TRACK_DWELL_TIME = 47
    """Search-track dwell time. Use interface IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_INTEGRATED_PROBABILITY_OF_DETECTION = 48
    """Search-track integrated probability of detection. Use interface IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_INTEGRATED_PULSES = 49
    """Search-track integrated pulses. Use interface IAccessConstraint."""
    SEARCH_TRACK_INTEGRATED_SNR = 50
    """Search-track integrated signal-to-noise ratio. Use interface IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_INTEGRATION_TIME = 51
    """Search-track integration time. Use interface IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_MLC_FILTER = 52
    """Search-track main lobe clutter filter. Use interface IAccessConstraint."""
    SEARCH_TRACK_SINGLE_PULSE_PROBABILITY_OF_DETECTION = 53
    """Search-track single-pulse probability of detection. Use interface IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_SINGLE_PULSE_SNR = 54
    """Search-track single-pulse signal-to-noise ratio. Use interface IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_SLC_FILTER = 55
    """Search-track side lobe clutter filter. Use interface IAccessConstraint."""
    SEARCH_TRACK_UNAMBIGUOUS_DOPPLER = 56
    """Search-track unambiguous doppler. Use interface IAccessConstraint."""
    SEARCH_TRACK_UNAMBIGUOUS_RANGE = 57
    """Search-track unambiguous range. Use interface IAccessConstraint."""
    SUN_ELEVATION_ANGLE = 58
    """Sun elevation angle. Use interface IAccessConstraintMinMaxBase."""
    SUN_GROUND_ELEVATION_ANGLE = 59
    """Sun ground angle. Use interface IAccessConstraintMinMaxBase."""
    SUN_SPECULAR_EXCLUSION_ANGLE = 60
    """Sun specular exclusion. Use interface AccessConstraintAngle."""
    THIRD_BODY_OBSTRUCTION = 61
    """Do not use this enumeration, as it is deprecated. Third body obstruction. Use interface AccessConstraintThirdBody."""
    CENTROID_AZIMUTH_ANGLE = 63
    """Do not use this enumeration, as it is deprecated. Centroid azimuth angle. Use interface IAccessConstraintMinMaxBase."""
    CENTROID_RANGE = 64
    """Do not use this enumeration, as it is deprecated. Centroid range. Use interface IAccessConstraintMinMaxBase."""
    CENTROID_SUN_ELEVATION_ANGLE = 65
    """Do not use this enumeration, as it is deprecated. Centroid sun elevation angle. Use interface IAccessConstraintMinMaxBase."""
    COLLECTION_ANGLE = 66
    """Collection angle. Use interface IAccessConstraintMinMaxBase."""
    TERRAIN_MASK = 67
    """Terrain mask. Use interface IAccessConstraint."""
    AZ_EL_MASK = 68
    """Azimuth-elevation mask. Use interface IAccessConstraint."""
    AZIMUTH_RATE = 69
    """Azimuth rate. Use interface IAccessConstraintMinMaxBase."""
    ELEVATION_RATE = 70
    """Elevation rate. Use interface IAccessConstraintMinMaxBase."""
    GEOSYNCHRONOUS_BELT_EXCLUSION_ANGLE = 71
    """Geostationary belt exclusion. Use interface AccessConstraintAngle."""
    GROUND_SAMPLE_DISTANCE = 72
    """Ground sample distance. Use interface IAccessConstraintMinMaxBase."""
    HEIGHT_ABOVE_HORIZON = 73
    """Height above horizon. Use interface IAccessConstraintMinMaxBase."""
    TERRAIN_GRAZING_ANGLE = 74
    """Terrain grazing angle. Use interface IAccessConstraintMinMaxBase."""
    ANGLE_OFF_BORESIGHT = 75
    """Angle off boresight. Use interface IAccessConstraintMinMaxBase."""
    ANGLE_OFF_BORESIGHT_RATE = 76
    """Angle off boresight rate. Use interface IAccessConstraintMinMaxBase."""
    AREA_MASK = 77
    """Area mask. Use interface IAccessConstraint."""
    BORESIGHT_GRAZING_ANGLE = 78
    """Boresight grazing angle. Use interface IAccessConstraintMinMaxBase."""
    BORESIGHT_INTERSECTION_LIGHTING_CONDITION = 79
    """Boresight Intersection lighting condition. Use interface IAccessConstraintMinMaxBase."""
    BORESIGHT_LUNAR_EXCLUSION_ANGLE = 80
    """Boresight lunar exclusion. Use interface AccessConstraintAngle."""
    BORESIGHT_SUN_EXCLUSION_ANGLE = 81
    """Boresight sun exclusion. Use interface AccessConstraintAngle."""
    FIELD_OF_VIEW = 82
    """Field of view. Use interface IAccessConstraint."""
    FIELD_OF_VIEW_SUN_SPECULAR_EXCLUSION_ANGLE = 83
    """Field of view sun specular exclusion. Use interface IAccessConstraint."""
    FIELD_OF_VIEW_SUN_SPECULAR_INCLUSION_ANGLE = 84
    """Field of view sun specular inclusion. Use interface IAccessConstraint."""
    HORIZON_CROSSING = 85
    """Horizon crossing. Use interface IAccessConstraint."""
    SENSOR_AZ_EL_MASK = 89
    """Sensor azimuth-elevation mask. Use interface IAccessConstraint."""
    FOREGROUND = 90
    """Foreground. Use interface IAccessConstraint."""
    CENTRAL_BODY_OBSTRUCTION = 91
    """Central Body Obstruction. Use interface AccessConstraintCentralBodyObstruction."""
    PLUGIN = 92
    """Access plugin constraint. Use AccessConstraintPluginMinMax."""
    DEPTH = 93
    """Depth constraint. Use AccessConstraintPluginMinMax."""
    SEET_MAGNETIC_FIELD_L_SHELL = 95
    """Magnetic Dipole L-Shell. The L value is a measure to indicate a particle's drift shell in a dipole-approximated magnetic field. Use IAccessConstraintMinMaxBase."""
    SEET_MAGNETIC_FIELD_LINE_SEPARATION = 96
    """Magnetic Field Line Separation; the centric angle between the North footprint of the field line containing the vehicle's location and the North footprint of the field line containing the target's location. Use IAccessConstraintMinMaxBase."""
    SEET_IMPACT_FLUX = 97
    """Impact Flux; the total impact flux from all types of meteoroid particles. Use IAccessConstraintMinMaxBase."""
    SEET_DAMAGE_FLUX = 98
    """Damage Flux; the total impact flux from all types of meteoroid particles causing damage. Use IAccessConstraintMinMaxBase."""
    SEET_DAMAGE_MASS_FLUX = 99
    """Damage Mass Flux; the total impact mass flux from all meteoroid particles causing damage. Use IAccessConstraintMinMaxBase."""
    SEET_IMPACT_MASS_FLUX = 100
    """Impact Mass Flux; the total impact mass flux ffrom all types of meteoroid particles. Use IAccessConstraintMinMaxBase."""
    SEET_SAA_FLUX_INTENSITY = 101
    """SAA Flux Intensity; SAA Flux Intensity is determined at the vehicle's location and for specified proton-energy flux threshold channel. Use IAccessConstraintMinMaxBase."""
    SEET_VEHICLE_TEMPERATURE = 102
    """Vehicle Temperature, computed assuming thermal equilibrium. Use IAccessConstraintMinMaxBase."""
    CONDITION = 104
    """Coordinate condition constraint. Use interface AccessConstraintAnalysisWorkbenchComponent."""
    SAR_CARRIER_TO_NOISE_RATIO_JAMIING = 105
    """SAR CNR Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SAR_J_OVER_S = 106
    """SAR J/S constraint. Use IAccessConstraintMinMaxBase."""
    SAR_ORTHOGONAL_POLARIZATION_CARRIER_TO_NOISE_RATIO = 107
    """SAR Orthogonal Polar CNR constraint. Use IAccessConstraintMinMaxBase."""
    SAR_ORTHOGONAL_POLARIZATION_CARRIER_TO_NOISE_RATIO_JAMMING = 108
    """SAR Orthogonal Polar CNR Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SAR_ORTHOGONAL_POLARIZATION_J_OVER_S = 109
    """SAR Orthogonal Polar J/S constraint. Use IAccessConstraintMinMaxBase."""
    SAR_ORTHOGONAL_POLARIZATION_PTCR = 110
    """SAR Orthogonal Polar PTCR constraint. Use IAccessConstraintMinMaxBase."""
    SAR_ORTHOGONAL_POLARIZATION_SCR = 111
    """SAR Orthogonal Polar SCR constraint. Use IAccessConstraintMinMaxBase."""
    SAR_ORTHOGONAL_POLARIZATION_SCR_JAMMING = 112
    """SAR Orthogonal Polar SCR Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SAR_ORTHOGONAL_POLARIZATION_SNR = 113
    """SAR Orthogonal Polar SNR constraint. Use IAccessConstraintMinMaxBase."""
    SAR_ORTHOGONAL_POLARIZATION_SNR_JAMMING = 114
    """SAR Orthogonal Polar SNR Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SAR_SCR_JAMMING = 115
    """SAR SCR Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SAR_SNR_JAMMING = 116
    """SAR SNR Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_DWELL_TIME_JAMMING = 117
    """Search-Track Dwell Time Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_INTEGRATED_J_OVER_S = 118
    """Search-Track Integrated J/S constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING = 119
    """Search-Track Integrated PDet Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_INTEGRATED_PULSES_JAMMING = 120
    """Search-Track Integrated Pulses Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_INTEGRATED_SNR_JAMMING = 121
    """Search-Track Integrated SNR Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_INTEGRATION_TIME_JAMMING = 122
    """Search-Track Integration Time Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_DWELL_TIME = 123
    """Search-Track Orthogonal Polar Dwell Time constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_DWELL_TIME_JAMMING = 124
    """Search-Track Orthogonal Polar Dwell Time Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_J_OVER_S = 125
    """Search-Track Orthogonal Polar Integrated J/S constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PROBABILITY_OF_DETECTION = 126
    """Search-Track Orthogonal Polar Integrated PDet constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING = 127
    """Search-Track Orthogonal Polar Integrated PDet Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PULSES = 128
    """Search-Track Orthogonal Polar Integrated Pulses constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PULSES_JAMMING = 129
    """Search-Track Orthogonal Polar Integrated Pulses Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_SNR = 130
    """Search-Track Orthogonal Polar Integrated SNR constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_SNR_JAMMING = 131
    """Search-Track Orthogonal Polar Integrated SNR Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATION_TIME = 132
    """Search-Track Orthogonal Polar Integration Time constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATION_TIME_JAMMING = 133
    """Search-Track Orthogonal Polar Integration Time Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_J_OVER_S = 134
    """Search-Track Orthogonal Polar Single Pulse J/S constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_PROBABILITY_OF_DETECTION = 135
    """Search-Track Orthogonal Polar Single Pulse PDet constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING = 136
    """Search-Track Orthogonal Polar Single Pulse PDet Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_SNR = 137
    """Search-Track Orthogonal Polar Single Pulse SNR constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_SNR_JAMMING = 138
    """Search-Track Orthogonal Polar Integrated SNR Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_SINGLE_PULSE_J_OVER_S = 139
    """Search-Track Single Pulse J/S constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING = 140
    """Search-Track Single Pulse PDet Jamming constraint. Use IAccessConstraintMinMaxBase."""
    SEARCH_TRACK_SINGLE_PULSE_SNR_JAMMING = 141
    """Search-Track Single Pulse SNR Jamming constraint. Use IAccessConstraintMinMaxBase."""
    EOIR_SNR = 142
    """EOIR SNR constraint. Use IAccessConstraintMinMaxBase."""
    FIELD_OF_VIEW_CENTRAL_BODY_CENTER = 143
    """Field Of View Central Body Center constraint. Use IAccessConstraint."""
    FIELD_OF_VIEW_CENTRAL_BODY_HORIZON_REFINE = 144
    """Field Of View Central Body Horizon Refine constraint. Use IAccessConstraint."""
    FIELD_OF_VIEW_CENTRAL_BODY_OBSTRUCTION_CROSSSING_INWARD = 145
    """Field Of View Central Body Obstruction Cross In constraint. Use IAccessConstraint."""
    FIELD_OF_VIEW_CENTRAL_BODY_OBSTRUCTION_CROSSING_OUTWARD = 146
    """Field Of View Central Body Obstruction Cross Out constraint. Use IAccessConstraint."""
    SENSOR_RANGE_MASK = 147
    """Sensor Range Mask constraint. Use IAccessConstraint."""
    ATMOSPHERIC_LOSS = 148
    """Atmosphere Absorption Loss constraint. Use IAccessConstraintMinMaxBase."""
    BER_PLUS_I = 149
    """BER+I constraint. Use IAccessConstraintMinMaxBase."""
    BIT_ERROR_RATE = 150
    """Bit Error Rate constraint. Use IAccessConstraintMinMaxBase."""
    C_OVER_I = 151
    """C/I constraint. Use IAccessConstraintMinMaxBase."""
    C_OVER_N = 152
    """C/N constraint. Use IAccessConstraintMinMaxBase."""
    C_OVER_N_PLUS_I = 153
    """C/N+I constraint. Use IAccessConstraintMinMaxBase."""
    C_OVER_N0 = 154
    """C/No constraint. Use IAccessConstraintMinMaxBase."""
    C_OVER_N0_PLUS_I0 = 155
    """C/No+Io constraint. Use IAccessConstraintMinMaxBase."""
    CLOUDS_FOG_LOSS = 156
    """Clouds And Fog Loss constraint. Use IAccessConstraintMinMaxBase."""
    COMM_PLUGIN = 157
    """Comm Plugin constraint. Use IAccessConstraintMinMaxBase."""
    DELTA_T_OVER_T = 158
    """Delta T/T constraint. Use IAccessConstraintMinMaxBase."""
    DOPPLER_SHIFT = 159
    """Doppler Shift constraint. Use IAccessConstraintMinMaxBase."""
    EB_OVER_N0 = 160
    """Energy per bit to noise ratio (Eb/No) constraint. Use IAccessConstraintMinMaxBase."""
    EB_OVER_N0_PLUS_I0 = 161
    """Eb/No+Io constraint. Use IAccessConstraintMinMaxBase."""
    FLUX_DENSITY = 162
    """Flux Density constraint. Use IAccessConstraintMinMaxBase."""
    FREQUENCY = 163
    """Frequency constraint. Use IAccessConstraintMinMaxBase."""
    G_OVER_T = 164
    """G/T constraint. Use IAccessConstraintMinMaxBase."""
    J_OVER_S = 165
    """J/S constraint. Use IAccessConstraintMinMaxBase."""
    LINK_EIRP = 166
    """Link EIRP constraint. Use IAccessConstraintMinMaxBase."""
    LINK_MARGIN = 167
    """Link Margin constraint. Use IAccessConstraintMinMaxBase."""
    NOISE_TEMPERATURE = 168
    """Noise Temperature constraint. Use IAccessConstraintMinMaxBase."""
    POLARIZATION_RELATIVE_ANGLE = 169
    """Polarization Relative Angle constraint. Use IAccessConstraintMinMaxBase."""
    POWER_AT_RECEIVER_INPUT = 170
    """Power at Receiver Input constraint. Use IAccessConstraintMinMaxBase."""
    POWER_FLUX_DENSITY = 171
    """Power Flux Density constraint. Use IAccessConstraintMinMaxBase."""
    RAIN_LOSS = 172
    """Rain Loss constraint. Use IAccessConstraintMinMaxBase."""
    RECEIVED_ISOTROPIC_POWER = 173
    """Received Isotropic Power constraint. Use IAccessConstraintMinMaxBase."""
    USER_CUSTOM_A_LOSS = 174
    """User Custom A Loss constraint. Use IAccessConstraintMinMaxBase."""
    USER_CUSTOM_B_LOSS = 175
    """User Custom B Loss constraint. Use IAccessConstraintMinMaxBase."""
    USER_CUSTOM_C_LOSS = 176
    """User Custom C Loss constraint. Use IAccessConstraintMinMaxBase."""
    FREE_SPACE_LOSS = 177
    """Free Space Loss constraint. Use IAccessConstraintMinMaxBase."""
    PROPAGATION_LOSS = 178
    """Propagation Loss constraint. Use IAccessConstraintMinMaxBase."""
    TOTAL_POWER_AT_RECEIVER_INPUT = 179
    """Total Power At Receiver Input constraint. Use IAccessConstraintMinMaxBase."""
    TOTAL_RECEIVED_REFRACTION_POWER = 180
    """Total Received Rf Power constraint. Use IAccessConstraintMinMaxBase."""
    TROPOSPHERIC_SCINTILLATION_LOSS = 181
    """Troposphere Scintillation Loss constraint. Use IAccessConstraintMinMaxBase."""
    URBAN_TERRES_LOSS = 182
    """Urban Terrestrial Loss constraint. Use IAccessConstraintMinMaxBase."""
    TIME_SLIP_SURFACE_RANGE = 183
    """Time Slip Surface Range constraint. Use IAccessConstraint."""
    CABLE_TRANSFORMATION_DELAY = 184
    """Cable Transmission Delay constraint. Use AccessConstraintIntervals."""
    PROCESS_DELAY = 185
    """Process Delay constraint. Use AccessConstraintIntervals."""
    RADAR_TRANSMITTER_TARGET_ACCESS = 186
    """RdrXmtTgtAccess constraint. Use AccessConstraintIntervals."""
    SUN_ILLUMINATION_ANGLE = 187
    """Sun Illumination angle. Use interface IAccessConstraintMinMaxBase."""
    SPECTRAL_FLUX_DENSITY = 188
    """Spectral Flux Density constraint. Use IAccessConstraintMinMaxBase."""
    MFR_SINGLE_PULSE_SNR_MINIMUM = 189
    """Multifunction radar single pulse signal-to-noise ratio minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_SINGLE_PULSE_SNR_MAXIMUM = 190
    """Multifunction radar single pulse signal-to-noise ratio maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_SINGLE_PULSE_PROBABILITY_OF_DETECTION_MINIMUM = 191
    """Multifunction radar single pulse probability of detection minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_SINGLE_PULSE_PROBABILITY_OF_DETECTION_MAXIMUM = 192
    """Multifunction radar single pulse probability of detection maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_SNR_MINIMUM = 193
    """Multifunction radar integrated signal-to-noise ratio minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_SNR_MAXIMUM = 194
    """Multifunction radar integrated signal-to-noise ratio maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_PROBABILITY_OF_DETECTION_MINIMUM = 195
    """Multifunction radar integrated probability of detection minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_PROBABILITY_OF_DETECTION_MAXIMUM = 196
    """Multifunction radar integrated probability of detection maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_PULSES_MINIMUM = 197
    """Multifunction radar integrated pulses minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_PULSES_MAXIMUM = 198
    """Multifunction radar integrated pulses maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_PULSES_JAMMING_MINIMUM = 199
    """Multifunction radar integrated pulses jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_PULSES_JAMMING_MAXIMUM = 200
    """Multifunction radar integrated pulses jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATION_TIME_MINIMUM = 201
    """Multifunction radar integration time minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATION_TIME_MAXIMUM = 202
    """Multifunction radar integration time maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATION_TIME_JAMMING_MINIMUM = 203
    """Multifunction radar integration time jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATION_TIME_JAMMING_MAXIMUM = 204
    """Multifunction radar integration time jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_DWELL_TIME_MINIMUM = 205
    """Multifunction radar dwell time minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_DWELL_TIME_MAXIMUM = 206
    """Multifunction radar dwell time maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_DWELL_TIME_JAMMING_MIN = 207
    """Multifunction radar dwell time jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_DWELL_TIME_JAMMING_MAXIMUM = 208
    """Multifunction radar dwell time jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_SINGLE_PULSE_J_OVER_S_MINIMUM = 209
    """Multifunction radar single pulse J/S minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_SINGLE_PULSE_J_OVER_S_MAXIMUM = 210
    """Multifunction radar single pulse J/S maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_J_OVER_S_MINIMUM = 211
    """Multifunction radar integrated J/S minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_J_OVER_S_MAXIMUM = 212
    """Multifunction radar integrated J/S maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_SINGLE_PULSE_SNR_JAMMING_MINIMUM = 213
    """Multifunction radar single pulse signal-to-noise ratio jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_SINGLE_PULSE_SNR_JAMMING_MAXIMUM = 214
    """Multifunction radar single pulse signal-to-noise ratio jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_SNR_JAMMING_MINIMUM = 215
    """Multifunction radar integrated signal-to-noise ratio jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_SNR_JAMMING_MAXIMUM = 216
    """Multifunction radar integrated signal-to-noise ratio jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING_MINIMUM = 217
    """Multifunction radar single pulse probability of detection jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING_MAXIMUM = 218
    """Multifunction radar single pulse probability of detection jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING_MINIMUM = 219
    """Multifunction radar integrated probability of detection jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    MFR_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING_MAXIMUM = 220
    """Multifunction radar integrated probability of detection jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."""
    TILES_MASK_3D = 221
    """3DTiles mask. Use interface IAccessConstraint."""
    CENTRAL_ANGLE = 222
    """Central angle. Use interface IAccessConstraintMinMaxBase."""
    CENTRAL_DISTANCE = 223
    """Central distance. Use interface IAccessConstraintMinMaxBase."""
    DISTANCE_FROM_AREA_TARGET_BOUNDARY = 224
    """Distance from AreaTarget boundary. Measured along the surface from subPoint to closest point of the boundary. The value is signed: if subPoint is inside the boundary, value is negative else positive. Use interface IAccessConstraintMinMaxBase."""
    CALCULATION_SCALAR = 225
    """Scalar Calculation (Calc Scalar). Use interface AccessConstraintAnalysisWorkbenchComponent."""

AccessConstraintType.NONE.__doc__ = "None. Use interface IAccessConstraint."
AccessConstraintType.IMAGE_QUALITY.__doc__ = "Image quality. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.ALTITUDE.__doc__ = "Altitude. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.ANGULAR_RATE.__doc__ = "Angular rate. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.APPARENT_TIME.__doc__ = "Apparent time. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.AREA_TARGET_CENTROID_ELEVATION_ANGLE.__doc__ = "Do not use this enumeration, as it is deprecated. Area Target centroid elevation angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.AZIMUTH_ANGLE.__doc__ = "Azimuth angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.BACKGROUND.__doc__ = "Background. Use interface AccessConstraintBackground."
AccessConstraintType.BETA_ANGLE.__doc__ = "Beta angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.VECTOR_GEOMETRY_TOOL_ANGLE.__doc__ = "Angle. Use interface AccessConstraintAnalysisWorkbenchComponent."
AccessConstraintType.VECTOR_MAGNITUDE.__doc__ = "Vector magnitude. Use interface AccessConstraintAnalysisWorkbenchComponent."
AccessConstraintType.CROSS_TRACK_RANGE.__doc__ = "Cross-track range. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.DOPPLER_CONE_ANGLE.__doc__ = "Doppler cone angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.DURATION.__doc__ = "Duration. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.ELEVATION_ANGLE.__doc__ = "Elevation angle. Use interface IAccessConstraintMinMaxBase,  AccessConstraintAngle."
AccessConstraintType.EXCLUSION_ZONE.__doc__ = "Exclusion zone. Use interface AccessConstraintExclZonesCollection, AccessConstraintLatitudeLongitudeZone."
AccessConstraintType.GMT.__doc__ = "GMT. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.GRAZING_ALTITUDE.__doc__ = "Grazing altitude. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.GRAZING_ANGLE.__doc__ = "Grazing angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.GROUND_ELEVATION_ANGLE.__doc__ = "Ground elevation angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.GROUND_TRACK.__doc__ = "Ground track. Use interface AccessConstraintGroundTrack."
AccessConstraintType.INCLUSION_ZONE.__doc__ = "Inclusion zone. Use interface AccessConstraintLatitudeLongitudeZone."
AccessConstraintType.INTERVALS.__doc__ = "Intervals. Use interface AccessConstraintIntervals."
AccessConstraintType.IN_TRACK_RANGE.__doc__ = "In-track range. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.LATITUDE.__doc__ = "Latitude. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.LIGHTING.__doc__ = "Lighting. Use interface AccessConstraintCondition."
AccessConstraintType.LINE_OF_SIGHT.__doc__ = "Line of sight. Use interface IAccessConstraint."
AccessConstraintType.LOCAL_TIME.__doc__ = "Local time. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.LIGHT_OF_SIGHT_LUNAR_EXCLUSION_ANGLE.__doc__ = "Line of sight lunar exclusion. Use interface AccessConstraintAngle."
AccessConstraintType.LIGHT_OF_SIGHT_SOLAR_EXCLUSION_ANGLE.__doc__ = "Line of sight sun exclusion. Use interface AccessConstraintAngle."
AccessConstraintType.LUNAR_ELEVATION_ANGLE.__doc__ = "Lunar elevation angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MATLAB.__doc__ = "Matlab. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.OBJECT_EXCLUSION_ANGLE.__doc__ = "Object exclusion angle. Use interface AccessConstraintObjExAngle."
AccessConstraintType.PROPAGATION_DELAY.__doc__ = "Propagation delay. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.RANGE.__doc__ = "Range. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.RANGE_RATE.__doc__ = "Range rate. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_AREA_RATE.__doc__ = "SAR area rate. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_AZIMUTH_RESOLUTION.__doc__ = "SAR azimuth resolution. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_CARRIER_TO_NOISE_RATIO.__doc__ = "SAR clutter-to-noise ratio. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_EXTERNAL_DATA.__doc__ = "SAR external data. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_INTEGRATION_TIME.__doc__ = "SAR integration time. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_PTCR.__doc__ = "SAR point target-to-clutter ratio. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_SCR.__doc__ = "SAR signal-to-clutter ratio. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_SIGMA_N.__doc__ = "SAR sigma N. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_SNR.__doc__ = "SAR signal-to-noise ratio. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SQUINT_ANGLE.__doc__ = "Squint angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_CLEAR_DOPPLER.__doc__ = "Search-track clear doppler. Use interface IAccessConstraint."
AccessConstraintType.SEARCH_TRACK_DWELL_TIME.__doc__ = "Search-track dwell time. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_INTEGRATED_PROBABILITY_OF_DETECTION.__doc__ = "Search-track integrated probability of detection. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_INTEGRATED_PULSES.__doc__ = "Search-track integrated pulses. Use interface IAccessConstraint."
AccessConstraintType.SEARCH_TRACK_INTEGRATED_SNR.__doc__ = "Search-track integrated signal-to-noise ratio. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_INTEGRATION_TIME.__doc__ = "Search-track integration time. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_MLC_FILTER.__doc__ = "Search-track main lobe clutter filter. Use interface IAccessConstraint."
AccessConstraintType.SEARCH_TRACK_SINGLE_PULSE_PROBABILITY_OF_DETECTION.__doc__ = "Search-track single-pulse probability of detection. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_SINGLE_PULSE_SNR.__doc__ = "Search-track single-pulse signal-to-noise ratio. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_SLC_FILTER.__doc__ = "Search-track side lobe clutter filter. Use interface IAccessConstraint."
AccessConstraintType.SEARCH_TRACK_UNAMBIGUOUS_DOPPLER.__doc__ = "Search-track unambiguous doppler. Use interface IAccessConstraint."
AccessConstraintType.SEARCH_TRACK_UNAMBIGUOUS_RANGE.__doc__ = "Search-track unambiguous range. Use interface IAccessConstraint."
AccessConstraintType.SUN_ELEVATION_ANGLE.__doc__ = "Sun elevation angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SUN_GROUND_ELEVATION_ANGLE.__doc__ = "Sun ground angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SUN_SPECULAR_EXCLUSION_ANGLE.__doc__ = "Sun specular exclusion. Use interface AccessConstraintAngle."
AccessConstraintType.THIRD_BODY_OBSTRUCTION.__doc__ = "Do not use this enumeration, as it is deprecated. Third body obstruction. Use interface AccessConstraintThirdBody."
AccessConstraintType.CENTROID_AZIMUTH_ANGLE.__doc__ = "Do not use this enumeration, as it is deprecated. Centroid azimuth angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.CENTROID_RANGE.__doc__ = "Do not use this enumeration, as it is deprecated. Centroid range. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.CENTROID_SUN_ELEVATION_ANGLE.__doc__ = "Do not use this enumeration, as it is deprecated. Centroid sun elevation angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.COLLECTION_ANGLE.__doc__ = "Collection angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.TERRAIN_MASK.__doc__ = "Terrain mask. Use interface IAccessConstraint."
AccessConstraintType.AZ_EL_MASK.__doc__ = "Azimuth-elevation mask. Use interface IAccessConstraint."
AccessConstraintType.AZIMUTH_RATE.__doc__ = "Azimuth rate. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.ELEVATION_RATE.__doc__ = "Elevation rate. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.GEOSYNCHRONOUS_BELT_EXCLUSION_ANGLE.__doc__ = "Geostationary belt exclusion. Use interface AccessConstraintAngle."
AccessConstraintType.GROUND_SAMPLE_DISTANCE.__doc__ = "Ground sample distance. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.HEIGHT_ABOVE_HORIZON.__doc__ = "Height above horizon. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.TERRAIN_GRAZING_ANGLE.__doc__ = "Terrain grazing angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.ANGLE_OFF_BORESIGHT.__doc__ = "Angle off boresight. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.ANGLE_OFF_BORESIGHT_RATE.__doc__ = "Angle off boresight rate. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.AREA_MASK.__doc__ = "Area mask. Use interface IAccessConstraint."
AccessConstraintType.BORESIGHT_GRAZING_ANGLE.__doc__ = "Boresight grazing angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.BORESIGHT_INTERSECTION_LIGHTING_CONDITION.__doc__ = "Boresight Intersection lighting condition. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.BORESIGHT_LUNAR_EXCLUSION_ANGLE.__doc__ = "Boresight lunar exclusion. Use interface AccessConstraintAngle."
AccessConstraintType.BORESIGHT_SUN_EXCLUSION_ANGLE.__doc__ = "Boresight sun exclusion. Use interface AccessConstraintAngle."
AccessConstraintType.FIELD_OF_VIEW.__doc__ = "Field of view. Use interface IAccessConstraint."
AccessConstraintType.FIELD_OF_VIEW_SUN_SPECULAR_EXCLUSION_ANGLE.__doc__ = "Field of view sun specular exclusion. Use interface IAccessConstraint."
AccessConstraintType.FIELD_OF_VIEW_SUN_SPECULAR_INCLUSION_ANGLE.__doc__ = "Field of view sun specular inclusion. Use interface IAccessConstraint."
AccessConstraintType.HORIZON_CROSSING.__doc__ = "Horizon crossing. Use interface IAccessConstraint."
AccessConstraintType.SENSOR_AZ_EL_MASK.__doc__ = "Sensor azimuth-elevation mask. Use interface IAccessConstraint."
AccessConstraintType.FOREGROUND.__doc__ = "Foreground. Use interface IAccessConstraint."
AccessConstraintType.CENTRAL_BODY_OBSTRUCTION.__doc__ = "Central Body Obstruction. Use interface AccessConstraintCentralBodyObstruction."
AccessConstraintType.PLUGIN.__doc__ = "Access plugin constraint. Use AccessConstraintPluginMinMax."
AccessConstraintType.DEPTH.__doc__ = "Depth constraint. Use AccessConstraintPluginMinMax."
AccessConstraintType.SEET_MAGNETIC_FIELD_L_SHELL.__doc__ = "Magnetic Dipole L-Shell. The L value is a measure to indicate a particle's drift shell in a dipole-approximated magnetic field. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEET_MAGNETIC_FIELD_LINE_SEPARATION.__doc__ = "Magnetic Field Line Separation; the centric angle between the North footprint of the field line containing the vehicle's location and the North footprint of the field line containing the target's location. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEET_IMPACT_FLUX.__doc__ = "Impact Flux; the total impact flux from all types of meteoroid particles. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEET_DAMAGE_FLUX.__doc__ = "Damage Flux; the total impact flux from all types of meteoroid particles causing damage. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEET_DAMAGE_MASS_FLUX.__doc__ = "Damage Mass Flux; the total impact mass flux from all meteoroid particles causing damage. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEET_IMPACT_MASS_FLUX.__doc__ = "Impact Mass Flux; the total impact mass flux ffrom all types of meteoroid particles. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEET_SAA_FLUX_INTENSITY.__doc__ = "SAA Flux Intensity; SAA Flux Intensity is determined at the vehicle's location and for specified proton-energy flux threshold channel. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEET_VEHICLE_TEMPERATURE.__doc__ = "Vehicle Temperature, computed assuming thermal equilibrium. Use IAccessConstraintMinMaxBase."
AccessConstraintType.CONDITION.__doc__ = "Coordinate condition constraint. Use interface AccessConstraintAnalysisWorkbenchComponent."
AccessConstraintType.SAR_CARRIER_TO_NOISE_RATIO_JAMIING.__doc__ = "SAR CNR Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_J_OVER_S.__doc__ = "SAR J/S constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_ORTHOGONAL_POLARIZATION_CARRIER_TO_NOISE_RATIO.__doc__ = "SAR Orthogonal Polar CNR constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_ORTHOGONAL_POLARIZATION_CARRIER_TO_NOISE_RATIO_JAMMING.__doc__ = "SAR Orthogonal Polar CNR Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_ORTHOGONAL_POLARIZATION_J_OVER_S.__doc__ = "SAR Orthogonal Polar J/S constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_ORTHOGONAL_POLARIZATION_PTCR.__doc__ = "SAR Orthogonal Polar PTCR constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_ORTHOGONAL_POLARIZATION_SCR.__doc__ = "SAR Orthogonal Polar SCR constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_ORTHOGONAL_POLARIZATION_SCR_JAMMING.__doc__ = "SAR Orthogonal Polar SCR Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_ORTHOGONAL_POLARIZATION_SNR.__doc__ = "SAR Orthogonal Polar SNR constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_ORTHOGONAL_POLARIZATION_SNR_JAMMING.__doc__ = "SAR Orthogonal Polar SNR Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_SCR_JAMMING.__doc__ = "SAR SCR Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SAR_SNR_JAMMING.__doc__ = "SAR SNR Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_DWELL_TIME_JAMMING.__doc__ = "Search-Track Dwell Time Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_INTEGRATED_J_OVER_S.__doc__ = "Search-Track Integrated J/S constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING.__doc__ = "Search-Track Integrated PDet Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_INTEGRATED_PULSES_JAMMING.__doc__ = "Search-Track Integrated Pulses Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_INTEGRATED_SNR_JAMMING.__doc__ = "Search-Track Integrated SNR Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_INTEGRATION_TIME_JAMMING.__doc__ = "Search-Track Integration Time Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_DWELL_TIME.__doc__ = "Search-Track Orthogonal Polar Dwell Time constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_DWELL_TIME_JAMMING.__doc__ = "Search-Track Orthogonal Polar Dwell Time Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_J_OVER_S.__doc__ = "Search-Track Orthogonal Polar Integrated J/S constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PROBABILITY_OF_DETECTION.__doc__ = "Search-Track Orthogonal Polar Integrated PDet constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING.__doc__ = "Search-Track Orthogonal Polar Integrated PDet Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PULSES.__doc__ = "Search-Track Orthogonal Polar Integrated Pulses constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PULSES_JAMMING.__doc__ = "Search-Track Orthogonal Polar Integrated Pulses Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_SNR.__doc__ = "Search-Track Orthogonal Polar Integrated SNR constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_SNR_JAMMING.__doc__ = "Search-Track Orthogonal Polar Integrated SNR Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATION_TIME.__doc__ = "Search-Track Orthogonal Polar Integration Time constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATION_TIME_JAMMING.__doc__ = "Search-Track Orthogonal Polar Integration Time Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_J_OVER_S.__doc__ = "Search-Track Orthogonal Polar Single Pulse J/S constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_PROBABILITY_OF_DETECTION.__doc__ = "Search-Track Orthogonal Polar Single Pulse PDet constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING.__doc__ = "Search-Track Orthogonal Polar Single Pulse PDet Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_SNR.__doc__ = "Search-Track Orthogonal Polar Single Pulse SNR constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_SNR_JAMMING.__doc__ = "Search-Track Orthogonal Polar Integrated SNR Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_SINGLE_PULSE_J_OVER_S.__doc__ = "Search-Track Single Pulse J/S constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING.__doc__ = "Search-Track Single Pulse PDet Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.SEARCH_TRACK_SINGLE_PULSE_SNR_JAMMING.__doc__ = "Search-Track Single Pulse SNR Jamming constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.EOIR_SNR.__doc__ = "EOIR SNR constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.FIELD_OF_VIEW_CENTRAL_BODY_CENTER.__doc__ = "Field Of View Central Body Center constraint. Use IAccessConstraint."
AccessConstraintType.FIELD_OF_VIEW_CENTRAL_BODY_HORIZON_REFINE.__doc__ = "Field Of View Central Body Horizon Refine constraint. Use IAccessConstraint."
AccessConstraintType.FIELD_OF_VIEW_CENTRAL_BODY_OBSTRUCTION_CROSSSING_INWARD.__doc__ = "Field Of View Central Body Obstruction Cross In constraint. Use IAccessConstraint."
AccessConstraintType.FIELD_OF_VIEW_CENTRAL_BODY_OBSTRUCTION_CROSSING_OUTWARD.__doc__ = "Field Of View Central Body Obstruction Cross Out constraint. Use IAccessConstraint."
AccessConstraintType.SENSOR_RANGE_MASK.__doc__ = "Sensor Range Mask constraint. Use IAccessConstraint."
AccessConstraintType.ATMOSPHERIC_LOSS.__doc__ = "Atmosphere Absorption Loss constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.BER_PLUS_I.__doc__ = "BER+I constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.BIT_ERROR_RATE.__doc__ = "Bit Error Rate constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.C_OVER_I.__doc__ = "C/I constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.C_OVER_N.__doc__ = "C/N constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.C_OVER_N_PLUS_I.__doc__ = "C/N+I constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.C_OVER_N0.__doc__ = "C/No constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.C_OVER_N0_PLUS_I0.__doc__ = "C/No+Io constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.CLOUDS_FOG_LOSS.__doc__ = "Clouds And Fog Loss constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.COMM_PLUGIN.__doc__ = "Comm Plugin constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.DELTA_T_OVER_T.__doc__ = "Delta T/T constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.DOPPLER_SHIFT.__doc__ = "Doppler Shift constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.EB_OVER_N0.__doc__ = "Energy per bit to noise ratio (Eb/No) constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.EB_OVER_N0_PLUS_I0.__doc__ = "Eb/No+Io constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.FLUX_DENSITY.__doc__ = "Flux Density constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.FREQUENCY.__doc__ = "Frequency constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.G_OVER_T.__doc__ = "G/T constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.J_OVER_S.__doc__ = "J/S constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.LINK_EIRP.__doc__ = "Link EIRP constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.LINK_MARGIN.__doc__ = "Link Margin constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.NOISE_TEMPERATURE.__doc__ = "Noise Temperature constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.POLARIZATION_RELATIVE_ANGLE.__doc__ = "Polarization Relative Angle constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.POWER_AT_RECEIVER_INPUT.__doc__ = "Power at Receiver Input constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.POWER_FLUX_DENSITY.__doc__ = "Power Flux Density constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.RAIN_LOSS.__doc__ = "Rain Loss constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.RECEIVED_ISOTROPIC_POWER.__doc__ = "Received Isotropic Power constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.USER_CUSTOM_A_LOSS.__doc__ = "User Custom A Loss constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.USER_CUSTOM_B_LOSS.__doc__ = "User Custom B Loss constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.USER_CUSTOM_C_LOSS.__doc__ = "User Custom C Loss constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.FREE_SPACE_LOSS.__doc__ = "Free Space Loss constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.PROPAGATION_LOSS.__doc__ = "Propagation Loss constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.TOTAL_POWER_AT_RECEIVER_INPUT.__doc__ = "Total Power At Receiver Input constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.TOTAL_RECEIVED_REFRACTION_POWER.__doc__ = "Total Received Rf Power constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.TROPOSPHERIC_SCINTILLATION_LOSS.__doc__ = "Troposphere Scintillation Loss constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.URBAN_TERRES_LOSS.__doc__ = "Urban Terrestrial Loss constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.TIME_SLIP_SURFACE_RANGE.__doc__ = "Time Slip Surface Range constraint. Use IAccessConstraint."
AccessConstraintType.CABLE_TRANSFORMATION_DELAY.__doc__ = "Cable Transmission Delay constraint. Use AccessConstraintIntervals."
AccessConstraintType.PROCESS_DELAY.__doc__ = "Process Delay constraint. Use AccessConstraintIntervals."
AccessConstraintType.RADAR_TRANSMITTER_TARGET_ACCESS.__doc__ = "RdrXmtTgtAccess constraint. Use AccessConstraintIntervals."
AccessConstraintType.SUN_ILLUMINATION_ANGLE.__doc__ = "Sun Illumination angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.SPECTRAL_FLUX_DENSITY.__doc__ = "Spectral Flux Density constraint. Use IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_SINGLE_PULSE_SNR_MINIMUM.__doc__ = "Multifunction radar single pulse signal-to-noise ratio minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_SINGLE_PULSE_SNR_MAXIMUM.__doc__ = "Multifunction radar single pulse signal-to-noise ratio maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_SINGLE_PULSE_PROBABILITY_OF_DETECTION_MINIMUM.__doc__ = "Multifunction radar single pulse probability of detection minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_SINGLE_PULSE_PROBABILITY_OF_DETECTION_MAXIMUM.__doc__ = "Multifunction radar single pulse probability of detection maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_SNR_MINIMUM.__doc__ = "Multifunction radar integrated signal-to-noise ratio minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_SNR_MAXIMUM.__doc__ = "Multifunction radar integrated signal-to-noise ratio maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_PROBABILITY_OF_DETECTION_MINIMUM.__doc__ = "Multifunction radar integrated probability of detection minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_PROBABILITY_OF_DETECTION_MAXIMUM.__doc__ = "Multifunction radar integrated probability of detection maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_PULSES_MINIMUM.__doc__ = "Multifunction radar integrated pulses minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_PULSES_MAXIMUM.__doc__ = "Multifunction radar integrated pulses maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_PULSES_JAMMING_MINIMUM.__doc__ = "Multifunction radar integrated pulses jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_PULSES_JAMMING_MAXIMUM.__doc__ = "Multifunction radar integrated pulses jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATION_TIME_MINIMUM.__doc__ = "Multifunction radar integration time minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATION_TIME_MAXIMUM.__doc__ = "Multifunction radar integration time maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATION_TIME_JAMMING_MINIMUM.__doc__ = "Multifunction radar integration time jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATION_TIME_JAMMING_MAXIMUM.__doc__ = "Multifunction radar integration time jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_DWELL_TIME_MINIMUM.__doc__ = "Multifunction radar dwell time minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_DWELL_TIME_MAXIMUM.__doc__ = "Multifunction radar dwell time maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_DWELL_TIME_JAMMING_MIN.__doc__ = "Multifunction radar dwell time jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_DWELL_TIME_JAMMING_MAXIMUM.__doc__ = "Multifunction radar dwell time jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_SINGLE_PULSE_J_OVER_S_MINIMUM.__doc__ = "Multifunction radar single pulse J/S minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_SINGLE_PULSE_J_OVER_S_MAXIMUM.__doc__ = "Multifunction radar single pulse J/S maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_J_OVER_S_MINIMUM.__doc__ = "Multifunction radar integrated J/S minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_J_OVER_S_MAXIMUM.__doc__ = "Multifunction radar integrated J/S maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_SINGLE_PULSE_SNR_JAMMING_MINIMUM.__doc__ = "Multifunction radar single pulse signal-to-noise ratio jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_SINGLE_PULSE_SNR_JAMMING_MAXIMUM.__doc__ = "Multifunction radar single pulse signal-to-noise ratio jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_SNR_JAMMING_MINIMUM.__doc__ = "Multifunction radar integrated signal-to-noise ratio jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_SNR_JAMMING_MAXIMUM.__doc__ = "Multifunction radar integrated signal-to-noise ratio jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING_MINIMUM.__doc__ = "Multifunction radar single pulse probability of detection jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING_MAXIMUM.__doc__ = "Multifunction radar single pulse probability of detection jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING_MINIMUM.__doc__ = "Multifunction radar integrated probability of detection jamming minimum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.MFR_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING_MAXIMUM.__doc__ = "Multifunction radar integrated probability of detection jamming maximum across all available beams. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.TILES_MASK_3D.__doc__ = "3DTiles mask. Use interface IAccessConstraint."
AccessConstraintType.CENTRAL_ANGLE.__doc__ = "Central angle. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.CENTRAL_DISTANCE.__doc__ = "Central distance. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.DISTANCE_FROM_AREA_TARGET_BOUNDARY.__doc__ = "Distance from AreaTarget boundary. Measured along the surface from subPoint to closest point of the boundary. The value is signed: if subPoint is inside the boundary, value is negative else positive. Use interface IAccessConstraintMinMaxBase."
AccessConstraintType.CALCULATION_SCALAR.__doc__ = "Scalar Calculation (Calc Scalar). Use interface AccessConstraintAnalysisWorkbenchComponent."

agcls.AgTypeNameMap["AccessConstraintType"] = AccessConstraintType

class BorderWallUpperLowerEdgeAltitudeReference(IntEnum):
    """Border Wall upper and lower edge altitude references."""

    MEAN_SEA_LEVEL = 0
    """Altitude reference: Mean Sea Level."""
    OBJECT = 1
    """Altitude reference: the altitude of the object."""
    TERRAIN = 2
    """Altitude reference: the altitude of the terrain."""
    WGS84 = 3
    """Altitude reference: the altitude of the central body's reference ellipsoid."""

BorderWallUpperLowerEdgeAltitudeReference.MEAN_SEA_LEVEL.__doc__ = "Altitude reference: Mean Sea Level."
BorderWallUpperLowerEdgeAltitudeReference.OBJECT.__doc__ = "Altitude reference: the altitude of the object."
BorderWallUpperLowerEdgeAltitudeReference.TERRAIN.__doc__ = "Altitude reference: the altitude of the terrain."
BorderWallUpperLowerEdgeAltitudeReference.WGS84.__doc__ = "Altitude reference: the altitude of the central body's reference ellipsoid."

agcls.AgTypeNameMap["BorderWallUpperLowerEdgeAltitudeReference"] = BorderWallUpperLowerEdgeAltitudeReference

class SolarRadiationPressureShadowModelType(IntEnum):
    """Shadow model options for solar radiation pressure."""

    CYLINDRICAL = 0
    """Cylindrical: assumes the Sun to be at infinite distance so that all light coming from the Sun moves in a direction parallel to the Sun to satellite vector."""
    DUAL_CONE = 1
    """Dual cone: uses the actual size and distance of the Sun to model regions of full, partial and zero sunlight."""
    NONE = 2
    """None. No shadowing of the satellite is modeled."""

SolarRadiationPressureShadowModelType.CYLINDRICAL.__doc__ = "Cylindrical: assumes the Sun to be at infinite distance so that all light coming from the Sun moves in a direction parallel to the Sun to satellite vector."
SolarRadiationPressureShadowModelType.DUAL_CONE.__doc__ = "Dual cone: uses the actual size and distance of the Sun to model regions of full, partial and zero sunlight."
SolarRadiationPressureShadowModelType.NONE.__doc__ = "None. No shadowing of the satellite is modeled."

agcls.AgTypeNameMap["SolarRadiationPressureShadowModelType"] = SolarRadiationPressureShadowModelType

class MethodToComputeSunPosition(IntEnum):
    """Methods to compute sun position."""

    APPARENT = 0
    """Apparent: takes into account the time required for light to travel from the sun to the position of the spacecraft."""
    APPARENT_TO_TRUE_CENTRAL_BODY_LOCATION = 1
    """Apparent Sun to True Central Body: takes into account the time required for light to travel from the sun to the central body."""
    TRUE = 2
    """True: assumes that light from the sun reaches the spacecraft instantaneously."""

MethodToComputeSunPosition.APPARENT.__doc__ = "Apparent: takes into account the time required for light to travel from the sun to the position of the spacecraft."
MethodToComputeSunPosition.APPARENT_TO_TRUE_CENTRAL_BODY_LOCATION.__doc__ = "Apparent Sun to True Central Body: takes into account the time required for light to travel from the sun to the central body."
MethodToComputeSunPosition.TRUE.__doc__ = "True: assumes that light from the sun reaches the spacecraft instantaneously."

agcls.AgTypeNameMap["MethodToComputeSunPosition"] = MethodToComputeSunPosition

class AtmosphericDensityModel(IntEnum):
    """Atmospheric density models."""

    STANDARD_ATMOSPHERE_MODEL_1976 = 0
    """1976 Standard Atmosphere: look-up model based on the satellite's altitude, with a valid range of 86km - 1000 km."""
    CIRA72 = 1
    """CIRA 1972: empirical model of atmospheric temperature and densities as recommended by the Committee on Space Research (COSPAR). Lower altitude boundary is 90 km."""
    EXPONENTIAL_MODEL = 2
    """Do not use this enumeration, as it is deprecated. Exponential Model: uses equation calculating atmospheric density on basis of a specified altitude, reference density, reference altitude and scale altitude."""
    HARRIS_PRIESTER = 3
    """Harris-Priester: takes into account a 10.7 cm solar flux level and diurnal bulge. Uses density tables. Valid range of 0-1000 km."""
    JACCHIA_ROBERTS = 4
    """Jacchia-Roberts: similar to Jacchia 1971 (below) but uses analytical methods to improve performance. Lower altitude boundary is 90 km."""
    JACCHIA60 = 5
    """Jacchia 1960: outdated atmospheric model provided for making comparisons with other software. Lower altitude boundary is 0 km."""
    JACCHIA70 = 6
    """Jacchia 1970: computes atmospheric density based on the composition of the atmosphere, which depends on altitude as well as seasonal variation. Valid range is 100-2500 km."""
    JACCHIA71 = 7
    """Jacchia 1971: similar to Jacchia 1970 (above), with improved treatment of certain solar effects."""
    MSIS00 = 8
    """NRLMSISE 2000: finds the total density by accounting for the contribution of N, N2, O, O2, He, Ar and H. Includes anomalous oxygen. 2000 version, valid range of 0-1000 km."""
    MSIS86 = 9
    """MSIS 1986: finds the total density by accounting for the contribution of N2, O, O2, He, Ar and H. 1986 version, valid range of 90-1000 km."""
    MSIS90 = 10
    """MSISE 1990: finds the total density by accounting for the contribution of N2, O, O2, He, Ar and H. 1990 version, valid range of 0-1000 km."""
    UNKNOWN = 11
    """Unsupported or unknown atmospheric density model."""
    USER_DEFINED = 12
    """Do not use this enumeration, as it is deprecated. This option is no longer available for VehicleHPOPForceModelDrag. User-defined atmospheric density model."""
    DTM2012 = 13
    """DTM 2012: The Drag Temperature Model (DTM), 2012 version, is a semi-empirical model which computes the temperature, density, and composition of the thermosphere. Developed at CNES. Valid range of 120 - 1500 km."""
    DTM2020 = 14
    """DTM 2020: The Drag Temperature Model (DTM), 2020 version, is a semi-empirical model which computes the temperature, density, and composition of the thermosphere. Developed at CNES. Valid range of 120 - 1500 km."""

AtmosphericDensityModel.STANDARD_ATMOSPHERE_MODEL_1976.__doc__ = "1976 Standard Atmosphere: look-up model based on the satellite's altitude, with a valid range of 86km - 1000 km."
AtmosphericDensityModel.CIRA72.__doc__ = "CIRA 1972: empirical model of atmospheric temperature and densities as recommended by the Committee on Space Research (COSPAR). Lower altitude boundary is 90 km."
AtmosphericDensityModel.EXPONENTIAL_MODEL.__doc__ = "Do not use this enumeration, as it is deprecated. Exponential Model: uses equation calculating atmospheric density on basis of a specified altitude, reference density, reference altitude and scale altitude."
AtmosphericDensityModel.HARRIS_PRIESTER.__doc__ = "Harris-Priester: takes into account a 10.7 cm solar flux level and diurnal bulge. Uses density tables. Valid range of 0-1000 km."
AtmosphericDensityModel.JACCHIA_ROBERTS.__doc__ = "Jacchia-Roberts: similar to Jacchia 1971 (below) but uses analytical methods to improve performance. Lower altitude boundary is 90 km."
AtmosphericDensityModel.JACCHIA60.__doc__ = "Jacchia 1960: outdated atmospheric model provided for making comparisons with other software. Lower altitude boundary is 0 km."
AtmosphericDensityModel.JACCHIA70.__doc__ = "Jacchia 1970: computes atmospheric density based on the composition of the atmosphere, which depends on altitude as well as seasonal variation. Valid range is 100-2500 km."
AtmosphericDensityModel.JACCHIA71.__doc__ = "Jacchia 1971: similar to Jacchia 1970 (above), with improved treatment of certain solar effects."
AtmosphericDensityModel.MSIS00.__doc__ = "NRLMSISE 2000: finds the total density by accounting for the contribution of N, N2, O, O2, He, Ar and H. Includes anomalous oxygen. 2000 version, valid range of 0-1000 km."
AtmosphericDensityModel.MSIS86.__doc__ = "MSIS 1986: finds the total density by accounting for the contribution of N2, O, O2, He, Ar and H. 1986 version, valid range of 90-1000 km."
AtmosphericDensityModel.MSIS90.__doc__ = "MSISE 1990: finds the total density by accounting for the contribution of N2, O, O2, He, Ar and H. 1990 version, valid range of 0-1000 km."
AtmosphericDensityModel.UNKNOWN.__doc__ = "Unsupported or unknown atmospheric density model."
AtmosphericDensityModel.USER_DEFINED.__doc__ = "Do not use this enumeration, as it is deprecated. This option is no longer available for VehicleHPOPForceModelDrag. User-defined atmospheric density model."
AtmosphericDensityModel.DTM2012.__doc__ = "DTM 2012: The Drag Temperature Model (DTM), 2012 version, is a semi-empirical model which computes the temperature, density, and composition of the thermosphere. Developed at CNES. Valid range of 120 - 1500 km."
AtmosphericDensityModel.DTM2020.__doc__ = "DTM 2020: The Drag Temperature Model (DTM), 2020 version, is a semi-empirical model which computes the temperature, density, and composition of the thermosphere. Developed at CNES. Valid range of 120 - 1500 km."

agcls.AgTypeNameMap["AtmosphericDensityModel"] = AtmosphericDensityModel

class MarkerShape3d(IntEnum):
    """3D marker shapes."""

    SHAPE_CIRCLE = 0
    """Marker shape: circle."""
    SHAPE_PLUS = 1
    """Marker shape: plus sign."""
    SHAPE_POINT = 2
    """Marker shape: point."""
    SHAPE_SQUARE = 3
    """Marker shape: square."""
    SHAPE_STAR = 4
    """Marker shape: star."""
    SHAPE_TRIANGLE = 5
    """Marker shape: triangle."""
    SHAPE_X = 6
    """Marker shape: X."""

MarkerShape3d.SHAPE_CIRCLE.__doc__ = "Marker shape: circle."
MarkerShape3d.SHAPE_PLUS.__doc__ = "Marker shape: plus sign."
MarkerShape3d.SHAPE_POINT.__doc__ = "Marker shape: point."
MarkerShape3d.SHAPE_SQUARE.__doc__ = "Marker shape: square."
MarkerShape3d.SHAPE_STAR.__doc__ = "Marker shape: star."
MarkerShape3d.SHAPE_TRIANGLE.__doc__ = "Marker shape: triangle."
MarkerShape3d.SHAPE_X.__doc__ = "Marker shape: X."

agcls.AgTypeNameMap["MarkerShape3d"] = MarkerShape3d

class LeadTrailData(IntEnum):
    """Lead and trail types for track display."""

    UNKNOWN = -1
    """Unknown."""
    NONE = 0
    """None: Display none of the selected portion (leading or trailing) of the track."""
    ALL = 1
    """All: Display the track spanning the entire vehicle ephemeris."""
    FRACTION = 2
    """Fraction: Display the specified fraction of the selected portion (leading or trailing) of the track."""
    FULL = 3
    """Full: Display all of the selected portion (leading or trailing) of the track."""
    HALF = 4
    """Half: Display 1/2 of the selected portion (leading or trailing) of the track."""
    ONE_PASS = 5
    """One pass (satellites only): Display forward to the first pass break. At the pass break, display forward to the next one."""
    QUARTER = 6
    """Quarter:  Display 1/4 of the selected portion (leading or trailing) of the track."""
    TIME = 7
    """Time: Display the segment of the selected portion (leading or trailing) of the vehicle's path that it traverses in the specified amount of time."""
    CURRENT_INTERVAL = 8
    """Current Interval: Display the leading portion of the vehicle's track for the current animation time interval."""

LeadTrailData.UNKNOWN.__doc__ = "Unknown."
LeadTrailData.NONE.__doc__ = "None: Display none of the selected portion (leading or trailing) of the track."
LeadTrailData.ALL.__doc__ = "All: Display the track spanning the entire vehicle ephemeris."
LeadTrailData.FRACTION.__doc__ = "Fraction: Display the specified fraction of the selected portion (leading or trailing) of the track."
LeadTrailData.FULL.__doc__ = "Full: Display all of the selected portion (leading or trailing) of the track."
LeadTrailData.HALF.__doc__ = "Half: Display 1/2 of the selected portion (leading or trailing) of the track."
LeadTrailData.ONE_PASS.__doc__ = "One pass (satellites only): Display forward to the first pass break. At the pass break, display forward to the next one."
LeadTrailData.QUARTER.__doc__ = "Quarter:  Display 1/4 of the selected portion (leading or trailing) of the track."
LeadTrailData.TIME.__doc__ = "Time: Display the segment of the selected portion (leading or trailing) of the vehicle's path that it traverses in the specified amount of time."
LeadTrailData.CURRENT_INTERVAL.__doc__ = "Current Interval: Display the leading portion of the vehicle's track for the current animation time interval."

agcls.AgTypeNameMap["LeadTrailData"] = LeadTrailData

class TickData(IntEnum):
    """Tick mark options. Tick marks represent milestones at specified intervals along a vehicle's track in the 3D Graphics window."""

    UNKNOWN = -1
    """Tick mark option: unknown."""
    CROSS_TRACK = 0
    """Draw tick marks in cross-track direction."""
    POINT = 1
    """Display tick as a point."""
    RADIAL = 2
    """Draw tick marks in radial direction."""
    RADIAL_AND_CROSS_TRACK = 3
    """Draw tick marks in radial and cross-track directions."""

TickData.UNKNOWN.__doc__ = "Tick mark option: unknown."
TickData.CROSS_TRACK.__doc__ = "Draw tick marks in cross-track direction."
TickData.POINT.__doc__ = "Display tick as a point."
TickData.RADIAL.__doc__ = "Draw tick marks in radial direction."
TickData.RADIAL_AND_CROSS_TRACK.__doc__ = "Draw tick marks in radial and cross-track directions."

agcls.AgTypeNameMap["TickData"] = TickData

class LoadMethod(IntEnum):
    """TLE load options."""

    AUTOMATIC_LOAD = 0
    """Auto load: STK automatically loads the TLE sets corresponding to the SSC number of the satellite when the satellite is loaded."""
    FILE_INSERT = 1
    """File insert: adds the selected TLE data but retains TLE data that is currently associated with the satellite."""
    FILE_LOAD = 2
    """File load: loads the selected TLE data and replaces all TLE data that is currently associated with the satellite."""
    ONLINE_AUTOMATIC_LOAD = 3
    """Online auto-load: STK automatically loads the TLE sets corresponding to the SSC number of the satellite from the AGI Web site."""
    ONLINE_LOAD = 4
    """goes directly to the AGI Web site to download the latest TLE sets."""

LoadMethod.AUTOMATIC_LOAD.__doc__ = "Auto load: STK automatically loads the TLE sets corresponding to the SSC number of the satellite when the satellite is loaded."
LoadMethod.FILE_INSERT.__doc__ = "File insert: adds the selected TLE data but retains TLE data that is currently associated with the satellite."
LoadMethod.FILE_LOAD.__doc__ = "File load: loads the selected TLE data and replaces all TLE data that is currently associated with the satellite."
LoadMethod.ONLINE_AUTOMATIC_LOAD.__doc__ = "Online auto-load: STK automatically loads the TLE sets corresponding to the SSC number of the satellite from the AGI Web site."
LoadMethod.ONLINE_LOAD.__doc__ = "goes directly to the AGI Web site to download the latest TLE sets."

agcls.AgTypeNameMap["LoadMethod"] = LoadMethod

class DeticPositionType(IntEnum):
    """LLA Position Types."""

    UNKNOWN = -1
    """Unknown position type."""
    CENTRIC = 0
    """Geocentric position type."""
    DETIC = 1
    """Geodetic position type."""

DeticPositionType.UNKNOWN.__doc__ = "Unknown position type."
DeticPositionType.CENTRIC.__doc__ = "Geocentric position type."
DeticPositionType.DETIC.__doc__ = "Geodetic position type."

agcls.AgTypeNameMap["DeticPositionType"] = DeticPositionType

class VehicleGraphics2DPass(IntEnum):
    """Pass display options."""

    UNKNOWN = -1
    """Unknown pass."""
    SHOW_ALL = 0
    """Show all passes."""
    SHOW_PASSES_IN_RANGE = 1
    """Show passes in a user-specified range."""

VehicleGraphics2DPass.UNKNOWN.__doc__ = "Unknown pass."
VehicleGraphics2DPass.SHOW_ALL.__doc__ = "Show all passes."
VehicleGraphics2DPass.SHOW_PASSES_IN_RANGE.__doc__ = "Show passes in a user-specified range."

agcls.AgTypeNameMap["VehicleGraphics2DPass"] = VehicleGraphics2DPass

class VehicleGraphics2DVisibleSideType(IntEnum):
    """Pass display direction options."""

    ASCENDING = 0
    """Display only the ascending side of each pass."""
    BOTH = 1
    """Display both ascending and descending sides of each pass."""
    SIDES_DESCENDING = 2
    """Display only the descending side of each pass."""
    SIDES_NONE = 3
    """Display neither the ascending nor the descending side of any pass."""

VehicleGraphics2DVisibleSideType.ASCENDING.__doc__ = "Display only the ascending side of each pass."
VehicleGraphics2DVisibleSideType.BOTH.__doc__ = "Display both ascending and descending sides of each pass."
VehicleGraphics2DVisibleSideType.SIDES_DESCENDING.__doc__ = "Display only the descending side of each pass."
VehicleGraphics2DVisibleSideType.SIDES_NONE.__doc__ = "Display neither the ascending nor the descending side of any pass."

agcls.AgTypeNameMap["VehicleGraphics2DVisibleSideType"] = VehicleGraphics2DVisibleSideType

class VehicleGraphics2DOffset(IntEnum):
    """Options for offset direction for 2D time events graphics."""

    UNKNOWN = -1
    """Unknown Offset."""
    OFFSET_LEFT = 0
    """Offset to the left."""
    OFFSET_RIGHT = 1
    """Offset to the right."""

VehicleGraphics2DOffset.UNKNOWN.__doc__ = "Unknown Offset."
VehicleGraphics2DOffset.OFFSET_LEFT.__doc__ = "Offset to the left."
VehicleGraphics2DOffset.OFFSET_RIGHT.__doc__ = "Offset to the right."

agcls.AgTypeNameMap["VehicleGraphics2DOffset"] = VehicleGraphics2DOffset

class VehicleGraphics2DTimeEventType(IntEnum):
    """2D Graphics time event graphics options."""

    UNKNOWN = -1
    """Unknown Time Event Type."""
    LINE = 0
    """Line."""
    MARKER = 1
    """Marker."""
    TEXT = 2
    """Text."""

VehicleGraphics2DTimeEventType.UNKNOWN.__doc__ = "Unknown Time Event Type."
VehicleGraphics2DTimeEventType.LINE.__doc__ = "Line."
VehicleGraphics2DTimeEventType.MARKER.__doc__ = "Marker."
VehicleGraphics2DTimeEventType.TEXT.__doc__ = "Text."

agcls.AgTypeNameMap["VehicleGraphics2DTimeEventType"] = VehicleGraphics2DTimeEventType

class VehicleGraphics2DAttributeType(IntEnum):
    """Criteria for displaying a vehicle's 2D Graphics attributes."""

    UNKNOWN = -1
    """Unknown."""
    ACCESS = 0
    """Display based on access periods."""
    BASIC = 1
    """Basic display."""
    CUSTOM = 2
    """Display based on custom intervals."""
    REAL_TIME = 3
    """Display based on real time data state."""
    TIME_COMPONENTS = 4
    """Display based on Timeline events, intervals, time arrays, interval lists and interval collections."""

VehicleGraphics2DAttributeType.UNKNOWN.__doc__ = "Unknown."
VehicleGraphics2DAttributeType.ACCESS.__doc__ = "Display based on access periods."
VehicleGraphics2DAttributeType.BASIC.__doc__ = "Basic display."
VehicleGraphics2DAttributeType.CUSTOM.__doc__ = "Display based on custom intervals."
VehicleGraphics2DAttributeType.REAL_TIME.__doc__ = "Display based on real time data state."
VehicleGraphics2DAttributeType.TIME_COMPONENTS.__doc__ = "Display based on Timeline events, intervals, time arrays, interval lists and interval collections."

agcls.AgTypeNameMap["VehicleGraphics2DAttributeType"] = VehicleGraphics2DAttributeType

class VehicleGraphics2DElevation(IntEnum):
    """Options for vehicle swath."""

    UNKNOWN = -1
    """Unknown."""
    ELEVATION_GROUND_ELEVATION = 0
    """Ground elevation."""
    ELEVATION_SWATH_HALF_WIDTH = 2
    """Swath half width."""
    ELEVATION_VEHICLE_HALF_ANGLE = 3
    """Vehicle half angle."""
    ELEVATION_GROUND_ELEVATION_ENVELOPE = 4
    """Vehicle ground elevation envelope."""
    ELEVATION_VEHICLE_HALF_ANGLE_ENVELOPE = 5
    """Vehicle half angle envelope."""

VehicleGraphics2DElevation.UNKNOWN.__doc__ = "Unknown."
VehicleGraphics2DElevation.ELEVATION_GROUND_ELEVATION.__doc__ = "Ground elevation."
VehicleGraphics2DElevation.ELEVATION_SWATH_HALF_WIDTH.__doc__ = "Swath half width."
VehicleGraphics2DElevation.ELEVATION_VEHICLE_HALF_ANGLE.__doc__ = "Vehicle half angle."
VehicleGraphics2DElevation.ELEVATION_GROUND_ELEVATION_ENVELOPE.__doc__ = "Vehicle ground elevation envelope."
VehicleGraphics2DElevation.ELEVATION_VEHICLE_HALF_ANGLE_ENVELOPE.__doc__ = "Vehicle half angle envelope."

agcls.AgTypeNameMap["VehicleGraphics2DElevation"] = VehicleGraphics2DElevation

class VehicleGraphics2DOptionType(IntEnum):
    """Display options for vehicle swath."""

    OPTIONS_EDGE_LIMITS = 0
    """Edge limits: displays the swath limits to either side of a center ground track."""
    OPTIONS_FILLED_LIMITS = 1
    """Filled limits: displays a crosstrack pattern to the swath limits at each path point along the ground track."""
    OPTIONS_NO_GRAPHICS = 2
    """No graphics: swath is removed from the 2D Graphics window."""

VehicleGraphics2DOptionType.OPTIONS_EDGE_LIMITS.__doc__ = "Edge limits: displays the swath limits to either side of a center ground track."
VehicleGraphics2DOptionType.OPTIONS_FILLED_LIMITS.__doc__ = "Filled limits: displays a crosstrack pattern to the swath limits at each path point along the ground track."
VehicleGraphics2DOptionType.OPTIONS_NO_GRAPHICS.__doc__ = "No graphics: swath is removed from the 2D Graphics window."

agcls.AgTypeNameMap["VehicleGraphics2DOptionType"] = VehicleGraphics2DOptionType

class ModelType(IntEnum):
    """Display options 3D model."""

    LIST = 0x0
    """Model list: display several models at different times during the animation."""
    FILE = 0x1
    """Model file: display the same model at all times during animation."""

ModelType.LIST.__doc__ = "Model list: display several models at different times during the animation."
ModelType.FILE.__doc__ = "Model file: display the same model at all times during animation."

agcls.AgTypeNameMap["ModelType"] = ModelType

class VehicleGraphics3DDropLineType(IntEnum):
    """Options for where to end drop lines."""

    MEAN_SEA_LEVEL = 0
    """Drop lines to Mean Sea Level."""
    TERRAIN = 1
    """Drop lines to terrain."""
    ELLIPSOID = 2
    """Drop lines to the central body's reference ellipsoid (WGS84)."""

VehicleGraphics3DDropLineType.MEAN_SEA_LEVEL.__doc__ = "Drop lines to Mean Sea Level."
VehicleGraphics3DDropLineType.TERRAIN.__doc__ = "Drop lines to terrain."
VehicleGraphics3DDropLineType.ELLIPSOID.__doc__ = "Drop lines to the central body's reference ellipsoid (WGS84)."

agcls.AgTypeNameMap["VehicleGraphics3DDropLineType"] = VehicleGraphics3DDropLineType

class VehicleGraphics3DSigmaScale(IntEnum):
    """Sigma scale options for sizing covariance pointing contours."""

    UNKNOWN = -1
    """Unknown."""
    PROBABILITY = 0
    """Use probability: the contour is sized indirectly by specifying the probability encompassed by the ellipsoid as a percent."""
    SCALE = 1
    """Use scale: the contour is sized directly by specifying the scale."""

VehicleGraphics3DSigmaScale.UNKNOWN.__doc__ = "Unknown."
VehicleGraphics3DSigmaScale.PROBABILITY.__doc__ = "Use probability: the contour is sized indirectly by specifying the probability encompassed by the ellipsoid as a percent."
VehicleGraphics3DSigmaScale.SCALE.__doc__ = "Use scale: the contour is sized directly by specifying the scale."

agcls.AgTypeNameMap["VehicleGraphics3DSigmaScale"] = VehicleGraphics3DSigmaScale

class VehicleGraphics3DAttributeType(IntEnum):
    """Options for 3D graphics for covariance pointing contours."""

    UNKNOWN = -1
    """Unknown."""
    BASIC = 0
    """Set basic 3D graphics properties."""
    INTERVALS = 1
    """Define 3D graphics properties based on intervals."""

VehicleGraphics3DAttributeType.UNKNOWN.__doc__ = "Unknown."
VehicleGraphics3DAttributeType.BASIC.__doc__ = "Set basic 3D graphics properties."
VehicleGraphics3DAttributeType.INTERVALS.__doc__ = "Define 3D graphics properties based on intervals."

agcls.AgTypeNameMap["VehicleGraphics3DAttributeType"] = VehicleGraphics3DAttributeType

class RouteGraphics3DMarkerType(IntEnum):
    """Waypoint marker options."""

    IMAGE = 0
    """Use image file."""
    MARKER = 1
    """Use marker."""

RouteGraphics3DMarkerType.IMAGE.__doc__ = "Use image file."
RouteGraphics3DMarkerType.MARKER.__doc__ = "Use marker."

agcls.AgTypeNameMap["RouteGraphics3DMarkerType"] = RouteGraphics3DMarkerType

class VehicleEllipseOptionType(IntEnum):
    """Elliptical motion modeling options."""

    OSCULATING = 0
    """Osculating: representative of the particular point on a satellite trajectory, but the actual trajectory differs from its two-body counterpart at other points in time."""
    SECULARLY_PRECESSING = 1
    """Secularly precessing: remains constant in shape and size but changes orientation in a continuous, consistent manner."""

VehicleEllipseOptionType.OSCULATING.__doc__ = "Osculating: representative of the particular point on a satellite trajectory, but the actual trajectory differs from its two-body counterpart at other points in time."
VehicleEllipseOptionType.SECULARLY_PRECESSING.__doc__ = "Secularly precessing: remains constant in shape and size but changes orientation in a continuous, consistent manner."

agcls.AgTypeNameMap["VehicleEllipseOptionType"] = VehicleEllipseOptionType

class PropagatorType(IntEnum):
    """Vehicle propagators (available for vehicle types listed in parentheses)."""

    UNKNOWN = -1
    """Unknown propagator (all vehicles)."""
    HPOP = 0
    """High Precision Orbit Propagator (satellites and missiles): handles circular, elliptical, parabolic and hyperbolic orbits at distances ranging from the surface of the Earth to the orbit of the Moon and beyond."""
    J2_PERTURBATION = 1
    """J2 Perturbation (1st-order) (satellites): accounts for secular variations in the orbit elements due to Earth oblateness, but does not model atmospheric drag or solar or lunar gravitational forces."""
    J4_PERTURBATION = 2
    """J4 Perburbation (2nd order) (satellites): accounts for secular variations in orbit elements due to Earth oblateness, but doesn't model atmos. drag or solar or lunar grav. forces. Includes 1st and 2nd order effects of J2 and 1st order effects of J4."""
    LOP = 3
    """Long-term Orbit Propagator (satellites): allows accurate prediction of the motion of a satellite's orbit over many months or years."""
    SGP4 = 4
    """SGP4 (satellites): a standard AFSPACECOM propagator used with two-line mean element (TLE) sets."""
    SPICE = 5
    """SPICE (satellites): reads ephemeris from binary files that are in a standard format produced by the Jet Propulsion Laboratory (JPL)."""
    STK_EXTERNAL = 6
    """STK external (all vehicles): allows you to read the ephemeris for a satellite from a file."""
    TWO_BODY = 7
    """Two Body(Keplerian motion) propagator (satellites and missiles): considers only the force of gravity from the Earth, which is modeled as a point mass."""
    USER_EXTERNAL = 8
    """User-External propagator."""
    GREAT_ARC = 9
    """Great Arc (aircraft, ships and ground vehicles): defines a point-by-point path over the surface of the Earth with position and altitude defined at each point."""
    BALLISTIC = 10
    """Ballistic (missiles): defines vehicles following an elliptical path that begins and ends at the Earth's surface."""
    SIMPLE_ASCENT = 11
    """Simple Ascent (launch vehicles): creates an ascent trajectory based on launch and insertion parameters."""
    ASTROGATOR = 12
    """Astrogator propagator."""
    REAL_TIME = 13
    """Realtime propagator."""
    GPS = 14
    """GPS propagator."""
    AVIATOR = 15
    """Aviator propagator."""
    PROPAGATOR_11_PARAMETERS = 16
    """The 11-Parameter propagator models geostationary satellites using 11-Parameter files. The propagator uses an algorithm documented in Intelsat Earth Station Standards (IESS) IESS-412 (Rev. 2), available at www.celestrak.com."""
    SP3 = 17
    """The SP3 propagator reads .sp3 files of type 'a' and 'c' and allows you to use multiple files in sequence. These files are used to provide precise GPS orbits from the National Geodetic Survey (NGS)."""

PropagatorType.UNKNOWN.__doc__ = "Unknown propagator (all vehicles)."
PropagatorType.HPOP.__doc__ = "High Precision Orbit Propagator (satellites and missiles): handles circular, elliptical, parabolic and hyperbolic orbits at distances ranging from the surface of the Earth to the orbit of the Moon and beyond."
PropagatorType.J2_PERTURBATION.__doc__ = "J2 Perturbation (1st-order) (satellites): accounts for secular variations in the orbit elements due to Earth oblateness, but does not model atmospheric drag or solar or lunar gravitational forces."
PropagatorType.J4_PERTURBATION.__doc__ = "J4 Perburbation (2nd order) (satellites): accounts for secular variations in orbit elements due to Earth oblateness, but doesn't model atmos. drag or solar or lunar grav. forces. Includes 1st and 2nd order effects of J2 and 1st order effects of J4."
PropagatorType.LOP.__doc__ = "Long-term Orbit Propagator (satellites): allows accurate prediction of the motion of a satellite's orbit over many months or years."
PropagatorType.SGP4.__doc__ = "SGP4 (satellites): a standard AFSPACECOM propagator used with two-line mean element (TLE) sets."
PropagatorType.SPICE.__doc__ = "SPICE (satellites): reads ephemeris from binary files that are in a standard format produced by the Jet Propulsion Laboratory (JPL)."
PropagatorType.STK_EXTERNAL.__doc__ = "STK external (all vehicles): allows you to read the ephemeris for a satellite from a file."
PropagatorType.TWO_BODY.__doc__ = "Two Body(Keplerian motion) propagator (satellites and missiles): considers only the force of gravity from the Earth, which is modeled as a point mass."
PropagatorType.USER_EXTERNAL.__doc__ = "User-External propagator."
PropagatorType.GREAT_ARC.__doc__ = "Great Arc (aircraft, ships and ground vehicles): defines a point-by-point path over the surface of the Earth with position and altitude defined at each point."
PropagatorType.BALLISTIC.__doc__ = "Ballistic (missiles): defines vehicles following an elliptical path that begins and ends at the Earth's surface."
PropagatorType.SIMPLE_ASCENT.__doc__ = "Simple Ascent (launch vehicles): creates an ascent trajectory based on launch and insertion parameters."
PropagatorType.ASTROGATOR.__doc__ = "Astrogator propagator."
PropagatorType.REAL_TIME.__doc__ = "Realtime propagator."
PropagatorType.GPS.__doc__ = "GPS propagator."
PropagatorType.AVIATOR.__doc__ = "Aviator propagator."
PropagatorType.PROPAGATOR_11_PARAMETERS.__doc__ = "The 11-Parameter propagator models geostationary satellites using 11-Parameter files. The propagator uses an algorithm documented in Intelsat Earth Station Standards (IESS) IESS-412 (Rev. 2), available at www.celestrak.com."
PropagatorType.SP3.__doc__ = "The SP3 propagator reads .sp3 files of type 'a' and 'c' and allows you to use multiple files in sequence. These files are used to provide precise GPS orbits from the National Geodetic Survey (NGS)."

agcls.AgTypeNameMap["PropagatorType"] = PropagatorType

class PropagatorSGP4SwitchMethod(IntEnum):
    """TLE Switch method for the SGP4 propagator."""

    EPOCH = 0
    """Epoch: switch between TLE sets based on the epoch of the TLE."""
    MIDPOINT = 1
    """Mid-Point: switch between TLE sets based on the mid-point between two TLE epochs."""
    TIME_OF_CLOSEST_APPROACH = 2
    """TCA: switch between TLE sets based on the time of closest approach."""
    OVERRIDE = 3
    """Override: set the switching time between two TLE sets using the Start Time file."""
    DISABLE = 4
    """Disable: ignore the selected TLE set (if you attempt to disable all of them, STK uses the first in the scenario time period)."""

PropagatorSGP4SwitchMethod.EPOCH.__doc__ = "Epoch: switch between TLE sets based on the epoch of the TLE."
PropagatorSGP4SwitchMethod.MIDPOINT.__doc__ = "Mid-Point: switch between TLE sets based on the mid-point between two TLE epochs."
PropagatorSGP4SwitchMethod.TIME_OF_CLOSEST_APPROACH.__doc__ = "TCA: switch between TLE sets based on the time of closest approach."
PropagatorSGP4SwitchMethod.OVERRIDE.__doc__ = "Override: set the switching time between two TLE sets using the Start Time file."
PropagatorSGP4SwitchMethod.DISABLE.__doc__ = "Disable: ignore the selected TLE set (if you attempt to disable all of them, STK uses the first in the scenario time period)."

agcls.AgTypeNameMap["PropagatorSGP4SwitchMethod"] = PropagatorSGP4SwitchMethod

class VehicleSGP4TLESelectionType(IntEnum):
    """TLE Selection method for the SGP4 propagator."""

    USE_ALL = 0
    """Use all relevant TLEs."""
    USE_FIRST = 1
    """Use first relevant TLE."""

VehicleSGP4TLESelectionType.USE_ALL.__doc__ = "Use all relevant TLEs."
VehicleSGP4TLESelectionType.USE_FIRST.__doc__ = "Use first relevant TLE."

agcls.AgTypeNameMap["VehicleSGP4TLESelectionType"] = VehicleSGP4TLESelectionType

class VehicleSGP4AutomaticUpdateSourceType(IntEnum):
    """The TLE sources where the SGP4 propagator retrieves TLEs from automatically upon propagation."""

    UNKNOWN = -1
    """Unknown or unsupported TLE source."""
    ONLINE = 0
    """Retrieve TLEs from an online source (AGI server)."""
    ONLINE_SPACE_TRACK = 1
    """Retrieve TLEs from the space track. Not currently supported."""
    FILE = 2
    """Retrieve TLEs from a file."""
    NONE = 3
    """Manually specify/import TLEs, no auto-updates will be performed during propagation."""

VehicleSGP4AutomaticUpdateSourceType.UNKNOWN.__doc__ = "Unknown or unsupported TLE source."
VehicleSGP4AutomaticUpdateSourceType.ONLINE.__doc__ = "Retrieve TLEs from an online source (AGI server)."
VehicleSGP4AutomaticUpdateSourceType.ONLINE_SPACE_TRACK.__doc__ = "Retrieve TLEs from the space track. Not currently supported."
VehicleSGP4AutomaticUpdateSourceType.FILE.__doc__ = "Retrieve TLEs from a file."
VehicleSGP4AutomaticUpdateSourceType.NONE.__doc__ = "Manually specify/import TLEs, no auto-updates will be performed during propagation."

agcls.AgTypeNameMap["VehicleSGP4AutomaticUpdateSourceType"] = VehicleSGP4AutomaticUpdateSourceType

class ThirdBodyGravitySourceType(IntEnum):
    """Sources for 3rd body gravitation data."""

    CENTRAL_BODY_FILE = 0
    """Central body file (all bodies): gravitational value from editable central body file shipped with STK."""
    HPOP_HISTORICAL = 1
    """HPOP historical (Sun and Moon only): hard-coded, uneditable value used in prior versions of HPOP."""
    JPL_DEVELOPMENTAL_EPHEMERIS = 2
    """JPL DE (Sun, Moon and planets): DE 405 ephemerides, covering a time span from 1960 to 2060."""
    USER_SPECIFIED = 3
    """User-specified: enter the value directly."""

ThirdBodyGravitySourceType.CENTRAL_BODY_FILE.__doc__ = "Central body file (all bodies): gravitational value from editable central body file shipped with STK."
ThirdBodyGravitySourceType.HPOP_HISTORICAL.__doc__ = "HPOP historical (Sun and Moon only): hard-coded, uneditable value used in prior versions of HPOP."
ThirdBodyGravitySourceType.JPL_DEVELOPMENTAL_EPHEMERIS.__doc__ = "JPL DE (Sun, Moon and planets): DE 405 ephemerides, covering a time span from 1960 to 2060."
ThirdBodyGravitySourceType.USER_SPECIFIED.__doc__ = "User-specified: enter the value directly."

agcls.AgTypeNameMap["ThirdBodyGravitySourceType"] = ThirdBodyGravitySourceType

class VehicleGeomagneticFluxSourceType(IntEnum):
    """GeomagFluxSrc."""

    READ_KP_FROM_FILE = 0
    """Read Kp from file."""
    READ_AP_FROM_FILE = 1
    """Read Ap from file."""

VehicleGeomagneticFluxSourceType.READ_KP_FROM_FILE.__doc__ = "Read Kp from file."
VehicleGeomagneticFluxSourceType.READ_AP_FROM_FILE.__doc__ = "Read Ap from file."

agcls.AgTypeNameMap["VehicleGeomagneticFluxSourceType"] = VehicleGeomagneticFluxSourceType

class VehicleGeomagneticFluxUpdateRateType(IntEnum):
    """Geomagnetic flux update rate options."""

    EVERY_3_HOURS = 0
    """3-Hourly: updates using the eight values measured at three-hour intervals."""
    INTERPOLATE_3_HOURLY_DATA = 1
    """3-Hourly Interpolated: updates by interpolating the three-hour values."""
    DAILY = 2
    """Daily."""
    CUBIC_SPLINE_3_HOURLY_DATA = 3
    """3-Hourly Cubic Spline."""

VehicleGeomagneticFluxUpdateRateType.EVERY_3_HOURS.__doc__ = "3-Hourly: updates using the eight values measured at three-hour intervals."
VehicleGeomagneticFluxUpdateRateType.INTERPOLATE_3_HOURLY_DATA.__doc__ = "3-Hourly Interpolated: updates by interpolating the three-hour values."
VehicleGeomagneticFluxUpdateRateType.DAILY.__doc__ = "Daily."
VehicleGeomagneticFluxUpdateRateType.CUBIC_SPLINE_3_HOURLY_DATA.__doc__ = "3-Hourly Cubic Spline."

agcls.AgTypeNameMap["VehicleGeomagneticFluxUpdateRateType"] = VehicleGeomagneticFluxUpdateRateType

class VehicleSolarFluxGeomagneticType(IntEnum):
    """Options for specifying solar and geomagnetic flux."""

    UNKNOWN = -1
    """Unknown."""
    MANUAL_ENTRY = 0
    """Specify appropriate parameters directly, depending on the selected atmospheric density model."""
    FILE = 1
    """Use a file to specify solar and geomagnetic flux."""

VehicleSolarFluxGeomagneticType.UNKNOWN.__doc__ = "Unknown."
VehicleSolarFluxGeomagneticType.MANUAL_ENTRY.__doc__ = "Specify appropriate parameters directly, depending on the selected atmospheric density model."
VehicleSolarFluxGeomagneticType.FILE.__doc__ = "Use a file to specify solar and geomagnetic flux."

agcls.AgTypeNameMap["VehicleSolarFluxGeomagneticType"] = VehicleSolarFluxGeomagneticType

class VehicleIntegrationModel(IntEnum):
    """Integration methods."""

    BULIRSCH_STOER = 0
    """Bulirsch-Stoer: integration method based on Richardson extrapolation with automatic step size control."""
    GAUSS_JACKSON = 1
    """Gauss-Jackson: 12th order Gauss-Jackson integration method for second order ODEs."""
    RUNGE_KUTTA_4 = 2
    """RK 4: Runge-Kutta integration method of 4th order with no error control for the integration step size."""
    RUNGE_KUTTA_FEHLBERG_78 = 3
    """RKF 7(8): Runge-Kutta-Fehlberg integration method of 7th order with 8th order error control for the integration step size."""
    RUNGE_KUTTA_VERNER_89_EFFICIENT = 4
    """RKV 8(9) Efficient: Runge-Kutta-Verner integration method of 8th order with 9th order error control for the integration step size, using the efficient coefficient set."""

VehicleIntegrationModel.BULIRSCH_STOER.__doc__ = "Bulirsch-Stoer: integration method based on Richardson extrapolation with automatic step size control."
VehicleIntegrationModel.GAUSS_JACKSON.__doc__ = "Gauss-Jackson: 12th order Gauss-Jackson integration method for second order ODEs."
VehicleIntegrationModel.RUNGE_KUTTA_4.__doc__ = "RK 4: Runge-Kutta integration method of 4th order with no error control for the integration step size."
VehicleIntegrationModel.RUNGE_KUTTA_FEHLBERG_78.__doc__ = "RKF 7(8): Runge-Kutta-Fehlberg integration method of 7th order with 8th order error control for the integration step size."
VehicleIntegrationModel.RUNGE_KUTTA_VERNER_89_EFFICIENT.__doc__ = "RKV 8(9) Efficient: Runge-Kutta-Verner integration method of 8th order with 9th order error control for the integration step size, using the efficient coefficient set."

agcls.AgTypeNameMap["VehicleIntegrationModel"] = VehicleIntegrationModel

class VehiclePredictorCorrectorScheme(IntEnum):
    """Predictor Corrector schemes."""

    FULL_CORRECTION = 0
    """Full correction: use a full evaluation of the acceleration model at the end of a Gauss-Jackson integration step."""
    PSEUDOCORRECTION = 1
    """Pseudo correction: use a pseudo-evaluation where only the two body acceleration is updated."""

VehiclePredictorCorrectorScheme.FULL_CORRECTION.__doc__ = "Full correction: use a full evaluation of the acceleration model at the end of a Gauss-Jackson integration step."
VehiclePredictorCorrectorScheme.PSEUDOCORRECTION.__doc__ = "Pseudo correction: use a pseudo-evaluation where only the two body acceleration is updated."

agcls.AgTypeNameMap["VehiclePredictorCorrectorScheme"] = VehiclePredictorCorrectorScheme

class VehicleMethod(IntEnum):
    """Step size control options."""

    FIXED_STEP = 0
    """Fixed step: step size will remain constant throughout the integration of the orbit."""
    RELATIVE_ERROR = 1
    """Relative error: Control the step size based on relative error by providing the error tolerance, and the minimum and maximum integration step sizes to be allowed via relative error control."""

VehicleMethod.FIXED_STEP.__doc__ = "Fixed step: step size will remain constant throughout the integration of the orbit."
VehicleMethod.RELATIVE_ERROR.__doc__ = "Relative error: Control the step size based on relative error by providing the error tolerance, and the minimum and maximum integration step sizes to be allowed via relative error control."

agcls.AgTypeNameMap["VehicleMethod"] = VehicleMethod

class VehicleInterpolationMethod(IntEnum):
    """Interpolation methods."""

    UNKNOWN = -1
    """Unknown or unsupported interpolation method."""
    HERMITIAN = 0
    """Hermitian: uses the position and velocity ephemeris to interpolate position and velocity together."""
    LAGRANGE = 1
    """Lagrange: interpolates position and velocity separately."""
    VOP = 2
    """VOP: a special interpolator that deals well with ephemeris produced at a large step size."""

VehicleInterpolationMethod.UNKNOWN.__doc__ = "Unknown or unsupported interpolation method."
VehicleInterpolationMethod.HERMITIAN.__doc__ = "Hermitian: uses the position and velocity ephemeris to interpolate position and velocity together."
VehicleInterpolationMethod.LAGRANGE.__doc__ = "Lagrange: interpolates position and velocity separately."
VehicleInterpolationMethod.VOP.__doc__ = "VOP: a special interpolator that deals well with ephemeris produced at a large step size."

agcls.AgTypeNameMap["VehicleInterpolationMethod"] = VehicleInterpolationMethod

class VehicleFrame(IntEnum):
    """Frame options for covariance matrix."""

    FRENET = 0
    """Frenet."""
    J2000 = 1
    """J2000."""
    LVLH = 2
    """LVLH."""
    TRUE_OF_DATE = 3
    """True of Date."""

VehicleFrame.FRENET.__doc__ = "Frenet."
VehicleFrame.J2000.__doc__ = "J2000."
VehicleFrame.LVLH.__doc__ = "LVLH."
VehicleFrame.TRUE_OF_DATE.__doc__ = "True of Date."

agcls.AgTypeNameMap["VehicleFrame"] = VehicleFrame

class VehicleCorrelationListType(IntEnum):
    """Correlation List row and column values."""

    DRAG = 0
    """Drag parameter."""
    NONE = 1
    """None."""
    SOLAR_RADIATION_PRESSURE = 2
    """Solar radiation pressure parameter."""

VehicleCorrelationListType.DRAG.__doc__ = "Drag parameter."
VehicleCorrelationListType.NONE.__doc__ = "None."
VehicleCorrelationListType.SOLAR_RADIATION_PRESSURE.__doc__ = "Solar radiation pressure parameter."

agcls.AgTypeNameMap["VehicleCorrelationListType"] = VehicleCorrelationListType

class VehicleConsiderAnalysisType(IntEnum):
    """Consider parameters for HPOP covariance."""

    DRAG = 1
    """Drag: the consider parameter is the ballistic coefficient B, where B = Cd * DragArea/Mass."""
    SOLAR_RADIATION_PRESSURE = 2
    """Solar radiation pressure (SRP): the consider parameter is K, where K = Cr * SRPArea/Mass."""

VehicleConsiderAnalysisType.DRAG.__doc__ = "Drag: the consider parameter is the ballistic coefficient B, where B = Cd * DragArea/Mass."
VehicleConsiderAnalysisType.SOLAR_RADIATION_PRESSURE.__doc__ = "Solar radiation pressure (SRP): the consider parameter is K, where K = Cr * SRPArea/Mass."

agcls.AgTypeNameMap["VehicleConsiderAnalysisType"] = VehicleConsiderAnalysisType

class VehicleWaypointComputationMethod(IntEnum):
    """Methods for computing waypoints."""

    DETERMINE_TIME_ACCELERATION_FROM_VELOCITY = 0
    """Derive time and acceleration from velocity (smooth rate)."""
    DETERMINE_TIME_FROM_VELOCITY_AND_ACCELERATION = 1
    """Derive time from velocity and acceleration."""
    DETERMINE_VELOCITY_FROM_TIME = 2
    """Derive velocity from time (enforces a zero acceleration)."""

VehicleWaypointComputationMethod.DETERMINE_TIME_ACCELERATION_FROM_VELOCITY.__doc__ = "Derive time and acceleration from velocity (smooth rate)."
VehicleWaypointComputationMethod.DETERMINE_TIME_FROM_VELOCITY_AND_ACCELERATION.__doc__ = "Derive time from velocity and acceleration."
VehicleWaypointComputationMethod.DETERMINE_VELOCITY_FROM_TIME.__doc__ = "Derive velocity from time (enforces a zero acceleration)."

agcls.AgTypeNameMap["VehicleWaypointComputationMethod"] = VehicleWaypointComputationMethod

class VehicleAltitudeReference(IntEnum):
    """Reference altitude options for waypoints."""

    UNKNOWN = -1
    """Unknown."""
    MEAN_SEA_LEVEL = 0
    """Referenced to Mean Sea Level."""
    TERRAIN = 1
    """Referenced to the terrain under the vehicle's route (if terrain sources are loaded into the scenario)."""
    WGS84 = 2
    """Referenced to the central body's reference ellipsoid (WGS84)."""
    ELLIPSOID = 3
    """Referenced to the central body's reference ellipsoid."""

VehicleAltitudeReference.UNKNOWN.__doc__ = "Unknown."
VehicleAltitudeReference.MEAN_SEA_LEVEL.__doc__ = "Referenced to Mean Sea Level."
VehicleAltitudeReference.TERRAIN.__doc__ = "Referenced to the terrain under the vehicle's route (if terrain sources are loaded into the scenario)."
VehicleAltitudeReference.WGS84.__doc__ = "Referenced to the central body's reference ellipsoid (WGS84)."
VehicleAltitudeReference.ELLIPSOID.__doc__ = "Referenced to the central body's reference ellipsoid."

agcls.AgTypeNameMap["VehicleAltitudeReference"] = VehicleAltitudeReference

class VehicleWaypointInterpolationMethod(IntEnum):
    """Interpolation methods."""

    ELLIPSOID_HEIGHT = 0
    """Ellipsoid height: interpolate using the greatArc interpolator without considering terrain."""
    TERRAIN_HEIGHT = 1
    """Terrain height: assigns a height above terrain by a linear interpolation between the heights above terrain at the waypoints."""

VehicleWaypointInterpolationMethod.ELLIPSOID_HEIGHT.__doc__ = "Ellipsoid height: interpolate using the greatArc interpolator without considering terrain."
VehicleWaypointInterpolationMethod.TERRAIN_HEIGHT.__doc__ = "Terrain height: assigns a height above terrain by a linear interpolation between the heights above terrain at the waypoints."

agcls.AgTypeNameMap["VehicleWaypointInterpolationMethod"] = VehicleWaypointInterpolationMethod

class VehicleLaunch(IntEnum):
    """Options for launch coordinates."""

    UNKNOWN = -1
    """Unknown."""
    DETIC = 0
    """LLA (geodetic) coordinates."""
    CENTRIC = 1
    """LLR (geocentric) coordinates."""

VehicleLaunch.UNKNOWN.__doc__ = "Unknown."
VehicleLaunch.DETIC.__doc__ = "LLA (geodetic) coordinates."
VehicleLaunch.CENTRIC.__doc__ = "LLR (geocentric) coordinates."

agcls.AgTypeNameMap["VehicleLaunch"] = VehicleLaunch

class VehicleImpact(IntEnum):
    """Impact location options."""

    UNKNOWN = -1
    """Unknown."""
    IMPACT_LOCATION_DETIC = 0
    """LLA (geodetic) impact location."""
    IMPACT_LOCATION_CENTRIC = 1
    """LLR (geocentric) impact location."""

VehicleImpact.UNKNOWN.__doc__ = "Unknown."
VehicleImpact.IMPACT_LOCATION_DETIC.__doc__ = "LLA (geodetic) impact location."
VehicleImpact.IMPACT_LOCATION_CENTRIC.__doc__ = "LLR (geocentric) impact location."

agcls.AgTypeNameMap["VehicleImpact"] = VehicleImpact

class VehicleLaunchControl(IntEnum):
    """Flight parameters for a missile."""

    UNKNOWN = -1
    """Unknown."""
    FIXED_APOGEE_ALTITUDE = 0
    """Fixed apogee altitude."""
    FIXED_DELTA_V = 1
    """Fixed Delta V."""
    FIXED_DELTA_V_MINIMUM_ECCENTRICITY = 2
    """Fixed Delta V minimum eccentricity."""
    FIXED_TIME_OF_FLIGHT = 3
    """Fixed time of flight."""

VehicleLaunchControl.UNKNOWN.__doc__ = "Unknown."
VehicleLaunchControl.FIXED_APOGEE_ALTITUDE.__doc__ = "Fixed apogee altitude."
VehicleLaunchControl.FIXED_DELTA_V.__doc__ = "Fixed Delta V."
VehicleLaunchControl.FIXED_DELTA_V_MINIMUM_ECCENTRICITY.__doc__ = "Fixed Delta V minimum eccentricity."
VehicleLaunchControl.FIXED_TIME_OF_FLIGHT.__doc__ = "Fixed time of flight."

agcls.AgTypeNameMap["VehicleLaunchControl"] = VehicleLaunchControl

class VehicleImpactLocation(IntEnum):
    """Options for specifying missile impact point."""

    UNKNOWN = -1
    """Unknown."""
    LAUNCH_AZ_EL = 0
    """Use azimuth and elevation."""
    POINT = 1
    """Use geodetic or geocentric elements."""

VehicleImpactLocation.UNKNOWN.__doc__ = "Unknown."
VehicleImpactLocation.LAUNCH_AZ_EL.__doc__ = "Use azimuth and elevation."
VehicleImpactLocation.POINT.__doc__ = "Use geodetic or geocentric elements."

agcls.AgTypeNameMap["VehicleImpactLocation"] = VehicleImpactLocation

class VehiclePassNumbering(IntEnum):
    """Pass numbering options."""

    UNKNOWN = -1
    """Represents pass numbering currently not supported by the Object Model."""
    DATE_OF_FIRST_PASS = 0
    """Date of First Pass: override the first pass start time (normally the ephemeris start time)."""
    FIRST_PASS_NUMBER = 1
    """First Pass #: an integer to identify the number at which pass numbering begins."""
    MAINTAIN_PASS_NUMBER = 2
    """Maintain Pass #: STK continues the existing pass numbering sequence when a vehicle is repropagated or the epoch changes."""
    USE_PROPAGATOR_PASS_DATA = 3
    """Use Propagator Pass Data: should be used when the propagator is SGP4, which has its own definition for passes."""

VehiclePassNumbering.UNKNOWN.__doc__ = "Represents pass numbering currently not supported by the Object Model."
VehiclePassNumbering.DATE_OF_FIRST_PASS.__doc__ = "Date of First Pass: override the first pass start time (normally the ephemeris start time)."
VehiclePassNumbering.FIRST_PASS_NUMBER.__doc__ = "First Pass #: an integer to identify the number at which pass numbering begins."
VehiclePassNumbering.MAINTAIN_PASS_NUMBER.__doc__ = "Maintain Pass #: STK continues the existing pass numbering sequence when a vehicle is repropagated or the epoch changes."
VehiclePassNumbering.USE_PROPAGATOR_PASS_DATA.__doc__ = "Use Propagator Pass Data: should be used when the propagator is SGP4, which has its own definition for passes."

agcls.AgTypeNameMap["VehiclePassNumbering"] = VehiclePassNumbering

class VehiclePartialPassMeasurement(IntEnum):
    """Partial Pass Measurement methods (typically used for reporting data)."""

    ANGLE = 0
    """By Angle: angles are used to measure partial passes."""
    MEAN_ARGUMENT_OF_LATITUDE = 1
    """By Mean Argument of Latitude: passes are measured as the difference in the mean argument of latitude at the current time and that at the start of the pass break divided by 2 pi (argument of latitude = mean anomaly plus argument of perigee)."""
    TIME = 2
    """By Time: time is used to measure partial passes."""

VehiclePartialPassMeasurement.ANGLE.__doc__ = "By Angle: angles are used to measure partial passes."
VehiclePartialPassMeasurement.MEAN_ARGUMENT_OF_LATITUDE.__doc__ = "By Mean Argument of Latitude: passes are measured as the difference in the mean argument of latitude at the current time and that at the start of the pass break divided by 2 pi (argument of latitude = mean anomaly plus argument of perigee)."
VehiclePartialPassMeasurement.TIME.__doc__ = "By Time: time is used to measure partial passes."

agcls.AgTypeNameMap["VehiclePartialPassMeasurement"] = VehiclePartialPassMeasurement

class VehicleCoordinateSystem(IntEnum):
    """Coordinate system used for measurement of latitude and longitude."""

    CENTRAL_BODY_FIXED = 0
    """Use a Central Body Fixed coordinate system."""
    INERTIAL = 1
    """Use an Inertial coordinate system."""
    TRUE_OF_DATE = 2
    """Use an True Of Date coordinate system."""
    TRUE_OF_EPOCH = 3
    """Use an True Of Epoch coordinate system."""

VehicleCoordinateSystem.CENTRAL_BODY_FIXED.__doc__ = "Use a Central Body Fixed coordinate system."
VehicleCoordinateSystem.INERTIAL.__doc__ = "Use an Inertial coordinate system."
VehicleCoordinateSystem.TRUE_OF_DATE.__doc__ = "Use an True Of Date coordinate system."
VehicleCoordinateSystem.TRUE_OF_EPOCH.__doc__ = "Use an True Of Epoch coordinate system."

agcls.AgTypeNameMap["VehicleCoordinateSystem"] = VehicleCoordinateSystem

class VehicleBreakAngleType(IntEnum):
    """Definition options for setting pass breaks:."""

    UNKNOWN = -1
    """Represents a type of break angle not supported by the Object Model."""
    BY_LATITUDE = 0
    """Latitude: the Latitude crossing at which a new pass begins. Recommended for non-equatorial orbits. A latitude of 0 deg for an inclined orbit coincides with the ascending or descending node."""
    BY_LONGITUDE = 1
    """Longitude: the Longitude crossing at which a new pass will begin. Not suitable for polar orbits."""

VehicleBreakAngleType.UNKNOWN.__doc__ = "Represents a type of break angle not supported by the Object Model."
VehicleBreakAngleType.BY_LATITUDE.__doc__ = "Latitude: the Latitude crossing at which a new pass begins. Recommended for non-equatorial orbits. A latitude of 0 deg for an inclined orbit coincides with the ascending or descending node."
VehicleBreakAngleType.BY_LONGITUDE.__doc__ = "Longitude: the Longitude crossing at which a new pass will begin. Not suitable for polar orbits."

agcls.AgTypeNameMap["VehicleBreakAngleType"] = VehicleBreakAngleType

class VehicleDirection(IntEnum):
    """Direction of latitude crossing at the beginning of a pass."""

    ASCENDING = 0
    """Ascending: crossing the specified latitude from south to north."""
    DESCENDING = 1
    """Descending: crossing the specified latitude from north to south."""

VehicleDirection.ASCENDING.__doc__ = "Ascending: crossing the specified latitude from south to north."
VehicleDirection.DESCENDING.__doc__ = "Descending: crossing the specified latitude from north to south."

agcls.AgTypeNameMap["VehicleDirection"] = VehicleDirection

class Graphics3DLocation(IntEnum):
    """Location options for the display of textual data in the 3D Graphics window."""

    WINDOW_3D = 0
    """Display in the 3D window."""
    DISPLAY_AREA = 1
    """Display in the data display area."""
    OFFSET_FROM_OBJECT = 2
    """Display at a specified offset from a selected object."""
    OFFSET_FROM_ACCESS_OBJECT = 3
    """Display at a specified offset from the access object."""

Graphics3DLocation.WINDOW_3D.__doc__ = "Display in the 3D window."
Graphics3DLocation.DISPLAY_AREA.__doc__ = "Display in the data display area."
Graphics3DLocation.OFFSET_FROM_OBJECT.__doc__ = "Display at a specified offset from a selected object."
Graphics3DLocation.OFFSET_FROM_ACCESS_OBJECT.__doc__ = "Display at a specified offset from the access object."

agcls.AgTypeNameMap["Graphics3DLocation"] = Graphics3DLocation

class Graphics3DXOrigin(IntEnum):
    """X origin options for positioning data display."""

    X_ORIGIN_LEFT = 0
    """X position offset from the left."""
    X_ORIGIN_RIGHT = 1
    """X position offset from the right."""

Graphics3DXOrigin.X_ORIGIN_LEFT.__doc__ = "X position offset from the left."
Graphics3DXOrigin.X_ORIGIN_RIGHT.__doc__ = "X position offset from the right."

agcls.AgTypeNameMap["Graphics3DXOrigin"] = Graphics3DXOrigin

class Graphics3DYOrigin(IntEnum):
    """Y origin options for positioning data display."""

    Y_ORIGIN_BOTTOM = 0
    """Y position offset from the bottom."""
    Y_ORIGIN_TOP = 1
    """Y position offset from the top."""

Graphics3DYOrigin.Y_ORIGIN_BOTTOM.__doc__ = "Y position offset from the bottom."
Graphics3DYOrigin.Y_ORIGIN_TOP.__doc__ = "Y position offset from the top."

agcls.AgTypeNameMap["Graphics3DYOrigin"] = Graphics3DYOrigin

class Graphics3DFontSize(IntEnum):
    """Font size for data display."""

    LARGE = 0
    """Large font."""
    MEDIUM = 1
    """Medium font."""
    SMALL = 2
    """Small font."""

Graphics3DFontSize.LARGE.__doc__ = "Large font."
Graphics3DFontSize.MEDIUM.__doc__ = "Medium font."
Graphics3DFontSize.SMALL.__doc__ = "Small font."

agcls.AgTypeNameMap["Graphics3DFontSize"] = Graphics3DFontSize

class AircraftWGS84WarningType(IntEnum):
    """Display mode options for aircraft mission modeler WGS84 warning."""

    ALWAYS = 0x0
    """Always display warning."""
    ONLY_ONCE = 0x1
    """Only display the warning once."""
    NEVER = 0x2
    """Never display the warning."""

AircraftWGS84WarningType.ALWAYS.__doc__ = "Always display warning."
AircraftWGS84WarningType.ONLY_ONCE.__doc__ = "Only display the warning once."
AircraftWGS84WarningType.NEVER.__doc__ = "Never display the warning."

agcls.AgTypeNameMap["AircraftWGS84WarningType"] = AircraftWGS84WarningType

class SurfaceReference(IntEnum):
    """Options for surface reference of earth globes."""

    WGS84_ELLIPSOID = 0x0
    """WGS84 Ellipsoid."""
    MEAN_SEA_LEVEL = 0x1
    """Mean Sea Level."""

SurfaceReference.WGS84_ELLIPSOID.__doc__ = "WGS84 Ellipsoid."
SurfaceReference.MEAN_SEA_LEVEL.__doc__ = "Mean Sea Level."

agcls.AgTypeNameMap["SurfaceReference"] = SurfaceReference

class Graphics3DFormat(IntEnum):
    """Font format for data display."""

    HORIZONTAL = 0
    """Horizontal layout."""
    NO_LABELS = 1
    """No label display."""
    VERTICAL = 2
    """Vertical layout."""

Graphics3DFormat.HORIZONTAL.__doc__ = "Horizontal layout."
Graphics3DFormat.NO_LABELS.__doc__ = "No label display."
Graphics3DFormat.VERTICAL.__doc__ = "Vertical layout."

agcls.AgTypeNameMap["Graphics3DFormat"] = Graphics3DFormat

class AttitudeStandardType(IntEnum):
    """AttitudeStandardType tells the user which interface to cast to. eRouteAttitudeStandard -> AttitudeStandardRoute, eTrajectoryAttitudeStandard -> AttitudeStandardTrajectory, eOrbitAttitudeStanard -> IAttitudeStandardOrbit."""

    ROUTE_ATTITUDE_STANDARD = 0
    """Cast to AttitudeStandardRoute interface."""
    TRAJECTORY_ATTITUDE_STANDARD = 1
    """Cast to AttitudeStandardTrajectory interface."""
    ORBIT_ATTITUDE_STANDARD = 2
    """Cast to AttitudeStandardOrbit interface."""

AttitudeStandardType.ROUTE_ATTITUDE_STANDARD.__doc__ = "Cast to AttitudeStandardRoute interface."
AttitudeStandardType.TRAJECTORY_ATTITUDE_STANDARD.__doc__ = "Cast to AttitudeStandardTrajectory interface."
AttitudeStandardType.ORBIT_ATTITUDE_STANDARD.__doc__ = "Cast to AttitudeStandardOrbit interface."

agcls.AgTypeNameMap["AttitudeStandardType"] = AttitudeStandardType

class VehicleAttitude(IntEnum):
    """Available attitude types."""

    UNKNOWN = -1
    """Unsupported attitude option."""
    REAL_TIME = 1
    """Real-time: define the vehicle's attitude profile using near-real time attitude data supplied via Connect."""
    STANDARD = 2
    """Standard: use a basic, targeted or external attitude profile."""

VehicleAttitude.UNKNOWN.__doc__ = "Unsupported attitude option."
VehicleAttitude.REAL_TIME.__doc__ = "Real-time: define the vehicle's attitude profile using near-real time attitude data supplied via Connect."
VehicleAttitude.STANDARD.__doc__ = "Standard: use a basic, targeted or external attitude profile."

agcls.AgTypeNameMap["VehicleAttitude"] = VehicleAttitude

class AttitudeProfile(IntEnum):
    """Predefined attitude profiles."""

    UNKNOWN = -1
    """Non-supported profile."""
    ALIGNED_AND_CONSTRAINED = 0
    """Aligned and Constrained attitude profile."""
    CENTRAL_BODY_FIXED = 1
    """Central Body Fixed attitude profile."""
    FIXED_VELOCITY_ALIGNMENT_WITH_NADIR_CONSTRAINT = 2
    """ECF Velocity Alignment with Nadir Constraint attitude profile."""
    FIXED_VELOCITY_ALIGNMENT_WITH_RADIAL_CONSTRAINT = 3
    """ECF Velocity Alignment with Radial Constraint attitude profile."""
    INERTIAL_VELOCITY_ALIGNMENT_WITH_SUN_CONSTRAINT = 4
    """ECI Velocity Alignment with Sun Constraint attitude profile."""
    INERTIAL_VELOCITY_ALIGNMENT_WITH_NADIR_CONSTRAINT = 5
    """ECI Velocity Alignment with Nadir Constraint attitude profile."""
    FIXED_IN_AXES = 6
    """Fixed in Axes attitude profile."""
    INERTIALLY_FIXED = 7
    """Inertially Fixed attitude profile."""
    NADIR_ALIGNMENT_WITH_FIXED_VELOCITY_CONSTRAINT = 8
    """Nadir Alignment with ECF Velocity Constraint attitude profile."""
    NADIR_ALIGNMENT_WITH_INERTIAL_VELOCITY_CONSTRAINT = 9
    """Nadir Alignment with ECI Velocity Constraint attitude profile."""
    NADIR_ALIGNMENT_WITH_SUN_CONSTRAINT = 10
    """Nadir Alignment with Sun Constraint attitude profile."""
    NADIR_ALIGNMENT_WITH_ORBIT_NORMAL_CONSTRAINT = 11
    """Nadir Alignment with Orbit Normal Constraint attitude profile."""
    PRECESSING_SPIN = 12
    """Precessing Spin attitude profile."""
    SPIN_ALIGNED = 13
    """Spin Aligned attitude profile."""
    SPIN_ABOUT_SUN_VECTOR = 14
    """Spin about Sun Vector attitude profile."""
    SPIN_ABOUT_NADIR = 15
    """Spin about Nadir attitude profile."""
    SPINNING = 16
    """Spinning attitude profile."""
    SUN_ALIGNMENT_OCCULTATION_NORMAL_CONSTRAINT = 17
    """Sun Alignmnent Occultation Normal Constraint attitude profile."""
    SUN_ALIGNMENT_WITH_INERTIAL_Z_AXIS_CONSTRAINT = 18
    """Sun Alignment with ECI Z Axis Constraint attitude profile."""
    SUN_ALIGNMENT_WITH_Z_IN_ORBIT_PLANE = 19
    """Sun Alignment with Z in Orbit Plane attitude profile."""
    SUN_ALIGNMENT_WITH_ECLIPTIC_NORMAL_CONSTRAINT = 20
    """Sun Alignment with Ecliptic Normal Constraint attitude profile."""
    SUN_ALIGNMENT_WITH_NADIR_CONSTRAINT = 21
    """Sun Alignment with Nadir Constraint attitude profile."""
    XPOP_INERTIAL_ATTITUDE = 22
    """XPOP Inertial Attitude attitude profile."""
    YAW_TO_NADIR = 23
    """Yaw to Nadir attitude profile."""
    COORDINATED_TURN = 24
    """Coordinated Turn attitude profile."""
    GPS = 27
    """GPS attitude profile."""
    AVIATOR = 28
    """Aviator attitude profile."""

AttitudeProfile.UNKNOWN.__doc__ = "Non-supported profile."
AttitudeProfile.ALIGNED_AND_CONSTRAINED.__doc__ = "Aligned and Constrained attitude profile."
AttitudeProfile.CENTRAL_BODY_FIXED.__doc__ = "Central Body Fixed attitude profile."
AttitudeProfile.FIXED_VELOCITY_ALIGNMENT_WITH_NADIR_CONSTRAINT.__doc__ = "ECF Velocity Alignment with Nadir Constraint attitude profile."
AttitudeProfile.FIXED_VELOCITY_ALIGNMENT_WITH_RADIAL_CONSTRAINT.__doc__ = "ECF Velocity Alignment with Radial Constraint attitude profile."
AttitudeProfile.INERTIAL_VELOCITY_ALIGNMENT_WITH_SUN_CONSTRAINT.__doc__ = "ECI Velocity Alignment with Sun Constraint attitude profile."
AttitudeProfile.INERTIAL_VELOCITY_ALIGNMENT_WITH_NADIR_CONSTRAINT.__doc__ = "ECI Velocity Alignment with Nadir Constraint attitude profile."
AttitudeProfile.FIXED_IN_AXES.__doc__ = "Fixed in Axes attitude profile."
AttitudeProfile.INERTIALLY_FIXED.__doc__ = "Inertially Fixed attitude profile."
AttitudeProfile.NADIR_ALIGNMENT_WITH_FIXED_VELOCITY_CONSTRAINT.__doc__ = "Nadir Alignment with ECF Velocity Constraint attitude profile."
AttitudeProfile.NADIR_ALIGNMENT_WITH_INERTIAL_VELOCITY_CONSTRAINT.__doc__ = "Nadir Alignment with ECI Velocity Constraint attitude profile."
AttitudeProfile.NADIR_ALIGNMENT_WITH_SUN_CONSTRAINT.__doc__ = "Nadir Alignment with Sun Constraint attitude profile."
AttitudeProfile.NADIR_ALIGNMENT_WITH_ORBIT_NORMAL_CONSTRAINT.__doc__ = "Nadir Alignment with Orbit Normal Constraint attitude profile."
AttitudeProfile.PRECESSING_SPIN.__doc__ = "Precessing Spin attitude profile."
AttitudeProfile.SPIN_ALIGNED.__doc__ = "Spin Aligned attitude profile."
AttitudeProfile.SPIN_ABOUT_SUN_VECTOR.__doc__ = "Spin about Sun Vector attitude profile."
AttitudeProfile.SPIN_ABOUT_NADIR.__doc__ = "Spin about Nadir attitude profile."
AttitudeProfile.SPINNING.__doc__ = "Spinning attitude profile."
AttitudeProfile.SUN_ALIGNMENT_OCCULTATION_NORMAL_CONSTRAINT.__doc__ = "Sun Alignmnent Occultation Normal Constraint attitude profile."
AttitudeProfile.SUN_ALIGNMENT_WITH_INERTIAL_Z_AXIS_CONSTRAINT.__doc__ = "Sun Alignment with ECI Z Axis Constraint attitude profile."
AttitudeProfile.SUN_ALIGNMENT_WITH_Z_IN_ORBIT_PLANE.__doc__ = "Sun Alignment with Z in Orbit Plane attitude profile."
AttitudeProfile.SUN_ALIGNMENT_WITH_ECLIPTIC_NORMAL_CONSTRAINT.__doc__ = "Sun Alignment with Ecliptic Normal Constraint attitude profile."
AttitudeProfile.SUN_ALIGNMENT_WITH_NADIR_CONSTRAINT.__doc__ = "Sun Alignment with Nadir Constraint attitude profile."
AttitudeProfile.XPOP_INERTIAL_ATTITUDE.__doc__ = "XPOP Inertial Attitude attitude profile."
AttitudeProfile.YAW_TO_NADIR.__doc__ = "Yaw to Nadir attitude profile."
AttitudeProfile.COORDINATED_TURN.__doc__ = "Coordinated Turn attitude profile."
AttitudeProfile.GPS.__doc__ = "GPS attitude profile."
AttitudeProfile.AVIATOR.__doc__ = "Aviator attitude profile."

agcls.AgTypeNameMap["AttitudeProfile"] = AttitudeProfile

class VehicleLookAheadMethod(IntEnum):
    """Look ahead duration methods."""

    EXTRAPOLATE = 0
    """Extrapolate: STK uses the last two history points to extrapolate attitude into the Look Ahead window. This method is best if attitude changes slightly over time."""
    HOLD = 1
    """Hold: Attitude remains the same from the last data point. This method is best when fixed attitude is more reliable than an approximate value."""

VehicleLookAheadMethod.EXTRAPOLATE.__doc__ = "Extrapolate: STK uses the last two history points to extrapolate attitude into the Look Ahead window. This method is best if attitude changes slightly over time."
VehicleLookAheadMethod.HOLD.__doc__ = "Hold: Attitude remains the same from the last data point. This method is best when fixed attitude is more reliable than an approximate value."

agcls.AgTypeNameMap["VehicleLookAheadMethod"] = VehicleLookAheadMethod

class VehicleGraphics3DBPlaneTargetPointPosition(IntEnum):
    """Values of the enumeration represent polymorphic object types."""

    CARTESIAN = 0
    """Cartesian Position."""
    POLAR = 1
    """Polar Position."""

VehicleGraphics3DBPlaneTargetPointPosition.CARTESIAN.__doc__ = "Cartesian Position."
VehicleGraphics3DBPlaneTargetPointPosition.POLAR.__doc__ = "Polar Position."

agcls.AgTypeNameMap["VehicleGraphics3DBPlaneTargetPointPosition"] = VehicleGraphics3DBPlaneTargetPointPosition

class SensorAltitudeCrossingSideType(IntEnum):
    """Options for specifying which crossings are computed and displayed in the 2D Graphics window."""

    UNKNOWN = -1
    """Unknown."""
    BOTH_SIDES = 0
    """Both Sides - if the Direction option for altitude crossing permits front and back crossings, both are computed and displayed in the 2D Graphics window."""
    ONE_SIDE = 1
    """One Side - only the first crossing that satisfies the Direction option for altitude crossing is computed and displayed in the 2D Graphics window."""

SensorAltitudeCrossingSideType.UNKNOWN.__doc__ = "Unknown."
SensorAltitudeCrossingSideType.BOTH_SIDES.__doc__ = "Both Sides - if the Direction option for altitude crossing permits front and back crossings, both are computed and displayed in the 2D Graphics window."
SensorAltitudeCrossingSideType.ONE_SIDE.__doc__ = "One Side - only the first crossing that satisfies the Direction option for altitude crossing is computed and displayed in the 2D Graphics window."

agcls.AgTypeNameMap["SensorAltitudeCrossingSideType"] = SensorAltitudeCrossingSideType

class SensorAltitudeCrossingDirection(IntEnum):
    """Options for specifying the direction in which the sensor's field of view crosses the specified altitude."""

    UNKNOWN = -1
    """Unknown."""
    EITHER = 0
    """Either - Crossing can occur in either direction."""
    INSIDE_OUT = 1
    """Inside Out - Crossing occurs from lower altitudes to higher altitudes."""
    OUTSIDE_IN = 2
    """Outside In - Crossing occurs from higher altitudes to lower altitudes."""

SensorAltitudeCrossingDirection.UNKNOWN.__doc__ = "Unknown."
SensorAltitudeCrossingDirection.EITHER.__doc__ = "Either - Crossing can occur in either direction."
SensorAltitudeCrossingDirection.INSIDE_OUT.__doc__ = "Inside Out - Crossing occurs from lower altitudes to higher altitudes."
SensorAltitudeCrossingDirection.OUTSIDE_IN.__doc__ = "Outside In - Crossing occurs from higher altitudes to lower altitudes."

agcls.AgTypeNameMap["SensorAltitudeCrossingDirection"] = SensorAltitudeCrossingDirection

class SensorGraphics3DInheritFrom2D(IntEnum):
    """Options for how projection distances that are computed based on 2D Graphics projection settings are displayed in the 3D Graphics window."""

    UNKNOWN = -1
    """Unknown."""
    NO = 0
    """Crossings and distances defined for the 2D Graphics window are ignored in the 3D Graphics window."""
    YES = 1
    """All crossings and distances defined for the 2D Graphics window are displayed in the 3D Graphics window."""
    EXTENT_ONLY = 2
    """Only the highest altitude/farthest range crossings and distances defined for the 2D Graphics window are displayed in the 3D Graphics window."""

SensorGraphics3DInheritFrom2D.UNKNOWN.__doc__ = "Unknown."
SensorGraphics3DInheritFrom2D.NO.__doc__ = "Crossings and distances defined for the 2D Graphics window are ignored in the 3D Graphics window."
SensorGraphics3DInheritFrom2D.YES.__doc__ = "All crossings and distances defined for the 2D Graphics window are displayed in the 3D Graphics window."
SensorGraphics3DInheritFrom2D.EXTENT_ONLY.__doc__ = "Only the highest altitude/farthest range crossings and distances defined for the 2D Graphics window are displayed in the 3D Graphics window."

agcls.AgTypeNameMap["SensorGraphics3DInheritFrom2D"] = SensorGraphics3DInheritFrom2D

class SensorGraphics3DVisualAppearance(IntEnum):
    """Options optimizing the visual appearance of projections."""

    UNKNOWN = -1
    """Unsupported visual appearance option."""
    ORIGIN = 0
    """Optimize at origin."""
    CENTER = 1
    """Optimize at center."""
    END = 2
    """Optimize at end."""

SensorGraphics3DVisualAppearance.UNKNOWN.__doc__ = "Unsupported visual appearance option."
SensorGraphics3DVisualAppearance.ORIGIN.__doc__ = "Optimize at origin."
SensorGraphics3DVisualAppearance.CENTER.__doc__ = "Optimize at center."
SensorGraphics3DVisualAppearance.END.__doc__ = "Optimize at end."

agcls.AgTypeNameMap["SensorGraphics3DVisualAppearance"] = SensorGraphics3DVisualAppearance

class ChainTimePeriodType(IntEnum):
    """Compute Time Period Type."""

    UNKNOWN = -1
    """Unsupported time period type."""
    OBJECT_TIME_PERIODS = 0
    """The Time Period that you set for objects in the chain is used to compute access. For facilities, places and targets, the scenario Time Period is used."""
    SCENARIO_TIME_PERIOD = 1
    """The Time Period that you set for the scenario is used to compute access."""
    SPECIFIED_TIME_PERIOD = 2
    """Specify the Start and Stop time for access computation."""

ChainTimePeriodType.UNKNOWN.__doc__ = "Unsupported time period type."
ChainTimePeriodType.OBJECT_TIME_PERIODS.__doc__ = "The Time Period that you set for objects in the chain is used to compute access. For facilities, places and targets, the scenario Time Period is used."
ChainTimePeriodType.SCENARIO_TIME_PERIOD.__doc__ = "The Time Period that you set for the scenario is used to compute access."
ChainTimePeriodType.SPECIFIED_TIME_PERIOD.__doc__ = "Specify the Start and Stop time for access computation."

agcls.AgTypeNameMap["ChainTimePeriodType"] = ChainTimePeriodType

class ChainConstellationConstraintsMode(IntEnum):
    """Constellation Constraints Mode."""

    UNKNOWN = -1
    """Unsupported Constellation Constraints mode."""
    STRANDS = 0
    """The Constellation Constraints mode is set to apply constraints across valid strands."""
    OBJECTS = 1
    """The Constellation Constraints mode is set to apply constraints per instance."""

ChainConstellationConstraintsMode.UNKNOWN.__doc__ = "Unsupported Constellation Constraints mode."
ChainConstellationConstraintsMode.STRANDS.__doc__ = "The Constellation Constraints mode is set to apply constraints across valid strands."
ChainConstellationConstraintsMode.OBJECTS.__doc__ = "The Constellation Constraints mode is set to apply constraints per instance."

agcls.AgTypeNameMap["ChainConstellationConstraintsMode"] = ChainConstellationConstraintsMode

class ChainCoverageAssetMode(IntEnum):
    """Chain Cov Asset Mode."""

    UNKNOWN = -1
    """Unsupported Chain Cov Asset mode."""
    APPEND = 0
    """The Chain Cov Asset mode is set to append the Coverage grid instance to the Chain."""
    UPDATE = 1
    """The Chain Cov Asset mode is set to update the Coverage grid instance if the object is inside the Chain."""

ChainCoverageAssetMode.UNKNOWN.__doc__ = "Unsupported Chain Cov Asset mode."
ChainCoverageAssetMode.APPEND.__doc__ = "The Chain Cov Asset mode is set to append the Coverage grid instance to the Chain."
ChainCoverageAssetMode.UPDATE.__doc__ = "The Chain Cov Asset mode is set to update the Coverage grid instance if the object is inside the Chain."

agcls.AgTypeNameMap["ChainCoverageAssetMode"] = ChainCoverageAssetMode

class ChainParentPlatformRestriction(IntEnum):
    """Options for a chain's From and To Parent Platform Restriction."""

    UNKNOWN = -1
    """Unsupported Chain parent platform restriction."""
    NONE = 0
    """No restriction on parent platform relationship."""
    SAME = 1
    """The From and To objects must have a common parent platform."""
    DIFFERENT = 2
    """The From and To objects must have different parent platform."""

ChainParentPlatformRestriction.UNKNOWN.__doc__ = "Unsupported Chain parent platform restriction."
ChainParentPlatformRestriction.NONE.__doc__ = "No restriction on parent platform relationship."
ChainParentPlatformRestriction.SAME.__doc__ = "The From and To objects must have a common parent platform."
ChainParentPlatformRestriction.DIFFERENT.__doc__ = "The From and To objects must have different parent platform."

agcls.AgTypeNameMap["ChainParentPlatformRestriction"] = ChainParentPlatformRestriction

class ChainOptimalStrandMetricType(IntEnum):
    """Chain optimal strand metric type."""

    UNKNOWN = -1
    """Unsupported Chain optimal strand metric type."""
    STRAND_METRIC_DISTANCE = 0
    """Chain optimal strand distance metric."""
    STRAND_METRIC_PROCESSING_DELAY = 1
    """Chain optimal strand processing delay metric."""
    STRAND_METRIC_CALCULATION_SCALAR = 2
    """Chain optimal strand calculation scalar metric."""
    STRAND_METRIC_DURATION = 3
    """Chain optimal strand duration metric."""

ChainOptimalStrandMetricType.UNKNOWN.__doc__ = "Unsupported Chain optimal strand metric type."
ChainOptimalStrandMetricType.STRAND_METRIC_DISTANCE.__doc__ = "Chain optimal strand distance metric."
ChainOptimalStrandMetricType.STRAND_METRIC_PROCESSING_DELAY.__doc__ = "Chain optimal strand processing delay metric."
ChainOptimalStrandMetricType.STRAND_METRIC_CALCULATION_SCALAR.__doc__ = "Chain optimal strand calculation scalar metric."
ChainOptimalStrandMetricType.STRAND_METRIC_DURATION.__doc__ = "Chain optimal strand duration metric."

agcls.AgTypeNameMap["ChainOptimalStrandMetricType"] = ChainOptimalStrandMetricType

class ChainOptimalStrandCalculationScalarMetricType(IntEnum):
    """Chain optimal strand calculation scalar type."""

    UNKNOWN = -1
    """Unsupported Chain optimal strand calculation scalar metric type."""
    STRAND_CALCULATION_SCALAR_METRIC_FILE = 0
    """Chain optimal strand calculation scalar metric using file."""
    STRAND_CALCULATION_SCALAR_METRIC_NAME = 1
    """Chain optimal strand calculation scalar metric using component name."""

ChainOptimalStrandCalculationScalarMetricType.UNKNOWN.__doc__ = "Unsupported Chain optimal strand calculation scalar metric type."
ChainOptimalStrandCalculationScalarMetricType.STRAND_CALCULATION_SCALAR_METRIC_FILE.__doc__ = "Chain optimal strand calculation scalar metric using file."
ChainOptimalStrandCalculationScalarMetricType.STRAND_CALCULATION_SCALAR_METRIC_NAME.__doc__ = "Chain optimal strand calculation scalar metric using component name."

agcls.AgTypeNameMap["ChainOptimalStrandCalculationScalarMetricType"] = ChainOptimalStrandCalculationScalarMetricType

class ChainOptimalStrandLinkCompareType(IntEnum):
    """Chain optimal strand link comparison type."""

    UNKNOWN = -1
    """Unsupported Chain optimal strand link comparison type."""
    STRAND_LINK_COMPARE_TYPE_MIN = 0
    """Chain optimal strand comparison type, use min value of metric across all links in a strand."""
    STRAND_LINK_COMPARE_TYPE_MAX = 1
    """Chain optimal strand comparison type, use max value of metric across all links in a strand."""
    STRAND_LINK_COMPARE_TYPE_SUM = 2
    """Chain optimal strand comparison type, use sum of metric values across all links in a strand."""

ChainOptimalStrandLinkCompareType.UNKNOWN.__doc__ = "Unsupported Chain optimal strand link comparison type."
ChainOptimalStrandLinkCompareType.STRAND_LINK_COMPARE_TYPE_MIN.__doc__ = "Chain optimal strand comparison type, use min value of metric across all links in a strand."
ChainOptimalStrandLinkCompareType.STRAND_LINK_COMPARE_TYPE_MAX.__doc__ = "Chain optimal strand comparison type, use max value of metric across all links in a strand."
ChainOptimalStrandLinkCompareType.STRAND_LINK_COMPARE_TYPE_SUM.__doc__ = "Chain optimal strand comparison type, use sum of metric values across all links in a strand."

agcls.AgTypeNameMap["ChainOptimalStrandLinkCompareType"] = ChainOptimalStrandLinkCompareType

class ChainOptimalStrandCompareStrandsType(IntEnum):
    """Chain optimal strand link comparison type."""

    UNKNOWN = -1
    """Unsupported Chain optimal strand comparison type used to compare strands."""
    STRAND_COMPARE_TYPE_MIN = 0
    """Chain optimal strand comparison type, when comparing strands to determine best strand, use min value of metric between strands."""
    STRAND_COMPARE_TYPE_MAX = 1
    """Chain optimal strand comparison type, when comparing strands to determine best strand, use max value of metric between strands."""

ChainOptimalStrandCompareStrandsType.UNKNOWN.__doc__ = "Unsupported Chain optimal strand comparison type used to compare strands."
ChainOptimalStrandCompareStrandsType.STRAND_COMPARE_TYPE_MIN.__doc__ = "Chain optimal strand comparison type, when comparing strands to determine best strand, use min value of metric between strands."
ChainOptimalStrandCompareStrandsType.STRAND_COMPARE_TYPE_MAX.__doc__ = "Chain optimal strand comparison type, when comparing strands to determine best strand, use max value of metric between strands."

agcls.AgTypeNameMap["ChainOptimalStrandCompareStrandsType"] = ChainOptimalStrandCompareStrandsType

class DataSaveMode(IntEnum):
    """Access Save Mode."""

    UNKNOWN = -1
    """Unsupported mode."""
    DONT_SAVE_ACCESSES = 0
    """Access computations are not saved with the chain."""
    DONT_SAVE_COMPUTE_ON_LOAD = 1
    """Access computations are not saved with the chain, but they are recalculated each time that the chain is opened in STK."""
    SAVE_ACCESSES = 2
    """Access computations are saved with the chain."""

DataSaveMode.UNKNOWN.__doc__ = "Unsupported mode."
DataSaveMode.DONT_SAVE_ACCESSES.__doc__ = "Access computations are not saved with the chain."
DataSaveMode.DONT_SAVE_COMPUTE_ON_LOAD.__doc__ = "Access computations are not saved with the chain, but they are recalculated each time that the chain is opened in STK."
DataSaveMode.SAVE_ACCESSES.__doc__ = "Access computations are saved with the chain."

agcls.AgTypeNameMap["DataSaveMode"] = DataSaveMode

class CoverageBounds(IntEnum):
    """Coverage bounds options: values of the enumeration represent polymorphic object types."""

    CUSTOM_REGIONS = 0
    """Create a grid within regions specified by a combination of user-selected area targets, region list files (.rl) and/or ArcView shapefiles (.shp)."""
    GLOBAL = 1
    """Create a grid that covers the entire globe."""
    LATITUDE = 2
    """Create a grid between the user-specified Minimum and Maximum Latitude boundaries."""
    LATITUDE_LINE = 3
    """Create a set of points along a single latitude line."""
    LONGITUDE_LINE = 4
    """Create a set of points along a single meridian."""
    CUSTOM_BOUNDARY = 5
    """Custom boundary coverage."""
    LATITUDE_LONGITUDE_REGION = 6
    """Create a lat-lon region between the user-specified Minimum and Maximum Latitude/Longitude boundaries."""

CoverageBounds.CUSTOM_REGIONS.__doc__ = "Create a grid within regions specified by a combination of user-selected area targets, region list files (.rl) and/or ArcView shapefiles (.shp)."
CoverageBounds.GLOBAL.__doc__ = "Create a grid that covers the entire globe."
CoverageBounds.LATITUDE.__doc__ = "Create a grid between the user-specified Minimum and Maximum Latitude boundaries."
CoverageBounds.LATITUDE_LINE.__doc__ = "Create a set of points along a single latitude line."
CoverageBounds.LONGITUDE_LINE.__doc__ = "Create a set of points along a single meridian."
CoverageBounds.CUSTOM_BOUNDARY.__doc__ = "Custom boundary coverage."
CoverageBounds.LATITUDE_LONGITUDE_REGION.__doc__ = "Create a lat-lon region between the user-specified Minimum and Maximum Latitude/Longitude boundaries."

agcls.AgTypeNameMap["CoverageBounds"] = CoverageBounds

class CoveragePointLocationMethod(IntEnum):
    """Point location method."""

    UNKNOWN = -1
    """Unknown method."""
    COMPUTE_BASED_ON_RESOLUTION = 0
    """Compute point location on the basis of resolution."""
    SPECIFY_CUSTOM_LOCATIONS = 1
    """Specify custom locations using point files."""

CoveragePointLocationMethod.UNKNOWN.__doc__ = "Unknown method."
CoveragePointLocationMethod.COMPUTE_BASED_ON_RESOLUTION.__doc__ = "Compute point location on the basis of resolution."
CoveragePointLocationMethod.SPECIFY_CUSTOM_LOCATIONS.__doc__ = "Specify custom locations using point files."

agcls.AgTypeNameMap["CoveragePointLocationMethod"] = CoveragePointLocationMethod

class CoveragePointAltitudeMethod(IntEnum):
    """Custom point altitude method."""

    UNKNOWN = -1
    """Unknown method."""
    FILE_VALUES = 0
    """Use the altitude values in the point file."""
    OVERRIDE = 1
    """Override the point altitude with the altitude at a point on terrain."""

CoveragePointAltitudeMethod.UNKNOWN.__doc__ = "Unknown method."
CoveragePointAltitudeMethod.FILE_VALUES.__doc__ = "Use the altitude values in the point file."
CoveragePointAltitudeMethod.OVERRIDE.__doc__ = "Override the point altitude with the altitude at a point on terrain."

agcls.AgTypeNameMap["CoveragePointAltitudeMethod"] = CoveragePointAltitudeMethod

class CoverageGridClass(IntEnum):
    """Classes of objects that can be used as templates to associate access constraints, basic object properties and, in some cases, altitude with points in the grid."""

    UNKNOWN = -1
    """Unknown template class."""
    AIRCRAFT = 0
    """Aircraft class."""
    FACILITY = 1
    """Facility class."""
    RADAR = 2
    """Radar class."""
    RECEIVER = 3
    """Receiver class."""
    SATELLITE = 4
    """Satellite class."""
    SUBMARINE = 5
    """Submarine class."""
    TARGET = 6
    """Target class."""
    TRANSMITTER = 7
    """Transmitter class."""
    GROUND_VEHICLE = 8
    """GroundVehicle class."""
    SHIP = 9
    """Ship class."""
    PLACE = 10
    """Place class."""
    SENSOR = 11
    """Sensor class."""

CoverageGridClass.UNKNOWN.__doc__ = "Unknown template class."
CoverageGridClass.AIRCRAFT.__doc__ = "Aircraft class."
CoverageGridClass.FACILITY.__doc__ = "Facility class."
CoverageGridClass.RADAR.__doc__ = "Radar class."
CoverageGridClass.RECEIVER.__doc__ = "Receiver class."
CoverageGridClass.SATELLITE.__doc__ = "Satellite class."
CoverageGridClass.SUBMARINE.__doc__ = "Submarine class."
CoverageGridClass.TARGET.__doc__ = "Target class."
CoverageGridClass.TRANSMITTER.__doc__ = "Transmitter class."
CoverageGridClass.GROUND_VEHICLE.__doc__ = "GroundVehicle class."
CoverageGridClass.SHIP.__doc__ = "Ship class."
CoverageGridClass.PLACE.__doc__ = "Place class."
CoverageGridClass.SENSOR.__doc__ = "Sensor class."

agcls.AgTypeNameMap["CoverageGridClass"] = CoverageGridClass

class CoverageAltitudeMethod(IntEnum):
    """Method for specifying the altitude of a grid point."""

    UNKNOWN = -1
    """Unknown altitude method."""
    ABOVE_TERRAIN = 0
    """Altitude above terrain."""
    ABOVE_ELLIPSOID = 1
    """Altitude above the surface."""
    RADIUS = 2
    """Radius from the center of the Earth."""
    ABOVE_MEAN_SEA_LEVEL = 3
    """Altitude above MSL of the surface."""
    DEPTH = 4
    """Depth below the surface."""

CoverageAltitudeMethod.UNKNOWN.__doc__ = "Unknown altitude method."
CoverageAltitudeMethod.ABOVE_TERRAIN.__doc__ = "Altitude above terrain."
CoverageAltitudeMethod.ABOVE_ELLIPSOID.__doc__ = "Altitude above the surface."
CoverageAltitudeMethod.RADIUS.__doc__ = "Radius from the center of the Earth."
CoverageAltitudeMethod.ABOVE_MEAN_SEA_LEVEL.__doc__ = "Altitude above MSL of the surface."
CoverageAltitudeMethod.DEPTH.__doc__ = "Depth below the surface."

agcls.AgTypeNameMap["CoverageAltitudeMethod"] = CoverageAltitudeMethod

class CoverageGroundAltitudeMethod(IntEnum):
    """Method for specifying the ground altitude of a grid point."""

    UNKNOWN = -1
    """Unknown ground altitude method."""
    DEPTH = 0
    """Depth below the surface."""
    ALTITUDE = 1
    """Altitude above the surface."""
    ALTITUDE_AT_TERRAIN = 2
    """Altitude at terrain."""
    ALTITUDE_ABOVE_MEAN_SEA_LEVEL = 3
    """Altitude above MSL of the surface."""
    USE_POINT_ALTITUDE = 4
    """Altitude by point type."""

CoverageGroundAltitudeMethod.UNKNOWN.__doc__ = "Unknown ground altitude method."
CoverageGroundAltitudeMethod.DEPTH.__doc__ = "Depth below the surface."
CoverageGroundAltitudeMethod.ALTITUDE.__doc__ = "Altitude above the surface."
CoverageGroundAltitudeMethod.ALTITUDE_AT_TERRAIN.__doc__ = "Altitude at terrain."
CoverageGroundAltitudeMethod.ALTITUDE_ABOVE_MEAN_SEA_LEVEL.__doc__ = "Altitude above MSL of the surface."
CoverageGroundAltitudeMethod.USE_POINT_ALTITUDE.__doc__ = "Altitude by point type."

agcls.AgTypeNameMap["CoverageGroundAltitudeMethod"] = CoverageGroundAltitudeMethod

class CoverageDataRetention(IntEnum):
    """Data retention options."""

    UNKNOWN = -1
    """Unknown data retention method."""
    ALL_DATA = 0
    """All Data - Retains start and stop times for all accesses in virtual memory."""
    STATIC_DATA_ONLY = 1
    """Static Only - As access is computed for each point, STK also computes the static value for each figure of merit. Raw access data is then deleted to minimize memory usage."""

CoverageDataRetention.UNKNOWN.__doc__ = "Unknown data retention method."
CoverageDataRetention.ALL_DATA.__doc__ = "All Data - Retains start and stop times for all accesses in virtual memory."
CoverageDataRetention.STATIC_DATA_ONLY.__doc__ = "Static Only - As access is computed for each point, STK also computes the static value for each figure of merit. Raw access data is then deleted to minimize memory usage."

agcls.AgTypeNameMap["CoverageDataRetention"] = CoverageDataRetention

class CoverageRegionAccessAccelerationType(IntEnum):
    """Regional acceleration options."""

    UNKNOWN = -1
    """Unknown regional acceleration option."""
    AUTOMATIC = 0
    """Automatic - if selected and the grid altitude is 0 with respect to the defining ellipsoid for the central body, visibility to regions' bounding sets of points is computed and used to limit times for computations to enclosed points."""
    OFF = 1
    """Off - should be selected in certain cases, such as the use of a very small or narrow sensor in conjunction with a very narrow coverage region."""

CoverageRegionAccessAccelerationType.UNKNOWN.__doc__ = "Unknown regional acceleration option."
CoverageRegionAccessAccelerationType.AUTOMATIC.__doc__ = "Automatic - if selected and the grid altitude is 0 with respect to the defining ellipsoid for the central body, visibility to regions' bounding sets of points is computed and used to limit times for computations to enclosed points."
CoverageRegionAccessAccelerationType.OFF.__doc__ = "Off - should be selected in certain cases, such as the use of a very small or narrow sensor in conjunction with a very narrow coverage region."

agcls.AgTypeNameMap["CoverageRegionAccessAccelerationType"] = CoverageRegionAccessAccelerationType

class CoverageResolution(IntEnum):
    """Coverage grid resolution options: values of the enumeration represent polymorphic object types."""

    RESOLUTION_AREA = 0
    """Define the location of grid coordinates by using the specified area to determine a latitude/longitude spacing scheme at the equator."""
    RESOLUTION_DISTANCE = 1
    """Define the location of the grid coordinates by using the specified distance to determine a latitude/longitude spacing scheme at the equator."""
    RESOLUTION_LATITUDE_LONGITUDE = 2
    """Determine the location of grid coordinates by applying a user-specified value at the equator. STK stretches grid points in longitude at higher or lower latitudes in an attempt to preserve the area of the grid point."""

CoverageResolution.RESOLUTION_AREA.__doc__ = "Define the location of grid coordinates by using the specified area to determine a latitude/longitude spacing scheme at the equator."
CoverageResolution.RESOLUTION_DISTANCE.__doc__ = "Define the location of the grid coordinates by using the specified distance to determine a latitude/longitude spacing scheme at the equator."
CoverageResolution.RESOLUTION_LATITUDE_LONGITUDE.__doc__ = "Determine the location of grid coordinates by applying a user-specified value at the equator. STK stretches grid points in longitude at higher or lower latitudes in an attempt to preserve the area of the grid point."

agcls.AgTypeNameMap["CoverageResolution"] = CoverageResolution

class CoverageAssetStatus(IntEnum):
    """Coverage asset status."""

    ACTIVE = 0
    """Coverage asset is active."""
    INACTIVE = 1
    """Coverage asset is inactive."""

CoverageAssetStatus.ACTIVE.__doc__ = "Coverage asset is active."
CoverageAssetStatus.INACTIVE.__doc__ = "Coverage asset is inactive."

agcls.AgTypeNameMap["CoverageAssetStatus"] = CoverageAssetStatus

class CoverageAssetGrouping(IntEnum):
    """Coverage asset grouping options."""

    SEPARATE = 0
    """Assets in a chain are treated separately for access purposes."""
    GROUPED = 1
    """Assets in a chain are treated as a group, and are considered to be a single object for the purpose of counting the number of assets providing simultaneous coverage."""

CoverageAssetGrouping.SEPARATE.__doc__ = "Assets in a chain are treated separately for access purposes."
CoverageAssetGrouping.GROUPED.__doc__ = "Assets in a chain are treated as a group, and are considered to be a single object for the purpose of counting the number of assets providing simultaneous coverage."

agcls.AgTypeNameMap["CoverageAssetGrouping"] = CoverageAssetGrouping

class FigureOfMeritDefinitionType(IntEnum):
    """Figure of Merit types: values of the enumeration represent polymorphic object types."""

    ACCESS_CONSTRAINT = 0
    """Access Constraint Figure of Merit."""
    ACCESS_DURATION = 1
    """Access Duration Figure of Merit."""
    ACCESS_SEPARATION = 2
    """Access Separation Figure of Merit."""
    COVERAGE_TIME = 3
    """Coverage Time Figure of Merit."""
    DILUTION_OF_PRECISION = 4
    """Dilution of Precision Figure of Merit."""
    N_ASSET_COVERAGE = 5
    """N Asset Coverage Figure of Merit."""
    NAVIGATION_ACCURACY = 6
    """Navigation Accuracy Figure of Merit."""
    NUMBER_OF_ACCESSES = 7
    """Number of Accesses Figure of Merit."""
    NUMBER_OF_GAPS = 8
    """Number of Gaps Figure of Merit."""
    RESPONSE_TIME = 9
    """Response Time Figure of Merit."""
    REVISIT_TIME = 10
    """Revisit Time Figure of Merit."""
    SIMPLE_COVERAGE = 11
    """Simple Coverage Figure of Merit."""
    TIME_AVERAGE_GAP = 12
    """Time Average Gap Figure of Merit."""
    SYSTEM_RESPONSE_TIME = 13
    """System Response Time Figure of Merit."""
    AGE_OF_DATA = 14
    """Age of Data Figure of Merit."""
    SCALAR_CALCULATION = 15
    """Scalar Calculation Figure of Merit."""
    SYSTEM_AGE_OF_DATA = 16
    """System Age Of Data Figure of Merit."""

FigureOfMeritDefinitionType.ACCESS_CONSTRAINT.__doc__ = "Access Constraint Figure of Merit."
FigureOfMeritDefinitionType.ACCESS_DURATION.__doc__ = "Access Duration Figure of Merit."
FigureOfMeritDefinitionType.ACCESS_SEPARATION.__doc__ = "Access Separation Figure of Merit."
FigureOfMeritDefinitionType.COVERAGE_TIME.__doc__ = "Coverage Time Figure of Merit."
FigureOfMeritDefinitionType.DILUTION_OF_PRECISION.__doc__ = "Dilution of Precision Figure of Merit."
FigureOfMeritDefinitionType.N_ASSET_COVERAGE.__doc__ = "N Asset Coverage Figure of Merit."
FigureOfMeritDefinitionType.NAVIGATION_ACCURACY.__doc__ = "Navigation Accuracy Figure of Merit."
FigureOfMeritDefinitionType.NUMBER_OF_ACCESSES.__doc__ = "Number of Accesses Figure of Merit."
FigureOfMeritDefinitionType.NUMBER_OF_GAPS.__doc__ = "Number of Gaps Figure of Merit."
FigureOfMeritDefinitionType.RESPONSE_TIME.__doc__ = "Response Time Figure of Merit."
FigureOfMeritDefinitionType.REVISIT_TIME.__doc__ = "Revisit Time Figure of Merit."
FigureOfMeritDefinitionType.SIMPLE_COVERAGE.__doc__ = "Simple Coverage Figure of Merit."
FigureOfMeritDefinitionType.TIME_AVERAGE_GAP.__doc__ = "Time Average Gap Figure of Merit."
FigureOfMeritDefinitionType.SYSTEM_RESPONSE_TIME.__doc__ = "System Response Time Figure of Merit."
FigureOfMeritDefinitionType.AGE_OF_DATA.__doc__ = "Age of Data Figure of Merit."
FigureOfMeritDefinitionType.SCALAR_CALCULATION.__doc__ = "Scalar Calculation Figure of Merit."
FigureOfMeritDefinitionType.SYSTEM_AGE_OF_DATA.__doc__ = "System Age Of Data Figure of Merit."

agcls.AgTypeNameMap["FigureOfMeritDefinitionType"] = FigureOfMeritDefinitionType

class FigureOfMeritSatisfactionType(IntEnum):
    """Satisfaction options: determine whether satisfaction is achieved based on the value of the figure of merit."""

    AT_LEAST = 0
    """The figure of merit is greater than or equal to the threshold."""
    AT_MOST = 1
    """The figure of merit is less than or equal to the threshold."""
    EQUAL_TO = 2
    """The figure of merit is equal to the threshold."""
    GREATER_THAN = 3
    """The figure of merit is greater than the threshold."""
    LESS_THAN = 4
    """The figure of merit is less than the threshold."""

FigureOfMeritSatisfactionType.AT_LEAST.__doc__ = "The figure of merit is greater than or equal to the threshold."
FigureOfMeritSatisfactionType.AT_MOST.__doc__ = "The figure of merit is less than or equal to the threshold."
FigureOfMeritSatisfactionType.EQUAL_TO.__doc__ = "The figure of merit is equal to the threshold."
FigureOfMeritSatisfactionType.GREATER_THAN.__doc__ = "The figure of merit is greater than the threshold."
FigureOfMeritSatisfactionType.LESS_THAN.__doc__ = "The figure of merit is less than the threshold."

agcls.AgTypeNameMap["FigureOfMeritSatisfactionType"] = FigureOfMeritSatisfactionType

class FigureOfMeritConstraintName(IntEnum):
    """Available constraints to use for the Access Constraint Figure of Merit."""

    UNKNOWN = -1
    """Unknown constraint."""
    ALTITUDE = 0
    """Altitude constraint."""
    ANGULAR_RATE = 1
    """Angular Rate constraint."""
    APPARENT_TIME = 2
    """Apparent Time constraint."""
    AZIMUTH_ANGLE = 3
    """Azimuth Angle constraint."""
    AZIMUTH_RATE = 4
    """Azimuth Rate constraint."""
    CENTRAL_BODY_OBSTRUCTION = 5
    """Central Body Obstruction constraint."""
    VECTOR_GEOMETRY_TOOL_ANGLE = 6
    """Angle constraint."""
    VECTOR_MAGNITUDE = 7
    """Vector Magnitude constraint."""
    ELEVATION_ANGLE = 8
    """Elevation Angle constraint."""
    ELEVATION_RATE = 9
    """Elevation Rate constraint."""
    ELEVATION_RISE_SET = 10
    """Elevation Rise Set constraint."""
    GEO_EXCLUSION = 11
    """Geo Exclusion constraint."""
    GROUND_SAMPLE_DISTANCE = 12
    """Ground Sample Distance constraint."""
    HEIGHT_ABOVE_HORIZON = 13
    """Height Above Horizon constraint."""
    LINE_OF_SIGHT_LUNAR_EXCLUSION_ANGLE = 14
    """LOS Lunar Exclusion constraint."""
    LINE_OF_SIGHT_SOLAR_EXCLUSION_ANGLE = 15
    """LOS Sun Exclusion constraint."""
    LUNAR_ELEVATION_ANGLE = 16
    """Lunar Elevation Angle constraint."""
    MATLAB = 17
    """Matlab constraint."""
    OBJECT_EXCLUSION_ANGLE = 18
    """Object Exclusion Angle constraint."""
    PROPAGATION_DELAY = 19
    """Propagation Delay constraint."""
    RANGE = 20
    """Range constraint."""
    RANGE_RATE = 21
    """Range Rate constraint."""
    SAR_AREA_RATE = 22
    """SAR Area Rate constraint."""
    SAR_AZIMUTH_RESOLUTION = 23
    """SAR Azimuth Resolution constraint."""
    SAR_CARRIER_TO_NOISE_RATIO = 24
    """SAR Carrier-to-Noise Ratio constraint."""
    SAR_EXTERNAL_DATA = 25
    """SAR External Data constraint."""
    SAR_INTEGRATION_TIME = 26
    """SAR Integration Time constraint."""
    SAR_PTCR = 27
    """SAR Point-Target-to-Clutter Ratio constraint."""
    SAR_SCR = 28
    """SAR Signal-to-Clutter Ratio constraint."""
    SAR_SNR = 29
    """SAR Signal-to-Noise Ratio constraint."""
    SAR_SIGMA_N = 30
    """SAR Sigma N constraint."""
    SEARCH_TRACK_DWELL_TIME = 31
    """Search-Track Dwell Time constraint."""
    SEARCH_TRACK_INTEGRATED_PROBABILITY_OF_DETECTION = 32
    """Search-Track Integrated Probability of Detection constraint."""
    SEARCH_TRACK_INTEGRATED_SNR = 33
    """Search-Track Integrated Signal-to-Noise Ratio constraint."""
    SEARCH_TRACK_INTEGRATION_TIME = 34
    """Search-Track Integration Time constraint."""
    SEARCH_TRACK_SINGLE_PULSE_PROBABILITY_OF_DETECTION = 35
    """Search-Track Single Pulse Probability of Detection constraint."""
    SEARCH_TRACK_SINGLE_PULSE_SNR = 36
    """Search-Track Single Pulse Signal-to-Noise Ratio constraint."""
    SUN_ELEVATION_ANGLE = 37
    """Sun Elevation Angle constraint."""
    TERRAIN_GRAZING_ANGLE = 38
    """Terrain Grazing Angle constraint."""
    ANGLE_TO_ASSET = 39
    """Angle To Asset constraint."""
    LINE_OF_SIGHT = 40
    """Line Of Sight constraint."""
    AZ_EL_MASK = 41
    """Azimuth Elevation Mask constraint."""
    DURATION = 42
    """Duration constraint."""
    GMT = 43
    """Greenwich Mean Time constraint."""
    IMAGE_QUALITY = 44
    """Image Quality constraint."""
    INTERVALS = 45
    """Intervals constraint."""
    LIGHTING = 46
    """Light constraint."""
    LOCAL_TIME = 47
    """Local Time constraint."""
    LINE_OF_SIGHT_CENTRAL_BODY_EXCLUSION = 48
    """Loss Of Signal Central Body Exclusion constraint."""
    POINT_METRIC = 49
    """Coordinate Point Metric constraint."""
    CENTROID_AZIMUTH_ANGLE = 50
    """Do not use this enumeration, as it is deprecated. Centroid Azimuth Angle constraint."""
    CENTROID_RANGE = 51
    """Do not use this enumeration, as it is deprecated. Centroid Range constraint."""
    CENTROID_SUN_ELEVATION_ANGLE = 52
    """Do not use this enumeration, as it is deprecated. Centroid Sun Elevation Angle constraint."""
    COLLECTION_ANGLE = 53
    """Collection Angle constraint."""
    DOPPLER_CONE_ANGLE = 54
    """Doppler Cone Angle constraint."""
    LATITUDE = 55
    """Latitude constraint."""
    SUN_GROUND_ELEVATION_ANGLE = 56
    """Sun Ground Elevation Angle constraint."""
    TERRAIN_MASK = 57
    """Terrain Mask constraint."""
    CROSS_TRACK_RANGE = 59
    """Cross Track Range constraint."""
    IN_TRACK_RANGE = 60
    """In Track Range constraint."""
    SQUINT_ANGLE = 61
    """Squinting Angle constraint."""
    BACKGROUND = 62
    """Background constraint."""
    FOREGROUND = 63
    """Foreground constraint."""
    BETA_ANGLE = 64
    """Beta Angle constraint."""
    AREA_TARGET_CENTROID_ELEVATION_ANGLE = 65
    """Do not use this enumeration, as it is deprecated. Area Target Centroid Elevation Angle constraint."""
    EXCLUSION_ZONE = 66
    """Exclusion Zone constraint."""
    GRAZING_ANGLE = 67
    """Grazing Angle constraint."""
    GRAZING_ALTITUDE = 68
    """Grazing Altitude constraint."""
    GROUND_ELEVATION_ANGLE = 69
    """Ground Elevation Angle constraint."""
    GROUND_TRACK = 70
    """Ground Track constraint."""
    INCLUSION_ZONE = 71
    """Inclusion Zone constraint."""
    SUN_SPECULAR_EXCLUSION = 72
    """Sun Specular Exclusion constraint."""
    DEPTH = 73
    """Deptch constraint."""
    FIELD_OF_VIEW = 74
    """Field Of View constraint."""
    ANGLE_OFF_BORESIGHT = 75
    """Angle Of Boresight constraint."""
    ANGLE_OFF_BORESIGHT_RATE = 76
    """Angle Of Boresight Rate constraint."""
    BORESIGHT_GRAZING_ANGLE = 78
    """Boresight Grazing Angle constraint."""
    BORESIGHT_INTERSECTION_LIGHTING_CONDITION = 79
    """BS Intersection Light Condition constraint."""
    FIELD_OF_VIEW_SUN_SPECULAR_EXCLUSION = 80
    """Field Of View Sun Specular Exclusion constraint."""
    FIELD_OF_VIEW_SUN_SPECULAR_INCLUSION = 81
    """Field Of View Sun Specular Inclusion constraint."""
    HORIZON_CROSSING = 82
    """Horizon Crossing constraint."""
    BORESIGHT_LUNAR_EXCLUSION_ANGLE = 83
    """BS Lunar Exclusion constraint."""
    BORESIGHT_SOLAR_EXCLUSION_ANGLE = 84
    """BS Sun Exclusion constraint."""
    BORESIGHT_CENTRAL_BODY_EXCLUSION_ANGLE = 85
    """BS Centray Body Exclusion constraint."""
    CENTRAL_BODY_OBSTRUCTION_CROSS_INWARD = 86
    """Field Of View Central Body Obstruction Cross In constraint."""
    CENTRAL_BODY_OBSTRUCTION_CROSS_OUTWARD = 87
    """Field Of View Central Body Obstruction Cross Out constraint."""
    CENTRAL_BODY_HORIZON_REFINE = 88
    """Field Of View Central Body Horizon Refine constraint."""
    CENTRAL_BODY_CENTER = 89
    """Field Of View Central Body Center constraint."""
    SENSOR_AZ_EL_MASK = 90
    """Sensor Azimuth Elevation Mask constraint."""
    SENSOR_RANGE_MASK = 91
    """Sensor Range Mask constraint."""
    INFRARED_DETECTION = 92
    """Infrared Detection constraint."""
    RADAR_TRANSMITTER_TARGET_ACCESS = 93
    """Radar Xmt Target Access constraint."""
    RADAR_TRANSMITTER_ACCESS = 94
    """Radar Xmt Access constraint."""
    RADAR_ACCESS = 95
    """Radar Access constraint."""
    BISTATIC_ANGLE = 96
    """Bistatic Angle constraint."""
    NOISE_TEMPERATURE = 97
    """Noise Temperature constraint."""
    SEARCH_TRACK_INTEGRATED_PULSES = 98
    """Search-Track Integrated Pulses constraint."""
    SEARCH_TRACK_MLC_FILTER = 99
    """Search-Track MLC Filter constraint."""
    SEARCH_TRACK_SLC_FILTER = 100
    """Search-Track SLC Filter constraint."""
    SEARCH_TRACK_CLEAR_DOPPLER = 101
    """Search-Track Clear Doppler constraint."""
    SEARCH_TRACK_UNAMBIGUOUS_RANGE = 102
    """Search-Track Unambiguous Range constraint."""
    SEARCH_TRACK_UNAMBIGUOUS_DOPPLER = 103
    """Search-Track Unambiguous Doppler constraint."""
    SEARCH_TRACK_SINGLE_PULSE_SNR_JAMMING = 104
    """Search-Track Single Pulse SNR Jamming constraint."""
    SEARCH_TRACK_SINGLE_PULSE_J_OVER_S = 105
    """Search-Track Single Pulse J/S constraint."""
    SEARCH_TRACK_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING = 106
    """Search-Track Single Pulse PDet Jamming constraint."""
    SEARCH_TRACK_INTEGRATED_SNR_JAMMING = 107
    """Search-Track Integrated SNR Jamming constraint."""
    SEARCH_TRACK_INTEGRATED_J_OVER_S = 108
    """Search-Track Integrated J/S constraint."""
    SEARCH_TRACK_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING = 109
    """Search-Track Integrated PDet Jamming constraint."""
    SEARCH_TRACK_INTEGRATED_PULSES_JAMMING = 110
    """Search-Track Integrated Pulses Jamming constraint."""
    SEARCH_TRACK_INTEGRATION_TIME_JAMMING = 111
    """Search-Track Integration Time Jamming constraint."""
    SEARCH_TRACK_DWELL_TIME_JAMMING = 112
    """Search-Track Dwell Time Jamming constraint."""
    SEARCH_TRACK_CONSTRAINT_PLUGIN = 113
    """Search-Track Constraint Plugin constraint."""
    SAR_SNR_JAMMING = 114
    """SAR SNR Jamming constraint."""
    SAR_CARRIER_TO_NOISE_RATIO_JAMMING = 115
    """SAR CNR Jamming constraint."""
    SAR_SCR_JAMMING = 116
    """SAR SCR Jamming constraint."""
    SAR_J_OVER_S = 117
    """SAR J/S constraint."""
    SAR_CONSTRAINT_PLUGIN = 118
    """SAR Constraint Plugin constraint."""
    SAR_ORTHOGONAL_POLARIZATION_SNR = 119
    """SAR Orthogonal Polar SNR constraint."""
    SAR_ORTHOGONAL_POLARIZATION_CNR = 120
    """SAR Orthogonal Polar CNR constraint."""
    SAR_ORTHOGONAL_POLARIZATION_SCR = 121
    """SAR Orthogonal Polar SCR constraint."""
    SAR_ORTHOGONAL_POLARIZATION_PTCR = 122
    """SAR Orthogonal Polar PTCR constraint."""
    SAR_ORTHOGONAL_POLARIZATION_SNR_JAMMING = 123
    """SAR Orthogonal Polar SNR Jamming constraint."""
    SAR_ORTHOGONAL_POLARIZATION_CNR_JAMMING = 124
    """SAR Orthogonal Polar CNR Jamming constraint."""
    SAR_ORTHOGONAL_POLARIZATION_SCR_JAMMING = 125
    """SAR Orthogonal Polar SCR Jamming constraint."""
    SAR_ORTHOGONAL_POLARIZATION_J_OVER_S = 126
    """SAR Orthogonal Polar J/S constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_SNR = 127
    """Search-Track Orthogonal Polar Single Pulse SNR constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_PROBABILITY_OF_DETECTION = 128
    """Search-Track Orthogonal Polar Single Pulse PDet constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_SNR = 129
    """Search-Track Orthogonal Polar Integrated SNR constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PROBABILITY_OF_DETECTION = 130
    """Search-Track Orthogonal Polar Integrated PDet constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PULSES = 131
    """Search-Track Orthogonal Polar Integrated Pulses constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATION_TIME = 132
    """Search-Track Orthogonal Polar Integration Time constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_DWELL_TIME = 133
    """Search-Track Orthogonal Polar Dwell Time constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_SNR_JAMMING = 134
    """Search-Track Orthogonal Polar Single Pulse SNR Jamming constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_J_OVER_S = 135
    """Search-Track Orthogonal Polar Single Pulse J/S constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING = 136
    """Search-Track Orthogonal Polar Single Pulse PDet Jamming constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_SNR_JAMMING = 137
    """Search-Track Orthogonal Polar Integrated SNR Jamming constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_J_OVER_S = 138
    """Search-Track Orthogonal Polar Integrated J/S constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING = 139
    """Search-Track Orthogonal Polar Integrated PDet Jamming constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PULSES_JAMMING = 140
    """Search-Track Orthogonal Polar Integrated Pulses Jamming constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATION_TIME_JAMMING = 141
    """Search-Track Orthogonal Polar Integration Time Jamming constraint."""
    SEARCH_TRACK_ORTHOGONAL_POLARIZATION_DWELL_TIME_JAMMING = 142
    """Search-Track Orthogonal Polar Dwell Time Jamming constraint."""
    FREQUENCY = 143
    """Frequency constraint."""
    DOPPLER_SHIFT = 144
    """Doppler Shift constraint."""
    RECEIVED_ISOTROPIC_POWER = 145
    """Received Isotropic Power constraint."""
    POWER_AT_RECEIVER_INPUT = 146
    """Power at Receiver Input constraint."""
    FLUX_DENSITY = 147
    """Flux Density constraint."""
    G_OVER_T = 148
    """G/T constraint."""
    C_OVER_N0 = 149
    """C/No constraint."""
    C_OVER_N = 150
    """C/N constraint."""
    LINK_MARGIN = 151
    """Link Margin constraint."""
    EB_OVER_N0 = 152
    """Energy per bit to noise ratio (Eb/No) constraint."""
    BIT_ERROR_RATE = 153
    """Bit Error Rate constraint."""
    POLARIZATION_RELATIVE_ANGLE = 154
    """Polarization Relative Angle constraint."""
    COMM_PLUGIN = 155
    """Comm Plugin constraint."""
    LINK_EIRP = 156
    """Link EIRP constraint."""
    POWER_FLUX_DENSITY = 157
    """Power Flux Density constraint."""
    TOTAL_RECEIVED_REFRACTION_POWER = 158
    """Total Received Rf Power constraint."""
    C_OVER_N0_PLUS_I0 = 159
    """C/No+Io constraint."""
    C_OVER_N_PLUS_I = 160
    """C/N+I constraint."""
    C_OVER_I = 161
    """C/I constraint."""
    J_OVER_S = 162
    """J/S constraint."""
    DELTA_T_OVER_T = 163
    """Delta T/T constraint."""
    EB_OVER_N0_PLUS_I0 = 164
    """Eb/No+Io constraint."""
    BER_PLUS_I = 165
    """BER+I constraint."""
    FREQUENCY_TRACK = 166
    """Frequency Track constraint."""
    PHASE_TRACK = 167
    """Phase Track constraint."""
    CODE_TRACK = 168
    """Code Track constraint."""
    C_OVER_N0_PLUS_I_GPS_CHANNEL = 169
    """CNoIGPSCh constraint."""
    ACCESS_CONSTRAINT_PLUGIN = 170
    """Access Constraint Plugin constraint."""
    THIRD_BODY_OBS = 171
    """Do not use this enumeration, as it is deprecated. Third Body Obstruction constraint."""
    SPECTRAL_FLUX_DENSITY = 172
    """Spectral Flux Density constraint."""
    CONDITION = 173
    """Crdn Condition constraint."""

FigureOfMeritConstraintName.UNKNOWN.__doc__ = "Unknown constraint."
FigureOfMeritConstraintName.ALTITUDE.__doc__ = "Altitude constraint."
FigureOfMeritConstraintName.ANGULAR_RATE.__doc__ = "Angular Rate constraint."
FigureOfMeritConstraintName.APPARENT_TIME.__doc__ = "Apparent Time constraint."
FigureOfMeritConstraintName.AZIMUTH_ANGLE.__doc__ = "Azimuth Angle constraint."
FigureOfMeritConstraintName.AZIMUTH_RATE.__doc__ = "Azimuth Rate constraint."
FigureOfMeritConstraintName.CENTRAL_BODY_OBSTRUCTION.__doc__ = "Central Body Obstruction constraint."
FigureOfMeritConstraintName.VECTOR_GEOMETRY_TOOL_ANGLE.__doc__ = "Angle constraint."
FigureOfMeritConstraintName.VECTOR_MAGNITUDE.__doc__ = "Vector Magnitude constraint."
FigureOfMeritConstraintName.ELEVATION_ANGLE.__doc__ = "Elevation Angle constraint."
FigureOfMeritConstraintName.ELEVATION_RATE.__doc__ = "Elevation Rate constraint."
FigureOfMeritConstraintName.ELEVATION_RISE_SET.__doc__ = "Elevation Rise Set constraint."
FigureOfMeritConstraintName.GEO_EXCLUSION.__doc__ = "Geo Exclusion constraint."
FigureOfMeritConstraintName.GROUND_SAMPLE_DISTANCE.__doc__ = "Ground Sample Distance constraint."
FigureOfMeritConstraintName.HEIGHT_ABOVE_HORIZON.__doc__ = "Height Above Horizon constraint."
FigureOfMeritConstraintName.LINE_OF_SIGHT_LUNAR_EXCLUSION_ANGLE.__doc__ = "LOS Lunar Exclusion constraint."
FigureOfMeritConstraintName.LINE_OF_SIGHT_SOLAR_EXCLUSION_ANGLE.__doc__ = "LOS Sun Exclusion constraint."
FigureOfMeritConstraintName.LUNAR_ELEVATION_ANGLE.__doc__ = "Lunar Elevation Angle constraint."
FigureOfMeritConstraintName.MATLAB.__doc__ = "Matlab constraint."
FigureOfMeritConstraintName.OBJECT_EXCLUSION_ANGLE.__doc__ = "Object Exclusion Angle constraint."
FigureOfMeritConstraintName.PROPAGATION_DELAY.__doc__ = "Propagation Delay constraint."
FigureOfMeritConstraintName.RANGE.__doc__ = "Range constraint."
FigureOfMeritConstraintName.RANGE_RATE.__doc__ = "Range Rate constraint."
FigureOfMeritConstraintName.SAR_AREA_RATE.__doc__ = "SAR Area Rate constraint."
FigureOfMeritConstraintName.SAR_AZIMUTH_RESOLUTION.__doc__ = "SAR Azimuth Resolution constraint."
FigureOfMeritConstraintName.SAR_CARRIER_TO_NOISE_RATIO.__doc__ = "SAR Carrier-to-Noise Ratio constraint."
FigureOfMeritConstraintName.SAR_EXTERNAL_DATA.__doc__ = "SAR External Data constraint."
FigureOfMeritConstraintName.SAR_INTEGRATION_TIME.__doc__ = "SAR Integration Time constraint."
FigureOfMeritConstraintName.SAR_PTCR.__doc__ = "SAR Point-Target-to-Clutter Ratio constraint."
FigureOfMeritConstraintName.SAR_SCR.__doc__ = "SAR Signal-to-Clutter Ratio constraint."
FigureOfMeritConstraintName.SAR_SNR.__doc__ = "SAR Signal-to-Noise Ratio constraint."
FigureOfMeritConstraintName.SAR_SIGMA_N.__doc__ = "SAR Sigma N constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_DWELL_TIME.__doc__ = "Search-Track Dwell Time constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_INTEGRATED_PROBABILITY_OF_DETECTION.__doc__ = "Search-Track Integrated Probability of Detection constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_INTEGRATED_SNR.__doc__ = "Search-Track Integrated Signal-to-Noise Ratio constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_INTEGRATION_TIME.__doc__ = "Search-Track Integration Time constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_SINGLE_PULSE_PROBABILITY_OF_DETECTION.__doc__ = "Search-Track Single Pulse Probability of Detection constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_SINGLE_PULSE_SNR.__doc__ = "Search-Track Single Pulse Signal-to-Noise Ratio constraint."
FigureOfMeritConstraintName.SUN_ELEVATION_ANGLE.__doc__ = "Sun Elevation Angle constraint."
FigureOfMeritConstraintName.TERRAIN_GRAZING_ANGLE.__doc__ = "Terrain Grazing Angle constraint."
FigureOfMeritConstraintName.ANGLE_TO_ASSET.__doc__ = "Angle To Asset constraint."
FigureOfMeritConstraintName.LINE_OF_SIGHT.__doc__ = "Line Of Sight constraint."
FigureOfMeritConstraintName.AZ_EL_MASK.__doc__ = "Azimuth Elevation Mask constraint."
FigureOfMeritConstraintName.DURATION.__doc__ = "Duration constraint."
FigureOfMeritConstraintName.GMT.__doc__ = "Greenwich Mean Time constraint."
FigureOfMeritConstraintName.IMAGE_QUALITY.__doc__ = "Image Quality constraint."
FigureOfMeritConstraintName.INTERVALS.__doc__ = "Intervals constraint."
FigureOfMeritConstraintName.LIGHTING.__doc__ = "Light constraint."
FigureOfMeritConstraintName.LOCAL_TIME.__doc__ = "Local Time constraint."
FigureOfMeritConstraintName.LINE_OF_SIGHT_CENTRAL_BODY_EXCLUSION.__doc__ = "Loss Of Signal Central Body Exclusion constraint."
FigureOfMeritConstraintName.POINT_METRIC.__doc__ = "Coordinate Point Metric constraint."
FigureOfMeritConstraintName.CENTROID_AZIMUTH_ANGLE.__doc__ = "Do not use this enumeration, as it is deprecated. Centroid Azimuth Angle constraint."
FigureOfMeritConstraintName.CENTROID_RANGE.__doc__ = "Do not use this enumeration, as it is deprecated. Centroid Range constraint."
FigureOfMeritConstraintName.CENTROID_SUN_ELEVATION_ANGLE.__doc__ = "Do not use this enumeration, as it is deprecated. Centroid Sun Elevation Angle constraint."
FigureOfMeritConstraintName.COLLECTION_ANGLE.__doc__ = "Collection Angle constraint."
FigureOfMeritConstraintName.DOPPLER_CONE_ANGLE.__doc__ = "Doppler Cone Angle constraint."
FigureOfMeritConstraintName.LATITUDE.__doc__ = "Latitude constraint."
FigureOfMeritConstraintName.SUN_GROUND_ELEVATION_ANGLE.__doc__ = "Sun Ground Elevation Angle constraint."
FigureOfMeritConstraintName.TERRAIN_MASK.__doc__ = "Terrain Mask constraint."
FigureOfMeritConstraintName.CROSS_TRACK_RANGE.__doc__ = "Cross Track Range constraint."
FigureOfMeritConstraintName.IN_TRACK_RANGE.__doc__ = "In Track Range constraint."
FigureOfMeritConstraintName.SQUINT_ANGLE.__doc__ = "Squinting Angle constraint."
FigureOfMeritConstraintName.BACKGROUND.__doc__ = "Background constraint."
FigureOfMeritConstraintName.FOREGROUND.__doc__ = "Foreground constraint."
FigureOfMeritConstraintName.BETA_ANGLE.__doc__ = "Beta Angle constraint."
FigureOfMeritConstraintName.AREA_TARGET_CENTROID_ELEVATION_ANGLE.__doc__ = "Do not use this enumeration, as it is deprecated. Area Target Centroid Elevation Angle constraint."
FigureOfMeritConstraintName.EXCLUSION_ZONE.__doc__ = "Exclusion Zone constraint."
FigureOfMeritConstraintName.GRAZING_ANGLE.__doc__ = "Grazing Angle constraint."
FigureOfMeritConstraintName.GRAZING_ALTITUDE.__doc__ = "Grazing Altitude constraint."
FigureOfMeritConstraintName.GROUND_ELEVATION_ANGLE.__doc__ = "Ground Elevation Angle constraint."
FigureOfMeritConstraintName.GROUND_TRACK.__doc__ = "Ground Track constraint."
FigureOfMeritConstraintName.INCLUSION_ZONE.__doc__ = "Inclusion Zone constraint."
FigureOfMeritConstraintName.SUN_SPECULAR_EXCLUSION.__doc__ = "Sun Specular Exclusion constraint."
FigureOfMeritConstraintName.DEPTH.__doc__ = "Deptch constraint."
FigureOfMeritConstraintName.FIELD_OF_VIEW.__doc__ = "Field Of View constraint."
FigureOfMeritConstraintName.ANGLE_OFF_BORESIGHT.__doc__ = "Angle Of Boresight constraint."
FigureOfMeritConstraintName.ANGLE_OFF_BORESIGHT_RATE.__doc__ = "Angle Of Boresight Rate constraint."
FigureOfMeritConstraintName.BORESIGHT_GRAZING_ANGLE.__doc__ = "Boresight Grazing Angle constraint."
FigureOfMeritConstraintName.BORESIGHT_INTERSECTION_LIGHTING_CONDITION.__doc__ = "BS Intersection Light Condition constraint."
FigureOfMeritConstraintName.FIELD_OF_VIEW_SUN_SPECULAR_EXCLUSION.__doc__ = "Field Of View Sun Specular Exclusion constraint."
FigureOfMeritConstraintName.FIELD_OF_VIEW_SUN_SPECULAR_INCLUSION.__doc__ = "Field Of View Sun Specular Inclusion constraint."
FigureOfMeritConstraintName.HORIZON_CROSSING.__doc__ = "Horizon Crossing constraint."
FigureOfMeritConstraintName.BORESIGHT_LUNAR_EXCLUSION_ANGLE.__doc__ = "BS Lunar Exclusion constraint."
FigureOfMeritConstraintName.BORESIGHT_SOLAR_EXCLUSION_ANGLE.__doc__ = "BS Sun Exclusion constraint."
FigureOfMeritConstraintName.BORESIGHT_CENTRAL_BODY_EXCLUSION_ANGLE.__doc__ = "BS Centray Body Exclusion constraint."
FigureOfMeritConstraintName.CENTRAL_BODY_OBSTRUCTION_CROSS_INWARD.__doc__ = "Field Of View Central Body Obstruction Cross In constraint."
FigureOfMeritConstraintName.CENTRAL_BODY_OBSTRUCTION_CROSS_OUTWARD.__doc__ = "Field Of View Central Body Obstruction Cross Out constraint."
FigureOfMeritConstraintName.CENTRAL_BODY_HORIZON_REFINE.__doc__ = "Field Of View Central Body Horizon Refine constraint."
FigureOfMeritConstraintName.CENTRAL_BODY_CENTER.__doc__ = "Field Of View Central Body Center constraint."
FigureOfMeritConstraintName.SENSOR_AZ_EL_MASK.__doc__ = "Sensor Azimuth Elevation Mask constraint."
FigureOfMeritConstraintName.SENSOR_RANGE_MASK.__doc__ = "Sensor Range Mask constraint."
FigureOfMeritConstraintName.INFRARED_DETECTION.__doc__ = "Infrared Detection constraint."
FigureOfMeritConstraintName.RADAR_TRANSMITTER_TARGET_ACCESS.__doc__ = "Radar Xmt Target Access constraint."
FigureOfMeritConstraintName.RADAR_TRANSMITTER_ACCESS.__doc__ = "Radar Xmt Access constraint."
FigureOfMeritConstraintName.RADAR_ACCESS.__doc__ = "Radar Access constraint."
FigureOfMeritConstraintName.BISTATIC_ANGLE.__doc__ = "Bistatic Angle constraint."
FigureOfMeritConstraintName.NOISE_TEMPERATURE.__doc__ = "Noise Temperature constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_INTEGRATED_PULSES.__doc__ = "Search-Track Integrated Pulses constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_MLC_FILTER.__doc__ = "Search-Track MLC Filter constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_SLC_FILTER.__doc__ = "Search-Track SLC Filter constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_CLEAR_DOPPLER.__doc__ = "Search-Track Clear Doppler constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_UNAMBIGUOUS_RANGE.__doc__ = "Search-Track Unambiguous Range constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_UNAMBIGUOUS_DOPPLER.__doc__ = "Search-Track Unambiguous Doppler constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_SINGLE_PULSE_SNR_JAMMING.__doc__ = "Search-Track Single Pulse SNR Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_SINGLE_PULSE_J_OVER_S.__doc__ = "Search-Track Single Pulse J/S constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING.__doc__ = "Search-Track Single Pulse PDet Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_INTEGRATED_SNR_JAMMING.__doc__ = "Search-Track Integrated SNR Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_INTEGRATED_J_OVER_S.__doc__ = "Search-Track Integrated J/S constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING.__doc__ = "Search-Track Integrated PDet Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_INTEGRATED_PULSES_JAMMING.__doc__ = "Search-Track Integrated Pulses Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_INTEGRATION_TIME_JAMMING.__doc__ = "Search-Track Integration Time Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_DWELL_TIME_JAMMING.__doc__ = "Search-Track Dwell Time Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_CONSTRAINT_PLUGIN.__doc__ = "Search-Track Constraint Plugin constraint."
FigureOfMeritConstraintName.SAR_SNR_JAMMING.__doc__ = "SAR SNR Jamming constraint."
FigureOfMeritConstraintName.SAR_CARRIER_TO_NOISE_RATIO_JAMMING.__doc__ = "SAR CNR Jamming constraint."
FigureOfMeritConstraintName.SAR_SCR_JAMMING.__doc__ = "SAR SCR Jamming constraint."
FigureOfMeritConstraintName.SAR_J_OVER_S.__doc__ = "SAR J/S constraint."
FigureOfMeritConstraintName.SAR_CONSTRAINT_PLUGIN.__doc__ = "SAR Constraint Plugin constraint."
FigureOfMeritConstraintName.SAR_ORTHOGONAL_POLARIZATION_SNR.__doc__ = "SAR Orthogonal Polar SNR constraint."
FigureOfMeritConstraintName.SAR_ORTHOGONAL_POLARIZATION_CNR.__doc__ = "SAR Orthogonal Polar CNR constraint."
FigureOfMeritConstraintName.SAR_ORTHOGONAL_POLARIZATION_SCR.__doc__ = "SAR Orthogonal Polar SCR constraint."
FigureOfMeritConstraintName.SAR_ORTHOGONAL_POLARIZATION_PTCR.__doc__ = "SAR Orthogonal Polar PTCR constraint."
FigureOfMeritConstraintName.SAR_ORTHOGONAL_POLARIZATION_SNR_JAMMING.__doc__ = "SAR Orthogonal Polar SNR Jamming constraint."
FigureOfMeritConstraintName.SAR_ORTHOGONAL_POLARIZATION_CNR_JAMMING.__doc__ = "SAR Orthogonal Polar CNR Jamming constraint."
FigureOfMeritConstraintName.SAR_ORTHOGONAL_POLARIZATION_SCR_JAMMING.__doc__ = "SAR Orthogonal Polar SCR Jamming constraint."
FigureOfMeritConstraintName.SAR_ORTHOGONAL_POLARIZATION_J_OVER_S.__doc__ = "SAR Orthogonal Polar J/S constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_SNR.__doc__ = "Search-Track Orthogonal Polar Single Pulse SNR constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_PROBABILITY_OF_DETECTION.__doc__ = "Search-Track Orthogonal Polar Single Pulse PDet constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_SNR.__doc__ = "Search-Track Orthogonal Polar Integrated SNR constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PROBABILITY_OF_DETECTION.__doc__ = "Search-Track Orthogonal Polar Integrated PDet constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PULSES.__doc__ = "Search-Track Orthogonal Polar Integrated Pulses constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATION_TIME.__doc__ = "Search-Track Orthogonal Polar Integration Time constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_DWELL_TIME.__doc__ = "Search-Track Orthogonal Polar Dwell Time constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_SNR_JAMMING.__doc__ = "Search-Track Orthogonal Polar Single Pulse SNR Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_J_OVER_S.__doc__ = "Search-Track Orthogonal Polar Single Pulse J/S constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_SINGLE_PULSE_PROBABILITY_OF_DETECTION_JAMMING.__doc__ = "Search-Track Orthogonal Polar Single Pulse PDet Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_SNR_JAMMING.__doc__ = "Search-Track Orthogonal Polar Integrated SNR Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_J_OVER_S.__doc__ = "Search-Track Orthogonal Polar Integrated J/S constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PROBABILITY_OF_DETECTION_JAMMING.__doc__ = "Search-Track Orthogonal Polar Integrated PDet Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATED_PULSES_JAMMING.__doc__ = "Search-Track Orthogonal Polar Integrated Pulses Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_INTEGRATION_TIME_JAMMING.__doc__ = "Search-Track Orthogonal Polar Integration Time Jamming constraint."
FigureOfMeritConstraintName.SEARCH_TRACK_ORTHOGONAL_POLARIZATION_DWELL_TIME_JAMMING.__doc__ = "Search-Track Orthogonal Polar Dwell Time Jamming constraint."
FigureOfMeritConstraintName.FREQUENCY.__doc__ = "Frequency constraint."
FigureOfMeritConstraintName.DOPPLER_SHIFT.__doc__ = "Doppler Shift constraint."
FigureOfMeritConstraintName.RECEIVED_ISOTROPIC_POWER.__doc__ = "Received Isotropic Power constraint."
FigureOfMeritConstraintName.POWER_AT_RECEIVER_INPUT.__doc__ = "Power at Receiver Input constraint."
FigureOfMeritConstraintName.FLUX_DENSITY.__doc__ = "Flux Density constraint."
FigureOfMeritConstraintName.G_OVER_T.__doc__ = "G/T constraint."
FigureOfMeritConstraintName.C_OVER_N0.__doc__ = "C/No constraint."
FigureOfMeritConstraintName.C_OVER_N.__doc__ = "C/N constraint."
FigureOfMeritConstraintName.LINK_MARGIN.__doc__ = "Link Margin constraint."
FigureOfMeritConstraintName.EB_OVER_N0.__doc__ = "Energy per bit to noise ratio (Eb/No) constraint."
FigureOfMeritConstraintName.BIT_ERROR_RATE.__doc__ = "Bit Error Rate constraint."
FigureOfMeritConstraintName.POLARIZATION_RELATIVE_ANGLE.__doc__ = "Polarization Relative Angle constraint."
FigureOfMeritConstraintName.COMM_PLUGIN.__doc__ = "Comm Plugin constraint."
FigureOfMeritConstraintName.LINK_EIRP.__doc__ = "Link EIRP constraint."
FigureOfMeritConstraintName.POWER_FLUX_DENSITY.__doc__ = "Power Flux Density constraint."
FigureOfMeritConstraintName.TOTAL_RECEIVED_REFRACTION_POWER.__doc__ = "Total Received Rf Power constraint."
FigureOfMeritConstraintName.C_OVER_N0_PLUS_I0.__doc__ = "C/No+Io constraint."
FigureOfMeritConstraintName.C_OVER_N_PLUS_I.__doc__ = "C/N+I constraint."
FigureOfMeritConstraintName.C_OVER_I.__doc__ = "C/I constraint."
FigureOfMeritConstraintName.J_OVER_S.__doc__ = "J/S constraint."
FigureOfMeritConstraintName.DELTA_T_OVER_T.__doc__ = "Delta T/T constraint."
FigureOfMeritConstraintName.EB_OVER_N0_PLUS_I0.__doc__ = "Eb/No+Io constraint."
FigureOfMeritConstraintName.BER_PLUS_I.__doc__ = "BER+I constraint."
FigureOfMeritConstraintName.FREQUENCY_TRACK.__doc__ = "Frequency Track constraint."
FigureOfMeritConstraintName.PHASE_TRACK.__doc__ = "Phase Track constraint."
FigureOfMeritConstraintName.CODE_TRACK.__doc__ = "Code Track constraint."
FigureOfMeritConstraintName.C_OVER_N0_PLUS_I_GPS_CHANNEL.__doc__ = "CNoIGPSCh constraint."
FigureOfMeritConstraintName.ACCESS_CONSTRAINT_PLUGIN.__doc__ = "Access Constraint Plugin constraint."
FigureOfMeritConstraintName.THIRD_BODY_OBS.__doc__ = "Do not use this enumeration, as it is deprecated. Third Body Obstruction constraint."
FigureOfMeritConstraintName.SPECTRAL_FLUX_DENSITY.__doc__ = "Spectral Flux Density constraint."
FigureOfMeritConstraintName.CONDITION.__doc__ = "Crdn Condition constraint."

agcls.AgTypeNameMap["FigureOfMeritConstraintName"] = FigureOfMeritConstraintName

class FigureOfMeritCompute(IntEnum):
    """Figure of Merit compute options."""

    UNKNOWN = -1
    """Unknown compute option."""
    AVERAGE = 0
    """Refer to STK Coverage help under the applicable figure of merit."""
    MAXIMUM = 1
    """Refer to STK Coverage help under the applicable figure of merit."""
    MINIMUM = 2
    """Refer to STK Coverage help under the applicable figure of merit."""
    PERCENT_ABOVE = 3
    """Refer to STK Coverage help under the applicable figure of merit."""
    PERCENT_BELOW = 4
    """Refer to STK Coverage help under the applicable figure of merit."""
    STD_DEVIATION = 5
    """Refer to STK Coverage help under the applicable figure of merit."""
    MAXIMUM_PER_DAY = 6
    """Refer to STK Coverage help under the applicable figure of merit."""
    MAXIMUM_PERCENT_PER_DAY = 7
    """Refer to STK Coverage help under the applicable figure of merit."""
    MINIMUM_PER_DAY = 8
    """Refer to STK Coverage help under the applicable figure of merit."""
    MINIMUM_PERCENT_PER_DAY = 9
    """Refer to STK Coverage help under the applicable figure of merit."""
    PER_DAY = 10
    """Refer to STK Coverage help under the applicable figure of merit."""
    PER_DAY_STANDARD_DEVIATION = 11
    """Refer to STK Coverage help under the applicable figure of merit."""
    PERCENT = 12
    """Refer to STK Coverage help under the applicable figure of merit."""
    PERCENT_PER_DAY = 13
    """Refer to STK Coverage help under the applicable figure of merit."""
    PERCENT_PER_DAY_STANDARD_DEVIATION = 14
    """Refer to STK Coverage help under the applicable figure of merit."""
    PERCENT_TIME_ABOVE = 15
    """Refer to STK Coverage help under the applicable figure of merit."""
    TOTAL = 16
    """Refer to STK Coverage help under the applicable figure of merit."""
    TOTAL_TIME_ABOVE = 17
    """Refer to STK Coverage help under the applicable figure of merit."""
    PERCENT_BELOW_GAPS_ONLY = 18
    """Refer to STK Coverage help under the applicable figure of merit."""
    NUMBER_PERCENT_BELOW = 19
    """Refer to STK Coverage help under the applicable figure of merit."""
    AVERAGE_PER_DAY = 20
    """Refer to STK Coverage help under the applicable figure of merit."""
    IN_SPAN = 21
    """Refer to STK Coverage help under the applicable figure of merit."""
    IN_SPAN_PER_DAY = 22
    """Refer to STK Coverage help under the applicable figure of merit."""
    SUM = 23
    """Refer to STK Coverage help under the applicable figure of merit."""
    UNIQUE = 24
    """Refer to STK Coverage help under the applicable figure of merit."""

FigureOfMeritCompute.UNKNOWN.__doc__ = "Unknown compute option."
FigureOfMeritCompute.AVERAGE.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.MAXIMUM.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.MINIMUM.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.PERCENT_ABOVE.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.PERCENT_BELOW.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.STD_DEVIATION.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.MAXIMUM_PER_DAY.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.MAXIMUM_PERCENT_PER_DAY.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.MINIMUM_PER_DAY.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.MINIMUM_PERCENT_PER_DAY.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.PER_DAY.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.PER_DAY_STANDARD_DEVIATION.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.PERCENT.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.PERCENT_PER_DAY.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.PERCENT_PER_DAY_STANDARD_DEVIATION.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.PERCENT_TIME_ABOVE.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.TOTAL.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.TOTAL_TIME_ABOVE.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.PERCENT_BELOW_GAPS_ONLY.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.NUMBER_PERCENT_BELOW.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.AVERAGE_PER_DAY.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.IN_SPAN.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.IN_SPAN_PER_DAY.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.SUM.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."
FigureOfMeritCompute.UNIQUE.__doc__ = "Refer to STK Coverage help under the applicable figure of merit."

agcls.AgTypeNameMap["FigureOfMeritCompute"] = FigureOfMeritCompute

class FigureOfMeritAcrossAssets(IntEnum):
    """Across Assets options: specify which value of the constraint is to be selected based on all currently available assets."""

    UNKNOWN = -1
    """Unknown."""
    AVERAGE = 0
    """Constraint values are computed for all currently available assets and the average is selected."""
    MAXIMUM = 1
    """Constraint values are computed for all currently available assets and the maximum is selected."""
    MINIMUM = 2
    """Constraint values are computed for all currently available assets and the minimum is selected."""
    SUM = 3
    """Constraint values are computed for all currently available assets and the sum is selected."""

FigureOfMeritAcrossAssets.UNKNOWN.__doc__ = "Unknown."
FigureOfMeritAcrossAssets.AVERAGE.__doc__ = "Constraint values are computed for all currently available assets and the average is selected."
FigureOfMeritAcrossAssets.MAXIMUM.__doc__ = "Constraint values are computed for all currently available assets and the maximum is selected."
FigureOfMeritAcrossAssets.MINIMUM.__doc__ = "Constraint values are computed for all currently available assets and the minimum is selected."
FigureOfMeritAcrossAssets.SUM.__doc__ = "Constraint values are computed for all currently available assets and the sum is selected."

agcls.AgTypeNameMap["FigureOfMeritAcrossAssets"] = FigureOfMeritAcrossAssets

class FigureOfMeritNavigationComputeType(IntEnum):
    """Allowed number of assets for the navigation solution."""

    BEST_4 = 0
    """Compute the navigation accuracy based on the set of four satellites that yields the minimum GDOP."""
    BEST_N = 1
    """Compute the navigation accuracy based on the specified number of satellites that yields the minimum GDOP."""
    OVER_DETERMINED = 2
    """Compute the navigation accuracy based on all of the currently available assets."""
    BEST_4_ACCURACY = 3
    """Compute the navigation accuracy based on the set of the set of four satellites that yields the minimum geometric uncertainty."""
    BEST_N_ACCURACY = 4
    """Compute the navigation accuracy based on the set of the specified number of satellites that yields the minimum geometric uncertainty."""

FigureOfMeritNavigationComputeType.BEST_4.__doc__ = "Compute the navigation accuracy based on the set of four satellites that yields the minimum GDOP."
FigureOfMeritNavigationComputeType.BEST_N.__doc__ = "Compute the navigation accuracy based on the specified number of satellites that yields the minimum GDOP."
FigureOfMeritNavigationComputeType.OVER_DETERMINED.__doc__ = "Compute the navigation accuracy based on all of the currently available assets."
FigureOfMeritNavigationComputeType.BEST_4_ACCURACY.__doc__ = "Compute the navigation accuracy based on the set of the set of four satellites that yields the minimum geometric uncertainty."
FigureOfMeritNavigationComputeType.BEST_N_ACCURACY.__doc__ = "Compute the navigation accuracy based on the set of the specified number of satellites that yields the minimum geometric uncertainty."

agcls.AgTypeNameMap["FigureOfMeritNavigationComputeType"] = FigureOfMeritNavigationComputeType

class FigureOfMeritMethod(IntEnum):
    """Dilution of Precision method."""

    GDOP = 0
    """Geometric Dilution of Precision: Measures the dilution of precision for the entire navigation solution."""
    HDOP = 1
    """Horizontal Dilution of Precision: Measures the dilution of precision for the horizontal (latitude/longitude) components of the positional portion of the navigation solution."""
    HDOP3 = 2
    """Same as HDOP, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."""
    PDOP = 3
    """Position Dilution of Precision: Measures only the dilution of precision associated with the positional portion of the navigation solution."""
    PDOP3 = 4
    """Same as PDOP, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."""
    TDOP = 5
    """Time Dilution of Precision: Measures the dilution of precision of the time portion of the navigation solution."""
    VDOP = 6
    """Vertical Dilution of Precision: Measures the dilution of precision for the vertical (altitude) components of the positional portion of the navigation solution."""
    VDOP3 = 7
    """Same as VDOP, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."""
    GACC = 8
    """Geometric Accuracy: Measures the accuracy of the entire navigation solution."""
    HACC = 9
    """Horizontal Accuracy: Measures the accuracy for the horizontal (latitude/longitude) components of the positional portion of the navigation solution."""
    HACC3 = 10
    """Same as HACC, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."""
    PACC = 11
    """Position Accuracy: Measures only the accuracy associated with the positional portion of the navigation solution."""
    PACC3 = 12
    """Same as PACC, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."""
    TACC = 13
    """Time Accuracy: Measures the accuracy of the time portion of the navigation solution."""
    VACC = 14
    """Vertical Accuracy: Measures the accuracy for the vertical (altitude) components of the positional portion of the navigation solution."""
    VACC3 = 15
    """Same as VACC, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."""
    EDOP = 16
    """East Dilution of Precision: Measures the dilution of precision for the east components of the positional portion of the navigation solution."""
    EDOP3 = 17
    """Same as eEDOP, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."""
    NDOP = 18
    """North Dilution of Precision: Measures the dilution of precision for the east components of the positional portion of the navigation solution."""
    NDOP3 = 19
    """Same as eNDOP, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."""
    EACC = 20
    """East Accuracy: Measures the accuracy for the east components of the positional portion of the navigation solution."""
    EACC3 = 21
    """Same as EACC, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."""
    NACC = 22
    """North Accuracy: Measures the accuracy for the north components of the positional portion of the navigation solution."""
    NACC3 = 23
    """Same as NACC, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."""

FigureOfMeritMethod.GDOP.__doc__ = "Geometric Dilution of Precision: Measures the dilution of precision for the entire navigation solution."
FigureOfMeritMethod.HDOP.__doc__ = "Horizontal Dilution of Precision: Measures the dilution of precision for the horizontal (latitude/longitude) components of the positional portion of the navigation solution."
FigureOfMeritMethod.HDOP3.__doc__ = "Same as HDOP, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."
FigureOfMeritMethod.PDOP.__doc__ = "Position Dilution of Precision: Measures only the dilution of precision associated with the positional portion of the navigation solution."
FigureOfMeritMethod.PDOP3.__doc__ = "Same as PDOP, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."
FigureOfMeritMethod.TDOP.__doc__ = "Time Dilution of Precision: Measures the dilution of precision of the time portion of the navigation solution."
FigureOfMeritMethod.VDOP.__doc__ = "Vertical Dilution of Precision: Measures the dilution of precision for the vertical (altitude) components of the positional portion of the navigation solution."
FigureOfMeritMethod.VDOP3.__doc__ = "Same as VDOP, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."
FigureOfMeritMethod.GACC.__doc__ = "Geometric Accuracy: Measures the accuracy of the entire navigation solution."
FigureOfMeritMethod.HACC.__doc__ = "Horizontal Accuracy: Measures the accuracy for the horizontal (latitude/longitude) components of the positional portion of the navigation solution."
FigureOfMeritMethod.HACC3.__doc__ = "Same as HACC, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."
FigureOfMeritMethod.PACC.__doc__ = "Position Accuracy: Measures only the accuracy associated with the positional portion of the navigation solution."
FigureOfMeritMethod.PACC3.__doc__ = "Same as PACC, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."
FigureOfMeritMethod.TACC.__doc__ = "Time Accuracy: Measures the accuracy of the time portion of the navigation solution."
FigureOfMeritMethod.VACC.__doc__ = "Vertical Accuracy: Measures the accuracy for the vertical (altitude) components of the positional portion of the navigation solution."
FigureOfMeritMethod.VACC3.__doc__ = "Same as VACC, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."
FigureOfMeritMethod.EDOP.__doc__ = "East Dilution of Precision: Measures the dilution of precision for the east components of the positional portion of the navigation solution."
FigureOfMeritMethod.EDOP3.__doc__ = "Same as eEDOP, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."
FigureOfMeritMethod.NDOP.__doc__ = "North Dilution of Precision: Measures the dilution of precision for the east components of the positional portion of the navigation solution."
FigureOfMeritMethod.NDOP3.__doc__ = "Same as eNDOP, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."
FigureOfMeritMethod.EACC.__doc__ = "East Accuracy: Measures the accuracy for the east components of the positional portion of the navigation solution."
FigureOfMeritMethod.EACC3.__doc__ = "Same as EACC, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."
FigureOfMeritMethod.NACC.__doc__ = "North Accuracy: Measures the accuracy for the north components of the positional portion of the navigation solution."
FigureOfMeritMethod.NACC3.__doc__ = "Same as NACC, but the DOP value is computed even if only 3 navigation sources are available, in which case the clock component is ignored."

agcls.AgTypeNameMap["FigureOfMeritMethod"] = FigureOfMeritMethod

class FigureOfMeritEndGapOption(IntEnum):
    """End gap options: control consideration of gaps at ends of analysis intervals."""

    IGNORE = 0
    """Ignore: eliminate gaps at the ends of the analysis interval from the revisit time computations."""
    INCLUDE = 1
    """Include: include gaps at the ends of the analysis interval in the revisit time computations."""

FigureOfMeritEndGapOption.IGNORE.__doc__ = "Ignore: eliminate gaps at the ends of the analysis interval from the revisit time computations."
FigureOfMeritEndGapOption.INCLUDE.__doc__ = "Include: include gaps at the ends of the analysis interval in the revisit time computations."

agcls.AgTypeNameMap["FigureOfMeritEndGapOption"] = FigureOfMeritEndGapOption

class FigureOfMeritGraphics2DContourType(IntEnum):
    """Contour fill options."""

    BLOCK_FILL = 0
    """Block Fill: color is applied to a region that contains points of a certain contour level."""
    SMOOTH_FILL = 1
    """Smooth Fill: color is applied smoothly over all points in the grid to differentiate contour levels. NOTE: Not a valid choice when BoundsType (CoverageGrid) is set to LatLine, LonLine or CustomBoundary."""

FigureOfMeritGraphics2DContourType.BLOCK_FILL.__doc__ = "Block Fill: color is applied to a region that contains points of a certain contour level."
FigureOfMeritGraphics2DContourType.SMOOTH_FILL.__doc__ = "Smooth Fill: color is applied smoothly over all points in the grid to differentiate contour levels. NOTE: Not a valid choice when BoundsType (CoverageGrid) is set to LatLine, LonLine or CustomBoundary."

agcls.AgTypeNameMap["FigureOfMeritGraphics2DContourType"] = FigureOfMeritGraphics2DContourType

class FigureOfMeritGraphics2DColorMethod(IntEnum):
    """Methods for assigning colors to contour levels."""

    COLOR_RAMP = 0
    """Color Ramp: apply a spectrum pattern with selected start and end colors."""
    EXPLICIT = 1
    """Explicit: assign colors individually to contour levels."""

FigureOfMeritGraphics2DColorMethod.COLOR_RAMP.__doc__ = "Color Ramp: apply a spectrum pattern with selected start and end colors."
FigureOfMeritGraphics2DColorMethod.EXPLICIT.__doc__ = "Explicit: assign colors individually to contour levels."

agcls.AgTypeNameMap["FigureOfMeritGraphics2DColorMethod"] = FigureOfMeritGraphics2DColorMethod

class FigureOfMeritGraphics2DFloatingPointFormat(IntEnum):
    """Format options for floating point numbers."""

    FLOATING_POINT = 0
    """Floating point format."""
    SCIENTIFIC_UPPERCASE_E = 1
    """Scientific (E)."""
    SCIENTIFIC_LOWERCASE_E = 2
    """Scientific (e)."""

FigureOfMeritGraphics2DFloatingPointFormat.FLOATING_POINT.__doc__ = "Floating point format."
FigureOfMeritGraphics2DFloatingPointFormat.SCIENTIFIC_UPPERCASE_E.__doc__ = "Scientific (E)."
FigureOfMeritGraphics2DFloatingPointFormat.SCIENTIFIC_LOWERCASE_E.__doc__ = "Scientific (e)."

agcls.AgTypeNameMap["FigureOfMeritGraphics2DFloatingPointFormat"] = FigureOfMeritGraphics2DFloatingPointFormat

class FigureOfMeritGraphics2DDirection(IntEnum):
    """Level order display options for the contour legend."""

    HORIZONTAL_MAXIMUM_TO_MINIMUM = 0
    """Levels are displayed horizontally, in descending order."""
    HORIZONTAL_MINIMUM_TO_MAXIMUM = 1
    """Levels are displayed horizontally, in ascending order."""
    VERTICAL_MAXIMUM_TO_MINIMUM = 2
    """Levels are displayed vertically, in descending order."""
    VERTICAL_MINIMUM_TO_MAXIMUM = 3
    """Levels are displayed vertically, in ascending order."""

FigureOfMeritGraphics2DDirection.HORIZONTAL_MAXIMUM_TO_MINIMUM.__doc__ = "Levels are displayed horizontally, in descending order."
FigureOfMeritGraphics2DDirection.HORIZONTAL_MINIMUM_TO_MAXIMUM.__doc__ = "Levels are displayed horizontally, in ascending order."
FigureOfMeritGraphics2DDirection.VERTICAL_MAXIMUM_TO_MINIMUM.__doc__ = "Levels are displayed vertically, in descending order."
FigureOfMeritGraphics2DDirection.VERTICAL_MINIMUM_TO_MAXIMUM.__doc__ = "Levels are displayed vertically, in ascending order."

agcls.AgTypeNameMap["FigureOfMeritGraphics2DDirection"] = FigureOfMeritGraphics2DDirection

class FigureOfMeritGraphics2DAccumulation(IntEnum):
    """Accumulation options: control the sense and persistence of animation graphics for a Figure of Merit."""

    CURRENT_TIME = 0
    """When animating, grid points that currently meet the satisfaction criterion are highlighted."""
    NOT_CURRENT = 1
    """When animating, grid points that currently do not meet the satisfaction criterion are highlighted."""
    NOT_UP_TO_CURRENT = 2
    """When animating, grid points that have not met the satisfaction criterion based on the dynamic definition of the figure of merit from the start time to the current time are highlighted."""
    UP_TO_CURRENT = 3
    """When animating, grid points that have met the satisfaction criterion based on the dynamic definition of the figure of merit from the start time to the current time are highlighted."""

FigureOfMeritGraphics2DAccumulation.CURRENT_TIME.__doc__ = "When animating, grid points that currently meet the satisfaction criterion are highlighted."
FigureOfMeritGraphics2DAccumulation.NOT_CURRENT.__doc__ = "When animating, grid points that currently do not meet the satisfaction criterion are highlighted."
FigureOfMeritGraphics2DAccumulation.NOT_UP_TO_CURRENT.__doc__ = "When animating, grid points that have not met the satisfaction criterion based on the dynamic definition of the figure of merit from the start time to the current time are highlighted."
FigureOfMeritGraphics2DAccumulation.UP_TO_CURRENT.__doc__ = "When animating, grid points that have met the satisfaction criterion based on the dynamic definition of the figure of merit from the start time to the current time are highlighted."

agcls.AgTypeNameMap["FigureOfMeritGraphics2DAccumulation"] = FigureOfMeritGraphics2DAccumulation

class FigureOfMeritNavigationAccuracyMethod(IntEnum):
    """Options for uncertainty in one-way range measurements for the Navigation Accuracy Figure of Merit."""

    CONSTANT = 0
    """The uncertainty in the one-way range measurements is specified as a constant value."""
    ELEVATION_ANGLE = 1
    """The uncertainty in the one-way range measurements is specified as a function of the elevation angle on a transmitter basis."""

FigureOfMeritNavigationAccuracyMethod.CONSTANT.__doc__ = "The uncertainty in the one-way range measurements is specified as a constant value."
FigureOfMeritNavigationAccuracyMethod.ELEVATION_ANGLE.__doc__ = "The uncertainty in the one-way range measurements is specified as a function of the elevation angle on a transmitter basis."

agcls.AgTypeNameMap["FigureOfMeritNavigationAccuracyMethod"] = FigureOfMeritNavigationAccuracyMethod

class IvClockHost(IntEnum):
    """Clock host options for access. Time values are reported with a clock colocated with the clock host object."""

    BASE = 0
    """Base: Refers to the object from which access is being computed."""
    TARGET = 1
    """Target: Refers to an object to which access is being computed."""

IvClockHost.BASE.__doc__ = "Base: Refers to the object from which access is being computed."
IvClockHost.TARGET.__doc__ = "Target: Refers to an object to which access is being computed."

agcls.AgTypeNameMap["IvClockHost"] = IvClockHost

class IvTimeSense(IntEnum):
    """Mode of signal transmission of the designated clock host."""

    UNKNOWN = -1
    """Unknown time sense option."""
    TRANSMIT = 0
    """Clock host is transmitting."""
    RECEIVE = 1
    """Clock host is receiving."""

IvTimeSense.UNKNOWN.__doc__ = "Unknown time sense option."
IvTimeSense.TRANSMIT.__doc__ = "Clock host is transmitting."
IvTimeSense.RECEIVE.__doc__ = "Clock host is receiving."

agcls.AgTypeNameMap["IvTimeSense"] = IvTimeSense

class GPSAttitudeModelType(IntEnum):
    """GPS attitude profile model types."""

    UNKNOWN = -1
    """Unknown GPS attitude model."""
    GYM95 = 0
    """GYM 95 model."""
    BLOCK_IIA_NOMINAL = 1
    """IIA Nominal model."""
    BLOCK_IIR_NOMINAL = 2
    """IIR Nominal model."""

GPSAttitudeModelType.UNKNOWN.__doc__ = "Unknown GPS attitude model."
GPSAttitudeModelType.GYM95.__doc__ = "GYM 95 model."
GPSAttitudeModelType.BLOCK_IIA_NOMINAL.__doc__ = "IIA Nominal model."
GPSAttitudeModelType.BLOCK_IIR_NOMINAL.__doc__ = "IIR Nominal model."

agcls.AgTypeNameMap["GPSAttitudeModelType"] = GPSAttitudeModelType

class ConstellationConstraintRestrictionType(IntEnum):
    """The values of the enumeration are used to define constellation constraints that allow you to specify the criteria to be used when constellations are combined with other objects in a chain."""

    UNKNOWN = -1
    """Unknown or not supported criterion."""
    ALL_OF = 0
    """AND criterion. The constraint is satisfied if all objects in the constellation meet the conditions for chain access."""
    ANY_OF = 1
    """EITHER/OR criterion. The constraint is satisfied if any one object in the constellation meets the conditions for chain access."""
    AT_LEAST_N = 2
    """AND/OR criterion. The constraint is satisfied if at least the specified number of objects in the constellation meet the conditions for chain access."""
    EXACTLY_N = 3
    """ONLY criterion. This constraint is satisfied if the exact specified number of objects in the constellation meet the conditions for chain access."""
    NONE_OF = 4
    """ONLY criterion. The constraint is satisfied if NO objects in the constellation meet the conditions for chain access."""

ConstellationConstraintRestrictionType.UNKNOWN.__doc__ = "Unknown or not supported criterion."
ConstellationConstraintRestrictionType.ALL_OF.__doc__ = "AND criterion. The constraint is satisfied if all objects in the constellation meet the conditions for chain access."
ConstellationConstraintRestrictionType.ANY_OF.__doc__ = "EITHER/OR criterion. The constraint is satisfied if any one object in the constellation meets the conditions for chain access."
ConstellationConstraintRestrictionType.AT_LEAST_N.__doc__ = "AND/OR criterion. The constraint is satisfied if at least the specified number of objects in the constellation meet the conditions for chain access."
ConstellationConstraintRestrictionType.EXACTLY_N.__doc__ = "ONLY criterion. This constraint is satisfied if the exact specified number of objects in the constellation meet the conditions for chain access."
ConstellationConstraintRestrictionType.NONE_OF.__doc__ = "ONLY criterion. The constraint is satisfied if NO objects in the constellation meet the conditions for chain access."

agcls.AgTypeNameMap["ConstellationConstraintRestrictionType"] = ConstellationConstraintRestrictionType

class EventDetection(IntEnum):
    """Available event detection strategies."""

    UNKNOWN = -1
    """Unknown event detection strategy."""
    NO_SUB_SAMPLING = 0
    """Event detection strategy not using subsampling."""
    USE_SUB_SAMPLING = 1
    """Event detection strategy using subsampling."""

EventDetection.UNKNOWN.__doc__ = "Unknown event detection strategy."
EventDetection.NO_SUB_SAMPLING.__doc__ = "Event detection strategy not using subsampling."
EventDetection.USE_SUB_SAMPLING.__doc__ = "Event detection strategy using subsampling."

agcls.AgTypeNameMap["EventDetection"] = EventDetection

class SamplingMethod(IntEnum):
    """Available sampling methods."""

    UNKNOWN = -1
    """Unknown sampling method."""
    ADAPTIVE = 0
    """Adaptive sampling method."""
    FIXED_STEP = 1
    """Fixed-step sampling method."""

SamplingMethod.UNKNOWN.__doc__ = "Unknown sampling method."
SamplingMethod.ADAPTIVE.__doc__ = "Adaptive sampling method."
SamplingMethod.FIXED_STEP.__doc__ = "Fixed-step sampling method."

agcls.AgTypeNameMap["SamplingMethod"] = SamplingMethod

class CoverageSatisfactionType(IntEnum):
    """The condition on the number of assets covering a grid point that must be satisfied for a valid access."""

    UNKNOWN = -1
    """Unknown satisfaction type."""
    AT_LEAST = 0
    """The number of assets must be At Least N."""
    EQUAL_TO = 1
    """The number of assets must be Exactly N (Equal to N), where N is greater than or equal to 1."""

CoverageSatisfactionType.UNKNOWN.__doc__ = "Unknown satisfaction type."
CoverageSatisfactionType.AT_LEAST.__doc__ = "The number of assets must be At Least N."
CoverageSatisfactionType.EQUAL_TO.__doc__ = "The number of assets must be Exactly N (Equal to N), where N is greater than or equal to 1."

agcls.AgTypeNameMap["CoverageSatisfactionType"] = CoverageSatisfactionType

class CCSDSReferenceFrame(IntEnum):
    """Reference Frame."""

    EME2000 = 0
    """EME2000 reference frame."""
    FIXED = 1
    """Fixed reference frame."""
    ITRF = 2
    """ITRF reference frame, meaning Earth Fixed (valid for Earth only)."""
    TOD = 4
    """TrueOfDate reference frame."""
    MEAN_EARTH = 5
    """MeanEarth reference frame (valid for Moon only)."""
    ICRF = 6
    """ICRF reference frame."""
    TEME_OF_DATE = 7
    """TEMEOfDate reference frame (valid for Earth only)."""
    ITRF2000 = 8
    """ITRF2000 reference frame (valid for Earth only)."""
    ITRF2005 = 9
    """ITRF2005 reference frame (valid for Earth only)."""
    ITRF2008 = 10
    """ITRF2008 reference frame (valid for Earth only)."""
    ITRF2014 = 11
    """ITRF2014 reference frame (valid for Earth only)."""
    ITRF2020 = 12
    """ITRF2020 reference frame (valid for Earth only)."""
    GCRF = 13
    """Another name for the ICRF frame when used for the Earth (valid for Earth only)."""

CCSDSReferenceFrame.EME2000.__doc__ = "EME2000 reference frame."
CCSDSReferenceFrame.FIXED.__doc__ = "Fixed reference frame."
CCSDSReferenceFrame.ITRF.__doc__ = "ITRF reference frame, meaning Earth Fixed (valid for Earth only)."
CCSDSReferenceFrame.TOD.__doc__ = "TrueOfDate reference frame."
CCSDSReferenceFrame.MEAN_EARTH.__doc__ = "MeanEarth reference frame (valid for Moon only)."
CCSDSReferenceFrame.ICRF.__doc__ = "ICRF reference frame."
CCSDSReferenceFrame.TEME_OF_DATE.__doc__ = "TEMEOfDate reference frame (valid for Earth only)."
CCSDSReferenceFrame.ITRF2000.__doc__ = "ITRF2000 reference frame (valid for Earth only)."
CCSDSReferenceFrame.ITRF2005.__doc__ = "ITRF2005 reference frame (valid for Earth only)."
CCSDSReferenceFrame.ITRF2008.__doc__ = "ITRF2008 reference frame (valid for Earth only)."
CCSDSReferenceFrame.ITRF2014.__doc__ = "ITRF2014 reference frame (valid for Earth only)."
CCSDSReferenceFrame.ITRF2020.__doc__ = "ITRF2020 reference frame (valid for Earth only)."
CCSDSReferenceFrame.GCRF.__doc__ = "Another name for the ICRF frame when used for the Earth (valid for Earth only)."

agcls.AgTypeNameMap["CCSDSReferenceFrame"] = CCSDSReferenceFrame

class CCSDSDateFormat(IntEnum):
    """The date format of the file."""

    YDOY = 0
    """(YDOY Date format:  YYYY-DDD:THH:mm:SS.SSS)."""
    YMD = 1
    """(YMD Date format:  YYYY-MM-DDT:HH:mm:SS.SSS)."""

CCSDSDateFormat.YDOY.__doc__ = "(YDOY Date format:  YYYY-DDD:THH:mm:SS.SSS)."
CCSDSDateFormat.YMD.__doc__ = "(YMD Date format:  YYYY-MM-DDT:HH:mm:SS.SSS)."

agcls.AgTypeNameMap["CCSDSDateFormat"] = CCSDSDateFormat

class CCSDSEphemerisFormatType(IntEnum):
    """The ephemeris format of the file."""

    FLOATING_POINT = 0
    """Floating point notation format for representing the position and velocity information."""
    SCIENTIFIC_NOTATION = 1
    """Scientific notation format for representing the position and velocity information."""

CCSDSEphemerisFormatType.FLOATING_POINT.__doc__ = "Floating point notation format for representing the position and velocity information."
CCSDSEphemerisFormatType.SCIENTIFIC_NOTATION.__doc__ = "Scientific notation format for representing the position and velocity information."

agcls.AgTypeNameMap["CCSDSEphemerisFormatType"] = CCSDSEphemerisFormatType

class CCSDSTimeSystem(IntEnum):
    """Time System."""

    UTC = 0
    """UTC time system."""
    TAI = 1
    """TAI time system."""
    GPS = 2
    """GPS time system."""
    TT = 3
    """TT time system."""
    TDB = 4
    """TDB time system."""

CCSDSTimeSystem.UTC.__doc__ = "UTC time system."
CCSDSTimeSystem.TAI.__doc__ = "TAI time system."
CCSDSTimeSystem.GPS.__doc__ = "GPS time system."
CCSDSTimeSystem.TT.__doc__ = "TT time system."
CCSDSTimeSystem.TDB.__doc__ = "TDB time system."

agcls.AgTypeNameMap["CCSDSTimeSystem"] = CCSDSTimeSystem

class EphemerisCoordinateSystemType(IntEnum):
    """The Coordinate System of the file."""

    FIXED = 0
    """Fixed reference frame."""
    INERTIAL = 1
    """Inertial reference frame."""
    J2000 = 2
    """J2000 reference frame."""
    ICRF = 3
    """ICRF reference frame."""
    TRUE_OF_DATE = 4
    """TrueOfDate reference frame."""
    MEAN_EARTH = 5
    """MeanEarth reference frame (valid for Moon only)."""
    TEME_OF_DATE = 6
    """TEMEOfDate reference frame (valid for Earth only)."""
    ITRF2000 = 7
    """ITRF2000 reference frame (valid for Earth only)."""
    ITRF2005 = 8
    """ITRF2005 reference frame (valid for Earth only)."""
    ITRF2008 = 9
    """ITRF2008 reference frame (valid for Earth only)."""
    ITRF2014 = 10
    """ITRF2014 reference frame (valid for Earth only)."""
    ITRF2020 = 11
    """ITRF2020 reference frame (valid for Earth only)."""

EphemerisCoordinateSystemType.FIXED.__doc__ = "Fixed reference frame."
EphemerisCoordinateSystemType.INERTIAL.__doc__ = "Inertial reference frame."
EphemerisCoordinateSystemType.J2000.__doc__ = "J2000 reference frame."
EphemerisCoordinateSystemType.ICRF.__doc__ = "ICRF reference frame."
EphemerisCoordinateSystemType.TRUE_OF_DATE.__doc__ = "TrueOfDate reference frame."
EphemerisCoordinateSystemType.MEAN_EARTH.__doc__ = "MeanEarth reference frame (valid for Moon only)."
EphemerisCoordinateSystemType.TEME_OF_DATE.__doc__ = "TEMEOfDate reference frame (valid for Earth only)."
EphemerisCoordinateSystemType.ITRF2000.__doc__ = "ITRF2000 reference frame (valid for Earth only)."
EphemerisCoordinateSystemType.ITRF2005.__doc__ = "ITRF2005 reference frame (valid for Earth only)."
EphemerisCoordinateSystemType.ITRF2008.__doc__ = "ITRF2008 reference frame (valid for Earth only)."
EphemerisCoordinateSystemType.ITRF2014.__doc__ = "ITRF2014 reference frame (valid for Earth only)."
EphemerisCoordinateSystemType.ITRF2020.__doc__ = "ITRF2020 reference frame (valid for Earth only)."

agcls.AgTypeNameMap["EphemerisCoordinateSystemType"] = EphemerisCoordinateSystemType

class EphemerisCovarianceType(IntEnum):
    """The covariance data export type."""

    NONE = 0
    """No covariance data."""
    POSITION_3_BY_3 = 1
    """Position covariance data."""
    POSITION_VELOCITY_6_BY_6 = 2
    """Position/velocity covariance data."""

EphemerisCovarianceType.NONE.__doc__ = "No covariance data."
EphemerisCovarianceType.POSITION_3_BY_3.__doc__ = "Position covariance data."
EphemerisCovarianceType.POSITION_VELOCITY_6_BY_6.__doc__ = "Position/velocity covariance data."

agcls.AgTypeNameMap["EphemerisCovarianceType"] = EphemerisCovarianceType

class ExportToolVersionFormat(IntEnum):
    """The version format of the file."""

    FORMAT410 = 0
    """STK 4.1 format."""
    FORMAT420 = 1
    """STK 4.2 format."""
    FORMAT430 = 2
    """STK 4.3 format."""
    FORMAT600 = 3
    """STK 6.0 format."""
    FORMAT620 = 4
    """STK 6.2 format."""
    CURRENT = 5
    """The current STK format."""
    FORMAT800 = 6
    """STK 8.0 format."""

ExportToolVersionFormat.FORMAT410.__doc__ = "STK 4.1 format."
ExportToolVersionFormat.FORMAT420.__doc__ = "STK 4.2 format."
ExportToolVersionFormat.FORMAT430.__doc__ = "STK 4.3 format."
ExportToolVersionFormat.FORMAT600.__doc__ = "STK 6.0 format."
ExportToolVersionFormat.FORMAT620.__doc__ = "STK 6.2 format."
ExportToolVersionFormat.CURRENT.__doc__ = "The current STK format."
ExportToolVersionFormat.FORMAT800.__doc__ = "STK 8.0 format."

agcls.AgTypeNameMap["ExportToolVersionFormat"] = ExportToolVersionFormat

class ExportToolTimePeriodType(IntEnum):
    """Values of the enumeration represent polymorphic object types."""

    SPECIFY = 0
    """Create a data file using specified Start and Stop Times."""
    USE_ENTIRE_EPHEMERIS = 1
    """Create a data file using the Start and Stop Time specified in the vehicle's Orbit page."""

ExportToolTimePeriodType.SPECIFY.__doc__ = "Create a data file using specified Start and Stop Times."
ExportToolTimePeriodType.USE_ENTIRE_EPHEMERIS.__doc__ = "Create a data file using the Start and Stop Time specified in the vehicle's Orbit page."

agcls.AgTypeNameMap["ExportToolTimePeriodType"] = ExportToolTimePeriodType

class SpiceInterpolation(IntEnum):
    """The SPICE interpolation type."""

    LAGRANGE_9TH_ORDER = 0
    """Type 9 (LaGrangian)."""
    HERMITE_13TH_ORDER = 1
    """Type 13 (Hermitian)."""

SpiceInterpolation.LAGRANGE_9TH_ORDER.__doc__ = "Type 9 (LaGrangian)."
SpiceInterpolation.HERMITE_13TH_ORDER.__doc__ = "Type 13 (Hermitian)."

agcls.AgTypeNameMap["SpiceInterpolation"] = SpiceInterpolation

class AttitudeCoordinateAxes(IntEnum):
    """Attitude export options."""

    CUSTOM = 0
    """Custom reference axes."""
    FIXED = 1
    """The Fixed frame of a central body is the frame in which its topography is expressed."""
    J2000 = 2
    """Mean Equator and Mean Equinox of the J2000 epoch (JD 2451545.0 TDB which is 1 Jan 2000 12:00:00.000 TDB). The J2000 axes were considered the best realized inertial axes until the development of the ICRF."""
    ICRF = 3
    """International Celestial Reference Frame. The ICRF axes are defined as the inertial (i.e., kinematically non-rotating) axes associated with a general relativity frame centered at the solar system barycenter (often called the BCRF)."""
    INERTIAL = 4
    """Each central body defines its own Inertial frame computed as a constant rotation from the ICRF frame. Earth and Sun both define their Inertial frames as ICRF itself (i.e., no rotation) and do not provide an additional frame named Inertial."""

AttitudeCoordinateAxes.CUSTOM.__doc__ = "Custom reference axes."
AttitudeCoordinateAxes.FIXED.__doc__ = "The Fixed frame of a central body is the frame in which its topography is expressed."
AttitudeCoordinateAxes.J2000.__doc__ = "Mean Equator and Mean Equinox of the J2000 epoch (JD 2451545.0 TDB which is 1 Jan 2000 12:00:00.000 TDB). The J2000 axes were considered the best realized inertial axes until the development of the ICRF."
AttitudeCoordinateAxes.ICRF.__doc__ = "International Celestial Reference Frame. The ICRF axes are defined as the inertial (i.e., kinematically non-rotating) axes associated with a general relativity frame centered at the solar system barycenter (often called the BCRF)."
AttitudeCoordinateAxes.INERTIAL.__doc__ = "Each central body defines its own Inertial frame computed as a constant rotation from the ICRF frame. Earth and Sun both define their Inertial frames as ICRF itself (i.e., no rotation) and do not provide an additional frame named Inertial."

agcls.AgTypeNameMap["AttitudeCoordinateAxes"] = AttitudeCoordinateAxes

class AttitudeInclude(IntEnum):
    """Details to include in an exported Attitude file."""

    QUATERNIONS = 0
    """Include quaternions with the exported data."""
    QUATERNIONS_AND_ANGULAR_VELOCITY = 1
    """Include quaternions and angular velocity with the exported data."""

AttitudeInclude.QUATERNIONS.__doc__ = "Include quaternions with the exported data."
AttitudeInclude.QUATERNIONS_AND_ANGULAR_VELOCITY.__doc__ = "Include quaternions and angular velocity with the exported data."

agcls.AgTypeNameMap["AttitudeInclude"] = AttitudeInclude

class ExportToolStepSizeType(IntEnum):
    """The Step Size type for an attitude file."""

    EPHEMERIS = 0
    """The Step Size specified in the vehicle's Basic properties."""
    SPECIFY = 1
    """A specified Step Size to be used for the vehicle."""
    NATIVE = 2
    """The Step Size specified in the vehicle's Basic properties plus any additional times at which the vehicle's attitude changes abruptly. Creates a more complete attitude file without requiring the use of a very small, performance-reducing step size."""
    TIME_ARRAY = 3
    """The Step Size specified in time array component for the vehicle."""

ExportToolStepSizeType.EPHEMERIS.__doc__ = "The Step Size specified in the vehicle's Basic properties."
ExportToolStepSizeType.SPECIFY.__doc__ = "A specified Step Size to be used for the vehicle."
ExportToolStepSizeType.NATIVE.__doc__ = "The Step Size specified in the vehicle's Basic properties plus any additional times at which the vehicle's attitude changes abruptly. Creates a more complete attitude file without requiring the use of a very small, performance-reducing step size."
ExportToolStepSizeType.TIME_ARRAY.__doc__ = "The Step Size specified in time array component for the vehicle."

agcls.AgTypeNameMap["ExportToolStepSizeType"] = ExportToolStepSizeType

class TextOutlineStyle(IntEnum):
    """The text outline style for 2D graphics display."""

    UNKNOWN = -1
    """Unknown text outline for 2D graphics display."""
    NONE = 0
    """No text outline for 2D graphics display."""
    THICK = 1
    """Thick text outline for 2D graphics display."""
    THIN = 2
    """Thin text outline for 2D graphics display."""

TextOutlineStyle.UNKNOWN.__doc__ = "Unknown text outline for 2D graphics display."
TextOutlineStyle.NONE.__doc__ = "No text outline for 2D graphics display."
TextOutlineStyle.THICK.__doc__ = "Thick text outline for 2D graphics display."
TextOutlineStyle.THIN.__doc__ = "Thin text outline for 2D graphics display."

agcls.AgTypeNameMap["TextOutlineStyle"] = TextOutlineStyle

class MTORangeMode(IntEnum):
    """MTO Range Mode."""

    EACH = 2
    """For every track, returns the track id, 1 (within range) or 0 (not in range), and the range value in Connect distance units."""
    EACH_IN_RANGE = 3
    """Return the Track_id for each track in range, a 1 and the range value in Connect distance units."""
    EACH_NOT_IN_RANGE = 4
    """Return the Track_id for each track not in range, a 0 and the range value in Connect distance units."""

MTORangeMode.EACH.__doc__ = "For every track, returns the track id, 1 (within range) or 0 (not in range), and the range value in Connect distance units."
MTORangeMode.EACH_IN_RANGE.__doc__ = "Return the Track_id for each track in range, a 1 and the range value in Connect distance units."
MTORangeMode.EACH_NOT_IN_RANGE.__doc__ = "Return the Track_id for each track not in range, a 0 and the range value in Connect distance units."

agcls.AgTypeNameMap["MTORangeMode"] = MTORangeMode

class MTOTrackEvaluationType(IntEnum):
    """MTO Track Eval Mode."""

    ALL = 0
    """Return 1 if every track is within range otherwise it returns 0."""
    ANY = 1
    """Return 1 if any track is in range of the Object, (ie, lowerLimit <= range <= upperLimit) else returns 0."""

MTOTrackEvaluationType.ALL.__doc__ = "Return 1 if every track is within range otherwise it returns 0."
MTOTrackEvaluationType.ANY.__doc__ = "Return 1 if any track is in range of the Object, (ie, lowerLimit <= range <= upperLimit) else returns 0."

agcls.AgTypeNameMap["MTOTrackEvaluationType"] = MTOTrackEvaluationType

class MTOEntirety(IntEnum):
    """MTO Entirety Mode."""

    ALL = 0
    """Return 1 if every track is within field of view otherwise it returns 0."""
    PARTIAL = 1
    """Return 1 if any track is within field of view to the Object else returns 0."""

MTOEntirety.ALL.__doc__ = "Return 1 if every track is within field of view otherwise it returns 0."
MTOEntirety.PARTIAL.__doc__ = "Return 1 if any track is within field of view to the Object else returns 0."

agcls.AgTypeNameMap["MTOEntirety"] = MTOEntirety

class MTOVisibilityMode(IntEnum):
    """MTO Visibility Mode."""

    EACH = 2
    """Return the Track_id and 1 or 0 for every track; where 1 indicates the track is visible and 0 indicates it is not."""
    EACH_VISIBLE = 3
    """Return the Track_id and 1 only for those tracks having visibility. If all objects are invisible then the message 'No Visibility' is returned."""
    EACH_NOT_VISIBLE = 4
    """Return the Track_id and 0 for those tracks not having visibility. If all objects are visible then the message 'Complete Visibility' is returned."""

MTOVisibilityMode.EACH.__doc__ = "Return the Track_id and 1 or 0 for every track; where 1 indicates the track is visible and 0 indicates it is not."
MTOVisibilityMode.EACH_VISIBLE.__doc__ = "Return the Track_id and 1 only for those tracks having visibility. If all objects are invisible then the message 'No Visibility' is returned."
MTOVisibilityMode.EACH_NOT_VISIBLE.__doc__ = "Return the Track_id and 0 for those tracks not having visibility. If all objects are visible then the message 'Complete Visibility' is returned."

agcls.AgTypeNameMap["MTOVisibilityMode"] = MTOVisibilityMode

class MTOObjectInterval(IntEnum):
    """MTO object interval type."""

    NORMAL = 0
    """Default visibility interval."""
    EXTENDED = 1
    """Use the last point of the ephemeris span of the object for times past the last point."""

MTOObjectInterval.NORMAL.__doc__ = "Default visibility interval."
MTOObjectInterval.EXTENDED.__doc__ = "Use the last point of the ephemeris span of the object for times past the last point."

agcls.AgTypeNameMap["MTOObjectInterval"] = MTOObjectInterval

class MTOInputDataType(IntEnum):
    """MTO Input Data Type."""

    DETIC = 0
    """Input position data arrays are lat, lon, alt."""
    CARTESIAN_IN_CENTRAL_BODY_FIXED = 1
    """Input position data arrays are cartesian x, y, z in the MTO's central body fixed frame."""
    CARTESIAN_IN_VECTOR_GEOMETRY_TOOL_SYSTEM = 2
    """Input position data arrays are cartesian x, y, z in the MTO's specified data reference system."""

MTOInputDataType.DETIC.__doc__ = "Input position data arrays are lat, lon, alt."
MTOInputDataType.CARTESIAN_IN_CENTRAL_BODY_FIXED.__doc__ = "Input position data arrays are cartesian x, y, z in the MTO's central body fixed frame."
MTOInputDataType.CARTESIAN_IN_VECTOR_GEOMETRY_TOOL_SYSTEM.__doc__ = "Input position data arrays are cartesian x, y, z in the MTO's specified data reference system."

agcls.AgTypeNameMap["MTOInputDataType"] = MTOInputDataType

class SolidTide(IntEnum):
    """The Solid Tide Type for force modeling."""

    FULL = 0
    """Include both time-dependent and time-independent contributions. This option is only available for gravity field models that support a tide model."""
    PERMANENT_ONLY = 1
    """Include only the permanent tide - the time-independent contribution."""
    NONE = 2
    """Exclude solid tide contributions entirely."""

SolidTide.FULL.__doc__ = "Include both time-dependent and time-independent contributions. This option is only available for gravity field models that support a tide model."
SolidTide.PERMANENT_ONLY.__doc__ = "Include only the permanent tide - the time-independent contribution."
SolidTide.NONE.__doc__ = "Exclude solid tide contributions entirely."

agcls.AgTypeNameMap["SolidTide"] = SolidTide

class TimePeriodValueType(IntEnum):
    """Time value types."""

    TODAY = 1
    """The current day."""
    TOMORROW = 2
    """Tomorrow, from the current day."""
    SPECIFY = 3
    """Specified time period."""
    DURATION = 4
    """Time period defined as a duration."""
    NOON_TODAY = 5
    """Noon of the current day."""
    NOON_TOMORROW = 6
    """Noon of tomorrow, from the current day."""

TimePeriodValueType.TODAY.__doc__ = "The current day."
TimePeriodValueType.TOMORROW.__doc__ = "Tomorrow, from the current day."
TimePeriodValueType.SPECIFY.__doc__ = "Specified time period."
TimePeriodValueType.DURATION.__doc__ = "Time period defined as a duration."
TimePeriodValueType.NOON_TODAY.__doc__ = "Noon of the current day."
TimePeriodValueType.NOON_TOMORROW.__doc__ = "Noon of tomorrow, from the current day."

agcls.AgTypeNameMap["TimePeriodValueType"] = TimePeriodValueType

class OnePointAccessStatus(IntEnum):
    """One point access status."""

    MAXIMUM = -10
    """Constraint value violates max limit of the min-max constraint."""
    MINIMUM = -11
    """Constraint value violates min limit of the min-max constraint."""
    ZERO = -20
    """Constraint value violates limit of the zero threshold constraint."""
    LOGICAL = -30
    """Constraint value violates limit of the logical threshold constraint."""
    INCLUSION_INTERVAL = -40
    """Constraint value lies outside inclusion intervals."""
    EXCLUSION_INTERVAL = -41
    """Constraint value lies outside exclusion intervals."""
    OK = 0
    """Constraint value is within the constraint limits."""
    NOT_COMPUTED = -1
    """Constraint value is not computed (may occur for constraints that are not evaluated in Fast mode)."""

OnePointAccessStatus.MAXIMUM.__doc__ = "Constraint value violates max limit of the min-max constraint."
OnePointAccessStatus.MINIMUM.__doc__ = "Constraint value violates min limit of the min-max constraint."
OnePointAccessStatus.ZERO.__doc__ = "Constraint value violates limit of the zero threshold constraint."
OnePointAccessStatus.LOGICAL.__doc__ = "Constraint value violates limit of the logical threshold constraint."
OnePointAccessStatus.INCLUSION_INTERVAL.__doc__ = "Constraint value lies outside inclusion intervals."
OnePointAccessStatus.EXCLUSION_INTERVAL.__doc__ = "Constraint value lies outside exclusion intervals."
OnePointAccessStatus.OK.__doc__ = "Constraint value is within the constraint limits."
OnePointAccessStatus.NOT_COMPUTED.__doc__ = "Constraint value is not computed (may occur for constraints that are not evaluated in Fast mode)."

agcls.AgTypeNameMap["OnePointAccessStatus"] = OnePointAccessStatus

class OnePointAccessSummary(IntEnum):
    """One point access summary type."""

    DETAILED = 0
    """Set Compute to return detailed information about each constraint that is evaluated in addition to the access result."""
    FAST = 1
    """Set Compute to return basic information about each constraint that is evaluated in addition to the access result."""
    RESULT_ONLY = 2
    """Set Compute to return just a Yes or No indicating the constraints are satisfied at the current animation time, or the time specified."""

OnePointAccessSummary.DETAILED.__doc__ = "Set Compute to return detailed information about each constraint that is evaluated in addition to the access result."
OnePointAccessSummary.FAST.__doc__ = "Set Compute to return basic information about each constraint that is evaluated in addition to the access result."
OnePointAccessSummary.RESULT_ONLY.__doc__ = "Set Compute to return just a Yes or No indicating the constraints are satisfied at the current animation time, or the time specified."

agcls.AgTypeNameMap["OnePointAccessSummary"] = OnePointAccessSummary

class LookAheadPropagator(IntEnum):
    """Propagators used for calculating ephemeris for look ahead purposes. The enumeration is used with realtime propagators."""

    UNKNOWN = -1
    """Reserved for look ahead propagators that are not currently supported."""
    HOLD_CENTRAL_BODY_INERTIAL_POSITION = 0
    """The HoldCBIPosition look ahead propagator keeps position and velocity constant in the inertial (i.e., CBI) frame."""
    HOLD_CENTRAL_BODY_FIXED_POSITION = 1
    """The HoldCBFPosition look ahead propagator keeps position and velocity constant in the fixed (i.e., CBF) frame."""
    TWO_BODY = 2
    """Two-Body is an analytical propagator that generates ephemeris by evaluating a formula."""
    J2_PERTURBATION = 3
    """The J2 Perturbation (first-order) propagator accounts for secular variations in the orbit elements due to Earth oblateness."""
    J4_PERTURBATION = 4
    """The J4 Perturbation (second-order) propagator accounts for secular variations in the orbit elements due to Earth oblateness."""
    DEAD_RECKONING = 5
    """The DeadReckon look ahead propagator projects the motion of the vehicle along a straight line, along the last velocity vector."""
    BALLISTIC = 6
    """The Ballistic Propagator defines an elliptical path that begins and ends at the Earth's surface. Specifying a fixed flight time, initial velocity or altitude can further refine the shape of the trajectory."""

LookAheadPropagator.UNKNOWN.__doc__ = "Reserved for look ahead propagators that are not currently supported."
LookAheadPropagator.HOLD_CENTRAL_BODY_INERTIAL_POSITION.__doc__ = "The HoldCBIPosition look ahead propagator keeps position and velocity constant in the inertial (i.e., CBI) frame."
LookAheadPropagator.HOLD_CENTRAL_BODY_FIXED_POSITION.__doc__ = "The HoldCBFPosition look ahead propagator keeps position and velocity constant in the fixed (i.e., CBF) frame."
LookAheadPropagator.TWO_BODY.__doc__ = "Two-Body is an analytical propagator that generates ephemeris by evaluating a formula."
LookAheadPropagator.J2_PERTURBATION.__doc__ = "The J2 Perturbation (first-order) propagator accounts for secular variations in the orbit elements due to Earth oblateness."
LookAheadPropagator.J4_PERTURBATION.__doc__ = "The J4 Perturbation (second-order) propagator accounts for secular variations in the orbit elements due to Earth oblateness."
LookAheadPropagator.DEAD_RECKONING.__doc__ = "The DeadReckon look ahead propagator projects the motion of the vehicle along a straight line, along the last velocity vector."
LookAheadPropagator.BALLISTIC.__doc__ = "The Ballistic Propagator defines an elliptical path that begins and ends at the Earth's surface. Specifying a fixed flight time, initial velocity or altitude can further refine the shape of the trajectory."

agcls.AgTypeNameMap["LookAheadPropagator"] = LookAheadPropagator

class Graphics3DMarkerOrientation(IntEnum):
    """3D graphics marker orientations."""

    NONE = 0
    """Marker does not rotate."""
    ANGLE = 1
    """Counterclockwise rotation of the marker by the specified angle value."""
    FOLLOW_DIRECTION = 2
    """Marker follows the velocity vector."""

Graphics3DMarkerOrientation.NONE.__doc__ = "Marker does not rotate."
Graphics3DMarkerOrientation.ANGLE.__doc__ = "Counterclockwise rotation of the marker by the specified angle value."
Graphics3DMarkerOrientation.FOLLOW_DIRECTION.__doc__ = "Marker follows the velocity vector."

agcls.AgTypeNameMap["Graphics3DMarkerOrientation"] = Graphics3DMarkerOrientation

class SolarRadiationPressureModelType(IntEnum):
    """Solar radiation pressure model types."""

    UNKNOWN = -1
    """Unsupported model."""
    GPS_BLKIIA_AEROSPACE_T20 = 0
    """Aerospace T20 solar radiation pressure model for GPS block IIA."""
    GPS_BLKIIA_GSPM04A = 1
    """Bar-Sever GPS Solar Pressure Model 04a for block IIA."""
    GPS_BLKIIA_GSPM04AE = 2
    """Bar-Sever GPS Solar Pressure Model 04a for block IIA."""
    GPS_BLKIIA_AEROSPACE_T30 = 3
    """Aerospace T30 solar radiation pressure model for GPS block IIR."""
    GPS_BLKIIR_GSPM04A = 4
    """Bar-Sever GPS Solar Pressure Model 04a for block IIR."""
    GPS_BLKIIR_GSPM04AE = 5
    """Bar-Sever GPS Solar Pressure Model 04ae for block IIR."""
    SPHERICAL = 6
    """Solar radiation pressure model that assumes a spherical spacecraft."""
    PLUGIN = 7
    """Plugin light reflection model."""

SolarRadiationPressureModelType.UNKNOWN.__doc__ = "Unsupported model."
SolarRadiationPressureModelType.GPS_BLKIIA_AEROSPACE_T20.__doc__ = "Aerospace T20 solar radiation pressure model for GPS block IIA."
SolarRadiationPressureModelType.GPS_BLKIIA_GSPM04A.__doc__ = "Bar-Sever GPS Solar Pressure Model 04a for block IIA."
SolarRadiationPressureModelType.GPS_BLKIIA_GSPM04AE.__doc__ = "Bar-Sever GPS Solar Pressure Model 04a for block IIA."
SolarRadiationPressureModelType.GPS_BLKIIA_AEROSPACE_T30.__doc__ = "Aerospace T30 solar radiation pressure model for GPS block IIR."
SolarRadiationPressureModelType.GPS_BLKIIR_GSPM04A.__doc__ = "Bar-Sever GPS Solar Pressure Model 04a for block IIR."
SolarRadiationPressureModelType.GPS_BLKIIR_GSPM04AE.__doc__ = "Bar-Sever GPS Solar Pressure Model 04ae for block IIR."
SolarRadiationPressureModelType.SPHERICAL.__doc__ = "Solar radiation pressure model that assumes a spherical spacecraft."
SolarRadiationPressureModelType.PLUGIN.__doc__ = "Plugin light reflection model."

agcls.AgTypeNameMap["SolarRadiationPressureModelType"] = SolarRadiationPressureModelType

class DragModel(IntEnum):
    """Drag model types."""

    UNKNOWN = -1
    """Unsupported model."""
    SPHERICAL = 0
    """Drag model that assumes a spherical spacecraft."""
    PLUGIN = 1
    """Plugin drag model."""

DragModel.UNKNOWN.__doc__ = "Unsupported model."
DragModel.SPHERICAL.__doc__ = "Drag model that assumes a spherical spacecraft."
DragModel.PLUGIN.__doc__ = "Plugin drag model."

agcls.AgTypeNameMap["DragModel"] = DragModel

class VehiclePropagationFrame(IntEnum):
    """Propagation frames used by J2/J4/TwoBody propagators."""

    UNKNOWN = -1
    """Unknown propagation frame."""
    INERTIAL = 0
    """Inertial propagation frame."""
    TRUE_OF_DATE = 1
    """True Of Date propagation frame."""
    TRUE_OF_EPOCH = 2
    """True Of Epoch propagation frame."""

VehiclePropagationFrame.UNKNOWN.__doc__ = "Unknown propagation frame."
VehiclePropagationFrame.INERTIAL.__doc__ = "Inertial propagation frame."
VehiclePropagationFrame.TRUE_OF_DATE.__doc__ = "True Of Date propagation frame."
VehiclePropagationFrame.TRUE_OF_EPOCH.__doc__ = "True Of Epoch propagation frame."

agcls.AgTypeNameMap["VehiclePropagationFrame"] = VehiclePropagationFrame

class StarReferenceFrame(IntEnum):
    """Star reference frame types."""

    ICRF = 0
    """ICRF reference frame."""
    J2000 = 1
    """J2000 reference frame."""

StarReferenceFrame.ICRF.__doc__ = "ICRF reference frame."
StarReferenceFrame.J2000.__doc__ = "J2000 reference frame."

agcls.AgTypeNameMap["StarReferenceFrame"] = StarReferenceFrame

class GPSReferenceWeek(IntEnum):
    """GPS almanac reference week."""

    UNKNOWN = -1
    """Unknown week reference."""
    WEEK22_AUG1999 = 0
    """22 Aug 1999."""
    WEEK06_JAN1980 = 1
    """06 Jan 1980."""
    WEEK07_APR2019 = 2
    """07 Apr 2019."""

GPSReferenceWeek.UNKNOWN.__doc__ = "Unknown week reference."
GPSReferenceWeek.WEEK22_AUG1999.__doc__ = "22 Aug 1999."
GPSReferenceWeek.WEEK06_JAN1980.__doc__ = "06 Jan 1980."
GPSReferenceWeek.WEEK07_APR2019.__doc__ = "07 Apr 2019."

agcls.AgTypeNameMap["GPSReferenceWeek"] = GPSReferenceWeek

class CoverageCustomRegionAlgorithm(IntEnum):
    """The enumerations are used to enable/disable the special gridding algorithms triggered when Custom Region grid includes a single small region (longitude span less than 1 deg)."""

    UNKNOWN = -1
    """Unsupported algorithm."""
    DISABLED = 0
    """Disabled."""
    ANISOTROPIC = 1
    """Anisotropic."""
    ISOTROPIC = 2
    """Isotropic."""

CoverageCustomRegionAlgorithm.UNKNOWN.__doc__ = "Unsupported algorithm."
CoverageCustomRegionAlgorithm.DISABLED.__doc__ = "Disabled."
CoverageCustomRegionAlgorithm.ANISOTROPIC.__doc__ = "Anisotropic."
CoverageCustomRegionAlgorithm.ISOTROPIC.__doc__ = "Isotropic."

agcls.AgTypeNameMap["CoverageCustomRegionAlgorithm"] = CoverageCustomRegionAlgorithm

class VehicleGPSSwitchMethod(IntEnum):
    """GPS Switch method for the GPS propagator."""

    EPOCH = 0
    """Switch between TLE sets based on the epoch of the TLE."""
    MIDPOINT = 1
    """Switch between TLE sets based on the mid-point between two TLE epochs."""
    TIME_OF_CLOSEST_APPROACH = 2
    """Switch between TLE sets based on the time of closest approach, calculated by propagating the first and second TLE sets over the time period between their respective epochs and determining the point at which the two paths are nearest each other."""

VehicleGPSSwitchMethod.EPOCH.__doc__ = "Switch between TLE sets based on the epoch of the TLE."
VehicleGPSSwitchMethod.MIDPOINT.__doc__ = "Switch between TLE sets based on the mid-point between two TLE epochs."
VehicleGPSSwitchMethod.TIME_OF_CLOSEST_APPROACH.__doc__ = "Switch between TLE sets based on the time of closest approach, calculated by propagating the first and second TLE sets over the time period between their respective epochs and determining the point at which the two paths are nearest each other."

agcls.AgTypeNameMap["VehicleGPSSwitchMethod"] = VehicleGPSSwitchMethod

class VehicleGPSElementSelectionType(IntEnum):
    """GPS Selection method for the GPS propagator."""

    USE_ALL = 0
    """Use all relevant TLEs."""
    USE_FIRST = 1
    """Use first relevant TLE."""

VehicleGPSElementSelectionType.USE_ALL.__doc__ = "Use all relevant TLEs."
VehicleGPSElementSelectionType.USE_FIRST.__doc__ = "Use first relevant TLE."

agcls.AgTypeNameMap["VehicleGPSElementSelectionType"] = VehicleGPSElementSelectionType

class VehicleGPSAutomaticUpdateSourceType(IntEnum):
    """The sources to retrieve GPS elements from upon propagation."""

    UNKNOWN = -1
    """Unknown or unsupported TLE source."""
    ONLINE = 0
    """Auto update the GPS propagator with GPS elements from an online source (AGI server)."""
    FILE = 2
    """Auto update the GPS propagator with GPS elements from file."""
    NONE = 3
    """Manually specify the almanac with GPS elements."""

VehicleGPSAutomaticUpdateSourceType.UNKNOWN.__doc__ = "Unknown or unsupported TLE source."
VehicleGPSAutomaticUpdateSourceType.ONLINE.__doc__ = "Auto update the GPS propagator with GPS elements from an online source (AGI server)."
VehicleGPSAutomaticUpdateSourceType.FILE.__doc__ = "Auto update the GPS propagator with GPS elements from file."
VehicleGPSAutomaticUpdateSourceType.NONE.__doc__ = "Manually specify the almanac with GPS elements."

agcls.AgTypeNameMap["VehicleGPSAutomaticUpdateSourceType"] = VehicleGPSAutomaticUpdateSourceType

class VehicleGPSAlmanacType(IntEnum):
    """GPS Almanac types."""

    NONE = -1
    """Almanac is not selected."""
    YUMA = 0
    """YUMA almanac."""
    SEM = 1
    """SEM almanac."""
    SP3 = 2
    """SP3 almanac."""

VehicleGPSAlmanacType.NONE.__doc__ = "Almanac is not selected."
VehicleGPSAlmanacType.YUMA.__doc__ = "YUMA almanac."
VehicleGPSAlmanacType.SEM.__doc__ = "SEM almanac."
VehicleGPSAlmanacType.SP3.__doc__ = "SP3 almanac."

agcls.AgTypeNameMap["VehicleGPSAlmanacType"] = VehicleGPSAlmanacType

class ExternalEphemerisFormatType(IntEnum):
    """Ephemeris file formats supported by the Stk external propagator."""

    UNKNOWN = -1
    """Unsupported ephemeris format."""
    STK = 0
    """ASCII text file formatted for compatibility with STK that ends with '.e' extension."""
    CCSDS = 1
    """CCSDS orbit ephemeris file format that ends with '.oem' extension."""
    ITC = 2
    """Define a file format that ends with '.itc' extension. The file type is utilized by some Air Force entities and requires USGOV license."""
    STK_BINARY = 3
    """STK Binary ephemeris file format that ends with '.be' extension."""
    CODE500 = 4
    """Code500 ephemeris file format that ends with '.EPH' extension."""
    CCSDS_V2 = 5
    """CCSDS v2 orbit ephemeris file format that ends with '.oem' extension."""

ExternalEphemerisFormatType.UNKNOWN.__doc__ = "Unsupported ephemeris format."
ExternalEphemerisFormatType.STK.__doc__ = "ASCII text file formatted for compatibility with STK that ends with '.e' extension."
ExternalEphemerisFormatType.CCSDS.__doc__ = "CCSDS orbit ephemeris file format that ends with '.oem' extension."
ExternalEphemerisFormatType.ITC.__doc__ = "Define a file format that ends with '.itc' extension. The file type is utilized by some Air Force entities and requires USGOV license."
ExternalEphemerisFormatType.STK_BINARY.__doc__ = "STK Binary ephemeris file format that ends with '.be' extension."
ExternalEphemerisFormatType.CODE500.__doc__ = "Code500 ephemeris file format that ends with '.EPH' extension."
ExternalEphemerisFormatType.CCSDS_V2.__doc__ = "CCSDS v2 orbit ephemeris file format that ends with '.oem' extension."

agcls.AgTypeNameMap["ExternalEphemerisFormatType"] = ExternalEphemerisFormatType

class ExternalFileMessageLevelType(IntEnum):
    """Ephemeris file message level used by the Stk external propagator."""

    UNKNOWN = -1
    """Unsupported message level."""
    ERRORS = 0
    """Message level to report only errors found during file loading."""
    WARNINGS = 1
    """Message level to report errors and warnings found during file loading."""
    VERBOSE = 2
    """Message level to report errors and warnings found during file loading and provide a success message when finding no issues."""

ExternalFileMessageLevelType.UNKNOWN.__doc__ = "Unsupported message level."
ExternalFileMessageLevelType.ERRORS.__doc__ = "Message level to report only errors found during file loading."
ExternalFileMessageLevelType.WARNINGS.__doc__ = "Message level to report errors and warnings found during file loading."
ExternalFileMessageLevelType.VERBOSE.__doc__ = "Message level to report errors and warnings found during file loading and provide a success message when finding no issues."

agcls.AgTypeNameMap["ExternalFileMessageLevelType"] = ExternalFileMessageLevelType

class Coverage3dDrawAtAltitudeMode(IntEnum):
    """Coverage definition drawing modes for filled graphics when showing at altitude in 3D Graphics window."""

    FRONT_FACING = 0
    """Draw front facing only."""
    BACK_FACING = 1
    """Draw back facing only."""
    FRONT_AND_BACK_FACING = 2
    """Draw front and back facing."""

Coverage3dDrawAtAltitudeMode.FRONT_FACING.__doc__ = "Draw front facing only."
Coverage3dDrawAtAltitudeMode.BACK_FACING.__doc__ = "Draw back facing only."
Coverage3dDrawAtAltitudeMode.FRONT_AND_BACK_FACING.__doc__ = "Draw front and back facing."

agcls.AgTypeNameMap["Coverage3dDrawAtAltitudeMode"] = Coverage3dDrawAtAltitudeMode

class DistanceOnSphere(IntEnum):
    """Type of line which connects the two points."""

    GREAT_CIRCLE = 0
    """Shortest distance between two points on the globe."""
    RHUMB_LINE = 1
    """Lines of constant bearing."""

DistanceOnSphere.GREAT_CIRCLE.__doc__ = "Shortest distance between two points on the globe."
DistanceOnSphere.RHUMB_LINE.__doc__ = "Lines of constant bearing."

agcls.AgTypeNameMap["DistanceOnSphere"] = DistanceOnSphere

class FigureOfMeritInvalidValueActionType(IntEnum):
    """Invalid Value Action: Controls consideration of time samples usage for computing navigation solution when insufficient number of assets are available at one or more of the time samples used."""

    IGNORE = 0
    """Ignore: Time samples are ignored and not included in the computation of navigation solution."""
    INCLUDE = 1
    """Include: Time samples are included in the computation of navigation solution."""

FigureOfMeritInvalidValueActionType.IGNORE.__doc__ = "Ignore: Time samples are ignored and not included in the computation of navigation solution."
FigureOfMeritInvalidValueActionType.INCLUDE.__doc__ = "Include: Time samples are included in the computation of navigation solution."

agcls.AgTypeNameMap["FigureOfMeritInvalidValueActionType"] = FigureOfMeritInvalidValueActionType

class VehicleSlewTimingBetweenTargetType(IntEnum):
    """Choose an event within the window of opportunity to trigger each slew, or select Optimal to change attitude whenever the slew can be performed most efficiently."""

    UNKNOWN = -1
    """Unsupported or unknown slew option."""
    OPTIMAL = 0
    """Change attitude whenever the slew can be performed most efficiently."""
    SLEW_AFTER_TARGET_ACQUISITION = 1
    """Start slewing toward a new target after it is in view."""
    SLEW_AFTER_TARGET_LOSS = 2
    """Start slewing away from current target after it is out-of-view."""
    SLEW_BEFORE_TARGET_ACQUISITION = 3
    """Finish slewing toward a new target before it is in view."""
    SLEW_BEFORE_TARGET_LOSS = 4
    """Finish slewing away from current target before it is out-of-view."""

VehicleSlewTimingBetweenTargetType.UNKNOWN.__doc__ = "Unsupported or unknown slew option."
VehicleSlewTimingBetweenTargetType.OPTIMAL.__doc__ = "Change attitude whenever the slew can be performed most efficiently."
VehicleSlewTimingBetweenTargetType.SLEW_AFTER_TARGET_ACQUISITION.__doc__ = "Start slewing toward a new target after it is in view."
VehicleSlewTimingBetweenTargetType.SLEW_AFTER_TARGET_LOSS.__doc__ = "Start slewing away from current target after it is out-of-view."
VehicleSlewTimingBetweenTargetType.SLEW_BEFORE_TARGET_ACQUISITION.__doc__ = "Finish slewing toward a new target before it is in view."
VehicleSlewTimingBetweenTargetType.SLEW_BEFORE_TARGET_LOSS.__doc__ = "Finish slewing away from current target before it is out-of-view."

agcls.AgTypeNameMap["VehicleSlewTimingBetweenTargetType"] = VehicleSlewTimingBetweenTargetType

class VehicleSlewMode(IntEnum):
    """Target slew modes."""

    UNKNOWN = -1
    """Unknown or unsupported slew mode."""
    CONSTRAINED_2ND_ORDER_SPLINE = 0
    """2nd order spline interpolation mode."""
    CONSTRAINED_3RD_ORDER_SPLINE = 1
    """3d order spline interpolation mode."""
    FIXED_RATE = 2
    """A fixed rate slew."""
    FIXED_TIME = 3
    """A fixed time slew."""

VehicleSlewMode.UNKNOWN.__doc__ = "Unknown or unsupported slew mode."
VehicleSlewMode.CONSTRAINED_2ND_ORDER_SPLINE.__doc__ = "2nd order spline interpolation mode."
VehicleSlewMode.CONSTRAINED_3RD_ORDER_SPLINE.__doc__ = "3d order spline interpolation mode."
VehicleSlewMode.FIXED_RATE.__doc__ = "A fixed rate slew."
VehicleSlewMode.FIXED_TIME.__doc__ = "A fixed time slew."

agcls.AgTypeNameMap["VehicleSlewMode"] = VehicleSlewMode

class Component(IntEnum):
    """The different types of components in the component browser."""

    ALL = 0
    """Return all components. Currently not implemented."""
    COMMUNICATION = 1
    """Return only communication components."""
    ASTROGATOR = 2
    """Return only astrogator components."""
    RADAR = 3
    """Return only radar components."""
    COLLECTIONS = 4
    """Return collection components."""

Component.ALL.__doc__ = "Return all components. Currently not implemented."
Component.COMMUNICATION.__doc__ = "Return only communication components."
Component.ASTROGATOR.__doc__ = "Return only astrogator components."
Component.RADAR.__doc__ = "Return only radar components."
Component.COLLECTIONS.__doc__ = "Return collection components."

agcls.AgTypeNameMap["Component"] = Component

class VolumetricDefinitionType(IntEnum):
    """Volume grid definition types."""

    UNKNOWN = -1
    """Unknown volumetirc grid option."""
    GRID_SPATIAL_CALCULATION = 0
    """Volumetric : volume grid spatial calculations."""
    FILE = 1
    """Volumetric : volume external file."""

VolumetricDefinitionType.UNKNOWN.__doc__ = "Unknown volumetirc grid option."
VolumetricDefinitionType.GRID_SPATIAL_CALCULATION.__doc__ = "Volumetric : volume grid spatial calculations."
VolumetricDefinitionType.FILE.__doc__ = "Volumetric : volume external file."

agcls.AgTypeNameMap["VolumetricDefinitionType"] = VolumetricDefinitionType

class VolumetricSpatialCalculationEvaluationType(IntEnum):
    """Evaluation of Spatial Calculation types."""

    UNKNOWN = -1
    """Unknown Spatial Calculation evaluation type option."""
    AT_INSTANT_IN_TIME = 0
    """Evaluation of spatial calculation at instant in time."""
    AT_TIMES_FROM_TIME_ARRAY = 1
    """Evaluation of spatial calculation at times from time array."""
    AT_TIMES_AT_STEP_SIZE = 2
    """Evaluation of spatial calculation at times at step size."""

VolumetricSpatialCalculationEvaluationType.UNKNOWN.__doc__ = "Unknown Spatial Calculation evaluation type option."
VolumetricSpatialCalculationEvaluationType.AT_INSTANT_IN_TIME.__doc__ = "Evaluation of spatial calculation at instant in time."
VolumetricSpatialCalculationEvaluationType.AT_TIMES_FROM_TIME_ARRAY.__doc__ = "Evaluation of spatial calculation at times from time array."
VolumetricSpatialCalculationEvaluationType.AT_TIMES_AT_STEP_SIZE.__doc__ = "Evaluation of spatial calculation at times at step size."

agcls.AgTypeNameMap["VolumetricSpatialCalculationEvaluationType"] = VolumetricSpatialCalculationEvaluationType

class VolumetricSaveComputedDataType(IntEnum):
    """Save Computed Data types."""

    UNKNOWN = -1
    """Unknown Save Computed Data type option."""
    NO_SAVE = 0
    """Don't Save the Computed Data."""
    SAVE = 1
    """Save the Computed Data."""
    NO_SAVE_COMPUTE_ON_LOAD = 2
    """Don't Save, Compute on load."""

VolumetricSaveComputedDataType.UNKNOWN.__doc__ = "Unknown Save Computed Data type option."
VolumetricSaveComputedDataType.NO_SAVE.__doc__ = "Don't Save the Computed Data."
VolumetricSaveComputedDataType.SAVE.__doc__ = "Save the Computed Data."
VolumetricSaveComputedDataType.NO_SAVE_COMPUTE_ON_LOAD.__doc__ = "Don't Save, Compute on load."

agcls.AgTypeNameMap["VolumetricSaveComputedDataType"] = VolumetricSaveComputedDataType

class VolumetricDisplayVolumeType(IntEnum):
    """Graphics volume display type."""

    ACTIVE_GRID_POINTS = 0
    """Active Grid Points Volume."""
    SPATIAL_CALCULATION_VALUE_LEVELS = 1
    """Spatial Calculation Levels Volume."""

VolumetricDisplayVolumeType.ACTIVE_GRID_POINTS.__doc__ = "Active Grid Points Volume."
VolumetricDisplayVolumeType.SPATIAL_CALCULATION_VALUE_LEVELS.__doc__ = "Spatial Calculation Levels Volume."

agcls.AgTypeNameMap["VolumetricDisplayVolumeType"] = VolumetricDisplayVolumeType

class VolumetricDisplayQualityType(IntEnum):
    """Quality of the graphics display types."""

    QUALITY_LOW = 0
    """Low graphics display quality."""
    QUALITY_MEDIUM = 1
    """Medium graphics display quality."""
    QUALITY_HIGH = 2
    """High graphics display quality."""
    QUALITY_VERY_HIGH = 3
    """Very high graphics display quality."""

VolumetricDisplayQualityType.QUALITY_LOW.__doc__ = "Low graphics display quality."
VolumetricDisplayQualityType.QUALITY_MEDIUM.__doc__ = "Medium graphics display quality."
VolumetricDisplayQualityType.QUALITY_HIGH.__doc__ = "High graphics display quality."
VolumetricDisplayQualityType.QUALITY_VERY_HIGH.__doc__ = "Very high graphics display quality."

agcls.AgTypeNameMap["VolumetricDisplayQualityType"] = VolumetricDisplayQualityType

class VolumetricLegendNumericNotationType(IntEnum):
    """Legend numeric notation types."""

    FLOATING_POINT = 0
    """Floating point notation."""
    SCIENTIFIC_LOWERCASE_E = 1
    """Scientific notation (e)."""
    SCIENTIFIC_UPPERCASE_E = 2
    """Scientific notation (E)."""

VolumetricLegendNumericNotationType.FLOATING_POINT.__doc__ = "Floating point notation."
VolumetricLegendNumericNotationType.SCIENTIFIC_LOWERCASE_E.__doc__ = "Scientific notation (e)."
VolumetricLegendNumericNotationType.SCIENTIFIC_UPPERCASE_E.__doc__ = "Scientific notation (E)."

agcls.AgTypeNameMap["VolumetricLegendNumericNotationType"] = VolumetricLegendNumericNotationType

class VolumetricLevelOrder(IntEnum):
    """Legend level display order."""

    HORIZONTAL_MINIMUM_TO_MAXIMUM = 0
    """Horizontal Min To Max."""
    HORIZONTAL_MAXIMUM_TO_MINIMUM = 1
    """Horizontal Max To Min."""
    VERTICAL_MINIMUM_TO_MAXIMUM = 2
    """Vertical Min To Max."""
    VERTICAL_MAXIMUM_TO_MINIMUM = 3
    """Vertical Max To Min."""

VolumetricLevelOrder.HORIZONTAL_MINIMUM_TO_MAXIMUM.__doc__ = "Horizontal Min To Max."
VolumetricLevelOrder.HORIZONTAL_MAXIMUM_TO_MINIMUM.__doc__ = "Horizontal Max To Min."
VolumetricLevelOrder.VERTICAL_MINIMUM_TO_MAXIMUM.__doc__ = "Vertical Min To Max."
VolumetricLevelOrder.VERTICAL_MAXIMUM_TO_MINIMUM.__doc__ = "Vertical Max To Min."

agcls.AgTypeNameMap["VolumetricLevelOrder"] = VolumetricLevelOrder

class SensorEOIRProcessingLevelType(IntEnum):
    """EOIR processing levels."""

    GEOMETRIC_INPUT = 0
    """EOIR : Geometric input processing level."""
    RADIOMETRIC_INPUT = 1
    """EOIR : Radiometric input processing level."""
    SENSOR_OUTPUT = 2
    """EOIR : Sensor output processing level."""
    SENSOR_OFF = 3
    """EOIR : Sensor off processing level."""

SensorEOIRProcessingLevelType.GEOMETRIC_INPUT.__doc__ = "EOIR : Geometric input processing level."
SensorEOIRProcessingLevelType.RADIOMETRIC_INPUT.__doc__ = "EOIR : Radiometric input processing level."
SensorEOIRProcessingLevelType.SENSOR_OUTPUT.__doc__ = "EOIR : Sensor output processing level."
SensorEOIRProcessingLevelType.SENSOR_OFF.__doc__ = "EOIR : Sensor off processing level."

agcls.AgTypeNameMap["SensorEOIRProcessingLevelType"] = SensorEOIRProcessingLevelType

class SensorEOIRJitterType(IntEnum):
    """EOIR jitter type."""

    LOS_GAUSSIAN = 0
    """EOIR : LOS Gaussian jitter type specification."""
    POWER_SPECTRUM_DENSITY_FILE = 1
    """EOIR : Power spectrum file type specification."""
    MODULATION_TRANSFER_FUNCTION_FILE = 2
    """EOIR : Frequency modulation transfer function file type specification."""
    POINT_SPREAD_FUNCTION_FILE = 3
    """EOIR : Spatial point spread function file type specification."""

SensorEOIRJitterType.LOS_GAUSSIAN.__doc__ = "EOIR : LOS Gaussian jitter type specification."
SensorEOIRJitterType.POWER_SPECTRUM_DENSITY_FILE.__doc__ = "EOIR : Power spectrum file type specification."
SensorEOIRJitterType.MODULATION_TRANSFER_FUNCTION_FILE.__doc__ = "EOIR : Frequency modulation transfer function file type specification."
SensorEOIRJitterType.POINT_SPREAD_FUNCTION_FILE.__doc__ = "EOIR : Spatial point spread function file type specification."

agcls.AgTypeNameMap["SensorEOIRJitterType"] = SensorEOIRJitterType

class SensorEOIRScanMode(IntEnum):
    """EOIR sensor scan mode."""

    FRAMING_ARRAY = 0
    """EOIR : 2D framing array sensor."""

SensorEOIRScanMode.FRAMING_ARRAY.__doc__ = "EOIR : 2D framing array sensor."

agcls.AgTypeNameMap["SensorEOIRScanMode"] = SensorEOIRScanMode

class SensorEOIRBandImageQuality(IntEnum):
    """EOIR band image quality levels."""

    DIFFRACTION_LIMITED = 0
    """EOIR : Use diffraction limited model."""
    NEGLIGIBLE_ABERRATIONS = 1
    """EOIR : Use the negligible aberrations image quality model."""
    MILD_ABERRATIONS = 2
    """EOIR : Use the mild aberrations image quality model."""
    MODERATE_ABERRATIONS = 3
    """EOIR : Use the Moderate Aberrations image quality model."""
    CUSTOM_WAVEFRONT_ERROR = 4
    """EOIR : Use diffraction limited model."""
    CUSTOM_PUPIL_FUNCTION = 5
    """EOIR : Use a custom wavefront error amount for the image quality model."""
    CUSTOM_PSF = 6
    """EOIR : Use a custom spatial PSF file for the image quality model."""
    CUSTOM_MTF = 7
    """EOIR : Use a custom OTF or MTF file for the image quality model."""

SensorEOIRBandImageQuality.DIFFRACTION_LIMITED.__doc__ = "EOIR : Use diffraction limited model."
SensorEOIRBandImageQuality.NEGLIGIBLE_ABERRATIONS.__doc__ = "EOIR : Use the negligible aberrations image quality model."
SensorEOIRBandImageQuality.MILD_ABERRATIONS.__doc__ = "EOIR : Use the mild aberrations image quality model."
SensorEOIRBandImageQuality.MODERATE_ABERRATIONS.__doc__ = "EOIR : Use the Moderate Aberrations image quality model."
SensorEOIRBandImageQuality.CUSTOM_WAVEFRONT_ERROR.__doc__ = "EOIR : Use diffraction limited model."
SensorEOIRBandImageQuality.CUSTOM_PUPIL_FUNCTION.__doc__ = "EOIR : Use a custom wavefront error amount for the image quality model."
SensorEOIRBandImageQuality.CUSTOM_PSF.__doc__ = "EOIR : Use a custom spatial PSF file for the image quality model."
SensorEOIRBandImageQuality.CUSTOM_MTF.__doc__ = "EOIR : Use a custom OTF or MTF file for the image quality model."

agcls.AgTypeNameMap["SensorEOIRBandImageQuality"] = SensorEOIRBandImageQuality

class SensorEOIRBandSpectralShape(IntEnum):
    """EOIR overall system spectral shape determination."""

    DEFAULT = 0
    """EOIR : Use spectral shape determined by optical and radiometric parameters."""
    SPECIFIED_SYSTEM_RELATIVE_SPECTRAL_RESPONSE = 1
    """EOIR : Use a specified system relative spectral response."""

SensorEOIRBandSpectralShape.DEFAULT.__doc__ = "EOIR : Use spectral shape determined by optical and radiometric parameters."
SensorEOIRBandSpectralShape.SPECIFIED_SYSTEM_RELATIVE_SPECTRAL_RESPONSE.__doc__ = "EOIR : Use a specified system relative spectral response."

agcls.AgTypeNameMap["SensorEOIRBandSpectralShape"] = SensorEOIRBandSpectralShape

class SensorEOIRBandSpatialInputMode(IntEnum):
    """EOIR spatial input parameter specification."""

    FIELD_OF_VIEW_AND_NUMBER_OF_PIXELS = 0
    """EOIR: Use the field-of-view and number of pixels to specify the spatial properties."""
    FIELD_OF_VIEW_AND_PIXEL_PITCH = 1
    """EOIR: Use the field-of-view and the pixel pitch to specify the spatial properties."""
    NUMBER_OF_PIXELS_AND_PIXEL_PITCH = 2
    """EOIR: Use the number of pixels and pixel pitch to specify the spatial properties."""

SensorEOIRBandSpatialInputMode.FIELD_OF_VIEW_AND_NUMBER_OF_PIXELS.__doc__ = "EOIR: Use the field-of-view and number of pixels to specify the spatial properties."
SensorEOIRBandSpatialInputMode.FIELD_OF_VIEW_AND_PIXEL_PITCH.__doc__ = "EOIR: Use the field-of-view and the pixel pitch to specify the spatial properties."
SensorEOIRBandSpatialInputMode.NUMBER_OF_PIXELS_AND_PIXEL_PITCH.__doc__ = "EOIR: Use the number of pixels and pixel pitch to specify the spatial properties."

agcls.AgTypeNameMap["SensorEOIRBandSpatialInputMode"] = SensorEOIRBandSpatialInputMode

class SensorEOIRBandSpectralRelativeSystemResponseUnitsType(IntEnum):
    """EOIR spectral relative system response units specification."""

    ENERGY_UNITS = 0
    """EOIR: Treat the custom RSR function as energy units."""
    QUANTIZED_PARTICLE_UNITS = 1
    """EOIR: Treat the custom RSR function as quantized particle units."""

SensorEOIRBandSpectralRelativeSystemResponseUnitsType.ENERGY_UNITS.__doc__ = "EOIR: Treat the custom RSR function as energy units."
SensorEOIRBandSpectralRelativeSystemResponseUnitsType.QUANTIZED_PARTICLE_UNITS.__doc__ = "EOIR: Treat the custom RSR function as quantized particle units."

agcls.AgTypeNameMap["SensorEOIRBandSpectralRelativeSystemResponseUnitsType"] = SensorEOIRBandSpectralRelativeSystemResponseUnitsType

class SensorEOIRBandOpticalInputMode(IntEnum):
    """EOIR optical input parameter specification."""

    F_NUMBER_AND_FOCAL_LENGTH = 0
    """EOIR: Use the f-number and focal length to specify the optical properties."""
    F_NUMBER_AND_APERTURE_DIAMETER = 1
    """EOIR: Use the f-number and aperture diameter to specify the optical properties."""
    FOCAL_LENGTH_AND_APERTURE_DIAMETER = 2
    """EOIR: Use the focal length and aperture diameter to specify the optical properties."""

SensorEOIRBandOpticalInputMode.F_NUMBER_AND_FOCAL_LENGTH.__doc__ = "EOIR: Use the f-number and focal length to specify the optical properties."
SensorEOIRBandOpticalInputMode.F_NUMBER_AND_APERTURE_DIAMETER.__doc__ = "EOIR: Use the f-number and aperture diameter to specify the optical properties."
SensorEOIRBandOpticalInputMode.FOCAL_LENGTH_AND_APERTURE_DIAMETER.__doc__ = "EOIR: Use the focal length and aperture diameter to specify the optical properties."

agcls.AgTypeNameMap["SensorEOIRBandOpticalInputMode"] = SensorEOIRBandOpticalInputMode

class SensorEOIRBandOpticalTransmissionMode(IntEnum):
    """EOIR optical transmission parameter specification mode."""

    BAND_EFFECTIVE_TRANSMISSION = 0
    """EOIR: Use band effective transmission value."""
    TRANSMISSION_DATA_FILE = 1
    """EOIR: Use spectral transmission data file."""

SensorEOIRBandOpticalTransmissionMode.BAND_EFFECTIVE_TRANSMISSION.__doc__ = "EOIR: Use band effective transmission value."
SensorEOIRBandOpticalTransmissionMode.TRANSMISSION_DATA_FILE.__doc__ = "EOIR: Use spectral transmission data file."

agcls.AgTypeNameMap["SensorEOIRBandOpticalTransmissionMode"] = SensorEOIRBandOpticalTransmissionMode

class SensorEOIRBandRadiometricParameterLevelType(IntEnum):
    """EOIR radiometric detector parameter level of specification."""

    HIGH_LEVEL = 0
    """EOIR: Use high level detector parameters."""
    LOW_LEVEL = 1
    """EOIR: Use low level detector parameters."""

SensorEOIRBandRadiometricParameterLevelType.HIGH_LEVEL.__doc__ = "EOIR: Use high level detector parameters."
SensorEOIRBandRadiometricParameterLevelType.LOW_LEVEL.__doc__ = "EOIR: Use low level detector parameters."

agcls.AgTypeNameMap["SensorEOIRBandRadiometricParameterLevelType"] = SensorEOIRBandRadiometricParameterLevelType

class SensorEOIRBandQuantumEfficiencyMode(IntEnum):
    """EOIR quantum efficiency specification mode."""

    BAND_EFFECTIVE_QUANTUM_EFFICIENCY = 0
    """EOIR: Use band effective quantum efficiency for detector."""
    SPECTRAL_QUANTUM_EFFICIENCY_DATA_FILE = 1
    """EOIR: Provide spectral quantum efficiency data file for detector."""

SensorEOIRBandQuantumEfficiencyMode.BAND_EFFECTIVE_QUANTUM_EFFICIENCY.__doc__ = "EOIR: Use band effective quantum efficiency for detector."
SensorEOIRBandQuantumEfficiencyMode.SPECTRAL_QUANTUM_EFFICIENCY_DATA_FILE.__doc__ = "EOIR: Provide spectral quantum efficiency data file for detector."

agcls.AgTypeNameMap["SensorEOIRBandQuantumEfficiencyMode"] = SensorEOIRBandQuantumEfficiencyMode

class SensorEOIRBandQuantizationMode(IntEnum):
    """EOIR mode of determining quantization step size."""

    FULL_WELL_AND_NOISE = 0
    """EOIR: Use full-well capacity and system level noise for analog-to-digital signal conversion."""
    FULL_WELL_AND_QSS = 1
    """EOIR: Use full-well capacity and quantization step size for analog-to-digital signal conversion."""
    BIT_DEPTH_AND_NOISE = 2
    """EOIR: Use signal bit-depth and system level noise for analog-to-digital signal conversion."""
    BIT_DEPTH_AND_QSS = 3
    """EOIR: Use signal bit-depth and quantization step size for analog-to-digital signal conversion."""

SensorEOIRBandQuantizationMode.FULL_WELL_AND_NOISE.__doc__ = "EOIR: Use full-well capacity and system level noise for analog-to-digital signal conversion."
SensorEOIRBandQuantizationMode.FULL_WELL_AND_QSS.__doc__ = "EOIR: Use full-well capacity and quantization step size for analog-to-digital signal conversion."
SensorEOIRBandQuantizationMode.BIT_DEPTH_AND_NOISE.__doc__ = "EOIR: Use signal bit-depth and system level noise for analog-to-digital signal conversion."
SensorEOIRBandQuantizationMode.BIT_DEPTH_AND_QSS.__doc__ = "EOIR: Use signal bit-depth and quantization step size for analog-to-digital signal conversion."

agcls.AgTypeNameMap["SensorEOIRBandQuantizationMode"] = SensorEOIRBandQuantizationMode

class SensorEOIRBandWavelengthType(IntEnum):
    """EOIR band diffraction wavelength reference type."""

    LOW_BAND_EDGE = 0
    """EOIR : Low Band Edge."""
    BAND_CENTER = 1
    """EOIR : Band Center."""
    HIGH_BAND_EDGE = 2
    """EOIR : High Band Edge."""
    USER_DEFINED_WAVELENGTH = 3
    """EOIR : User Defined."""

SensorEOIRBandWavelengthType.LOW_BAND_EDGE.__doc__ = "EOIR : Low Band Edge."
SensorEOIRBandWavelengthType.BAND_CENTER.__doc__ = "EOIR : Band Center."
SensorEOIRBandWavelengthType.HIGH_BAND_EDGE.__doc__ = "EOIR : High Band Edge."
SensorEOIRBandWavelengthType.USER_DEFINED_WAVELENGTH.__doc__ = "EOIR : User Defined."

agcls.AgTypeNameMap["SensorEOIRBandWavelengthType"] = SensorEOIRBandWavelengthType

class SensorEOIRBandSaturationMode(IntEnum):
    """EOIR band irradiance or radiance reference mode."""

    IRRADIANCE = 0
    """EOIR : Irrandiance Sensitivities Mode."""
    RADIANCE = 1
    """EOIR : Radiance Sensitivities Mode."""

SensorEOIRBandSaturationMode.IRRADIANCE.__doc__ = "EOIR : Irrandiance Sensitivities Mode."
SensorEOIRBandSaturationMode.RADIANCE.__doc__ = "EOIR : Radiance Sensitivities Mode."

agcls.AgTypeNameMap["SensorEOIRBandSaturationMode"] = SensorEOIRBandSaturationMode

class VolumetricVolumeGridExportType(IntEnum):
    """Volumetric data export types."""

    INCLUDE_LINK_TO_VOLUME_GRID = 0
    """Volumetric data export : Include Link To VolumeGrid."""
    EMBED_VOLUME_GRID_DEFINITION = 1
    """Volumetric data export : Embed Volume Grid Definition."""

VolumetricVolumeGridExportType.INCLUDE_LINK_TO_VOLUME_GRID.__doc__ = "Volumetric data export : Include Link To VolumeGrid."
VolumetricVolumeGridExportType.EMBED_VOLUME_GRID_DEFINITION.__doc__ = "Volumetric data export : Embed Volume Grid Definition."

agcls.AgTypeNameMap["VolumetricVolumeGridExportType"] = VolumetricVolumeGridExportType

class VolumetricDataExportFormatType(IntEnum):
    """Volumetric data export format types."""

    HDF5 = 0
    """HDF5 Volumetric data export type."""

VolumetricDataExportFormatType.HDF5.__doc__ = "HDF5 Volumetric data export type."

agcls.AgTypeNameMap["VolumetricDataExportFormatType"] = VolumetricDataExportFormatType

class ConstellationFromToParentConstraint(IntEnum):
    """Options for a chain's From and To Parent Constraints."""

    ANY = 0
    """Constellation constraint: Parent objects can be the same or different."""
    SAME_PARENT = 1
    """Constellation constraint: Parent objects must be the same."""
    DIFFERENT_PARENT = 2
    """Constellation constraint: Parent objects must be different."""

ConstellationFromToParentConstraint.ANY.__doc__ = "Constellation constraint: Parent objects can be the same or different."
ConstellationFromToParentConstraint.SAME_PARENT.__doc__ = "Constellation constraint: Parent objects must be the same."
ConstellationFromToParentConstraint.DIFFERENT_PARENT.__doc__ = "Constellation constraint: Parent objects must be different."

agcls.AgTypeNameMap["ConstellationFromToParentConstraint"] = ConstellationFromToParentConstraint

class AnalysisWorkbenchAccessConstraintType(IntEnum):
    """Available Analysis Workbench Access Constraints."""

    ANGLE = 9
    """Angle. Use interface AccessConstraintAnalysisWorkbench."""
    VECTOR_MAGNITUDE = 10
    """Vector magnitude. Use interface AccessConstraintAnalysisWorkbench."""
    CONDITION = 104
    """Coordinate condition constraint. Use interface AccessConstraintAnalysisWorkbench."""
    CALCULATION_SCALAR = 225
    """Scalar Calculation (Calc Scalar) constraint. Use interface AccessConstraintAnalysisWorkbench."""

AnalysisWorkbenchAccessConstraintType.ANGLE.__doc__ = "Angle. Use interface AccessConstraintAnalysisWorkbench."
AnalysisWorkbenchAccessConstraintType.VECTOR_MAGNITUDE.__doc__ = "Vector magnitude. Use interface AccessConstraintAnalysisWorkbench."
AnalysisWorkbenchAccessConstraintType.CONDITION.__doc__ = "Coordinate condition constraint. Use interface AccessConstraintAnalysisWorkbench."
AnalysisWorkbenchAccessConstraintType.CALCULATION_SCALAR.__doc__ = "Scalar Calculation (Calc Scalar) constraint. Use interface AccessConstraintAnalysisWorkbench."

agcls.AgTypeNameMap["AnalysisWorkbenchAccessConstraintType"] = AnalysisWorkbenchAccessConstraintType

class StatisticType(IntEnum):
    """The different statistics that might be available for a data set."""

    MEAN = 0
    """Mean."""
    PERCENT_INTERVAL = 1
    """Percent Of Interval."""
    PERCENT_NOT_INTERVAL = 2
    """Percent Not Of Interval."""
    STANDARD_DEVIATION = 3
    """Standard Deviation."""
    TOTAL = 4
    """Total."""

StatisticType.MEAN.__doc__ = "Mean."
StatisticType.PERCENT_INTERVAL.__doc__ = "Percent Of Interval."
StatisticType.PERCENT_NOT_INTERVAL.__doc__ = "Percent Not Of Interval."
StatisticType.STANDARD_DEVIATION.__doc__ = "Standard Deviation."
StatisticType.TOTAL.__doc__ = "Total."

agcls.AgTypeNameMap["StatisticType"] = StatisticType

class TimeVaryingExtremum(IntEnum):
    """The different time varying extremum that might be available for a data set."""

    MAXIMUM = 0
    """Max."""
    MAXIMUM_OF_SAMPLES = 1
    """Max Of Samples."""
    MINIMUM = 2
    """Min."""
    MINIMUM_OF_SAMPLES = 3
    """Min Of Samples."""

TimeVaryingExtremum.MAXIMUM.__doc__ = "Max."
TimeVaryingExtremum.MAXIMUM_OF_SAMPLES.__doc__ = "Max Of Samples."
TimeVaryingExtremum.MINIMUM.__doc__ = "Min."
TimeVaryingExtremum.MINIMUM_OF_SAMPLES.__doc__ = "Min Of Samples."

agcls.AgTypeNameMap["TimeVaryingExtremum"] = TimeVaryingExtremum

class ModelGltfReflectionMapType(IntEnum):
    """Settings for glTF Reflection."""

    PROCEDURAL_ENVIRONMENT = 0x0
    """Procedural environment glTF Reflection."""
    IMAGE_BASED = 0x1
    """Image based glTF Reflection."""

ModelGltfReflectionMapType.PROCEDURAL_ENVIRONMENT.__doc__ = "Procedural environment glTF Reflection."
ModelGltfReflectionMapType.IMAGE_BASED.__doc__ = "Image based glTF Reflection."

agcls.AgTypeNameMap["ModelGltfReflectionMapType"] = ModelGltfReflectionMapType

class SensorGraphics3DProjectionTimeDependencyType(IntEnum):
    """The different ways to determine the sensor's space projection distance in the 3D window."""

    CONSTANT = 0
    """Use a constant length at all times. This length can be set with the SpaceProjection or Targeting property on the SensorGraphics3D interface depending on the sensor's pointing settings."""
    TIME_VARYING = 1
    """Use a user provided list of times and lengths. The times and lengths can be set with the ProjectionIntervals or TargetProjectionIntervals property on the SensorGraphics3D interface depending on the sensor's pointing settings."""

SensorGraphics3DProjectionTimeDependencyType.CONSTANT.__doc__ = "Use a constant length at all times. This length can be set with the SpaceProjection or Targeting property on the SensorGraphics3D interface depending on the sensor's pointing settings."
SensorGraphics3DProjectionTimeDependencyType.TIME_VARYING.__doc__ = "Use a user provided list of times and lengths. The times and lengths can be set with the ProjectionIntervals or TargetProjectionIntervals property on the SensorGraphics3D interface depending on the sensor's pointing settings."

agcls.AgTypeNameMap["SensorGraphics3DProjectionTimeDependencyType"] = SensorGraphics3DProjectionTimeDependencyType

class LOPAtmosphericDensityModel(IntEnum):
    """LOP Atmospheric density models."""

    UNKNOWN = -1
    """Unsupported or unknown atmospheric density model."""
    STANDARD_ATMOSPHERE_MODEL_1976 = 0
    """1976 Standard Atmosphere: look-up model based on the satellite's altitude, with a valid range of 86km - 1000 km."""
    EXPONENTIAL = 1
    """Exponential Model: uses equation calculating atmospheric density on basis of a specified altitude, reference density, reference altitude and scale altitude."""

LOPAtmosphericDensityModel.UNKNOWN.__doc__ = "Unsupported or unknown atmospheric density model."
LOPAtmosphericDensityModel.STANDARD_ATMOSPHERE_MODEL_1976.__doc__ = "1976 Standard Atmosphere: look-up model based on the satellite's altitude, with a valid range of 86km - 1000 km."
LOPAtmosphericDensityModel.EXPONENTIAL.__doc__ = "Exponential Model: uses equation calculating atmospheric density on basis of a specified altitude, reference density, reference altitude and scale altitude."

agcls.AgTypeNameMap["LOPAtmosphericDensityModel"] = LOPAtmosphericDensityModel

class LowAltitudeAtmosphericDensityModel(IntEnum):
    """Low Altitude Atmospheric density models."""

    UNKNOWN = -1
    """Unsupported or unknown low altitude atmospheric density model."""
    NONE = 0
    """No atmospheric density model to be used."""
    NRLMSISE2000 = 1
    """NRLMSISE 2000: finds the total density by accounting for the contribution of N, N2, O, O2, He, Ar and H. Includes anomalous oxygen. 2000 version, valid range of 0-1000 km."""
    MSISE1990 = 2
    """MSISE 1990: finds the total density by accounting for the contribution of N2, O, O2, He, Ar and H. 1990 version, valid range of 0-1000 km."""

LowAltitudeAtmosphericDensityModel.UNKNOWN.__doc__ = "Unsupported or unknown low altitude atmospheric density model."
LowAltitudeAtmosphericDensityModel.NONE.__doc__ = "No atmospheric density model to be used."
LowAltitudeAtmosphericDensityModel.NRLMSISE2000.__doc__ = "NRLMSISE 2000: finds the total density by accounting for the contribution of N, N2, O, O2, He, Ar and H. Includes anomalous oxygen. 2000 version, valid range of 0-1000 km."
LowAltitudeAtmosphericDensityModel.MSISE1990.__doc__ = "MSISE 1990: finds the total density by accounting for the contribution of N2, O, O2, He, Ar and H. 1990 version, valid range of 0-1000 km."

agcls.AgTypeNameMap["LowAltitudeAtmosphericDensityModel"] = LowAltitudeAtmosphericDensityModel

class EphemExportToolFileFormat(IntEnum):
    """Ephemeris Export Tool file formats."""

    ORBIT_EPHEMERIS_MESSAGE = 0
    """The Ephemeris Export tool will generate an Orbit Ephemeris Message (.oem) file following the CCSDS Ephemeris v2.0 standard."""
    XML = 1
    """The Ephemeris Export tool will generate an XML file following the CCSDS Ephemeris v2.0 standard."""

EphemExportToolFileFormat.ORBIT_EPHEMERIS_MESSAGE.__doc__ = "The Ephemeris Export tool will generate an Orbit Ephemeris Message (.oem) file following the CCSDS Ephemeris v2.0 standard."
EphemExportToolFileFormat.XML.__doc__ = "The Ephemeris Export tool will generate an XML file following the CCSDS Ephemeris v2.0 standard."

agcls.AgTypeNameMap["EphemExportToolFileFormat"] = EphemExportToolFileFormat

class AdvCATEllipsoidClassType(IntEnum):
    """Method for determining Ellipsoid Sizing method (class)."""

    CLASS_FIXED = 0
    """AdvCAT class type Fixed."""
    CLASS_ORBIT_CLASS = 1
    """AdvCAT class type Fixed Orbit class."""
    CLASS_QUADRATIC_IN_TIME = 2
    """AdvCAT class type Quadratic."""
    CLASS_QUADRATIC_IN_TIME_BY_ORBIT_CLASS = 3
    """AdvCAT class type Quad In Time Orbit Class."""
    CLASS_COVARIANCE = 4
    """AdvCAT class type Covariance."""
    CLASS_COVARIANCE_OFFSET = 5
    """AdvCAT class type Covariance Offset."""

AdvCATEllipsoidClassType.CLASS_FIXED.__doc__ = "AdvCAT class type Fixed."
AdvCATEllipsoidClassType.CLASS_ORBIT_CLASS.__doc__ = "AdvCAT class type Fixed Orbit class."
AdvCATEllipsoidClassType.CLASS_QUADRATIC_IN_TIME.__doc__ = "AdvCAT class type Quadratic."
AdvCATEllipsoidClassType.CLASS_QUADRATIC_IN_TIME_BY_ORBIT_CLASS.__doc__ = "AdvCAT class type Quad In Time Orbit Class."
AdvCATEllipsoidClassType.CLASS_COVARIANCE.__doc__ = "AdvCAT class type Covariance."
AdvCATEllipsoidClassType.CLASS_COVARIANCE_OFFSET.__doc__ = "AdvCAT class type Covariance Offset."

agcls.AgTypeNameMap["AdvCATEllipsoidClassType"] = AdvCATEllipsoidClassType

class AdvCATConjunctionType(IntEnum):
    """Mode for computing events involving conjunction TCA."""

    GLOBAL_ONLY = 0
    """conjunction TCA type Global Only."""
    LOCAL_ONLY = 1
    """conjunction TCA type Local Only."""
    GLOBAL_PLUS_LOCAL = 2
    """conjunction TCA type Global + Local."""
    LOCAL_PLUS_END_POINTS = 3
    """conjunction TCA typeLocal + EndPoints."""

AdvCATConjunctionType.GLOBAL_ONLY.__doc__ = "conjunction TCA type Global Only."
AdvCATConjunctionType.LOCAL_ONLY.__doc__ = "conjunction TCA type Local Only."
AdvCATConjunctionType.GLOBAL_PLUS_LOCAL.__doc__ = "conjunction TCA type Global + Local."
AdvCATConjunctionType.LOCAL_PLUS_END_POINTS.__doc__ = "conjunction TCA typeLocal + EndPoints."

agcls.AgTypeNameMap["AdvCATConjunctionType"] = AdvCATConjunctionType

class AdvCATSecondaryEllipsoidsVisibilityType(IntEnum):
    """Type of visible Secondary Ellipsoids."""

    SHOW_ALL_SECONDARY_ELLIPSOIDS = 0
    """Show all Secondary Ellipsoids."""
    SHOW_SECONDARY_ELLIPSOIDS_WITH_CONJUNCTIONS = 1
    """Show Secondary Ellipsoids with conjunctions."""

AdvCATSecondaryEllipsoidsVisibilityType.SHOW_ALL_SECONDARY_ELLIPSOIDS.__doc__ = "Show all Secondary Ellipsoids."
AdvCATSecondaryEllipsoidsVisibilityType.SHOW_SECONDARY_ELLIPSOIDS_WITH_CONJUNCTIONS.__doc__ = "Show Secondary Ellipsoids with conjunctions."

agcls.AgTypeNameMap["AdvCATSecondaryEllipsoidsVisibilityType"] = AdvCATSecondaryEllipsoidsVisibilityType

class EOIRShapeType(IntEnum):
    """The object geometry which will be rendered in the synthetic scene window."""

    BOX = 0
    """Shape is defined as a Box."""
    CONE = 1
    """Shape is defined as a Cone."""
    SPHERE = 2
    """Shape is defined as a Sphere."""
    CYLINDER = 3
    """Shape is defined as a Cylinder."""
    PLATE = 4
    """Shape is defined as a Plate."""
    NONE = 5
    """Shape is not defined."""
    COUPLER = 6
    """Shape is defined as a Coupler."""
    GEO_COMM_SATELLITE = 7
    """Shape is defined as a representative GEO comm satellite."""
    LEO_COMM_SATELLITE = 8
    """Shape is defined as a representative LEO comm satellite."""
    LEO_IMAGING = 9
    """Shape is defined as a representative LEO imaging satellite."""
    CUSTOM_MESH = 10
    """Shape is defined as a Custom Mesh."""
    TARGET_SIGNATURE = 11
    """Shape is defined as a Target Signature."""

EOIRShapeType.BOX.__doc__ = "Shape is defined as a Box."
EOIRShapeType.CONE.__doc__ = "Shape is defined as a Cone."
EOIRShapeType.SPHERE.__doc__ = "Shape is defined as a Sphere."
EOIRShapeType.CYLINDER.__doc__ = "Shape is defined as a Cylinder."
EOIRShapeType.PLATE.__doc__ = "Shape is defined as a Plate."
EOIRShapeType.NONE.__doc__ = "Shape is not defined."
EOIRShapeType.COUPLER.__doc__ = "Shape is defined as a Coupler."
EOIRShapeType.GEO_COMM_SATELLITE.__doc__ = "Shape is defined as a representative GEO comm satellite."
EOIRShapeType.LEO_COMM_SATELLITE.__doc__ = "Shape is defined as a representative LEO comm satellite."
EOIRShapeType.LEO_IMAGING.__doc__ = "Shape is defined as a representative LEO imaging satellite."
EOIRShapeType.CUSTOM_MESH.__doc__ = "Shape is defined as a Custom Mesh."
EOIRShapeType.TARGET_SIGNATURE.__doc__ = "Shape is defined as a Target Signature."

agcls.AgTypeNameMap["EOIRShapeType"] = EOIRShapeType

class EOIRShapeMaterialSpecificationType(IntEnum):
    """Designation of how material properties are specified."""

    SINGLE = 0
    """Materials specified by a single element."""
    GEOMETRIC_GROUP = 1
    """Materials specified by geometric group."""

EOIRShapeMaterialSpecificationType.SINGLE.__doc__ = "Materials specified by a single element."
EOIRShapeMaterialSpecificationType.GEOMETRIC_GROUP.__doc__ = "Materials specified by geometric group."

agcls.AgTypeNameMap["EOIRShapeMaterialSpecificationType"] = EOIRShapeMaterialSpecificationType

class EOIRThermalModelType(IntEnum):
    """EOIR thermal models."""

    STATIC = 0
    """Thermal model, Constant."""
    TIME_PROFILE = 1
    """Thermal model, Time Profile."""
    DATA_PROVIDER = 2
    """Thermal model, Data provider."""

EOIRThermalModelType.STATIC.__doc__ = "Thermal model, Constant."
EOIRThermalModelType.TIME_PROFILE.__doc__ = "Thermal model, Time Profile."
EOIRThermalModelType.DATA_PROVIDER.__doc__ = "Thermal model, Data provider."

agcls.AgTypeNameMap["EOIRThermalModelType"] = EOIRThermalModelType

class EOIRFlightType(IntEnum):
    """EOIR Flight Types."""

    NONE = 0
    """EOIR Flight Type : None."""
    POWERED = 1
    """EOIR Flight Type : Powered."""
    FALLING = 2
    """EOIR Flight Type : Falling."""

EOIRFlightType.NONE.__doc__ = "EOIR Flight Type : None."
EOIRFlightType.POWERED.__doc__ = "EOIR Flight Type : Powered."
EOIRFlightType.FALLING.__doc__ = "EOIR Flight Type : Falling."

agcls.AgTypeNameMap["EOIRFlightType"] = EOIRFlightType

class PropagatorDisplayCoordinateType(IntEnum):
    """Propagator Display Coordinate Types."""

    CARTESIAN = 0
    """Cartesian Coordinates."""
    CLASSICAL = 1
    """Classical Coordinates."""
    EQUINOCTIAL = 2
    """Equinoctial Coordinates."""
    DELAUNAY_VARIABLES = 3
    """Delaunay Variables Coordinates."""
    MIXED_SPHERICAL = 4
    """Mixed Spherical Coordinates."""
    SPHERICAL = 5
    """Spherical Coordinates."""

PropagatorDisplayCoordinateType.CARTESIAN.__doc__ = "Cartesian Coordinates."
PropagatorDisplayCoordinateType.CLASSICAL.__doc__ = "Classical Coordinates."
PropagatorDisplayCoordinateType.EQUINOCTIAL.__doc__ = "Equinoctial Coordinates."
PropagatorDisplayCoordinateType.DELAUNAY_VARIABLES.__doc__ = "Delaunay Variables Coordinates."
PropagatorDisplayCoordinateType.MIXED_SPHERICAL.__doc__ = "Mixed Spherical Coordinates."
PropagatorDisplayCoordinateType.SPHERICAL.__doc__ = "Spherical Coordinates."

agcls.AgTypeNameMap["PropagatorDisplayCoordinateType"] = PropagatorDisplayCoordinateType

class ConnectAuthenticationMode(IntEnum):
    """Determine the authentication mode for the connect."""

    SINGLE_USER_LOCAL = 0
    """Enforce local single user authentication."""
    MUTUAL_TLS = 1
    """Use MutualTLS for authentication."""
    INSECURE = 2
    """Allow connections without user authentication. Not recommended."""

ConnectAuthenticationMode.SINGLE_USER_LOCAL.__doc__ = "Enforce local single user authentication."
ConnectAuthenticationMode.MUTUAL_TLS.__doc__ = "Use MutualTLS for authentication."
ConnectAuthenticationMode.INSECURE.__doc__ = "Allow connections without user authentication. Not recommended."

agcls.AgTypeNameMap["ConnectAuthenticationMode"] = ConnectAuthenticationMode

class ComponentLinkEmbedControlReferenceType(IntEnum):
    """Component link/embed control reference type."""

    UNLINKED = 0
    """Unlink."""
    LINKED = 1
    """Link."""

ComponentLinkEmbedControlReferenceType.UNLINKED.__doc__ = "Unlink."
ComponentLinkEmbedControlReferenceType.LINKED.__doc__ = "Link."

agcls.AgTypeNameMap["ComponentLinkEmbedControlReferenceType"] = ComponentLinkEmbedControlReferenceType

class SwathComputationalMethod(IntEnum):
    """Computationals methods for generating swaths."""

    UNKNOWN = -1
    """Unknown or unsupported computational method."""
    ANALYTIC = 0
    """The Analytical Computational Method is only valid if the parent of the Sensor is a Satellite and the Satellite has a Circular Orbit and the Satellite uses Nadir ECF Attitude and the Sensor is Nadir (Fixed) Pointing."""
    NUMERIC = 1
    """The Numerical Computational Method is not valid if the Sensor uses a Custom Pattern."""

SwathComputationalMethod.UNKNOWN.__doc__ = "Unknown or unsupported computational method."
SwathComputationalMethod.ANALYTIC.__doc__ = "The Analytical Computational Method is only valid if the parent of the Sensor is a Satellite and the Satellite has a Circular Orbit and the Satellite uses Nadir ECF Attitude and the Sensor is Nadir (Fixed) Pointing."
SwathComputationalMethod.NUMERIC.__doc__ = "The Numerical Computational Method is not valid if the Sensor uses a Custom Pattern."

agcls.AgTypeNameMap["SwathComputationalMethod"] = SwathComputationalMethod

class ClassicalLocation(IntEnum):
    """Classical (Keplerian) element used to specify the spacecraft's location within its orbit at epoch."""

    UNKNOWN = -1
    """Represents unsupported spacecraft location."""
    ARGUMENT_OF_LATITUDE = 0
    """Use Argument of Latitude to specify spacecraft location."""
    ECCENTRIC_ANOMALY = 1
    """Use Eccentric Anomaly to specify spacecraft location."""
    MEAN_ANOMALY = 2
    """Use Mean Anomaly to specify spacecraft location."""
    TIME_PAST_ASCENDING_NODE = 3
    """Use Time Past Ascending Node to specify spacecraft location."""
    TIME_PAST_PERIGEE = 4
    """Use Time Past Perigee to specify spacecraft location."""
    TRUE_ANOMALY = 5
    """Use True Anomaly to specify spacecraft location."""

ClassicalLocation.UNKNOWN.__doc__ = "Represents unsupported spacecraft location."
ClassicalLocation.ARGUMENT_OF_LATITUDE.__doc__ = "Use Argument of Latitude to specify spacecraft location."
ClassicalLocation.ECCENTRIC_ANOMALY.__doc__ = "Use Eccentric Anomaly to specify spacecraft location."
ClassicalLocation.MEAN_ANOMALY.__doc__ = "Use Mean Anomaly to specify spacecraft location."
ClassicalLocation.TIME_PAST_ASCENDING_NODE.__doc__ = "Use Time Past Ascending Node to specify spacecraft location."
ClassicalLocation.TIME_PAST_PERIGEE.__doc__ = "Use Time Past Perigee to specify spacecraft location."
ClassicalLocation.TRUE_ANOMALY.__doc__ = "Use True Anomaly to specify spacecraft location."

agcls.AgTypeNameMap["ClassicalLocation"] = ClassicalLocation

class OrientationAscNode(IntEnum):
    """Ascending node-related options for use in specifying orbit orientation."""

    UNKNOWN = -1
    """Represents ascending node value not supported by the Object Model."""
    LONGITUDE_ASCENDING_NODE = 0
    """Longitude of Ascending Node."""
    RIGHT_ASCENSION_ASCENDING_NODE = 1
    """Right Ascension of Ascending Node."""

OrientationAscNode.UNKNOWN.__doc__ = "Represents ascending node value not supported by the Object Model."
OrientationAscNode.LONGITUDE_ASCENDING_NODE.__doc__ = "Longitude of Ascending Node."
OrientationAscNode.RIGHT_ASCENSION_ASCENDING_NODE.__doc__ = "Right Ascension of Ascending Node."

agcls.AgTypeNameMap["OrientationAscNode"] = OrientationAscNode

class GeodeticSize(IntEnum):
    """Size options for the Geodetic coordinate type."""

    UNKNOWN = -1
    """Represents a value not supported by the Object Model."""
    ALTITUDE = 0
    """Use altitude."""
    RADIUS = 1
    """Use radius."""

GeodeticSize.UNKNOWN.__doc__ = "Represents a value not supported by the Object Model."
GeodeticSize.ALTITUDE.__doc__ = "Use altitude."
GeodeticSize.RADIUS.__doc__ = "Use radius."

agcls.AgTypeNameMap["GeodeticSize"] = GeodeticSize

class DelaunayLType(IntEnum):
    """Select whether to use the default representation of Delaunay L or L/SQRT(mu)."""

    UNKNOWN = -1
    """Represents a value not supported by the Object Model."""
    L = 0
    """Use the default representation of L."""
    L_OVER_SQRT_MU = 1
    """Use L/SQRT(mu)."""

DelaunayLType.UNKNOWN.__doc__ = "Represents a value not supported by the Object Model."
DelaunayLType.L.__doc__ = "Use the default representation of L."
DelaunayLType.L_OVER_SQRT_MU.__doc__ = "Use L/SQRT(mu)."

agcls.AgTypeNameMap["DelaunayLType"] = DelaunayLType

class DelaunayHType(IntEnum):
    """Select whether to use the default representation of Delaunay H or H/SQRT(mu)."""

    UNKNOWN = -1
    """Represents a value not supported by the Object Model."""
    H = 0
    """Use the default representation of H."""
    H_OVER_SQRT_MU = 1
    """H/SQRT(mu)."""

DelaunayHType.UNKNOWN.__doc__ = "Represents a value not supported by the Object Model."
DelaunayHType.H.__doc__ = "Use the default representation of H."
DelaunayHType.H_OVER_SQRT_MU.__doc__ = "H/SQRT(mu)."

agcls.AgTypeNameMap["DelaunayHType"] = DelaunayHType

class DelaunayGType(IntEnum):
    """Select whether to use the default representation of Delaunay G or G/SQRT(mu)."""

    UNKNOWN = -1
    """Represents a value not supported by the Object Model."""
    G = 0
    """Use the default representation of G."""
    G_OVER_SQRT_MU = 1
    """Use G/SQRT(mu)."""

DelaunayGType.UNKNOWN.__doc__ = "Represents a value not supported by the Object Model."
DelaunayGType.G.__doc__ = "Use the default representation of G."
DelaunayGType.G_OVER_SQRT_MU.__doc__ = "Use G/SQRT(mu)."

agcls.AgTypeNameMap["DelaunayGType"] = DelaunayGType

class EquinoctialSizeShape(IntEnum):
    """Opt whether to use Mean Motion or Semimajor Axis to specify the orbit size (Equinoctial coordinate type)."""

    UNKNOWN = -1
    """Represents a value not supported by the Object Model."""
    MEAN_MOTION = 0
    """Use Mean Motion to specify orbit size."""
    SEMIMAJOR_AXIS = 1
    """Use Semimajor Axis to specify orbit size."""

EquinoctialSizeShape.UNKNOWN.__doc__ = "Represents a value not supported by the Object Model."
EquinoctialSizeShape.MEAN_MOTION.__doc__ = "Use Mean Motion to specify orbit size."
EquinoctialSizeShape.SEMIMAJOR_AXIS.__doc__ = "Use Semimajor Axis to specify orbit size."

agcls.AgTypeNameMap["EquinoctialSizeShape"] = EquinoctialSizeShape

class MixedSphericalFlightPathAngleType(IntEnum):
    """Opt whether to use Horizontal or Vertical Flight Path Angle."""

    UNKNOWN = -1
    """Represents a flight path angle not supported by the Object Model."""
    HORIZONTAL = 0
    """Use Horizontal Flight Path Angle."""
    VERTICAL = 1
    """Use Vertical Flight Path Angle."""

MixedSphericalFlightPathAngleType.UNKNOWN.__doc__ = "Represents a flight path angle not supported by the Object Model."
MixedSphericalFlightPathAngleType.HORIZONTAL.__doc__ = "Use Horizontal Flight Path Angle."
MixedSphericalFlightPathAngleType.VERTICAL.__doc__ = "Use Vertical Flight Path Angle."

agcls.AgTypeNameMap["MixedSphericalFlightPathAngleType"] = MixedSphericalFlightPathAngleType

class SphericalFlightPathAzimuthType(IntEnum):
    """Opt whether to use Horizontal or Vertical Flight Path Angle."""

    UNKNOWN = -1
    """Represents unsupported angle type."""
    HORIZONTAL = 0
    """Use Horizontal Flight Path Angle."""
    VERTICAL = 1
    """Use Vertical Flight Path Angle."""

SphericalFlightPathAzimuthType.UNKNOWN.__doc__ = "Represents unsupported angle type."
SphericalFlightPathAzimuthType.HORIZONTAL.__doc__ = "Use Horizontal Flight Path Angle."
SphericalFlightPathAzimuthType.VERTICAL.__doc__ = "Use Vertical Flight Path Angle."

agcls.AgTypeNameMap["SphericalFlightPathAzimuthType"] = SphericalFlightPathAzimuthType

class ClassicalSizeShape(IntEnum):
    """Pairs of Classical (Keplerian) elements used to specify orbit size and shape."""

    UNKNOWN = -1
    """Represents a value unsupported by the Object Model."""
    ALTITUDE = 0
    """Apogee and Perigee Altitude."""
    MEAN_MOTION = 1
    """Mean Motion and Eccentricity."""
    PERIOD = 2
    """Period and Eccentricity."""
    RADIUS = 3
    """Apogee and Perigee Radius."""
    SEMIMAJOR_AXIS = 4
    """Semimajor Axis and Eccentricity."""

ClassicalSizeShape.UNKNOWN.__doc__ = "Represents a value unsupported by the Object Model."
ClassicalSizeShape.ALTITUDE.__doc__ = "Apogee and Perigee Altitude."
ClassicalSizeShape.MEAN_MOTION.__doc__ = "Mean Motion and Eccentricity."
ClassicalSizeShape.PERIOD.__doc__ = "Period and Eccentricity."
ClassicalSizeShape.RADIUS.__doc__ = "Apogee and Perigee Radius."
ClassicalSizeShape.SEMIMAJOR_AXIS.__doc__ = "Semimajor Axis and Eccentricity."

agcls.AgTypeNameMap["ClassicalSizeShape"] = ClassicalSizeShape

class EquinoctialFormulation(IntEnum):
    """Formulation: retrograde or posigrade."""

    POSIGRADE = 0
    """Posigrade, which has its singularity at an inclination of 180 deg."""
    RETROGRADE = 1
    """Retrograde, which has its singularity at an inclination of 0 deg."""

EquinoctialFormulation.POSIGRADE.__doc__ = "Posigrade, which has its singularity at an inclination of 180 deg."
EquinoctialFormulation.RETROGRADE.__doc__ = "Retrograde, which has its singularity at an inclination of 0 deg."

agcls.AgTypeNameMap["EquinoctialFormulation"] = EquinoctialFormulation

class ScatteringPointProviderType(IntEnum):
    """Scattering point provider type."""

    UNKNOWN = -1
    """Unknown."""
    SINGLE_POINT = 0
    """Single point."""
    SMOOTH_OBLATE_EARTH = 1
    """Smooth oblate earth."""
    PLUGIN = 2
    """Plugin."""
    RANGE_OVER_CFAR_CELLS = 3
    """Range Over CFAR Cells."""
    POINTS_FILE = 4
    """Points File."""

ScatteringPointProviderType.UNKNOWN.__doc__ = "Unknown."
ScatteringPointProviderType.SINGLE_POINT.__doc__ = "Single point."
ScatteringPointProviderType.SMOOTH_OBLATE_EARTH.__doc__ = "Smooth oblate earth."
ScatteringPointProviderType.PLUGIN.__doc__ = "Plugin."
ScatteringPointProviderType.RANGE_OVER_CFAR_CELLS.__doc__ = "Range Over CFAR Cells."
ScatteringPointProviderType.POINTS_FILE.__doc__ = "Points File."

agcls.AgTypeNameMap["ScatteringPointProviderType"] = ScatteringPointProviderType

class ScatteringPointModelType(IntEnum):
    """Scattering point model type."""

    UNKNOWN = -1
    """Unknown."""
    PLUGIN = 0
    """Plugin."""
    CONSTANT_COEFFICIENT = 1
    """Constant Coefficient."""
    WIND_TURBINE = 2
    """Constant Coefficient."""

ScatteringPointModelType.UNKNOWN.__doc__ = "Unknown."
ScatteringPointModelType.PLUGIN.__doc__ = "Plugin."
ScatteringPointModelType.CONSTANT_COEFFICIENT.__doc__ = "Constant Coefficient."
ScatteringPointModelType.WIND_TURBINE.__doc__ = "Constant Coefficient."

agcls.AgTypeNameMap["ScatteringPointModelType"] = ScatteringPointModelType

class ScatteringPointProviderListType(IntEnum):
    """Scattering Point Provider List Type."""

    SCATTERING_POINT_PROVIDER_LIST = 0
    """Scattering point provider list."""

ScatteringPointProviderListType.SCATTERING_POINT_PROVIDER_LIST.__doc__ = "Scattering point provider list."

agcls.AgTypeNameMap["ScatteringPointProviderListType"] = ScatteringPointProviderListType

class PolarizationType(IntEnum):
    """Polarization Type."""

    UNKNOWN = -1
    """Unknown."""
    ELLIPTICAL = 0
    """Elliptical."""
    LEFT_HAND_CIRCULAR = 1
    """Lefthand Circular."""
    RIGHT_HAND_CIRCULAR = 2
    """Righthand Circular."""
    LINEAR = 3
    """Linear."""
    HORIZONTAL = 4
    """Horizontal."""
    VERTICAL = 5
    """Vertical."""

PolarizationType.UNKNOWN.__doc__ = "Unknown."
PolarizationType.ELLIPTICAL.__doc__ = "Elliptical."
PolarizationType.LEFT_HAND_CIRCULAR.__doc__ = "Lefthand Circular."
PolarizationType.RIGHT_HAND_CIRCULAR.__doc__ = "Righthand Circular."
PolarizationType.LINEAR.__doc__ = "Linear."
PolarizationType.HORIZONTAL.__doc__ = "Horizontal."
PolarizationType.VERTICAL.__doc__ = "Vertical."

agcls.AgTypeNameMap["PolarizationType"] = PolarizationType

class PolarizationReferenceAxis(IntEnum):
    """Polarization reference axis."""

    X = 0
    """X."""
    Y = 1
    """Y."""
    Z = 2
    """Z."""

PolarizationReferenceAxis.X.__doc__ = "X."
PolarizationReferenceAxis.Y.__doc__ = "Y."
PolarizationReferenceAxis.Z.__doc__ = "Z."

agcls.AgTypeNameMap["PolarizationReferenceAxis"] = PolarizationReferenceAxis

class NoiseTemperatureComputeType(IntEnum):
    """System noise temperature compute type."""

    CONSTANT = 0
    """Constant."""
    CALCULATE = 1
    """Calculated."""

NoiseTemperatureComputeType.CONSTANT.__doc__ = "Constant."
NoiseTemperatureComputeType.CALCULATE.__doc__ = "Calculated."

agcls.AgTypeNameMap["NoiseTemperatureComputeType"] = NoiseTemperatureComputeType

class PointingStrategyType(IntEnum):
    """Pointing strategy type."""

    UNKNOWN = -1
    """Unknown."""
    FIXED = 0
    """Fixed."""
    SPINNING = 1
    """Spinning."""
    TARGETED = 2
    """Targeted."""

PointingStrategyType.UNKNOWN.__doc__ = "Unknown."
PointingStrategyType.FIXED.__doc__ = "Fixed."
PointingStrategyType.SPINNING.__doc__ = "Spinning."
PointingStrategyType.TARGETED.__doc__ = "Targeted."

agcls.AgTypeNameMap["PointingStrategyType"] = PointingStrategyType

class WaveformType(IntEnum):
    """Waveform types."""

    UNKNOWN = -1
    """Unknown waveform type."""
    RECTANGULAR = 0
    """Unknown waveform type."""

WaveformType.UNKNOWN.__doc__ = "Unknown waveform type."
WaveformType.RECTANGULAR.__doc__ = "Unknown waveform type."

agcls.AgTypeNameMap["WaveformType"] = WaveformType

class FrequencySpecificationType(IntEnum):
    """Frequency Specification Type."""

    FREQUENCY = 0
    """Frequency."""
    WAVELENGTH = 1
    """Wavelength."""

FrequencySpecificationType.FREQUENCY.__doc__ = "Frequency."
FrequencySpecificationType.WAVELENGTH.__doc__ = "Wavelength."

agcls.AgTypeNameMap["FrequencySpecificationType"] = FrequencySpecificationType

class PRFMode(IntEnum):
    """Radar search/track prf modes."""

    PRF = 0
    """PRF."""
    UNAMBIGUOUS_RANGE = 1
    """Unambiguous Range."""
    UNAMBIGUOUS_VELOCITY = 2
    """Unambiguous Velocity."""

PRFMode.PRF.__doc__ = "PRF."
PRFMode.UNAMBIGUOUS_RANGE.__doc__ = "Unambiguous Range."
PRFMode.UNAMBIGUOUS_VELOCITY.__doc__ = "Unambiguous Velocity."

agcls.AgTypeNameMap["PRFMode"] = PRFMode

class PulseWidthMode(IntEnum):
    """Radar search/track pulse width modes."""

    PULSE_WIDTH = 0
    """Pulse Width."""
    DUTY_FACTOR = 1
    """Duty Factory."""

PulseWidthMode.PULSE_WIDTH.__doc__ = "Pulse Width."
PulseWidthMode.DUTY_FACTOR.__doc__ = "Duty Factory."

agcls.AgTypeNameMap["PulseWidthMode"] = PulseWidthMode

class WaveformSelectionStrategyType(IntEnum):
    """Waveform selection strategy type."""

    UNKNOWN = -1
    """Unknown."""
    FIXED = 0
    """Fixed."""
    RANGE_LIMITS = 1
    """Range limits."""

WaveformSelectionStrategyType.UNKNOWN.__doc__ = "Unknown."
WaveformSelectionStrategyType.FIXED.__doc__ = "Fixed."
WaveformSelectionStrategyType.RANGE_LIMITS.__doc__ = "Range limits."

agcls.AgTypeNameMap["WaveformSelectionStrategyType"] = WaveformSelectionStrategyType

class AntennaControlReferenceType(IntEnum):
    """Antenna control reference type."""

    LINK = 0
    """Link to an Antenna object."""
    EMBED = 1
    """Use the embedded antenna model."""

AntennaControlReferenceType.LINK.__doc__ = "Link to an Antenna object."
AntennaControlReferenceType.EMBED.__doc__ = "Use the embedded antenna model."

agcls.AgTypeNameMap["AntennaControlReferenceType"] = AntennaControlReferenceType

class AntennaModelType(IntEnum):
    """Antenna model types."""

    UNKNOWN = -1
    """Unknown antenna model type."""
    GAUSSIAN = 0
    """Gaussian antenna model."""
    PARABOLIC = 1
    """Parabolic antenna model."""
    SQUARE_HORN = 2
    """Square horn antenna model."""
    SCRIPT_PLUGIN = 3
    """Script plugin antenna model."""
    EXTERNAL = 4
    """External antenna model."""
    GIMROC = 5
    """GIMROC antenna model."""
    IEEE1979 = 6
    """IEEE 1979 antenna model."""
    DIPOLE = 7
    """Dipole antenna model."""
    HELIX = 8
    """Helix antenna model."""
    COSECANT_SQUARED = 9
    """Cosecant Squared antenna model."""
    HEMISPHERICAL = 10
    """Hemispherical antenna model."""
    ISOTROPIC = 11
    """Isotropic antenna model."""
    PENCIL_BEAM = 12
    """Pencil beam antenna model."""
    INTEL_SAT = 13
    """IntelSat antenna model."""
    RECTANGULAR_PATTERN = 14
    """Rectangular pattern antenna model."""
    GPS_GLOBAL = 15
    """GPS global antenna model."""
    GPS_FRPA = 16
    """GPS FRPA antenna model."""
    ITU_BO1213_COPOLAR = 17
    """ITU-R BO1213 co-polar antenna model."""
    ITU_BO1213_CROSS_POLAR = 18
    """ITU-R BO1213 cross-polar antenna model."""
    ITU_F1245 = 19
    """ITU-R F1245-3 antenna model."""
    ITU_S580 = 20
    """ITU-R S580-6 antenna model."""
    ITU_S465 = 21
    """ITU-R S465-6 antenna model."""
    ITU_S731 = 22
    """ITU-R S731 antenna model."""
    ITU_S1528R12_CIRCULAR = 23
    """ITU-R S1528 1.2 circular antenna model."""
    ITU_S1528R13 = 24
    """ITU-R S1528 1.3 antenna model."""
    ITU_S672_CIRCULAR = 25
    """ITU-R S672-4 circular antenna model."""
    ITU_S1528R12_RECTANGULAR = 26
    """ITU-R S1528 1.2 rectangular antenna model."""
    ITU_S672_RECTANGULAR = 27
    """ITU-R S672-4 rectangular antenna model."""
    CIRCULAR_COSINE = 28
    """Circular cosine aperture antenna model."""
    BESSEL = 29
    """Circular bessel aperture antenna model."""
    BESSEL_ENVELOPE = 30
    """Circular bessel envelope aperture antenna model."""
    CIRCULAR_COSINE_PEDESTAL = 31
    """Circular cosine pedestal aperture antenna model."""
    CIRCULAR_COSINE_SQUARED = 32
    """Circular cosine squared aperture antenna model."""
    CIRCULAR_COSINE_SQUARED_PEDESTAL = 33
    """Circular cosine squared pedestal aperture antenna model."""
    CIRCULAR_SINC_INTEGER_POWER = 34
    """Circular sinc integer power aperture antenna model."""
    CIRCULAR_SINC_REAL_POWER = 35
    """Circular sinc real power aperture antenna model."""
    CIRCULAR_UNIFORM = 36
    """Circular uniform aperture antenna model."""
    RECTANGULAR_COSINE = 37
    """Rectangular cosine aperture antenna model."""
    RECTANGULAR_COSINE_PEDESTAL = 38
    """Rectangular cosine pedestal aperture antenna model."""
    RECTANGULAR_COSINE_SQUARED = 39
    """Rectangular cosine squared aperture antenna model."""
    RECTANGULAR_COSINE_SQUARED_PEDESTAL = 40
    """Rectangular cosine squared pedestal aperture antenna model."""
    RECTANGULAR_SINC_INTEGER_POWER = 41
    """Rectangular sinc integer power aperture antenna model."""
    RECTANGULAR_SINC_REAL_POWER = 42
    """Rectangular sinc real power aperture antenna model."""
    RECTANGULAR_UNIFORM = 43
    """Rectangular uniform aperture antenna model."""
    OPTICAL_SIMPLE = 44
    """Simple optical antenna model."""
    OPTICAL_GAUSSIAN = 45
    """Gaussian optical antenna model."""
    PHASED_ARRAY = 46
    """Phased array antenna model."""
    ELEVATION_AZIMUTH_CUTS = 47
    """Pattern Elevation/Azimuth Cuts antenna model."""
    REMCOM_UAN_FORMAT = 48
    """Pattern Remcom Uan antenna model."""
    ANSYS_FFD_FORMAT = 49
    """Pattern ANSYS ffd antenna model."""
    TICRA_GRASP_FORMAT = 50
    """Pattern Ticra GRASP antenna model."""
    HFSS_EEP_ARRAY = 51
    """HFSS EEP array antenna model."""

AntennaModelType.UNKNOWN.__doc__ = "Unknown antenna model type."
AntennaModelType.GAUSSIAN.__doc__ = "Gaussian antenna model."
AntennaModelType.PARABOLIC.__doc__ = "Parabolic antenna model."
AntennaModelType.SQUARE_HORN.__doc__ = "Square horn antenna model."
AntennaModelType.SCRIPT_PLUGIN.__doc__ = "Script plugin antenna model."
AntennaModelType.EXTERNAL.__doc__ = "External antenna model."
AntennaModelType.GIMROC.__doc__ = "GIMROC antenna model."
AntennaModelType.IEEE1979.__doc__ = "IEEE 1979 antenna model."
AntennaModelType.DIPOLE.__doc__ = "Dipole antenna model."
AntennaModelType.HELIX.__doc__ = "Helix antenna model."
AntennaModelType.COSECANT_SQUARED.__doc__ = "Cosecant Squared antenna model."
AntennaModelType.HEMISPHERICAL.__doc__ = "Hemispherical antenna model."
AntennaModelType.ISOTROPIC.__doc__ = "Isotropic antenna model."
AntennaModelType.PENCIL_BEAM.__doc__ = "Pencil beam antenna model."
AntennaModelType.INTEL_SAT.__doc__ = "IntelSat antenna model."
AntennaModelType.RECTANGULAR_PATTERN.__doc__ = "Rectangular pattern antenna model."
AntennaModelType.GPS_GLOBAL.__doc__ = "GPS global antenna model."
AntennaModelType.GPS_FRPA.__doc__ = "GPS FRPA antenna model."
AntennaModelType.ITU_BO1213_COPOLAR.__doc__ = "ITU-R BO1213 co-polar antenna model."
AntennaModelType.ITU_BO1213_CROSS_POLAR.__doc__ = "ITU-R BO1213 cross-polar antenna model."
AntennaModelType.ITU_F1245.__doc__ = "ITU-R F1245-3 antenna model."
AntennaModelType.ITU_S580.__doc__ = "ITU-R S580-6 antenna model."
AntennaModelType.ITU_S465.__doc__ = "ITU-R S465-6 antenna model."
AntennaModelType.ITU_S731.__doc__ = "ITU-R S731 antenna model."
AntennaModelType.ITU_S1528R12_CIRCULAR.__doc__ = "ITU-R S1528 1.2 circular antenna model."
AntennaModelType.ITU_S1528R13.__doc__ = "ITU-R S1528 1.3 antenna model."
AntennaModelType.ITU_S672_CIRCULAR.__doc__ = "ITU-R S672-4 circular antenna model."
AntennaModelType.ITU_S1528R12_RECTANGULAR.__doc__ = "ITU-R S1528 1.2 rectangular antenna model."
AntennaModelType.ITU_S672_RECTANGULAR.__doc__ = "ITU-R S672-4 rectangular antenna model."
AntennaModelType.CIRCULAR_COSINE.__doc__ = "Circular cosine aperture antenna model."
AntennaModelType.BESSEL.__doc__ = "Circular bessel aperture antenna model."
AntennaModelType.BESSEL_ENVELOPE.__doc__ = "Circular bessel envelope aperture antenna model."
AntennaModelType.CIRCULAR_COSINE_PEDESTAL.__doc__ = "Circular cosine pedestal aperture antenna model."
AntennaModelType.CIRCULAR_COSINE_SQUARED.__doc__ = "Circular cosine squared aperture antenna model."
AntennaModelType.CIRCULAR_COSINE_SQUARED_PEDESTAL.__doc__ = "Circular cosine squared pedestal aperture antenna model."
AntennaModelType.CIRCULAR_SINC_INTEGER_POWER.__doc__ = "Circular sinc integer power aperture antenna model."
AntennaModelType.CIRCULAR_SINC_REAL_POWER.__doc__ = "Circular sinc real power aperture antenna model."
AntennaModelType.CIRCULAR_UNIFORM.__doc__ = "Circular uniform aperture antenna model."
AntennaModelType.RECTANGULAR_COSINE.__doc__ = "Rectangular cosine aperture antenna model."
AntennaModelType.RECTANGULAR_COSINE_PEDESTAL.__doc__ = "Rectangular cosine pedestal aperture antenna model."
AntennaModelType.RECTANGULAR_COSINE_SQUARED.__doc__ = "Rectangular cosine squared aperture antenna model."
AntennaModelType.RECTANGULAR_COSINE_SQUARED_PEDESTAL.__doc__ = "Rectangular cosine squared pedestal aperture antenna model."
AntennaModelType.RECTANGULAR_SINC_INTEGER_POWER.__doc__ = "Rectangular sinc integer power aperture antenna model."
AntennaModelType.RECTANGULAR_SINC_REAL_POWER.__doc__ = "Rectangular sinc real power aperture antenna model."
AntennaModelType.RECTANGULAR_UNIFORM.__doc__ = "Rectangular uniform aperture antenna model."
AntennaModelType.OPTICAL_SIMPLE.__doc__ = "Simple optical antenna model."
AntennaModelType.OPTICAL_GAUSSIAN.__doc__ = "Gaussian optical antenna model."
AntennaModelType.PHASED_ARRAY.__doc__ = "Phased array antenna model."
AntennaModelType.ELEVATION_AZIMUTH_CUTS.__doc__ = "Pattern Elevation/Azimuth Cuts antenna model."
AntennaModelType.REMCOM_UAN_FORMAT.__doc__ = "Pattern Remcom Uan antenna model."
AntennaModelType.ANSYS_FFD_FORMAT.__doc__ = "Pattern ANSYS ffd antenna model."
AntennaModelType.TICRA_GRASP_FORMAT.__doc__ = "Pattern Ticra GRASP antenna model."
AntennaModelType.HFSS_EEP_ARRAY.__doc__ = "HFSS EEP array antenna model."

agcls.AgTypeNameMap["AntennaModelType"] = AntennaModelType

class AntennaContourType(IntEnum):
    """Antenna contour types."""

    GAIN = 0
    """Gain."""
    EIRP = 1
    """EIRP."""
    RIP = 2
    """RIP."""
    FLUX_DENSITY = 3
    """Flux Density."""
    SPECTRAL_FLUX_DENSITY = 4
    """Spectral Flux Density."""

AntennaContourType.GAIN.__doc__ = "Gain."
AntennaContourType.EIRP.__doc__ = "EIRP."
AntennaContourType.RIP.__doc__ = "RIP."
AntennaContourType.FLUX_DENSITY.__doc__ = "Flux Density."
AntennaContourType.SPECTRAL_FLUX_DENSITY.__doc__ = "Spectral Flux Density."

agcls.AgTypeNameMap["AntennaContourType"] = AntennaContourType

class CircularApertureInputType(IntEnum):
    """Circular aperture antenna input type."""

    BEAMWIDTH = 0
    """Beamwidth."""
    DIAMETER = 1
    """Diameter."""

CircularApertureInputType.BEAMWIDTH.__doc__ = "Beamwidth."
CircularApertureInputType.DIAMETER.__doc__ = "Diameter."

agcls.AgTypeNameMap["CircularApertureInputType"] = CircularApertureInputType

class RectangularApertureInputType(IntEnum):
    """Rectangular aperture antenna input type."""

    BEAMWIDTHS = 0
    """Beamwidth."""
    DIMENSIONS = 1
    """Diameter."""

RectangularApertureInputType.BEAMWIDTHS.__doc__ = "Beamwidth."
RectangularApertureInputType.DIMENSIONS.__doc__ = "Diameter."

agcls.AgTypeNameMap["RectangularApertureInputType"] = RectangularApertureInputType

class DirectionProviderType(IntEnum):
    """Direction Provider types."""

    UNKNOWN = -1
    """Unknown direction provider type."""
    ASCII_FILE = 0
    """Ascii file direction provider type."""
    OBJECT = 1
    """Object direction provider type."""
    LINK = 2
    """Link direction provider type."""
    SCRIPT = 3
    """Script plugin direction provider type."""

DirectionProviderType.UNKNOWN.__doc__ = "Unknown direction provider type."
DirectionProviderType.ASCII_FILE.__doc__ = "Ascii file direction provider type."
DirectionProviderType.OBJECT.__doc__ = "Object direction provider type."
DirectionProviderType.LINK.__doc__ = "Link direction provider type."
DirectionProviderType.SCRIPT.__doc__ = "Script plugin direction provider type."

agcls.AgTypeNameMap["DirectionProviderType"] = DirectionProviderType

class BeamformerType(IntEnum):
    """Beamformer types."""

    UNKNOWN = -1
    """Unknown beamformer type."""
    MVDR = 0
    """Mvdr beamformer type."""
    SCRIPT = 1
    """Script plugin beamformer type."""
    ASCII_FILE = 2
    """Ascrii file beamformer type."""
    UNIFORM = 3
    """Uniform type."""
    BLACKMAN_HARRIS = 4
    """Blackman-Harris type."""
    COSINE = 5
    """Cosine type."""
    COSINE_X = 6
    """Cosine^X type."""
    CUSTOM_TAPER_FILE = 7
    """Custom Taper File type."""
    DOLPH_CHEBYSHEV = 8
    """Dolph-Chebyshev type."""
    HAMMING = 9
    """Hamming type."""
    HANN = 10
    """Hann type."""
    RAISED_COSINE = 11
    """Raised Cosine type."""
    RAISED_COSINE_SQUARED = 12
    """Raised Cosine^2 type."""
    TAYLOR = 13
    """Taylor type."""

BeamformerType.UNKNOWN.__doc__ = "Unknown beamformer type."
BeamformerType.MVDR.__doc__ = "Mvdr beamformer type."
BeamformerType.SCRIPT.__doc__ = "Script plugin beamformer type."
BeamformerType.ASCII_FILE.__doc__ = "Ascrii file beamformer type."
BeamformerType.UNIFORM.__doc__ = "Uniform type."
BeamformerType.BLACKMAN_HARRIS.__doc__ = "Blackman-Harris type."
BeamformerType.COSINE.__doc__ = "Cosine type."
BeamformerType.COSINE_X.__doc__ = "Cosine^X type."
BeamformerType.CUSTOM_TAPER_FILE.__doc__ = "Custom Taper File type."
BeamformerType.DOLPH_CHEBYSHEV.__doc__ = "Dolph-Chebyshev type."
BeamformerType.HAMMING.__doc__ = "Hamming type."
BeamformerType.HANN.__doc__ = "Hann type."
BeamformerType.RAISED_COSINE.__doc__ = "Raised Cosine type."
BeamformerType.RAISED_COSINE_SQUARED.__doc__ = "Raised Cosine^2 type."
BeamformerType.TAYLOR.__doc__ = "Taylor type."

agcls.AgTypeNameMap["BeamformerType"] = BeamformerType

class ElementConfigurationType(IntEnum):
    """Element configuration types."""

    UNKNOWN = -1
    """Unknown element configuration type."""
    CIRCULAR = 0
    """Circular element configuration type."""
    HEXAGON = 1
    """Hexagon plugin element configuration type."""
    LINEAR = 2
    """Linear element configuration type."""
    POLYGON = 3
    """Polygon element configuration type."""
    ASCII_FILE = 4
    """Ascii file element configuration type."""
    HFSS_EEP_FILE = 5
    """HFSS EEP element configuration type."""

ElementConfigurationType.UNKNOWN.__doc__ = "Unknown element configuration type."
ElementConfigurationType.CIRCULAR.__doc__ = "Circular element configuration type."
ElementConfigurationType.HEXAGON.__doc__ = "Hexagon plugin element configuration type."
ElementConfigurationType.LINEAR.__doc__ = "Linear element configuration type."
ElementConfigurationType.POLYGON.__doc__ = "Polygon element configuration type."
ElementConfigurationType.ASCII_FILE.__doc__ = "Ascii file element configuration type."
ElementConfigurationType.HFSS_EEP_FILE.__doc__ = "HFSS EEP element configuration type."

agcls.AgTypeNameMap["ElementConfigurationType"] = ElementConfigurationType

class LatticeType(IntEnum):
    """Lattice types."""

    TRIANGULAR = 0
    """Triangular lattice type."""
    RECTANGULAR = 1
    """Rectangular lattice type."""

LatticeType.TRIANGULAR.__doc__ = "Triangular lattice type."
LatticeType.RECTANGULAR.__doc__ = "Rectangular lattice type."

agcls.AgTypeNameMap["LatticeType"] = LatticeType

class SpacingUnit(IntEnum):
    """Spacing Units."""

    WAVELENGTH_RATIO = 0
    """Specify element spacing as a Wavelength Ratio."""
    DISTANCE = 1
    """Specify element spacing as a Distance."""

SpacingUnit.WAVELENGTH_RATIO.__doc__ = "Specify element spacing as a Wavelength Ratio."
SpacingUnit.DISTANCE.__doc__ = "Specify element spacing as a Distance."

agcls.AgTypeNameMap["SpacingUnit"] = SpacingUnit

class LimitsExceededBehaviorType(IntEnum):
    """Limits Exceeded Behavior types."""

    CLAMP_TO_LIMIT = 0
    """Clamp-To-Limit limits exceeded behavior type."""
    IGNORE_OBJECT = 1
    """Ignore Object limits exceeded behavior type."""

LimitsExceededBehaviorType.CLAMP_TO_LIMIT.__doc__ = "Clamp-To-Limit limits exceeded behavior type."
LimitsExceededBehaviorType.IGNORE_OBJECT.__doc__ = "Ignore Object limits exceeded behavior type."

agcls.AgTypeNameMap["LimitsExceededBehaviorType"] = LimitsExceededBehaviorType

class TargetSelectionMethod(IntEnum):
    """Target Selection Method types."""

    RANGE = 0
    """Select a target based on the minimum range."""
    CLOSING_VELOCITY = 1
    """Select a target based on the maximum closing velocity."""
    PRIORITY = 2
    """Select an target based a user defined priority."""

TargetSelectionMethod.RANGE.__doc__ = "Select a target based on the minimum range."
TargetSelectionMethod.CLOSING_VELOCITY.__doc__ = "Select a target based on the maximum closing velocity."
TargetSelectionMethod.PRIORITY.__doc__ = "Select an target based a user defined priority."

agcls.AgTypeNameMap["TargetSelectionMethod"] = TargetSelectionMethod

class AntennaGraphicsCoordinateSystem(IntEnum):
    """Coordinate system for defining antenna graphics resolution."""

    POLAR = 0
    """Polar."""
    RECTANGULAR = 1
    """Rectangular."""
    SPHERICAL_AZ_EL = 2
    """Spherical Az/El."""

AntennaGraphicsCoordinateSystem.POLAR.__doc__ = "Polar."
AntennaGraphicsCoordinateSystem.RECTANGULAR.__doc__ = "Rectangular."
AntennaGraphicsCoordinateSystem.SPHERICAL_AZ_EL.__doc__ = "Spherical Az/El."

agcls.AgTypeNameMap["AntennaGraphicsCoordinateSystem"] = AntennaGraphicsCoordinateSystem

class AntennaModelInputType(IntEnum):
    """Diameter computation input type."""

    BEAMWIDTH = 0
    """Beamwidth input type."""
    DIAMETER = 1
    """Diameter input type."""
    MAINLOBE_GAIN = 2
    """Main-lobe gain input type."""

AntennaModelInputType.BEAMWIDTH.__doc__ = "Beamwidth input type."
AntennaModelInputType.DIAMETER.__doc__ = "Diameter input type."
AntennaModelInputType.MAINLOBE_GAIN.__doc__ = "Main-lobe gain input type."

agcls.AgTypeNameMap["AntennaModelInputType"] = AntennaModelInputType

class HFSSFarFieldDataGainType(IntEnum):
    """Gain type."""

    TOTAL_GAIN = 0
    """Total Gain."""
    REALIZED_GAIN = 1
    """Realized Gain."""

HFSSFarFieldDataGainType.TOTAL_GAIN.__doc__ = "Total Gain."
HFSSFarFieldDataGainType.REALIZED_GAIN.__doc__ = "Realized Gain."

agcls.AgTypeNameMap["HFSSFarFieldDataGainType"] = HFSSFarFieldDataGainType

class AntennaModelCosecantSquaredSidelobeType(IntEnum):
    """Cosecant Squared antenna sidelobe selection types."""

    CONSTANT = 0
    """Cosecant Squared Sidelobe Value Constant."""
    SINC = 1
    """Cosecant Squared Sidelobe type Sinc."""
    GAUSSIAN = 2
    """Cosecant Squared Sidelobe type Gaussian."""
    PARABOLIC = 3
    """Cosecant Squared Sidelobe type Parabolic."""
    SQUARE_HORN = 4
    """Cosecant Squared Sidelobe type Square Horn."""

AntennaModelCosecantSquaredSidelobeType.CONSTANT.__doc__ = "Cosecant Squared Sidelobe Value Constant."
AntennaModelCosecantSquaredSidelobeType.SINC.__doc__ = "Cosecant Squared Sidelobe type Sinc."
AntennaModelCosecantSquaredSidelobeType.GAUSSIAN.__doc__ = "Cosecant Squared Sidelobe type Gaussian."
AntennaModelCosecantSquaredSidelobeType.PARABOLIC.__doc__ = "Cosecant Squared Sidelobe type Parabolic."
AntennaModelCosecantSquaredSidelobeType.SQUARE_HORN.__doc__ = "Cosecant Squared Sidelobe type Square Horn."

agcls.AgTypeNameMap["AntennaModelCosecantSquaredSidelobeType"] = AntennaModelCosecantSquaredSidelobeType

class BeamSelectionStrategyType(IntEnum):
    """Beam selection strategy types."""

    UNKNOWN = -1
    """Unknown."""
    AGGREGATE = 0
    """Aggregate."""
    MAXIMUM_GAIN = 1
    """Maximum gain."""
    MINIMUM_BORESIGHT_ANGLE = 2
    """Minimum boresight angle."""
    SCRIPT_PLUGIN = 3
    """Script plugin."""

BeamSelectionStrategyType.UNKNOWN.__doc__ = "Unknown."
BeamSelectionStrategyType.AGGREGATE.__doc__ = "Aggregate."
BeamSelectionStrategyType.MAXIMUM_GAIN.__doc__ = "Maximum gain."
BeamSelectionStrategyType.MINIMUM_BORESIGHT_ANGLE.__doc__ = "Minimum boresight angle."
BeamSelectionStrategyType.SCRIPT_PLUGIN.__doc__ = "Script plugin."

agcls.AgTypeNameMap["BeamSelectionStrategyType"] = BeamSelectionStrategyType

class TransmitterModelType(IntEnum):
    """Transmitter model types."""

    UNKNOWN = -1
    """Unknown transmitter model type."""
    SIMPLE = 0
    """Simple transmitter model."""
    MEDIUM = 1
    """Medium transmitter model."""
    COMPLEX = 2
    """Complex transmitter model."""
    RETRANSMITTER_MODEL_TYPE_SIMPLE = 3
    """Simple re-transmitter model."""
    RETRANSMITTER_MODEL_TYPE_MEDIUM = 4
    """Medium re-transmitter model."""
    RETRANSMITTER_MODEL_TYPE_COMPLEX = 5
    """Complex re-transmitter model."""
    SCRIPT_PLUGIN_RF = 6
    """RF script plugin transmitter model."""
    SCRIPT_PLUGIN_LASER = 7
    """Laser script plugin transmitter model."""
    LASER = 8
    """Laser script plugin transmitter model."""
    CABLE = 9
    """Cable transmitter model."""
    MULTIBEAM = 10
    """Multibeam transmitter model."""

TransmitterModelType.UNKNOWN.__doc__ = "Unknown transmitter model type."
TransmitterModelType.SIMPLE.__doc__ = "Simple transmitter model."
TransmitterModelType.MEDIUM.__doc__ = "Medium transmitter model."
TransmitterModelType.COMPLEX.__doc__ = "Complex transmitter model."
TransmitterModelType.RETRANSMITTER_MODEL_TYPE_SIMPLE.__doc__ = "Simple re-transmitter model."
TransmitterModelType.RETRANSMITTER_MODEL_TYPE_MEDIUM.__doc__ = "Medium re-transmitter model."
TransmitterModelType.RETRANSMITTER_MODEL_TYPE_COMPLEX.__doc__ = "Complex re-transmitter model."
TransmitterModelType.SCRIPT_PLUGIN_RF.__doc__ = "RF script plugin transmitter model."
TransmitterModelType.SCRIPT_PLUGIN_LASER.__doc__ = "Laser script plugin transmitter model."
TransmitterModelType.LASER.__doc__ = "Laser script plugin transmitter model."
TransmitterModelType.CABLE.__doc__ = "Cable transmitter model."
TransmitterModelType.MULTIBEAM.__doc__ = "Multibeam transmitter model."

agcls.AgTypeNameMap["TransmitterModelType"] = TransmitterModelType

class TransferFunctionType(IntEnum):
    """Transmitter model types."""

    POLYNOMIAL = 0
    """Polynomial."""
    TABLE_DATA = 1
    """Medium transmitter model."""

TransferFunctionType.POLYNOMIAL.__doc__ = "Polynomial."
TransferFunctionType.TABLE_DATA.__doc__ = "Medium transmitter model."

agcls.AgTypeNameMap["TransferFunctionType"] = TransferFunctionType

class ReTransmitterOpMode(IntEnum):
    """Re-Transmitter operational mode."""

    UNADJUSTED_RECEIVE_FLUX_DENSITY = 0
    """Use unadjusted receive flux density."""
    RECEIVER_ANTENNA_GAIN_DELTA_ADJUSTED_FLUX_DENSITY = 1
    """Use receiver antenna gain delta adjusted flux density."""
    CONSTANT_OUTPUT_POWER = 2
    """Use constant output power."""

ReTransmitterOpMode.UNADJUSTED_RECEIVE_FLUX_DENSITY.__doc__ = "Use unadjusted receive flux density."
ReTransmitterOpMode.RECEIVER_ANTENNA_GAIN_DELTA_ADJUSTED_FLUX_DENSITY.__doc__ = "Use receiver antenna gain delta adjusted flux density."
ReTransmitterOpMode.CONSTANT_OUTPUT_POWER.__doc__ = "Use constant output power."

agcls.AgTypeNameMap["ReTransmitterOpMode"] = ReTransmitterOpMode

class ReceiverModelType(IntEnum):
    """Receiver model types."""

    UNKNOWN = -1
    """Unknown receiver model type."""
    SIMPLE = 0
    """Simple receiver model."""
    MEDIUM = 1
    """Medium receiver model."""
    COMPLEX = 2
    """Complex transmitter model."""
    SCRIPT_PLUGIN_RF = 3
    """RF script plugin receiver model."""
    SCRIPT_PLUGIN_LASER = 4
    """Laser script plugin receiver model."""
    CABLE = 5
    """Cable receiver model."""
    LASER = 6
    """Laser receiver model."""
    MULTIBEAM = 7
    """Multibeam receiver model."""

ReceiverModelType.UNKNOWN.__doc__ = "Unknown receiver model type."
ReceiverModelType.SIMPLE.__doc__ = "Simple receiver model."
ReceiverModelType.MEDIUM.__doc__ = "Medium receiver model."
ReceiverModelType.COMPLEX.__doc__ = "Complex transmitter model."
ReceiverModelType.SCRIPT_PLUGIN_RF.__doc__ = "RF script plugin receiver model."
ReceiverModelType.SCRIPT_PLUGIN_LASER.__doc__ = "Laser script plugin receiver model."
ReceiverModelType.CABLE.__doc__ = "Cable receiver model."
ReceiverModelType.LASER.__doc__ = "Laser receiver model."
ReceiverModelType.MULTIBEAM.__doc__ = "Multibeam receiver model."

agcls.AgTypeNameMap["ReceiverModelType"] = ReceiverModelType

class LinkMarginType(IntEnum):
    """Link margin types."""

    BIT_ERROR_RATE = 0
    """BER."""
    EB_OVER_N0 = 1
    """Eb/No."""
    C_OVER_N = 2
    """C/N."""
    C_OVER_N0 = 3
    """C/No."""
    FLUX_DENSITY = 4
    """Flux Density."""
    RECEIVED_CARRIER_POWER = 5
    """Rcvd Carrier Power."""
    RECEIVED_ISOTROPIC_POWER = 6
    """RIP."""

LinkMarginType.BIT_ERROR_RATE.__doc__ = "BER."
LinkMarginType.EB_OVER_N0.__doc__ = "Eb/No."
LinkMarginType.C_OVER_N.__doc__ = "C/N."
LinkMarginType.C_OVER_N0.__doc__ = "C/No."
LinkMarginType.FLUX_DENSITY.__doc__ = "Flux Density."
LinkMarginType.RECEIVED_CARRIER_POWER.__doc__ = "Rcvd Carrier Power."
LinkMarginType.RECEIVED_ISOTROPIC_POWER.__doc__ = "RIP."

agcls.AgTypeNameMap["LinkMarginType"] = LinkMarginType

class RadarSTCAttenuationType(IntEnum):
    """Stc Attenuation Type."""

    UNKNOWN = -1
    """Unknown STC type."""
    DECAY_FACTOR = 0
    """Decay Factor."""
    DECAY_SLOPE = 1
    """Decay Slope."""
    MAP_RANGE = 2
    """Map Range."""
    MAP_AZIMUTH_RANGE = 3
    """Map Azimuth-Range."""
    MAP_ELEVATION_RANGE = 4
    """Map Elevation-Range."""
    PLUGIN = 5
    """STC COM Plugin."""

RadarSTCAttenuationType.UNKNOWN.__doc__ = "Unknown STC type."
RadarSTCAttenuationType.DECAY_FACTOR.__doc__ = "Decay Factor."
RadarSTCAttenuationType.DECAY_SLOPE.__doc__ = "Decay Slope."
RadarSTCAttenuationType.MAP_RANGE.__doc__ = "Map Range."
RadarSTCAttenuationType.MAP_AZIMUTH_RANGE.__doc__ = "Map Azimuth-Range."
RadarSTCAttenuationType.MAP_ELEVATION_RANGE.__doc__ = "Map Elevation-Range."
RadarSTCAttenuationType.PLUGIN.__doc__ = "STC COM Plugin."

agcls.AgTypeNameMap["RadarSTCAttenuationType"] = RadarSTCAttenuationType

class RadarFrequencySpecificationType(IntEnum):
    """SNR Contour Type."""

    FREQUENCY = 0
    """Frequency."""
    WAVELENGTH = 1
    """Wavelength."""

RadarFrequencySpecificationType.FREQUENCY.__doc__ = "Frequency."
RadarFrequencySpecificationType.WAVELENGTH.__doc__ = "Wavelength."

agcls.AgTypeNameMap["RadarFrequencySpecificationType"] = RadarFrequencySpecificationType

class RadarSNRContourType(IntEnum):
    """SNR Contour Type."""

    SINGLE_PULSE = 0
    """Single Pulse SNR."""
    INTEGRATED = 1
    """Integrated SNR."""

RadarSNRContourType.SINGLE_PULSE.__doc__ = "Single Pulse SNR."
RadarSNRContourType.INTEGRATED.__doc__ = "Integrated SNR."

agcls.AgTypeNameMap["RadarSNRContourType"] = RadarSNRContourType

class RadarModelType(IntEnum):
    """Radar system types."""

    UNKNOWN = -1
    """Unknown radar system type."""
    MONOSTATIC = 0
    """Monostatic radar system."""
    BISTATIC_TRANSMITTER = 1
    """Bistatic transmitter radar system."""
    BISTATIC_RECEIVER = 2
    """Bistatic receiver radar system."""
    MULTIFUNCTION = 3
    """Multtifunction radar system."""

RadarModelType.UNKNOWN.__doc__ = "Unknown radar system type."
RadarModelType.MONOSTATIC.__doc__ = "Monostatic radar system."
RadarModelType.BISTATIC_TRANSMITTER.__doc__ = "Bistatic transmitter radar system."
RadarModelType.BISTATIC_RECEIVER.__doc__ = "Bistatic receiver radar system."
RadarModelType.MULTIFUNCTION.__doc__ = "Multtifunction radar system."

agcls.AgTypeNameMap["RadarModelType"] = RadarModelType

class RadarMode(IntEnum):
    """Radar mode types."""

    UNKNOWN = -1
    """Unknown radar mode type."""
    SEARCH_TRACK = 0
    """Search/Track."""
    SAR = 1
    """SAR."""

RadarMode.UNKNOWN.__doc__ = "Unknown radar mode type."
RadarMode.SEARCH_TRACK.__doc__ = "Search/Track."
RadarMode.SAR.__doc__ = "SAR."

agcls.AgTypeNameMap["RadarMode"] = RadarMode

class RadarWaveformSearchTrackType(IntEnum):
    """Radar search/track waveform types."""

    FIXED_PRF = 0
    """Fixed PRF."""
    CONTINUOUS = 1
    """Continuous."""

RadarWaveformSearchTrackType.FIXED_PRF.__doc__ = "Fixed PRF."
RadarWaveformSearchTrackType.CONTINUOUS.__doc__ = "Continuous."

agcls.AgTypeNameMap["RadarWaveformSearchTrackType"] = RadarWaveformSearchTrackType

class RadarSearchTrackPRFMode(IntEnum):
    """Radar search/track prf modes."""

    PRF = 0
    """PRF."""
    UNAMBIGUOUS_RANGE = 1
    """Unambiguous Range."""
    UNAMBIGUOUS_VELOCITY = 2
    """Unambiguous Velocity."""

RadarSearchTrackPRFMode.PRF.__doc__ = "PRF."
RadarSearchTrackPRFMode.UNAMBIGUOUS_RANGE.__doc__ = "Unambiguous Range."
RadarSearchTrackPRFMode.UNAMBIGUOUS_VELOCITY.__doc__ = "Unambiguous Velocity."

agcls.AgTypeNameMap["RadarSearchTrackPRFMode"] = RadarSearchTrackPRFMode

class RadarSearchTrackPulseWidthMode(IntEnum):
    """Radar search/track pulse width modes."""

    PULSE_WIDTH = 0
    """Pulse Width."""
    DUTY_FACTOR = 1
    """Duty Factory."""

RadarSearchTrackPulseWidthMode.PULSE_WIDTH.__doc__ = "Pulse Width."
RadarSearchTrackPulseWidthMode.DUTY_FACTOR.__doc__ = "Duty Factory."

agcls.AgTypeNameMap["RadarSearchTrackPulseWidthMode"] = RadarSearchTrackPulseWidthMode

class RadarSarPRFMode(IntEnum):
    """Radar SAR prf modes."""

    PRF = 0
    """PRF."""
    UNAMBIGUOUS_RANGE = 1
    """Unambiguous Range."""

RadarSarPRFMode.PRF.__doc__ = "PRF."
RadarSarPRFMode.UNAMBIGUOUS_RANGE.__doc__ = "Unambiguous Range."

agcls.AgTypeNameMap["RadarSarPRFMode"] = RadarSarPRFMode

class RadarSarRangeResolutionMode(IntEnum):
    """Radar SAR range resolution modes."""

    RANGE_RESOLUTION = 0
    """Range Resolution."""
    BANDWIDTH = 1
    """Bandwidth."""

RadarSarRangeResolutionMode.RANGE_RESOLUTION.__doc__ = "Range Resolution."
RadarSarRangeResolutionMode.BANDWIDTH.__doc__ = "Bandwidth."

agcls.AgTypeNameMap["RadarSarRangeResolutionMode"] = RadarSarRangeResolutionMode

class RadarSarPcrMode(IntEnum):
    """Radar SAR pulse compression ratio modes."""

    PULSE_COMPRESSION_RATIO = 0
    """Pulse compression ratio."""
    PULSE_WIDTH = 1
    """Pulse Width."""
    SCENE_DEPTH = 2
    """Scene Depth."""
    FM_CHIRP_RATE = 3
    """FM Chirp Rate."""

RadarSarPcrMode.PULSE_COMPRESSION_RATIO.__doc__ = "Pulse compression ratio."
RadarSarPcrMode.PULSE_WIDTH.__doc__ = "Pulse Width."
RadarSarPcrMode.SCENE_DEPTH.__doc__ = "Scene Depth."
RadarSarPcrMode.FM_CHIRP_RATE.__doc__ = "FM Chirp Rate."

agcls.AgTypeNameMap["RadarSarPcrMode"] = RadarSarPcrMode

class RadarSARPulseIntegrationAnalysisMode(IntEnum):
    """Radar sar pulse integration mode."""

    FIXED_AZIMUTH_RESOLUTION = 0
    """Fixed azimuth resolution."""
    FIXED_INTEGRATION_TIME = 1
    """Fixed integration time."""

RadarSARPulseIntegrationAnalysisMode.FIXED_AZIMUTH_RESOLUTION.__doc__ = "Fixed azimuth resolution."
RadarSARPulseIntegrationAnalysisMode.FIXED_INTEGRATION_TIME.__doc__ = "Fixed integration time."

agcls.AgTypeNameMap["RadarSARPulseIntegrationAnalysisMode"] = RadarSARPulseIntegrationAnalysisMode

class RadarProbabilityOfDetectionType(IntEnum):
    """Radar probability of detection type."""

    UNKNOWN = -1
    """Unknown radar mode type."""
    CFAR = 0
    """CFAR."""
    NON_CFAR = 1
    """Non-CFAR."""
    CFAR_CELL_AVERAGING = 2
    """Cell Averaging CFAR."""
    CFAR_ORDERED_STATISTICS = 3
    """Ordered Statistics CFAR."""
    PLUGIN = 4
    """Plugin."""

RadarProbabilityOfDetectionType.UNKNOWN.__doc__ = "Unknown radar mode type."
RadarProbabilityOfDetectionType.CFAR.__doc__ = "CFAR."
RadarProbabilityOfDetectionType.NON_CFAR.__doc__ = "Non-CFAR."
RadarProbabilityOfDetectionType.CFAR_CELL_AVERAGING.__doc__ = "Cell Averaging CFAR."
RadarProbabilityOfDetectionType.CFAR_ORDERED_STATISTICS.__doc__ = "Ordered Statistics CFAR."
RadarProbabilityOfDetectionType.PLUGIN.__doc__ = "Plugin."

agcls.AgTypeNameMap["RadarProbabilityOfDetectionType"] = RadarProbabilityOfDetectionType

class RadarPulseIntegrationType(IntEnum):
    """Radar pulse integration type."""

    GOAL_SNR = 0
    """Goal SNR."""
    FIXED_NUMBER_OF_PULSES = 1
    """Fixed number of pulses."""

RadarPulseIntegrationType.GOAL_SNR.__doc__ = "Goal SNR."
RadarPulseIntegrationType.FIXED_NUMBER_OF_PULSES.__doc__ = "Fixed number of pulses."

agcls.AgTypeNameMap["RadarPulseIntegrationType"] = RadarPulseIntegrationType

class RadarPulseIntegratorType(IntEnum):
    """Radar pulse integrator type."""

    PERFECT = 0
    """Perfect."""
    CONSTANT_EFFICIENCY = 1
    """Constant efficiency."""
    EXPONENT_ON_PULSE_NUMBER = 2
    """Exponent on pulse number."""
    INTEGRATION_FILE = 3
    """Integration File."""

RadarPulseIntegratorType.PERFECT.__doc__ = "Perfect."
RadarPulseIntegratorType.CONSTANT_EFFICIENCY.__doc__ = "Constant efficiency."
RadarPulseIntegratorType.EXPONENT_ON_PULSE_NUMBER.__doc__ = "Exponent on pulse number."
RadarPulseIntegratorType.INTEGRATION_FILE.__doc__ = "Integration File."

agcls.AgTypeNameMap["RadarPulseIntegratorType"] = RadarPulseIntegratorType

class RadarContinuousWaveAnalysisMode(IntEnum):
    """Radar continuous wave analysis mode."""

    GOAL_SNR = 0
    """Goal SNR."""
    FIXED_TIME = 1
    """Fixed time."""

RadarContinuousWaveAnalysisMode.GOAL_SNR.__doc__ = "Goal SNR."
RadarContinuousWaveAnalysisMode.FIXED_TIME.__doc__ = "Fixed time."

agcls.AgTypeNameMap["RadarContinuousWaveAnalysisMode"] = RadarContinuousWaveAnalysisMode

class RadarClutterGeometryModelType(IntEnum):
    """Radar clutter geometry model type."""

    UNKNOWN = -1
    """Unknown."""
    SINGLE_POINT = 0
    """Single point."""
    SMOOTH_OBLATE_EARTH = 1
    """Smooth oblate earth."""
    PLUGIN = 2
    """Plugin."""
    RANGE_OVER_CFAR_CELLS = 3
    """Range Over CFAR Cells."""

RadarClutterGeometryModelType.UNKNOWN.__doc__ = "Unknown."
RadarClutterGeometryModelType.SINGLE_POINT.__doc__ = "Single point."
RadarClutterGeometryModelType.SMOOTH_OBLATE_EARTH.__doc__ = "Smooth oblate earth."
RadarClutterGeometryModelType.PLUGIN.__doc__ = "Plugin."
RadarClutterGeometryModelType.RANGE_OVER_CFAR_CELLS.__doc__ = "Range Over CFAR Cells."

agcls.AgTypeNameMap["RadarClutterGeometryModelType"] = RadarClutterGeometryModelType

class RadarClutterMapModelType(IntEnum):
    """Radar clutter map model type."""

    UNKNOWN = -1
    """Unknown."""
    PLUGIN = 0
    """Plugin."""
    CONSTANT_COEFFICIENT = 1
    """Constant Coefficient."""

RadarClutterMapModelType.UNKNOWN.__doc__ = "Unknown."
RadarClutterMapModelType.PLUGIN.__doc__ = "Plugin."
RadarClutterMapModelType.CONSTANT_COEFFICIENT.__doc__ = "Constant Coefficient."

agcls.AgTypeNameMap["RadarClutterMapModelType"] = RadarClutterMapModelType

class RadarSwerlingCase(IntEnum):
    """Radar swerling case."""

    CASE_0 = 0
    """0."""
    CASE_I = 1
    """I."""
    CASE_II = 2
    """II."""
    CASE_III = 3
    """III."""
    CASE_IV = 4
    """IV."""

RadarSwerlingCase.CASE_0.__doc__ = "0."
RadarSwerlingCase.CASE_I.__doc__ = "I."
RadarSwerlingCase.CASE_II.__doc__ = "II."
RadarSwerlingCase.CASE_III.__doc__ = "III."
RadarSwerlingCase.CASE_IV.__doc__ = "IV."

agcls.AgTypeNameMap["RadarSwerlingCase"] = RadarSwerlingCase

class RCSComputeStrategy(IntEnum):
    """Radar cross section compute strategy."""

    UNKNOWN = -1
    """Unknown."""
    PLUGIN = 0
    """Plugin."""
    CONSTANT_VALUE = 1
    """Constant Value."""
    SCRIPT_PLUGIN = 2
    """Script Plugin."""
    EXTERNAL_FILE = 3
    """External File."""
    ANSYS_CSV_FILE = 4
    """Ansys HFSS CSV File."""

RCSComputeStrategy.UNKNOWN.__doc__ = "Unknown."
RCSComputeStrategy.PLUGIN.__doc__ = "Plugin."
RCSComputeStrategy.CONSTANT_VALUE.__doc__ = "Constant Value."
RCSComputeStrategy.SCRIPT_PLUGIN.__doc__ = "Script Plugin."
RCSComputeStrategy.EXTERNAL_FILE.__doc__ = "External File."
RCSComputeStrategy.ANSYS_CSV_FILE.__doc__ = "Ansys HFSS CSV File."

agcls.AgTypeNameMap["RCSComputeStrategy"] = RCSComputeStrategy

class RadarActivityType(IntEnum):
    """Radar activity times strategy."""

    UNKNOWN = -1
    """Unknown."""
    ALWAYS_ACTIVE = 0
    """Always active."""
    ALWAYS_INACTIVE = 1
    """Always inactive."""
    TIME_COMPONENT_LIST = 2
    """Time components list."""
    TIME_INTERVAL_LIST = 3
    """Explicit interval list."""

RadarActivityType.UNKNOWN.__doc__ = "Unknown."
RadarActivityType.ALWAYS_ACTIVE.__doc__ = "Always active."
RadarActivityType.ALWAYS_INACTIVE.__doc__ = "Always inactive."
RadarActivityType.TIME_COMPONENT_LIST.__doc__ = "Time components list."
RadarActivityType.TIME_INTERVAL_LIST.__doc__ = "Explicit interval list."

agcls.AgTypeNameMap["RadarActivityType"] = RadarActivityType

class RadarCrossSectionContourGraphicsPolarization(IntEnum):
    """Radar cross section contour graphics polarization."""

    PRIMARY = 0
    """Primary Polarization."""
    ORTHOGONAL = 1
    """Orthogonal Polarization."""

RadarCrossSectionContourGraphicsPolarization.PRIMARY.__doc__ = "Primary Polarization."
RadarCrossSectionContourGraphicsPolarization.ORTHOGONAL.__doc__ = "Orthogonal Polarization."

agcls.AgTypeNameMap["RadarCrossSectionContourGraphicsPolarization"] = RadarCrossSectionContourGraphicsPolarization

class RFFilterModelType(IntEnum):
    """RF filter model types."""

    UNKNOWN = -1
    """Unknown."""
    BESSEL = 0
    """Bessel."""
    BUTTERWORTH = 1
    """Butterworth."""
    SINC_ENVELOPE_SINC = 2
    """Sinc Envelope Sinc."""
    ELLIPTIC = 3
    """Elliptic."""
    CHEBYSHEV = 4
    """Chebyshev."""
    COSINE_WINDOW = 5
    """Cosine Window."""
    GAUSSIAN_WINDOW = 6
    """Gaussian Window."""
    HAMMING_WINDOW = 7
    """Hamming Window."""
    EXTERNAL = 8
    """External."""
    SCRIPT_PLUGIN = 9
    """Script Plugin."""
    SINC = 10
    """Sinc."""
    RECTANGULAR = 11
    """Rectangular."""
    RAISED_COSINE = 12
    """Raised Cosine."""
    ROOT_RAISED_COSINE = 13
    """Root Raised Cosine."""
    RC_LOW_PASS = 14
    """Rc Low Pass."""
    FIR_BOX_CAR = 15
    """FIR Box Car."""
    FIR = 16
    """FIR."""
    IIR = 17
    """FIR."""

RFFilterModelType.UNKNOWN.__doc__ = "Unknown."
RFFilterModelType.BESSEL.__doc__ = "Bessel."
RFFilterModelType.BUTTERWORTH.__doc__ = "Butterworth."
RFFilterModelType.SINC_ENVELOPE_SINC.__doc__ = "Sinc Envelope Sinc."
RFFilterModelType.ELLIPTIC.__doc__ = "Elliptic."
RFFilterModelType.CHEBYSHEV.__doc__ = "Chebyshev."
RFFilterModelType.COSINE_WINDOW.__doc__ = "Cosine Window."
RFFilterModelType.GAUSSIAN_WINDOW.__doc__ = "Gaussian Window."
RFFilterModelType.HAMMING_WINDOW.__doc__ = "Hamming Window."
RFFilterModelType.EXTERNAL.__doc__ = "External."
RFFilterModelType.SCRIPT_PLUGIN.__doc__ = "Script Plugin."
RFFilterModelType.SINC.__doc__ = "Sinc."
RFFilterModelType.RECTANGULAR.__doc__ = "Rectangular."
RFFilterModelType.RAISED_COSINE.__doc__ = "Raised Cosine."
RFFilterModelType.ROOT_RAISED_COSINE.__doc__ = "Root Raised Cosine."
RFFilterModelType.RC_LOW_PASS.__doc__ = "Rc Low Pass."
RFFilterModelType.FIR_BOX_CAR.__doc__ = "FIR Box Car."
RFFilterModelType.FIR.__doc__ = "FIR."
RFFilterModelType.IIR.__doc__ = "FIR."

agcls.AgTypeNameMap["RFFilterModelType"] = RFFilterModelType

class ModulatorModelType(IntEnum):
    """Modulator model types."""

    UNKNOWN = -1
    """Unknown."""
    BPSK = 0
    """BPSK."""
    QPSK = 1
    """QPSK."""
    EXTERNAL_SOURCE = 2
    """External source."""
    EXTERNAL = 3
    """External."""
    QAM1024 = 4
    """QAM 1024."""
    QAM128 = 5
    """QAM 128."""
    QAM16 = 6
    """QAM 16."""
    QAM256 = 7
    """QAM 256."""
    QAM32 = 8
    """QAM 32."""
    QAM64 = 9
    """QAM 64."""
    TYPE8_PSK = 10
    """8PSK."""
    TYPE16_PSK = 11
    """16PSK."""
    MSK = 12
    """MSK."""
    BOC = 13
    """BOC."""
    DPSK = 14
    """DPSK."""
    FSK = 15
    """FSK."""
    NFSK = 16
    """NFSK."""
    OQPSK = 17
    """OQPSK."""
    NARROWBAND_UNIFORM = 18
    """Narrowband uniform."""
    WIDEBAND_UNIFORM = 19
    """Wideband uniform."""
    WIDEBAND_GAUSSIAN = 20
    """Wideband gaussian."""
    PULSED_SIGNAL = 21
    """Pulsed signal."""
    SCRIPT_PLUGIN_CUSTOM_PSD = 22
    """Custom PSD script plugin."""
    SCRIPT_PLUGIN_IDEAL_PSD = 23
    """Ideal PSD script plugin."""

ModulatorModelType.UNKNOWN.__doc__ = "Unknown."
ModulatorModelType.BPSK.__doc__ = "BPSK."
ModulatorModelType.QPSK.__doc__ = "QPSK."
ModulatorModelType.EXTERNAL_SOURCE.__doc__ = "External source."
ModulatorModelType.EXTERNAL.__doc__ = "External."
ModulatorModelType.QAM1024.__doc__ = "QAM 1024."
ModulatorModelType.QAM128.__doc__ = "QAM 128."
ModulatorModelType.QAM16.__doc__ = "QAM 16."
ModulatorModelType.QAM256.__doc__ = "QAM 256."
ModulatorModelType.QAM32.__doc__ = "QAM 32."
ModulatorModelType.QAM64.__doc__ = "QAM 64."
ModulatorModelType.TYPE8_PSK.__doc__ = "8PSK."
ModulatorModelType.TYPE16_PSK.__doc__ = "16PSK."
ModulatorModelType.MSK.__doc__ = "MSK."
ModulatorModelType.BOC.__doc__ = "BOC."
ModulatorModelType.DPSK.__doc__ = "DPSK."
ModulatorModelType.FSK.__doc__ = "FSK."
ModulatorModelType.NFSK.__doc__ = "NFSK."
ModulatorModelType.OQPSK.__doc__ = "OQPSK."
ModulatorModelType.NARROWBAND_UNIFORM.__doc__ = "Narrowband uniform."
ModulatorModelType.WIDEBAND_UNIFORM.__doc__ = "Wideband uniform."
ModulatorModelType.WIDEBAND_GAUSSIAN.__doc__ = "Wideband gaussian."
ModulatorModelType.PULSED_SIGNAL.__doc__ = "Pulsed signal."
ModulatorModelType.SCRIPT_PLUGIN_CUSTOM_PSD.__doc__ = "Custom PSD script plugin."
ModulatorModelType.SCRIPT_PLUGIN_IDEAL_PSD.__doc__ = "Ideal PSD script plugin."

agcls.AgTypeNameMap["ModulatorModelType"] = ModulatorModelType

class DemodulatorModelType(IntEnum):
    """Demodulator model types."""

    UNKNOWN = -1
    """Unknown."""
    BPSK = 0
    """BPSK."""
    QPSK = 1
    """QPSK."""
    EXTERNAL_SOURCE = 2
    """External source."""
    EXTERNAL = 3
    """External."""
    QAM1024 = 4
    """QAM 1024."""
    QAM128 = 5
    """QAM 128."""
    QAM16 = 6
    """QAM 16."""
    QAM256 = 7
    """QAM 256."""
    QAM32 = 8
    """QAM 32."""
    QAM64 = 9
    """QAM 64."""
    TYPE8_PSK = 10
    """8PSK."""
    TYPE16_PSK = 11
    """16PSK."""
    MSK = 12
    """MSK."""
    BOC = 13
    """BOC."""
    DPSK = 14
    """DPSK."""
    FSK = 15
    """FSK."""
    NFSK = 16
    """NFSK."""
    OQPSK = 17
    """OQPSK."""
    NARROWBAND_UNIFORM = 18
    """Narrowband uniform."""
    WIDEBAND_UNIFORM = 19
    """Wideband uniform."""
    WIDEBAND_GAUSSIAN = 20
    """Wideband gaussian."""
    PULSED_SIGNAL = 21
    """Pulsed signal."""
    SCRIPT_PLUGIN = 22
    """Script plugin."""

DemodulatorModelType.UNKNOWN.__doc__ = "Unknown."
DemodulatorModelType.BPSK.__doc__ = "BPSK."
DemodulatorModelType.QPSK.__doc__ = "QPSK."
DemodulatorModelType.EXTERNAL_SOURCE.__doc__ = "External source."
DemodulatorModelType.EXTERNAL.__doc__ = "External."
DemodulatorModelType.QAM1024.__doc__ = "QAM 1024."
DemodulatorModelType.QAM128.__doc__ = "QAM 128."
DemodulatorModelType.QAM16.__doc__ = "QAM 16."
DemodulatorModelType.QAM256.__doc__ = "QAM 256."
DemodulatorModelType.QAM32.__doc__ = "QAM 32."
DemodulatorModelType.QAM64.__doc__ = "QAM 64."
DemodulatorModelType.TYPE8_PSK.__doc__ = "8PSK."
DemodulatorModelType.TYPE16_PSK.__doc__ = "16PSK."
DemodulatorModelType.MSK.__doc__ = "MSK."
DemodulatorModelType.BOC.__doc__ = "BOC."
DemodulatorModelType.DPSK.__doc__ = "DPSK."
DemodulatorModelType.FSK.__doc__ = "FSK."
DemodulatorModelType.NFSK.__doc__ = "NFSK."
DemodulatorModelType.OQPSK.__doc__ = "OQPSK."
DemodulatorModelType.NARROWBAND_UNIFORM.__doc__ = "Narrowband uniform."
DemodulatorModelType.WIDEBAND_UNIFORM.__doc__ = "Wideband uniform."
DemodulatorModelType.WIDEBAND_GAUSSIAN.__doc__ = "Wideband gaussian."
DemodulatorModelType.PULSED_SIGNAL.__doc__ = "Pulsed signal."
DemodulatorModelType.SCRIPT_PLUGIN.__doc__ = "Script plugin."

agcls.AgTypeNameMap["DemodulatorModelType"] = DemodulatorModelType

class RainLossModelType(IntEnum):
    """Rain loss model types."""

    UNKNOWN = -1
    """Unknown rain loss model type."""
    ITU_R_P618_10 = 0
    """ITU-R P618-10 rain loss model type."""
    CRANE1985 = 1
    """Crane 1985 rain loss model type."""
    CRANE1982 = 2
    """Crane 1982 rain loss model type."""
    CCIR1983 = 3
    """CCIR 1983 rain loss model type."""
    SCRIPT_PLUGIN = 4
    """Script plugin rain loss model type."""
    ITU_R_P618_12 = 5
    """ITU-R P618-12 rain loss model type."""
    ITU_R_P618_13 = 6
    """ITU-R P618-13 rain loss model type."""

RainLossModelType.UNKNOWN.__doc__ = "Unknown rain loss model type."
RainLossModelType.ITU_R_P618_10.__doc__ = "ITU-R P618-10 rain loss model type."
RainLossModelType.CRANE1985.__doc__ = "Crane 1985 rain loss model type."
RainLossModelType.CRANE1982.__doc__ = "Crane 1982 rain loss model type."
RainLossModelType.CCIR1983.__doc__ = "CCIR 1983 rain loss model type."
RainLossModelType.SCRIPT_PLUGIN.__doc__ = "Script plugin rain loss model type."
RainLossModelType.ITU_R_P618_12.__doc__ = "ITU-R P618-12 rain loss model type."
RainLossModelType.ITU_R_P618_13.__doc__ = "ITU-R P618-13 rain loss model type."

agcls.AgTypeNameMap["RainLossModelType"] = RainLossModelType

class AtmosphericAbsorptionModelType(IntEnum):
    """Atmospheric absorption model types."""

    UNKNOWN = -1
    """Unknown atmospheric absorption model type."""
    ITURP676_9 = 0
    """ITU-R P676-9 atmospheric absorption model type."""
    TIREM331 = 1
    """TIREM 3.31 atmospheric absorption model type."""
    TIREM320 = 2
    """TIREM 3.20 atmospheric absorption model type."""
    SIMPLE_SATCOM = 3
    """Simple Satcom atmospheric absorption model type."""
    SCRIPT_PLUGIN = 4
    """Script plugin atmospheric absorption model type."""
    TIREM550 = 5
    """TIREM 5.50 atmospheric absorption model type."""
    GRAPHICS_3D_ACAP = 6
    """Voacap atmospheric absorption model type."""
    COM_PLUGIN = 7
    """COM Plugin atmospheric absorption model type."""
    ITURP676_13 = 8
    """ITU-R P676-13 atmospheric absorption model type."""

AtmosphericAbsorptionModelType.UNKNOWN.__doc__ = "Unknown atmospheric absorption model type."
AtmosphericAbsorptionModelType.ITURP676_9.__doc__ = "ITU-R P676-9 atmospheric absorption model type."
AtmosphericAbsorptionModelType.TIREM331.__doc__ = "TIREM 3.31 atmospheric absorption model type."
AtmosphericAbsorptionModelType.TIREM320.__doc__ = "TIREM 3.20 atmospheric absorption model type."
AtmosphericAbsorptionModelType.SIMPLE_SATCOM.__doc__ = "Simple Satcom atmospheric absorption model type."
AtmosphericAbsorptionModelType.SCRIPT_PLUGIN.__doc__ = "Script plugin atmospheric absorption model type."
AtmosphericAbsorptionModelType.TIREM550.__doc__ = "TIREM 5.50 atmospheric absorption model type."
AtmosphericAbsorptionModelType.GRAPHICS_3D_ACAP.__doc__ = "Voacap atmospheric absorption model type."
AtmosphericAbsorptionModelType.COM_PLUGIN.__doc__ = "COM Plugin atmospheric absorption model type."
AtmosphericAbsorptionModelType.ITURP676_13.__doc__ = "ITU-R P676-13 atmospheric absorption model type."

agcls.AgTypeNameMap["AtmosphericAbsorptionModelType"] = AtmosphericAbsorptionModelType

class UrbanTerrestrialLossModelType(IntEnum):
    """urban/terrestrial loss model types."""

    UNKNOWN = -1
    """Unknown urban/terrestrial loss model type."""
    TWO_RAY = 0
    """urban/terrestrial loss model two ray type."""
    WIRELESS_INSITE_REAL_TIME = 1
    """urban/terrestrial loss model REMCOM Wireless InSite Real Time type."""
    WIRELESS_INSITE_64 = 2
    """urban/terrestrial loss model REMCOM Wireless InSite 64 type."""

UrbanTerrestrialLossModelType.UNKNOWN.__doc__ = "Unknown urban/terrestrial loss model type."
UrbanTerrestrialLossModelType.TWO_RAY.__doc__ = "urban/terrestrial loss model two ray type."
UrbanTerrestrialLossModelType.WIRELESS_INSITE_REAL_TIME.__doc__ = "urban/terrestrial loss model REMCOM Wireless InSite Real Time type."
UrbanTerrestrialLossModelType.WIRELESS_INSITE_64.__doc__ = "urban/terrestrial loss model REMCOM Wireless InSite 64 type."

agcls.AgTypeNameMap["UrbanTerrestrialLossModelType"] = UrbanTerrestrialLossModelType

class CloudsAndFogFadingLossModelType(IntEnum):
    """Clouds and Fog loss model types."""

    UNKNOWN = -1
    """Unknown Clouds and Fog loss model type."""
    P_840_6_TYPE = 0
    """Clouds and Fog loss model P. 840-6."""
    P_840_7_TYPE = 1
    """Clouds and Fog loss model P. 840-7."""

CloudsAndFogFadingLossModelType.UNKNOWN.__doc__ = "Unknown Clouds and Fog loss model type."
CloudsAndFogFadingLossModelType.P_840_6_TYPE.__doc__ = "Clouds and Fog loss model P. 840-6."
CloudsAndFogFadingLossModelType.P_840_7_TYPE.__doc__ = "Clouds and Fog loss model P. 840-7."

agcls.AgTypeNameMap["CloudsAndFogFadingLossModelType"] = CloudsAndFogFadingLossModelType

class CloudsAndFogLiquidWaterChoiceType(IntEnum):
    """Clouds and Fog loss model liquid water content choices."""

    UNKNOWN = -1
    """Unknown Clouds and Fog liquid water choice."""
    DENSITY_VALUE = 0
    """Clouds and Fog liquid water content density value."""
    ANNUAL_EXCEEDED = 1
    """Clouds and Fog liquid water % Annual exceeded."""
    MONTHLY_EXCEEDED = 2
    """Clouds and Fog liquid water % Monthly exceeded."""

CloudsAndFogLiquidWaterChoiceType.UNKNOWN.__doc__ = "Unknown Clouds and Fog liquid water choice."
CloudsAndFogLiquidWaterChoiceType.DENSITY_VALUE.__doc__ = "Clouds and Fog liquid water content density value."
CloudsAndFogLiquidWaterChoiceType.ANNUAL_EXCEEDED.__doc__ = "Clouds and Fog liquid water % Annual exceeded."
CloudsAndFogLiquidWaterChoiceType.MONTHLY_EXCEEDED.__doc__ = "Clouds and Fog liquid water % Monthly exceeded."

agcls.AgTypeNameMap["CloudsAndFogLiquidWaterChoiceType"] = CloudsAndFogLiquidWaterChoiceType

class IonosphericFadingLossModelType(IntEnum):
    """Ionospheric loss model types."""

    UNKNOWN = -1
    """Unknown Ionospheric loss model type."""
    P_531_13 = 1
    """Ionospheric loss model P. 531-13."""

IonosphericFadingLossModelType.UNKNOWN.__doc__ = "Unknown Ionospheric loss model type."
IonosphericFadingLossModelType.P_531_13.__doc__ = "Ionospheric loss model P. 531-13."

agcls.AgTypeNameMap["IonosphericFadingLossModelType"] = IonosphericFadingLossModelType

class TroposphericScintillationFadingLossModelType(IntEnum):
    """TropoScintillation loss model types."""

    UNKNOWN = -1
    """Unknown TropoScintillation loss model type."""
    P_618_8 = 0
    """TropoScintillation loss model P. 618-8."""
    P_618_12 = 1
    """TropoScintillation loss model P. 618-12."""

TroposphericScintillationFadingLossModelType.UNKNOWN.__doc__ = "Unknown TropoScintillation loss model type."
TroposphericScintillationFadingLossModelType.P_618_8.__doc__ = "TropoScintillation loss model P. 618-8."
TroposphericScintillationFadingLossModelType.P_618_12.__doc__ = "TropoScintillation loss model P. 618-12."

agcls.AgTypeNameMap["TroposphericScintillationFadingLossModelType"] = TroposphericScintillationFadingLossModelType

class TroposphericScintillationAverageTimeChoiceType(IntEnum):
    """TroposphericScintillation loss model average time choices."""

    UNKNOWN = -1
    """Unknown TropoScintillation average time choice."""
    YEAR = 0
    """TropoScintillation fade depth for average year."""
    WORST_MONTH = 1
    """TropoScintillation fade depth for average annual worst month."""

TroposphericScintillationAverageTimeChoiceType.UNKNOWN.__doc__ = "Unknown TropoScintillation average time choice."
TroposphericScintillationAverageTimeChoiceType.YEAR.__doc__ = "TropoScintillation fade depth for average year."
TroposphericScintillationAverageTimeChoiceType.WORST_MONTH.__doc__ = "TropoScintillation fade depth for average annual worst month."

agcls.AgTypeNameMap["TroposphericScintillationAverageTimeChoiceType"] = TroposphericScintillationAverageTimeChoiceType

class ProjectionHorizontalDatumType(IntEnum):
    """REMCOM Wireless InSite RT project/horizontal datum type."""

    WGS84_LATITUDE_LONGITUDE = 0
    """Lat/Lon WGS84."""
    WGS84_UTM = 1
    """UTM WGS94."""

ProjectionHorizontalDatumType.WGS84_LATITUDE_LONGITUDE.__doc__ = "Lat/Lon WGS84."
ProjectionHorizontalDatumType.WGS84_UTM.__doc__ = "UTM WGS94."

agcls.AgTypeNameMap["ProjectionHorizontalDatumType"] = ProjectionHorizontalDatumType

class BuildHeightReferenceMethod(IntEnum):
    """REMCOM Wireless InSite RT building height reference method."""

    HEIGHT_ABOVE_TERRAIN = 0
    """Height above terrain."""
    HEIGHT_ABOVE_SEA_LEVEL = 1
    """Height above sea level."""

BuildHeightReferenceMethod.HEIGHT_ABOVE_TERRAIN.__doc__ = "Height above terrain."
BuildHeightReferenceMethod.HEIGHT_ABOVE_SEA_LEVEL.__doc__ = "Height above sea level."

agcls.AgTypeNameMap["BuildHeightReferenceMethod"] = BuildHeightReferenceMethod

class BuildingHeightUnit(IntEnum):
    """REMCOM Wireless InSite RT building height unit."""

    FEET = 0
    """Feet."""
    METERS = 1
    """Meters."""

BuildingHeightUnit.FEET.__doc__ = "Feet."
BuildingHeightUnit.METERS.__doc__ = "Meters."

agcls.AgTypeNameMap["BuildingHeightUnit"] = BuildingHeightUnit

class TIREMPolarizationType(IntEnum):
    """TIREM polarization type."""

    VERTICAL = 0
    """V."""
    HORIZONTAL = 1
    """H."""

TIREMPolarizationType.VERTICAL.__doc__ = "V."
TIREMPolarizationType.HORIZONTAL.__doc__ = "H."

agcls.AgTypeNameMap["TIREMPolarizationType"] = TIREMPolarizationType

class Graphics3DACAPSolarActivityConfigurationType(IntEnum):
    """VOACAP solar activity configuration type."""

    UNKNOWN = -1
    """Unknown solar activity configuration type."""
    SUNSPOT_NUMBER = 0
    """SunspotNumber."""
    SOLAR_FLUX = 1
    """SolarFlux."""

Graphics3DACAPSolarActivityConfigurationType.UNKNOWN.__doc__ = "Unknown solar activity configuration type."
Graphics3DACAPSolarActivityConfigurationType.SUNSPOT_NUMBER.__doc__ = "SunspotNumber."
Graphics3DACAPSolarActivityConfigurationType.SOLAR_FLUX.__doc__ = "SolarFlux."

agcls.AgTypeNameMap["Graphics3DACAPSolarActivityConfigurationType"] = Graphics3DACAPSolarActivityConfigurationType

class Graphics3DACAPCoefficientDataType(IntEnum):
    """VOACAP coefficient data type."""

    CCIR = 0
    """CCIR."""
    URSI = 1
    """URSI."""

Graphics3DACAPCoefficientDataType.CCIR.__doc__ = "CCIR."
Graphics3DACAPCoefficientDataType.URSI.__doc__ = "URSI."

agcls.AgTypeNameMap["Graphics3DACAPCoefficientDataType"] = Graphics3DACAPCoefficientDataType

class LaserPropagationLossModelType(IntEnum):
    """Laser propagation loss model types."""

    UNKNOWN = -1
    """Unknown laser propagation loss model type."""
    BEER_BOUGUER_LAMBERT_LAW = 0
    """Beer-Bouguer-Lambert law laser propagation loss model type."""
    MODTRAN_LOOKUP_TABLE = 1
    """MODTRAN lookup table laser propagation model type."""
    MODTRAN = 2
    """MODTRAN propagation model type."""

LaserPropagationLossModelType.UNKNOWN.__doc__ = "Unknown laser propagation loss model type."
LaserPropagationLossModelType.BEER_BOUGUER_LAMBERT_LAW.__doc__ = "Beer-Bouguer-Lambert law laser propagation loss model type."
LaserPropagationLossModelType.MODTRAN_LOOKUP_TABLE.__doc__ = "MODTRAN lookup table laser propagation model type."
LaserPropagationLossModelType.MODTRAN.__doc__ = "MODTRAN propagation model type."

agcls.AgTypeNameMap["LaserPropagationLossModelType"] = LaserPropagationLossModelType

class LaserTroposphericScintillationLossModelType(IntEnum):
    """Laser tropospheric scintillation loss model types."""

    UNKNOWN = -1
    """Unknown laser tropospheric scintillation loss model type."""
    ITURP_1814 = 0
    """ITU-R P.1814 laser tropospheric scintillation loss model type."""

LaserTroposphericScintillationLossModelType.UNKNOWN.__doc__ = "Unknown laser tropospheric scintillation loss model type."
LaserTroposphericScintillationLossModelType.ITURP_1814.__doc__ = "ITU-R P.1814 laser tropospheric scintillation loss model type."

agcls.AgTypeNameMap["LaserTroposphericScintillationLossModelType"] = LaserTroposphericScintillationLossModelType

class AtmosphericTurbulenceModelType(IntEnum):
    """Refractive index structure parameter model types."""

    UNKNOWN = -1
    """Unknown atmospheric turbulence model type."""
    CONSTANT = 0
    """Constant atmospheric turbulence model type."""
    HUFNAGEL_VALLEY = 1
    """Hufnagel Valley atmospheric turbulence model type."""

AtmosphericTurbulenceModelType.UNKNOWN.__doc__ = "Unknown atmospheric turbulence model type."
AtmosphericTurbulenceModelType.CONSTANT.__doc__ = "Constant atmospheric turbulence model type."
AtmosphericTurbulenceModelType.HUFNAGEL_VALLEY.__doc__ = "Hufnagel Valley atmospheric turbulence model type."

agcls.AgTypeNameMap["AtmosphericTurbulenceModelType"] = AtmosphericTurbulenceModelType

class ModtranAerosolModelType(IntEnum):
    """MODTRAN-derived lookup table aerosol model extinction types."""

    RURAL_HIGH_VISIBILITY = 1
    """Rural High Visibility."""
    RURAL_LOW_VISIBILITY = 2
    """Rural Low Visibility."""
    NAVY_MARITIME = 3
    """Navy Maritime."""
    MARITIME = 4
    """Maritime."""
    URBAN = 5
    """Urban."""
    TROPOSPHERIC = 6
    """Tropospheric."""
    FOG_LOW_VISIBILITY = 8
    """Fog Low Visibility."""
    FOG_HIGH_VISIBILITY = 9
    """Fog High Visibility."""
    DESERT = 10
    """Desert."""

ModtranAerosolModelType.RURAL_HIGH_VISIBILITY.__doc__ = "Rural High Visibility."
ModtranAerosolModelType.RURAL_LOW_VISIBILITY.__doc__ = "Rural Low Visibility."
ModtranAerosolModelType.NAVY_MARITIME.__doc__ = "Navy Maritime."
ModtranAerosolModelType.MARITIME.__doc__ = "Maritime."
ModtranAerosolModelType.URBAN.__doc__ = "Urban."
ModtranAerosolModelType.TROPOSPHERIC.__doc__ = "Tropospheric."
ModtranAerosolModelType.FOG_LOW_VISIBILITY.__doc__ = "Fog Low Visibility."
ModtranAerosolModelType.FOG_HIGH_VISIBILITY.__doc__ = "Fog High Visibility."
ModtranAerosolModelType.DESERT.__doc__ = "Desert."

agcls.AgTypeNameMap["ModtranAerosolModelType"] = ModtranAerosolModelType

class ModtranCloudModelType(IntEnum):
    """MODTRAN Cloud model types."""

    NONE = 0
    """None."""
    CUMULUS = 1
    """Cumulus."""
    ALTOSTRATUS = 2
    """Altostratus."""
    STRATUS = 3
    """Stratus."""
    STRATOCUMULUS = 4
    """Stratocumulus."""
    NIMBOSTRATUS = 5
    """Nimbostratus."""
    RAIN_DRIZZLE = 6
    """Rain Drizzle."""
    RAIN_LIGHT = 7
    """Rain Light."""
    RAIN_MODERATE = 8
    """Rain Moderate."""
    RAIN_EXTREME = 9
    """Rain Extreme."""
    CIRRUS = 18
    """Cirrus."""
    CIRRUS_THIN = 19
    """Cirrus Thin."""

ModtranCloudModelType.NONE.__doc__ = "None."
ModtranCloudModelType.CUMULUS.__doc__ = "Cumulus."
ModtranCloudModelType.ALTOSTRATUS.__doc__ = "Altostratus."
ModtranCloudModelType.STRATUS.__doc__ = "Stratus."
ModtranCloudModelType.STRATOCUMULUS.__doc__ = "Stratocumulus."
ModtranCloudModelType.NIMBOSTRATUS.__doc__ = "Nimbostratus."
ModtranCloudModelType.RAIN_DRIZZLE.__doc__ = "Rain Drizzle."
ModtranCloudModelType.RAIN_LIGHT.__doc__ = "Rain Light."
ModtranCloudModelType.RAIN_MODERATE.__doc__ = "Rain Moderate."
ModtranCloudModelType.RAIN_EXTREME.__doc__ = "Rain Extreme."
ModtranCloudModelType.CIRRUS.__doc__ = "Cirrus."
ModtranCloudModelType.CIRRUS_THIN.__doc__ = "Cirrus Thin."

agcls.AgTypeNameMap["ModtranCloudModelType"] = ModtranCloudModelType

class CommSystemReferenceBandwidth(IntEnum):
    """CommSystem reference bandwidth."""

    BANDWIDTH_1_HZ = 0
    """1 Hz."""
    BANDWIDTH_4_KHZ = 1
    """4 kHz."""
    BANDWIDTH_40_KHZ = 2
    """40 kHz."""
    BANDWIDTH_1_MHZ = 3
    """1 MHz."""
    BANDWIDTH_10_MHZ = 4
    """10 MHz."""
    BANDWIDTH_20_MHZ = 5
    """20 MHz."""
    BANDWIDTH_40_MHZ = 6
    """40 MHz."""

CommSystemReferenceBandwidth.BANDWIDTH_1_HZ.__doc__ = "1 Hz."
CommSystemReferenceBandwidth.BANDWIDTH_4_KHZ.__doc__ = "4 kHz."
CommSystemReferenceBandwidth.BANDWIDTH_40_KHZ.__doc__ = "40 kHz."
CommSystemReferenceBandwidth.BANDWIDTH_1_MHZ.__doc__ = "1 MHz."
CommSystemReferenceBandwidth.BANDWIDTH_10_MHZ.__doc__ = "10 MHz."
CommSystemReferenceBandwidth.BANDWIDTH_20_MHZ.__doc__ = "20 MHz."
CommSystemReferenceBandwidth.BANDWIDTH_40_MHZ.__doc__ = "40 MHz."

agcls.AgTypeNameMap["CommSystemReferenceBandwidth"] = CommSystemReferenceBandwidth

class CommSystemConstrainingRole(IntEnum):
    """CommSystem constraining role."""

    TRANSMIT = 0
    """Transmit."""
    RECEIVE = 1
    """Receive."""

CommSystemConstrainingRole.TRANSMIT.__doc__ = "Transmit."
CommSystemConstrainingRole.RECEIVE.__doc__ = "Receive."

agcls.AgTypeNameMap["CommSystemConstrainingRole"] = CommSystemConstrainingRole

class CommSystemSaveMode(IntEnum):
    """CommSystem save mode."""

    DO_NOT_SAVE_COMPUTED_DATA = 0
    """Don't save compute data."""
    COMPUTE_DATA_ON_LOAD = 1
    """Don't save, but compute on load."""
    SAVE_COMPUTED_DATA = 2
    """Save compute data."""

CommSystemSaveMode.DO_NOT_SAVE_COMPUTED_DATA.__doc__ = "Don't save compute data."
CommSystemSaveMode.COMPUTE_DATA_ON_LOAD.__doc__ = "Don't save, but compute on load."
CommSystemSaveMode.SAVE_COMPUTED_DATA.__doc__ = "Save compute data."

agcls.AgTypeNameMap["CommSystemSaveMode"] = CommSystemSaveMode

class CommSystemAccessEventDetectionType(IntEnum):
    """CommSystem access options event detection type."""

    UNKNOWN = -1
    """Unknown."""
    SUB_SAMPLE = 0
    """Sub-sample."""
    SAMPLES_ONLY = 1
    """No sub-sample."""

CommSystemAccessEventDetectionType.UNKNOWN.__doc__ = "Unknown."
CommSystemAccessEventDetectionType.SUB_SAMPLE.__doc__ = "Sub-sample."
CommSystemAccessEventDetectionType.SAMPLES_ONLY.__doc__ = "No sub-sample."

agcls.AgTypeNameMap["CommSystemAccessEventDetectionType"] = CommSystemAccessEventDetectionType

class CommSystemAccessSamplingMethodType(IntEnum):
    """CommSystem access options sampling method type."""

    UNKNOWN = -1
    """Unknown."""
    FIXED = 0
    """Fixed."""
    ADAPTIVE = 1
    """Adaptive."""

CommSystemAccessSamplingMethodType.UNKNOWN.__doc__ = "Unknown."
CommSystemAccessSamplingMethodType.FIXED.__doc__ = "Fixed."
CommSystemAccessSamplingMethodType.ADAPTIVE.__doc__ = "Adaptive."

agcls.AgTypeNameMap["CommSystemAccessSamplingMethodType"] = CommSystemAccessSamplingMethodType

class CommSystemLinkSelectionCriteriaType(IntEnum):
    """Link selection strategy types."""

    UNKNOWN = -1
    """Unknown."""
    MINIMUM_RANGE = 0
    """Minimum range."""
    MAXIMUM_ELEVATION = 1
    """Maximum elevation."""
    SCRIPT_PLUGIN = 2
    """Script plugin."""

CommSystemLinkSelectionCriteriaType.UNKNOWN.__doc__ = "Unknown."
CommSystemLinkSelectionCriteriaType.MINIMUM_RANGE.__doc__ = "Minimum range."
CommSystemLinkSelectionCriteriaType.MAXIMUM_ELEVATION.__doc__ = "Maximum elevation."
CommSystemLinkSelectionCriteriaType.SCRIPT_PLUGIN.__doc__ = "Script plugin."

agcls.AgTypeNameMap["CommSystemLinkSelectionCriteriaType"] = CommSystemLinkSelectionCriteriaType

class SpaceEnvironmentNasaModelsActivity(IntEnum):
    """Activity level for the NASA models NASAELE and NASAPRO."""

    UNKNOWN = -1
    """An invalid SpaceEnvironmentNasaModelsActivity value."""
    SOLAR_MINIMUM = 0
    """Set the NASA models to use values appropriate for the minimum of the solar cycle."""
    SOLAR_MAXIMUM = 1
    """Set the NASA models to use values appropriate for the maximum of the solar cycle."""

SpaceEnvironmentNasaModelsActivity.UNKNOWN.__doc__ = "An invalid SpaceEnvironmentNasaModelsActivity value."
SpaceEnvironmentNasaModelsActivity.SOLAR_MINIMUM.__doc__ = "Set the NASA models to use values appropriate for the minimum of the solar cycle."
SpaceEnvironmentNasaModelsActivity.SOLAR_MAXIMUM.__doc__ = "Set the NASA models to use values appropriate for the maximum of the solar cycle."

agcls.AgTypeNameMap["SpaceEnvironmentNasaModelsActivity"] = SpaceEnvironmentNasaModelsActivity

class SpaceEnvironmentCrresProtonActivity(IntEnum):
    """Activity level for CRRESPRO model."""

    UNKNOWN = -1
    """An invalid SpaceEnvironmentCrresProtonActivity value."""
    ACTIVE = 0
    """Models an enhanced geomagnetic flux environment."""
    QUIET = 1
    """Models a quiet geomagnetic flux environment."""

SpaceEnvironmentCrresProtonActivity.UNKNOWN.__doc__ = "An invalid SpaceEnvironmentCrresProtonActivity value."
SpaceEnvironmentCrresProtonActivity.ACTIVE.__doc__ = "Models an enhanced geomagnetic flux environment."
SpaceEnvironmentCrresProtonActivity.QUIET.__doc__ = "Models a quiet geomagnetic flux environment."

agcls.AgTypeNameMap["SpaceEnvironmentCrresProtonActivity"] = SpaceEnvironmentCrresProtonActivity

class SpaceEnvironmentCrresRadiationActivity(IntEnum):
    """Activity level for CRRESRAD model."""

    UNKNOWN = -1
    """An invalid SpaceEnvironmentCrresProtonActivity value."""
    ACTIVE = 0
    """Models an enhanced geomagnetic flux environment."""
    AVERAGE = 1
    """Models an average geomagnetic flux environment."""
    QUIET = 2
    """Models a quiet geomagnetic flux environment."""

SpaceEnvironmentCrresRadiationActivity.UNKNOWN.__doc__ = "An invalid SpaceEnvironmentCrresProtonActivity value."
SpaceEnvironmentCrresRadiationActivity.ACTIVE.__doc__ = "Models an enhanced geomagnetic flux environment."
SpaceEnvironmentCrresRadiationActivity.AVERAGE.__doc__ = "Models an average geomagnetic flux environment."
SpaceEnvironmentCrresRadiationActivity.QUIET.__doc__ = "Models a quiet geomagnetic flux environment."

agcls.AgTypeNameMap["SpaceEnvironmentCrresRadiationActivity"] = SpaceEnvironmentCrresRadiationActivity

class SpaceEnvironmentMagneticFieldColorMode(IntEnum):
    """Mode by which color is assigned."""

    UNKNOWN = -1
    """An invalid SpaceEnvironmentMagneticFieldColorMode value."""
    FIELD_MAGNITUDE = 0
    """Color field lines according to the magnitude of the magnetic field."""
    LATITUDE_LINE = 1
    """Color field lines according to the originating latitude of the field line."""

SpaceEnvironmentMagneticFieldColorMode.UNKNOWN.__doc__ = "An invalid SpaceEnvironmentMagneticFieldColorMode value."
SpaceEnvironmentMagneticFieldColorMode.FIELD_MAGNITUDE.__doc__ = "Color field lines according to the magnitude of the magnetic field."
SpaceEnvironmentMagneticFieldColorMode.LATITUDE_LINE.__doc__ = "Color field lines according to the originating latitude of the field line."

agcls.AgTypeNameMap["SpaceEnvironmentMagneticFieldColorMode"] = SpaceEnvironmentMagneticFieldColorMode

class SpaceEnvironmentMagneticFieldColorScaleType(IntEnum):
    """Scaling of magnetic field to use when assigning color/translucency."""

    UNKNOWN = -1
    """An invalid SpaceEnvironmentMagneticFieldColorScaleType value."""
    LINEAR = 0
    """Assign colors based upon a linear scaling from minimum to maximum value."""
    LOG = 1
    """Assign colors based upon a linear scaling from log10(minimum) to log10(maximum) value. Ignores 0.0 values."""

SpaceEnvironmentMagneticFieldColorScaleType.UNKNOWN.__doc__ = "An invalid SpaceEnvironmentMagneticFieldColorScaleType value."
SpaceEnvironmentMagneticFieldColorScaleType.LINEAR.__doc__ = "Assign colors based upon a linear scaling from minimum to maximum value."
SpaceEnvironmentMagneticFieldColorScaleType.LOG.__doc__ = "Assign colors based upon a linear scaling from log10(minimum) to log10(maximum) value. Ignores 0.0 values."

agcls.AgTypeNameMap["SpaceEnvironmentMagneticFieldColorScaleType"] = SpaceEnvironmentMagneticFieldColorScaleType

class SpaceEnvironmentMagneticMainField(IntEnum):
    """Main magnetic field."""

    UNKNOWN = -1
    """An invalid SpaceEnvironmentMagneticMainField value."""
    IGRF = 1
    """Models the main geomagnetic field using the IGRF model."""
    OFFSET_DIPOLE = 2
    """Models the main geomagnetic field using a dipole offset from the Earth center."""
    FAST_IGRF = 3
    """Models the main geomagnetic field using the Fast IGRF model."""
    TILTED_DIPOLE = 4
    """Models the main geomagnetic field using a tilted dipole centered at the Earth center."""

SpaceEnvironmentMagneticMainField.UNKNOWN.__doc__ = "An invalid SpaceEnvironmentMagneticMainField value."
SpaceEnvironmentMagneticMainField.IGRF.__doc__ = "Models the main geomagnetic field using the IGRF model."
SpaceEnvironmentMagneticMainField.OFFSET_DIPOLE.__doc__ = "Models the main geomagnetic field using a dipole offset from the Earth center."
SpaceEnvironmentMagneticMainField.FAST_IGRF.__doc__ = "Models the main geomagnetic field using the Fast IGRF model."
SpaceEnvironmentMagneticMainField.TILTED_DIPOLE.__doc__ = "Models the main geomagnetic field using a tilted dipole centered at the Earth center."

agcls.AgTypeNameMap["SpaceEnvironmentMagneticMainField"] = SpaceEnvironmentMagneticMainField

class SpaceEnvironmentMagneticExternalField(IntEnum):
    """External magnetic field."""

    UNKNOWN = -1
    """An invalid SpaceEnvironmentMagneticExternalField value."""
    NONE = 0
    """Indicate that no external field is modeled."""
    OLSON_PFITZER = 1
    """Models the Olson-Pfitzer external field."""

SpaceEnvironmentMagneticExternalField.UNKNOWN.__doc__ = "An invalid SpaceEnvironmentMagneticExternalField value."
SpaceEnvironmentMagneticExternalField.NONE.__doc__ = "Indicate that no external field is modeled."
SpaceEnvironmentMagneticExternalField.OLSON_PFITZER.__doc__ = "Models the Olson-Pfitzer external field."

agcls.AgTypeNameMap["SpaceEnvironmentMagneticExternalField"] = SpaceEnvironmentMagneticExternalField

class SpaceEnvironmentSAAChannel(IntEnum):
    """Energy level for SAA protons."""

    UNKNOWN = -1
    """An invalid SpaceEnvironmentSAAChannel value."""
    CHANNEL_23_MEV = 0
    """Models proton energies > 23 MeV."""
    CHANNEL_38_MEV = 1
    """Models proton energies > 38 MeV."""
    CHANNEL_66_MEV = 2
    """Models proton energies > 66 MeV."""
    CHANNEL_94_MEV = 3
    """Models proton energies > 94 MeV."""

SpaceEnvironmentSAAChannel.UNKNOWN.__doc__ = "An invalid SpaceEnvironmentSAAChannel value."
SpaceEnvironmentSAAChannel.CHANNEL_23_MEV.__doc__ = "Models proton energies > 23 MeV."
SpaceEnvironmentSAAChannel.CHANNEL_38_MEV.__doc__ = "Models proton energies > 38 MeV."
SpaceEnvironmentSAAChannel.CHANNEL_66_MEV.__doc__ = "Models proton energies > 66 MeV."
SpaceEnvironmentSAAChannel.CHANNEL_94_MEV.__doc__ = "Models proton energies > 94 MeV."

agcls.AgTypeNameMap["SpaceEnvironmentSAAChannel"] = SpaceEnvironmentSAAChannel

class SpaceEnvironmentSAAFluxLevel(IntEnum):
    """Flux level for SAA contour."""

    UNKNOWN = -1
    """An invalid SpaceEnvironmentSAAFluxLevel value."""
    GREATER_THAN_BACKGROUND_BY_3_SIGMA = 0
    """Represents flux values greater than the background environment by 3 sigma."""
    HALF_OF_PEAK = 1
    """Represents flux values of about half the peak flux value at the given altitude."""
    TENTH_OF_PEAK = 2
    """Represents flux values of about one-tenth the peak flux value at the given altitude."""

SpaceEnvironmentSAAFluxLevel.UNKNOWN.__doc__ = "An invalid SpaceEnvironmentSAAFluxLevel value."
SpaceEnvironmentSAAFluxLevel.GREATER_THAN_BACKGROUND_BY_3_SIGMA.__doc__ = "Represents flux values greater than the background environment by 3 sigma."
SpaceEnvironmentSAAFluxLevel.HALF_OF_PEAK.__doc__ = "Represents flux values of about half the peak flux value at the given altitude."
SpaceEnvironmentSAAFluxLevel.TENTH_OF_PEAK.__doc__ = "Represents flux values of about one-tenth the peak flux value at the given altitude."

agcls.AgTypeNameMap["SpaceEnvironmentSAAFluxLevel"] = SpaceEnvironmentSAAFluxLevel

class VehicleSpaceEnvironmentShapeModel(IntEnum):
    """Thermal shape model."""

    UNKNOWN = -1
    """An invalid VehicleSpaceEnvironmentShapeModel value."""
    PLATE = 0
    """Models the thermal properties of the vehicle using a plate."""
    SPHERE = 1
    """Models the thermal properties of the vehicle using a sphere."""

VehicleSpaceEnvironmentShapeModel.UNKNOWN.__doc__ = "An invalid VehicleSpaceEnvironmentShapeModel value."
VehicleSpaceEnvironmentShapeModel.PLATE.__doc__ = "Models the thermal properties of the vehicle using a plate."
VehicleSpaceEnvironmentShapeModel.SPHERE.__doc__ = "Models the thermal properties of the vehicle using a sphere."

agcls.AgTypeNameMap["VehicleSpaceEnvironmentShapeModel"] = VehicleSpaceEnvironmentShapeModel

class VehicleSpaceEnvironmentF10P7SourceType(IntEnum):
    """Mode for computing 13-month average F10.7."""

    UNKNOWN = -1
    """An invalid VehicleSpaceEnvironmentF10P7SourceType value."""
    FILE = 0
    """Set the F10.7 flux source to use a flux file."""
    SPECIFY = 1
    """Set the F10.7 flux source to be a static value."""

VehicleSpaceEnvironmentF10P7SourceType.UNKNOWN.__doc__ = "An invalid VehicleSpaceEnvironmentF10P7SourceType value."
VehicleSpaceEnvironmentF10P7SourceType.FILE.__doc__ = "Set the F10.7 flux source to use a flux file."
VehicleSpaceEnvironmentF10P7SourceType.SPECIFY.__doc__ = "Set the F10.7 flux source to be a static value."

agcls.AgTypeNameMap["VehicleSpaceEnvironmentF10P7SourceType"] = VehicleSpaceEnvironmentF10P7SourceType

class VehicleSpaceEnvironmentMaterial(IntEnum):
    """Material."""

    UNKNOWN = -1
    """An invalid VehicleSpaceEnvironmentMaterial value."""
    ALUMINUM = 0
    """Uses aluminum for particle impact computations."""
    BERYLIUM_COPPER = 1
    """Uses berylium copper for particle impact computations."""
    COPPER = 2
    """Usescopper for particle impact computations."""
    GLASS = 3
    """Uses glass for particle impact computations."""
    GOLD = 4
    """Uses gold for particle impact computations."""
    IRON = 5
    """Uses iron for particle impact computations."""
    MYLAR = 6
    """Uses mylar for particle impact computations."""
    PLATINUM = 7
    """Uses platinum for particle impact computations."""
    SILVER = 8
    """Uses silver for particle impact computations."""
    STAINLESS_STEEL = 9
    """Uses stainless steel for particle impact computations."""
    TITANIUM = 10
    """Uses titanium for particle impact computations."""
    USER_DEFINED = 11
    """Uses a user-defined material for particle impact computations. Must specify density and tensile strength."""

VehicleSpaceEnvironmentMaterial.UNKNOWN.__doc__ = "An invalid VehicleSpaceEnvironmentMaterial value."
VehicleSpaceEnvironmentMaterial.ALUMINUM.__doc__ = "Uses aluminum for particle impact computations."
VehicleSpaceEnvironmentMaterial.BERYLIUM_COPPER.__doc__ = "Uses berylium copper for particle impact computations."
VehicleSpaceEnvironmentMaterial.COPPER.__doc__ = "Usescopper for particle impact computations."
VehicleSpaceEnvironmentMaterial.GLASS.__doc__ = "Uses glass for particle impact computations."
VehicleSpaceEnvironmentMaterial.GOLD.__doc__ = "Uses gold for particle impact computations."
VehicleSpaceEnvironmentMaterial.IRON.__doc__ = "Uses iron for particle impact computations."
VehicleSpaceEnvironmentMaterial.MYLAR.__doc__ = "Uses mylar for particle impact computations."
VehicleSpaceEnvironmentMaterial.PLATINUM.__doc__ = "Uses platinum for particle impact computations."
VehicleSpaceEnvironmentMaterial.SILVER.__doc__ = "Uses silver for particle impact computations."
VehicleSpaceEnvironmentMaterial.STAINLESS_STEEL.__doc__ = "Uses stainless steel for particle impact computations."
VehicleSpaceEnvironmentMaterial.TITANIUM.__doc__ = "Uses titanium for particle impact computations."
VehicleSpaceEnvironmentMaterial.USER_DEFINED.__doc__ = "Uses a user-defined material for particle impact computations. Must specify density and tensile strength."

agcls.AgTypeNameMap["VehicleSpaceEnvironmentMaterial"] = VehicleSpaceEnvironmentMaterial

class VehicleSpaceEnvironmentComputationMode(IntEnum):
    """Models that are to be included when modeling radiation."""

    UNKNOWN = -1
    """An invalid VehicleSpaceEnvironmentComputationMode value."""
    NASA = 0
    """Uses only NASAELE and NASAPRO models."""
    CRRES = 1
    """Uses only CRRESELE and CRRESPRO models."""
    RADIATION_ONLY = 2
    """Uses only APEXRAD and CRRESRAD models."""
    APEXRAD = 3
    """Uses only the APEXRAD model."""
    CRRESRAD = 4
    """Uses only the CRRESRAD model."""

VehicleSpaceEnvironmentComputationMode.UNKNOWN.__doc__ = "An invalid VehicleSpaceEnvironmentComputationMode value."
VehicleSpaceEnvironmentComputationMode.NASA.__doc__ = "Uses only NASAELE and NASAPRO models."
VehicleSpaceEnvironmentComputationMode.CRRES.__doc__ = "Uses only CRRESELE and CRRESPRO models."
VehicleSpaceEnvironmentComputationMode.RADIATION_ONLY.__doc__ = "Uses only APEXRAD and CRRESRAD models."
VehicleSpaceEnvironmentComputationMode.APEXRAD.__doc__ = "Uses only the APEXRAD model."
VehicleSpaceEnvironmentComputationMode.CRRESRAD.__doc__ = "Uses only the CRRESRAD model."

agcls.AgTypeNameMap["VehicleSpaceEnvironmentComputationMode"] = VehicleSpaceEnvironmentComputationMode

class VehicleSpaceEnvironmentDoseChannel(IntEnum):
    """Dose channel."""

    UNKNOWN = -1
    """An invalid VehicleSpaceEnvironmentDoseChannel value."""
    HIGH_LINEAR_ENERGY_TRANSPORT = 0
    """Characterizes high linear energy transport."""
    LOW_LINEAR_ENERGY_TRANSPORT = 1
    """Characterizes low linear energy transport."""
    TOTAL = 2
    """Considers all linear energy transport."""

VehicleSpaceEnvironmentDoseChannel.UNKNOWN.__doc__ = "An invalid VehicleSpaceEnvironmentDoseChannel value."
VehicleSpaceEnvironmentDoseChannel.HIGH_LINEAR_ENERGY_TRANSPORT.__doc__ = "Characterizes high linear energy transport."
VehicleSpaceEnvironmentDoseChannel.LOW_LINEAR_ENERGY_TRANSPORT.__doc__ = "Characterizes low linear energy transport."
VehicleSpaceEnvironmentDoseChannel.TOTAL.__doc__ = "Considers all linear energy transport."

agcls.AgTypeNameMap["VehicleSpaceEnvironmentDoseChannel"] = VehicleSpaceEnvironmentDoseChannel

class VehicleSpaceEnvironmentDetectorGeometry(IntEnum):
    """Detector geometry."""

    UNKNOWN = -1
    """An invalid VehicleSpaceEnvironmentDetectorGeometry value."""
    SEMI_INFINITE_SLAB = 0
    """Uses semi-infinite slab model."""
    FINITE_SLAB = 1
    """Uses finite slab model."""
    SPHERICAL = 2
    """Uses spherical model."""

VehicleSpaceEnvironmentDetectorGeometry.UNKNOWN.__doc__ = "An invalid VehicleSpaceEnvironmentDetectorGeometry value."
VehicleSpaceEnvironmentDetectorGeometry.SEMI_INFINITE_SLAB.__doc__ = "Uses semi-infinite slab model."
VehicleSpaceEnvironmentDetectorGeometry.FINITE_SLAB.__doc__ = "Uses finite slab model."
VehicleSpaceEnvironmentDetectorGeometry.SPHERICAL.__doc__ = "Uses spherical model."

agcls.AgTypeNameMap["VehicleSpaceEnvironmentDetectorGeometry"] = VehicleSpaceEnvironmentDetectorGeometry

class VehicleSpaceEnvironmentDetectorType(IntEnum):
    """Detector material."""

    UNKNOWN = -1
    """An invalid VehicleSpaceEnvironmentDetectorType value."""
    AIR = 0
    """Uses air as the shielding material for radiation dose computations."""
    ALUMINUM = 1
    """Uses aluminum as the shielding material for radiation dose computations."""
    BONE = 2
    """Uses bone as the shielding material for radiation dose computations."""
    CALCIUM = 3
    """Uses calcium as the shielding material for radiation dose computations."""
    GALLIUM = 4
    """Uses gallium as the shielding material for radiation dose computations."""
    GRAPHITE = 5
    """Uses graphite as the shielding material for radiation dose computations."""
    LITHIUM = 6
    """Uses lithium as the shielding material for radiation dose computations."""
    SILICON = 7
    """Uses silicon as the shielding material for radiation dose computations."""
    SILICON_DIOXIDE = 8
    """Uses silicon dioxide as the shielding material for radiation dose computations."""
    TISSUE = 9
    """Uses tissue as the shielding material for radiation dose computations."""
    WATER = 10
    """Uses water as the shielding material for radiation dose computations."""

VehicleSpaceEnvironmentDetectorType.UNKNOWN.__doc__ = "An invalid VehicleSpaceEnvironmentDetectorType value."
VehicleSpaceEnvironmentDetectorType.AIR.__doc__ = "Uses air as the shielding material for radiation dose computations."
VehicleSpaceEnvironmentDetectorType.ALUMINUM.__doc__ = "Uses aluminum as the shielding material for radiation dose computations."
VehicleSpaceEnvironmentDetectorType.BONE.__doc__ = "Uses bone as the shielding material for radiation dose computations."
VehicleSpaceEnvironmentDetectorType.CALCIUM.__doc__ = "Uses calcium as the shielding material for radiation dose computations."
VehicleSpaceEnvironmentDetectorType.GALLIUM.__doc__ = "Uses gallium as the shielding material for radiation dose computations."
VehicleSpaceEnvironmentDetectorType.GRAPHITE.__doc__ = "Uses graphite as the shielding material for radiation dose computations."
VehicleSpaceEnvironmentDetectorType.LITHIUM.__doc__ = "Uses lithium as the shielding material for radiation dose computations."
VehicleSpaceEnvironmentDetectorType.SILICON.__doc__ = "Uses silicon as the shielding material for radiation dose computations."
VehicleSpaceEnvironmentDetectorType.SILICON_DIOXIDE.__doc__ = "Uses silicon dioxide as the shielding material for radiation dose computations."
VehicleSpaceEnvironmentDetectorType.TISSUE.__doc__ = "Uses tissue as the shielding material for radiation dose computations."
VehicleSpaceEnvironmentDetectorType.WATER.__doc__ = "Uses water as the shielding material for radiation dose computations."

agcls.AgTypeNameMap["VehicleSpaceEnvironmentDetectorType"] = VehicleSpaceEnvironmentDetectorType

class VehicleSpaceEnvironmentApSource(IntEnum):
    """Mode for computing 15 day average Ap."""

    UNKNOWN = -1
    """An invalid VehicleSpaceEnvironmentApSource value."""
    FILE = 0
    """Set the Ap flux source to use a flux file."""
    SPECIFY = 1
    """Set the Ap flux source to be a static value."""

VehicleSpaceEnvironmentApSource.UNKNOWN.__doc__ = "An invalid VehicleSpaceEnvironmentApSource value."
VehicleSpaceEnvironmentApSource.FILE.__doc__ = "Set the Ap flux source to use a flux file."
VehicleSpaceEnvironmentApSource.SPECIFY.__doc__ = "Set the Ap flux source to be a static value."

agcls.AgTypeNameMap["VehicleSpaceEnvironmentApSource"] = VehicleSpaceEnvironmentApSource

class NotificationFilterMask(IntFlag):
    """The notification flags are used to enable/disable STK Object Model event notifications."""

    NO_EVENTS = 0x0000
    """Disable all events."""
    ANIMATION_EVENTS = 0x0001
    """Clients are notified upon occurrence of any of the available animation events. Animation events include OnAnimUpdate, OnAnimationRewind, etc."""
    SCENARIO_EVENTS = 0x0002
    """Clients are notified upon occurrence of any of the available scenario events. Scenario events include OnScenarioNew, OnScenarioLoad, OnScenarioBeforeClose, OnScenarioClose, etc."""
    LOGGING_EVENTS = 0x0004
    """Clients are notified upon occurrence of OnLogMessage event."""
    OBJECT_EVENTS = 0x0008
    """Clients are notified upon occurrence of an event affecting the object hierarchy (OnStkObjectAdded, OnStkObjectDeleted and OnStkObjectPreDelete)."""
    OBJECT_CHANGED_EVENTS = 0x0010
    """Clients are notified upon occurrence of OnStkObjectChanged event."""
    PERCENT_COMPLETE_EVENTS = 0x0020
    """Clients are notified upon occurrence of any of the available percent complete events (OnPercentComplete*)."""
    OBJECT_RENAME_EVENTS = 0x0040
    """Clients are notified upon occurrence of an STK object renaming event."""
    ENABLE_ALL_EVENTS = 0xFFFF
    """Enable all events."""
    STK_OBJECT_3D_EDITING_EVENTS = 0x0080
    """Clients are notified upon occurrence of any of the available object editing events. Object editing events include OnStkObjectStart3dEditing, OnStkObjectStop3dEditing, OnStkObjectApply3dEditing, OnStkObjectCancel3dEditing etc."""
    STK_OBJECT_CUT_COPY_PASTE_EVENTS = 0x0100
    """Clients are notified upon occurrence of any of the available STK object Cut, Copy and Paste events."""

NotificationFilterMask.NO_EVENTS.__doc__ = "Disable all events."
NotificationFilterMask.ANIMATION_EVENTS.__doc__ = "Clients are notified upon occurrence of any of the available animation events. Animation events include OnAnimUpdate, OnAnimationRewind, etc."
NotificationFilterMask.SCENARIO_EVENTS.__doc__ = "Clients are notified upon occurrence of any of the available scenario events. Scenario events include OnScenarioNew, OnScenarioLoad, OnScenarioBeforeClose, OnScenarioClose, etc."
NotificationFilterMask.LOGGING_EVENTS.__doc__ = "Clients are notified upon occurrence of OnLogMessage event."
NotificationFilterMask.OBJECT_EVENTS.__doc__ = "Clients are notified upon occurrence of an event affecting the object hierarchy (OnStkObjectAdded, OnStkObjectDeleted and OnStkObjectPreDelete)."
NotificationFilterMask.OBJECT_CHANGED_EVENTS.__doc__ = "Clients are notified upon occurrence of OnStkObjectChanged event."
NotificationFilterMask.PERCENT_COMPLETE_EVENTS.__doc__ = "Clients are notified upon occurrence of any of the available percent complete events (OnPercentComplete*)."
NotificationFilterMask.OBJECT_RENAME_EVENTS.__doc__ = "Clients are notified upon occurrence of an STK object renaming event."
NotificationFilterMask.ENABLE_ALL_EVENTS.__doc__ = "Enable all events."
NotificationFilterMask.STK_OBJECT_3D_EDITING_EVENTS.__doc__ = "Clients are notified upon occurrence of any of the available object editing events. Object editing events include OnStkObjectStart3dEditing, OnStkObjectStop3dEditing, OnStkObjectApply3dEditing, OnStkObjectCancel3dEditing etc."
NotificationFilterMask.STK_OBJECT_CUT_COPY_PASTE_EVENTS.__doc__ = "Clients are notified upon occurrence of any of the available STK object Cut, Copy and Paste events."

agcls.AgTypeNameMap["NotificationFilterMask"] = NotificationFilterMask


class IDataProviderInfo(object):
    """Provide methods for retrieving the information about data providers."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _is_group_method_offset = 3
    _metadata = {
        "iid_data" : (4807813637529739857, 8845812768069019545),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IDataProviderInfo."""
        initialize_from_source_object(self, source_object, IDataProviderInfo)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IDataProviderInfo)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IDataProviderInfo, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Return a name of the data provider."""
        return self._intf.get_property(IDataProviderInfo._metadata, IDataProviderInfo._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DataProviderType),) }
    @property
    def type(self) -> "DataProviderType":
        """Return a type of the data provider."""
        return self._intf.get_property(IDataProviderInfo._metadata, IDataProviderInfo._get_type_metadata)

    _is_group_metadata = { "offset" : _is_group_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    def is_group(self) -> bool:
        """Determine if the data provider represents a group."""
        return self._intf.invoke(IDataProviderInfo._metadata, IDataProviderInfo._is_group_metadata, OutArg())

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4807813637529739857, 8845812768069019545), IDataProviderInfo)
agcls.AgTypeNameMap["IDataProviderInfo"] = IDataProviderInfo

class IDataProvider(object):
    """Represents the Sub Data Provider (i.e. ``Fixed`` in ``Cartesian Position`` group on satellites, or ``Cartesian Position`` on facilities)."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_elements_method_offset = 1
    _get_pre_data_method_offset = 2
    _set_pre_data_method_offset = 3
    _get_allow_user_interface_for_pre_data_method_offset = 4
    _set_allow_user_interface_for_pre_data_method_offset = 5
    _get_is_valid_method_offset = 6
    _get_pre_data_required_method_offset = 7
    _is_statistic_available_method_offset = 8
    _is_time_varying_extremum_available_method_offset = 9
    _get_pre_data_description_method_offset = 10
    _metadata = {
        "iid_data" : (5155632021552283324, 2376779169503638968),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IDataProvider."""
        initialize_from_source_object(self, source_object, IDataProvider)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IDataProvider)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IDataProvider, None)

    _get_elements_metadata = { "offset" : _get_elements_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elements(self) -> "DataProviderElements":
        """Return a collection of elements associated with a DataProvider or a SubDataProvider."""
        return self._intf.get_property(IDataProvider._metadata, IDataProvider._get_elements_metadata)

    _get_pre_data_metadata = { "offset" : _get_pre_data_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def pre_data(self) -> str:
        """The string associated with the current PreData parameter."""
        return self._intf.get_property(IDataProvider._metadata, IDataProvider._get_pre_data_metadata)

    _set_pre_data_metadata = { "offset" : _set_pre_data_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @pre_data.setter
    def pre_data(self, value:str) -> None:
        return self._intf.set_property(IDataProvider._metadata, IDataProvider._set_pre_data_metadata, value)

    _get_allow_user_interface_for_pre_data_metadata = { "offset" : _get_allow_user_interface_for_pre_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_user_interface_for_pre_data(self) -> bool:
        """When set to true the data provider will display a user interface to select/enter the pre-data required."""
        return self._intf.get_property(IDataProvider._metadata, IDataProvider._get_allow_user_interface_for_pre_data_metadata)

    _set_allow_user_interface_for_pre_data_metadata = { "offset" : _set_allow_user_interface_for_pre_data_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_user_interface_for_pre_data.setter
    def allow_user_interface_for_pre_data(self, value:bool) -> None:
        return self._intf.set_property(IDataProvider._metadata, IDataProvider._set_allow_user_interface_for_pre_data_metadata, value)

    _get_is_valid_metadata = { "offset" : _get_is_valid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_valid(self) -> bool:
        """Return whether the data provider is valid."""
        return self._intf.get_property(IDataProvider._metadata, IDataProvider._get_is_valid_metadata)

    _get_pre_data_required_metadata = { "offset" : _get_pre_data_required_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def pre_data_required(self) -> bool:
        """Return whether the data provider requires pre data."""
        return self._intf.get_property(IDataProvider._metadata, IDataProvider._get_pre_data_required_metadata)

    _is_statistic_available_metadata = { "offset" : _is_statistic_available_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(StatisticType), agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_statistic_available(self, statistic:"StatisticType", element_name:str) -> bool:
        """Is the supplied statistic available for the provided element name?"""
        return self._intf.invoke(IDataProvider._metadata, IDataProvider._is_statistic_available_metadata, statistic, element_name, OutArg())

    _is_time_varying_extremum_available_metadata = { "offset" : _is_time_varying_extremum_available_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(TimeVaryingExtremum), agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_time_varying_extremum_available(self, time_var_extremum:"TimeVaryingExtremum", element_name:str) -> bool:
        """Is the supplied time varying extremum available for the provided element name?"""
        return self._intf.invoke(IDataProvider._metadata, IDataProvider._is_time_varying_extremum_available_metadata, time_var_extremum, element_name, OutArg())

    _get_pre_data_description_metadata = { "offset" : _get_pre_data_description_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def pre_data_description(self) -> str:
        """Return a description of the required pre data."""
        return self._intf.get_property(IDataProvider._metadata, IDataProvider._get_pre_data_description_metadata)

    _property_names[elements] = "elements"
    _property_names[pre_data] = "pre_data"
    _property_names[allow_user_interface_for_pre_data] = "allow_user_interface_for_pre_data"
    _property_names[is_valid] = "is_valid"
    _property_names[pre_data_required] = "pre_data_required"
    _property_names[pre_data_description] = "pre_data_description"


agcls.AgClassCatalog.add_catalog_entry((5155632021552283324, 2376779169503638968), IDataProvider)
agcls.AgTypeNameMap["IDataProvider"] = IDataProvider

class ISTKObject(object):
    """
    Represents the instance of STK object.

    Examples
    --------
    Create a New AdvCAT Object:
    >>> # Scenario scenario: Scenario object
    >>> advCAT = scenario.children.new(STKObjectType.ADVCAT, "MyAdvCAT")
    """

    _num_methods = 29
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_parent_method_offset = 1
    _get_path_method_offset = 2
    _get_instance_name_method_offset = 3
    _set_instance_name_method_offset = 4
    _get_class_type_method_offset = 5
    _get_class_name_method_offset = 6
    _get_children_method_offset = 7
    _export_method_offset = 8
    _get_root_method_offset = 9
    _get_data_providers_method_offset = 10
    _get_short_description_method_offset = 11
    _set_short_description_method_offset = 12
    _get_long_description_method_offset = 13
    _set_long_description_method_offset = 14
    _get_has_children_method_offset = 15
    _is_object_coverage_supported_method_offset = 16
    _get_object_coverage_method_offset = 17
    _is_access_supported_method_offset = 18
    _get_access_method_offset = 19
    _get_access_to_object_method_offset = 20
    _get_access_constraints_method_offset = 21
    _create_one_point_access_method_offset = 22
    _get_object_files_method_offset = 23
    _unload_method_offset = 24
    _supports_analysis_workbench_method_offset = 25
    _get_analysis_workbench_components_method_offset = 26
    _copy_object_method_offset = 27
    _get_central_body_name_method_offset = 28
    _get_metadata_method_offset = 29
    _metadata = {
        "iid_data" : (5684331285240064776, 682992631032012709),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ISTKObject."""
        initialize_from_source_object(self, source_object, ISTKObject)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ISTKObject)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ISTKObject, None)

    _get_parent_metadata = { "offset" : _get_parent_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def parent(self) -> "ISTKObject":
        """Return the parent object or null if the object has become orphaned. The exception is STKObjectRoot object which is a topmost element and does not have a parent."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_parent_metadata)

    _get_path_metadata = { "offset" : _get_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def path(self) -> str:
        """Return the object path."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_path_metadata)

    _get_instance_name_metadata = { "offset" : _get_instance_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def instance_name(self) -> str:
        """A name of the object."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_instance_name_metadata)

    _set_instance_name_metadata = { "offset" : _set_instance_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @instance_name.setter
    def instance_name(self, value:str) -> None:
        return self._intf.set_property(ISTKObject._metadata, ISTKObject._set_instance_name_metadata, value)

    _get_class_type_metadata = { "offset" : _get_class_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(STKObjectType),) }
    @property
    def class_type(self) -> "STKObjectType":
        """Return a class type of the object (i.e. eAircraft, eFacility etc.)."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_class_type_metadata)

    _get_class_name_metadata = { "offset" : _get_class_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def class_name(self) -> str:
        """Return a class name of the object (i.e. Aircraft, Facility.)."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_class_name_metadata)

    _get_children_metadata = { "offset" : _get_children_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def children(self) -> "ISTKObjectCollection":
        """Return a collection of direct descendants of the current object."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_children_metadata)

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export(self, filename:str) -> None:
        """Export the object to a file."""
        return self._intf.invoke(ISTKObject._metadata, ISTKObject._export_metadata, filename)

    _get_root_metadata = { "offset" : _get_root_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def root(self) -> "STKObjectRoot":
        """Return the Root object or null."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_root_metadata)

    _get_data_providers_metadata = { "offset" : _get_data_providers_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_providers(self) -> "DataProviderCollection":
        """Return the object representing a list of available data providers for the object."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_data_providers_metadata)

    _get_short_description_metadata = { "offset" : _get_short_description_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def short_description(self) -> str:
        """The short description of the object."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_short_description_metadata)

    _set_short_description_metadata = { "offset" : _set_short_description_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @short_description.setter
    def short_description(self, short_desc:str) -> None:
        return self._intf.set_property(ISTKObject._metadata, ISTKObject._set_short_description_metadata, short_desc)

    _get_long_description_metadata = { "offset" : _get_long_description_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def long_description(self) -> str:
        """A long description of the object."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_long_description_metadata)

    _set_long_description_metadata = { "offset" : _set_long_description_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @long_description.setter
    def long_description(self, long_desc:str) -> None:
        return self._intf.set_property(ISTKObject._metadata, ISTKObject._set_long_description_metadata, long_desc)

    _get_has_children_metadata = { "offset" : _get_has_children_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def has_children(self) -> bool:
        """Return true if the object has direct descendants."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_has_children_metadata)

    _is_object_coverage_supported_metadata = { "offset" : _is_object_coverage_supported_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    def is_object_coverage_supported(self) -> bool:
        """Determine whether or not the object supports ObjectCoverage."""
        return self._intf.invoke(ISTKObject._metadata, ISTKObject._is_object_coverage_supported_metadata, OutArg())

    _get_object_coverage_metadata = { "offset" : _get_object_coverage_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def object_coverage(self) -> "ObjectCoverage":
        """Return an ObjectCoverage object."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_object_coverage_metadata)

    _is_access_supported_metadata = { "offset" : _is_access_supported_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    def is_access_supported(self) -> bool:
        """Determine whether or not the object supports Access."""
        return self._intf.invoke(ISTKObject._metadata, ISTKObject._is_access_supported_metadata, OutArg())

    _get_access_metadata = { "offset" : _get_access_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_access(self, object_path:str) -> "Access":
        """Return an Access object associated with this STK object and another STK object specified using its path. The path can be fully-qualified or truncated."""
        return self._intf.invoke(ISTKObject._metadata, ISTKObject._get_access_metadata, object_path, OutArg())

    _get_access_to_object_metadata = { "offset" : _get_access_to_object_method_offset,
            "arg_types" : (agcom.PVOID, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"), agmarshall.InterfaceOutArg,) }
    def get_access_to_object(self, object:"ISTKObject") -> "Access":
        """Return an Access object associated with this STK object and another STK object."""
        return self._intf.invoke(ISTKObject._metadata, ISTKObject._get_access_to_object_metadata, object, OutArg())

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the object."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_access_constraints_metadata)

    _create_one_point_access_metadata = { "offset" : _create_one_point_access_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def create_one_point_access(self, path_to_object:str) -> "OnePointAccess":
        """Create one point access to the supplied object name. The Remove method in OnePointAccess should be called when you are done with the data."""
        return self._intf.invoke(ISTKObject._metadata, ISTKObject._create_one_point_access_metadata, path_to_object, OutArg())

    _get_object_files_metadata = { "offset" : _get_object_files_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def object_files(self) -> list:
        """Return the list of files that constitute an object."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_object_files_metadata)

    _unload_metadata = { "offset" : _unload_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def unload(self) -> None:
        """Remove the object from the scenario."""
        return self._intf.invoke(ISTKObject._metadata, ISTKObject._unload_metadata, )

    _supports_analysis_workbench_metadata = { "offset" : _supports_analysis_workbench_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    def supports_analysis_workbench(self) -> bool:
        """Return whether the object supports Vector Geometry."""
        return self._intf.invoke(ISTKObject._metadata, ISTKObject._supports_analysis_workbench_metadata, OutArg())

    _get_analysis_workbench_components_metadata = { "offset" : _get_analysis_workbench_components_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis_workbench_components(self) -> "IAnalysisWorkbenchComponentProvider":
        """Return an instance of Vector Geometry Tool provider."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_analysis_workbench_components_metadata)

    _copy_object_metadata = { "offset" : _copy_object_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def copy_object(self, new_object_name:str) -> "ISTKObject":
        """Copy and paste the current instance of STK Object. The copied object will be pasted as the sibling of the instance being copied."""
        return self._intf.invoke(ISTKObject._metadata, ISTKObject._copy_object_metadata, new_object_name, OutArg())

    _get_central_body_name_metadata = { "offset" : _get_central_body_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body_name(self) -> str:
        """The object's central body."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_central_body_name_metadata)

    _get_metadata_metadata = { "offset" : _get_metadata_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def metadata(self) -> "KeyValueCollection":
        """Get the object's metadata. Metadata is a collection of keys and their associated values."""
        return self._intf.get_property(ISTKObject._metadata, ISTKObject._get_metadata_metadata)

    _property_names[parent] = "parent"
    _property_names[path] = "path"
    _property_names[instance_name] = "instance_name"
    _property_names[class_type] = "class_type"
    _property_names[class_name] = "class_name"
    _property_names[children] = "children"
    _property_names[root] = "root"
    _property_names[data_providers] = "data_providers"
    _property_names[short_description] = "short_description"
    _property_names[long_description] = "long_description"
    _property_names[has_children] = "has_children"
    _property_names[object_coverage] = "object_coverage"
    _property_names[access_constraints] = "access_constraints"
    _property_names[object_files] = "object_files"
    _property_names[analysis_workbench_components] = "analysis_workbench_components"
    _property_names[central_body_name] = "central_body_name"
    _property_names[metadata] = "metadata"


agcls.AgClassCatalog.add_catalog_entry((5684331285240064776, 682992631032012709), ISTKObject)
agcls.AgTypeNameMap["ISTKObject"] = ISTKObject

class IAccessInterval(object):
    """Base interface for ITimePeriod and TimeIntervalCollection."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4978520745393007291, 368973114715273407),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAccessInterval."""
        initialize_from_source_object(self, source_object, IAccessInterval)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAccessInterval)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAccessInterval, None)



agcls.AgClassCatalog.add_catalog_entry((4978520745393007291, 368973114715273407), IAccessInterval)
agcls.AgTypeNameMap["IAccessInterval"] = IAccessInterval

class IFigureOfMeritDefinition(object):
    """Figure of Merit definition."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_satisfaction_method_offset = 1
    _metadata = {
        "iid_data" : (5619442526477316564, 18283544942267320979),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IFigureOfMeritDefinition."""
        initialize_from_source_object(self, source_object, IFigureOfMeritDefinition)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IFigureOfMeritDefinition)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IFigureOfMeritDefinition, None)

    _get_satisfaction_metadata = { "offset" : _get_satisfaction_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def satisfaction(self) -> "FigureOfMeritSatisfaction":
        """Satisfaction criteria for the Figure of Merit."""
        return self._intf.get_property(IFigureOfMeritDefinition._metadata, IFigureOfMeritDefinition._get_satisfaction_metadata)

    _property_names[satisfaction] = "satisfaction"


agcls.AgClassCatalog.add_catalog_entry((5619442526477316564, 18283544942267320979), IFigureOfMeritDefinition)
agcls.AgTypeNameMap["IFigureOfMeritDefinition"] = IFigureOfMeritDefinition

class IFigureOfMeritDefinitionCompute(IFigureOfMeritDefinition):
    """Compute options for navigation accuracy."""

    _num_methods = 5
    _vtable_offset = IFigureOfMeritDefinition._vtable_offset + IFigureOfMeritDefinition._num_methods
    _get_compute_type_method_offset = 1
    _set_compute_type_method_offset = 2
    _is_compute_type_supported_method_offset = 3
    _get_compute_supported_types_method_offset = 4
    _get_compute_method_offset = 5
    _metadata = {
        "iid_data" : (5466845781897018838, 3334443694100846508),
        "vtable_reference" : IFigureOfMeritDefinition._vtable_offset + IFigureOfMeritDefinition._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IFigureOfMeritDefinitionCompute."""
        initialize_from_source_object(self, source_object, IFigureOfMeritDefinitionCompute)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IFigureOfMeritDefinitionCompute)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition)

    _get_compute_type_metadata = { "offset" : _get_compute_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritCompute),) }
    @property
    def compute_type(self) -> "FigureOfMeritCompute":
        """Type of compute option to be used for navigation accuracy."""
        return self._intf.get_property(IFigureOfMeritDefinitionCompute._metadata, IFigureOfMeritDefinitionCompute._get_compute_type_metadata)

    _set_compute_type_metadata = { "offset" : _set_compute_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritCompute),) }
    def set_compute_type(self, compute_type:"FigureOfMeritCompute") -> None:
        """Set the type of compute option."""
        return self._intf.invoke(IFigureOfMeritDefinitionCompute._metadata, IFigureOfMeritDefinitionCompute._set_compute_type_metadata, compute_type)

    _is_compute_type_supported_metadata = { "offset" : _is_compute_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritCompute), agmarshall.VariantBoolArg,) }
    def is_compute_type_supported(self, compute_type:"FigureOfMeritCompute") -> bool:
        """Is the type of compute option supported?"""
        return self._intf.invoke(IFigureOfMeritDefinitionCompute._metadata, IFigureOfMeritDefinitionCompute._is_compute_type_supported_metadata, compute_type, OutArg())

    _get_compute_supported_types_metadata = { "offset" : _get_compute_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def compute_supported_types(self) -> list:
        """Compute supported types."""
        return self._intf.get_property(IFigureOfMeritDefinitionCompute._metadata, IFigureOfMeritDefinitionCompute._get_compute_supported_types_metadata)

    _get_compute_metadata = { "offset" : _get_compute_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def compute(self) -> "IFigureOfMeritDefinitionData":
        """Compute."""
        return self._intf.get_property(IFigureOfMeritDefinitionCompute._metadata, IFigureOfMeritDefinitionCompute._get_compute_metadata)

    _property_names[compute_type] = "compute_type"
    _property_names[compute_supported_types] = "compute_supported_types"
    _property_names[compute] = "compute"


agcls.AgClassCatalog.add_catalog_entry((5466845781897018838, 3334443694100846508), IFigureOfMeritDefinitionCompute)
agcls.AgTypeNameMap["IFigureOfMeritDefinitionCompute"] = IFigureOfMeritDefinitionCompute

class ISTKObjectElementCollection(object):
    """Represents a collection of STK objects."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _contains_method_offset = 4
    _get_item_by_index_method_offset = 5
    _get_item_by_name_method_offset = 6
    _metadata = {
        "iid_data" : (5096702068244902831, 8096268259154586774),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ISTKObjectElementCollection."""
        initialize_from_source_object(self, source_object, ISTKObjectElementCollection)
        self.__dict__["_enumerator"] = None
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ISTKObjectElementCollection)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ISTKObjectElementCollection, None)
    def __iter__(self):
        """Create an iterator for the ISTKObjectElementCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "ISTKObject":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(ISTKObjectElementCollection._metadata, ISTKObjectElementCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def item(self, index_or_name:typing.Any) -> "ISTKObject":
        """Given an index, returns an element in the collection. If the index is an integer, then the method returns the element in the collection at the given position. If the index is a string, then the method returns the element with the specified name."""
        return self._intf.invoke(ISTKObjectElementCollection._metadata, ISTKObjectElementCollection._item_metadata, index_or_name, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(ISTKObjectElementCollection._metadata, ISTKObjectElementCollection._get__new_enum_metadata)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def contains(self, inst_name:str) -> bool:
        """Check whether an object with the given name exists."""
        return self._intf.invoke(ISTKObjectElementCollection._metadata, ISTKObjectElementCollection._contains_metadata, inst_name, OutArg())

    _get_item_by_index_metadata = { "offset" : _get_item_by_index_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_index(self, index:int) -> "ISTKObject":
        """Retrieve an Stk object element from the collection by index."""
        return self._intf.invoke(ISTKObjectElementCollection._metadata, ISTKObjectElementCollection._get_item_by_index_metadata, index, OutArg())

    _get_item_by_name_metadata = { "offset" : _get_item_by_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_name(self, name:str) -> "ISTKObject":
        """Retrieve an Stk object element from the collection by name."""
        return self._intf.invoke(ISTKObjectElementCollection._metadata, ISTKObjectElementCollection._get_item_by_name_metadata, name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"


agcls.AgClassCatalog.add_catalog_entry((5096702068244902831, 8096268259154586774), ISTKObjectElementCollection)
agcls.AgTypeNameMap["ISTKObjectElementCollection"] = ISTKObjectElementCollection

class ISTKObjectCollection(object):
    """Represents a collection of STK objects."""

    _num_methods = 13
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _new_method_offset = 4
    _unload_method_offset = 5
    _get_elements_method_offset = 6
    _new_on_central_body_method_offset = 7
    _get_supported_child_types_method_offset = 8
    _contains_method_offset = 9
    _import_object_method_offset = 10
    _copy_object_method_offset = 11
    _get_item_by_index_method_offset = 12
    _get_item_by_name_method_offset = 13
    _metadata = {
        "iid_data" : (5198092366622301019, 13565157834551497125),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ISTKObjectCollection."""
        initialize_from_source_object(self, source_object, ISTKObjectCollection)
        self.__dict__["_enumerator"] = None
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ISTKObjectCollection)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ISTKObjectCollection, None)
    def __iter__(self):
        """Create an iterator for the ISTKObjectCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "ISTKObject":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(ISTKObjectCollection._metadata, ISTKObjectCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def item(self, index_or_name:typing.Any) -> "ISTKObject":
        """Given an index, returns the element in the collection. If the index is an integer, then method returns the element in the collection at the given position. If the index is a string, then the method returns the element with the specified name."""
        return self._intf.invoke(ISTKObjectCollection._metadata, ISTKObjectCollection._item_metadata, index_or_name, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(ISTKObjectCollection._metadata, ISTKObjectCollection._get__new_enum_metadata)

    _new_metadata = { "offset" : _new_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(STKObjectType), agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def new(self, class_type:"STKObjectType", inst_name:str) -> "ISTKObject":
        """Create an STK object using specified class and instance name."""
        return self._intf.invoke(ISTKObjectCollection._metadata, ISTKObjectCollection._new_metadata, class_type, inst_name, OutArg())

    _unload_metadata = { "offset" : _unload_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR,),
            "marshallers" : (agmarshall.EnumArg(STKObjectType), agmarshall.BStrArg,) }
    def unload(self, class_type:"STKObjectType", inst_name:str) -> None:
        """Remove an STK object using specified object's type and name."""
        return self._intf.invoke(ISTKObjectCollection._metadata, ISTKObjectCollection._unload_metadata, class_type, inst_name)

    _get_elements_metadata = { "offset" : _get_elements_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(STKObjectType), agmarshall.InterfaceOutArg,) }
    def get_elements(self, class_type:"STKObjectType") -> "ISTKObjectElementCollection":
        """Return a collection of objects of specified type."""
        return self._intf.invoke(ISTKObjectCollection._metadata, ISTKObjectCollection._get_elements_metadata, class_type, OutArg())

    _new_on_central_body_metadata = { "offset" : _new_on_central_body_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(STKObjectType), agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def new_on_central_body(self, class_type:"STKObjectType", inst_name:str, central_body_name:str) -> "ISTKObject":
        """Create an STK object using specified class, instance name and the central body."""
        return self._intf.invoke(ISTKObjectCollection._metadata, ISTKObjectCollection._new_on_central_body_metadata, class_type, inst_name, central_body_name, OutArg())

    _get_supported_child_types_metadata = { "offset" : _get_supported_child_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_child_types(self) -> list:
        """Return the available objects that can be added to this object."""
        return self._intf.get_property(ISTKObjectCollection._metadata, ISTKObjectCollection._get_supported_child_types_metadata)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(STKObjectType), agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def contains(self, class_type:"STKObjectType", inst_name:str) -> bool:
        """Check whether the collection contains an object with the given type and name."""
        return self._intf.invoke(ISTKObjectCollection._metadata, ISTKObjectCollection._contains_metadata, class_type, inst_name, OutArg())

    _import_object_metadata = { "offset" : _import_object_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def import_object(self, file_path:str) -> "ISTKObject":
        """Import object from external file and returns the pointer to the object."""
        return self._intf.invoke(ISTKObjectCollection._metadata, ISTKObjectCollection._import_object_metadata, file_path, OutArg())

    _copy_object_metadata = { "offset" : _copy_object_method_offset,
            "arg_types" : (agcom.PVOID, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"), agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def copy_object(self, object_to_clone:"ISTKObject", new_object_name:str) -> "ISTKObject":
        """Copy and paste the specified object."""
        return self._intf.invoke(ISTKObjectCollection._metadata, ISTKObjectCollection._copy_object_metadata, object_to_clone, new_object_name, OutArg())

    _get_item_by_index_metadata = { "offset" : _get_item_by_index_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_index(self, index:int) -> "ISTKObject":
        """Retrieve an Stk object from the collection by index."""
        return self._intf.invoke(ISTKObjectCollection._metadata, ISTKObjectCollection._get_item_by_index_metadata, index, OutArg())

    _get_item_by_name_metadata = { "offset" : _get_item_by_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_name(self, name:str) -> "ISTKObject":
        """Retrieve an Stk object from the collection by name."""
        return self._intf.invoke(ISTKObjectCollection._metadata, ISTKObjectCollection._get_item_by_name_metadata, name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[supported_child_types] = "supported_child_types"


agcls.AgClassCatalog.add_catalog_entry((5198092366622301019, 13565157834551497125), ISTKObjectCollection)
agcls.AgTypeNameMap["ISTKObjectCollection"] = ISTKObjectCollection

class IAnimation(object):
    """
    Provide methods to control scenario animation.

    Examples
    --------
    Reset the scenario time:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> root.rewind()

    Change animation mode:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> scenario = root.current_scenario
    >>> root.animation_options = AnimationOptionType.STOP
    >>> root.mode = AnimationEndTimeMode.X_REAL_TIME
    >>> scenario.animation_settings.animation_step_value = 1  # second
    >>> scenario.animation_settings.refresh_delta = 0.03  # second
    """

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _play_forward_method_offset = 1
    _play_backward_method_offset = 2
    _pause_method_offset = 3
    _rewind_method_offset = 4
    _step_forward_method_offset = 5
    _step_backward_method_offset = 6
    _faster_method_offset = 7
    _slower_method_offset = 8
    _get_mode_method_offset = 9
    _set_mode_method_offset = 10
    _get_current_time_method_offset = 11
    _set_current_time_method_offset = 12
    _get_step_method_offset = 13
    _get_animation_options_method_offset = 14
    _set_animation_options_method_offset = 15
    _get_high_speed_method_offset = 16
    _set_high_speed_method_offset = 17
    _metadata = {
        "iid_data" : (4711865524792687706, 3558234660740142237),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAnimation."""
        initialize_from_source_object(self, source_object, IAnimation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAnimation)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAnimation, None)

    _play_forward_metadata = { "offset" : _play_forward_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def play_forward(self) -> None:
        """Animate forward."""
        return self._intf.invoke(IAnimation._metadata, IAnimation._play_forward_metadata, )

    _play_backward_metadata = { "offset" : _play_backward_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def play_backward(self) -> None:
        """Animate backward."""
        return self._intf.invoke(IAnimation._metadata, IAnimation._play_backward_metadata, )

    _pause_metadata = { "offset" : _pause_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def pause(self) -> None:
        """Pause the animation."""
        return self._intf.invoke(IAnimation._metadata, IAnimation._pause_metadata, )

    _rewind_metadata = { "offset" : _rewind_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def rewind(self) -> None:
        """Stop and reset the animation."""
        return self._intf.invoke(IAnimation._metadata, IAnimation._rewind_metadata, )

    _step_forward_metadata = { "offset" : _step_forward_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def step_forward(self) -> None:
        """Advance the animation one step forward."""
        return self._intf.invoke(IAnimation._metadata, IAnimation._step_forward_metadata, )

    _step_backward_metadata = { "offset" : _step_backward_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def step_backward(self) -> None:
        """Reverse the animation one step backward."""
        return self._intf.invoke(IAnimation._metadata, IAnimation._step_backward_metadata, )

    _faster_metadata = { "offset" : _faster_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def faster(self) -> None:
        """Increase the speed of the animation."""
        return self._intf.invoke(IAnimation._metadata, IAnimation._faster_metadata, )

    _slower_metadata = { "offset" : _slower_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def slower(self) -> None:
        """Decrease the speed of the animation."""
        return self._intf.invoke(IAnimation._metadata, IAnimation._slower_metadata, )

    _get_mode_metadata = { "offset" : _get_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AnimationEndTimeMode),) }
    @property
    def mode(self) -> "AnimationEndTimeMode":
        """Animation mode."""
        return self._intf.get_property(IAnimation._metadata, IAnimation._get_mode_metadata)

    _set_mode_metadata = { "offset" : _set_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AnimationEndTimeMode),) }
    @mode.setter
    def mode(self, return_value:"AnimationEndTimeMode") -> None:
        return self._intf.set_property(IAnimation._metadata, IAnimation._set_mode_metadata, return_value)

    _get_current_time_metadata = { "offset" : _get_current_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def current_time(self) -> float:
        """Current animation time. In Epoch seconds."""
        return self._intf.get_property(IAnimation._metadata, IAnimation._get_current_time_metadata)

    _set_current_time_metadata = { "offset" : _set_current_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @current_time.setter
    def current_time(self, double_val:float) -> None:
        return self._intf.set_property(IAnimation._metadata, IAnimation._set_current_time_metadata, double_val)

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def step(self) -> str:
        """Get animation time step."""
        return self._intf.get_property(IAnimation._metadata, IAnimation._get_step_metadata)

    _get_animation_options_metadata = { "offset" : _get_animation_options_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AnimationOptionType),) }
    @property
    def animation_options(self) -> "AnimationOptionType":
        """Animation options."""
        return self._intf.get_property(IAnimation._metadata, IAnimation._get_animation_options_metadata)

    _set_animation_options_metadata = { "offset" : _set_animation_options_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AnimationOptionType),) }
    @animation_options.setter
    def animation_options(self, ani_options:"AnimationOptionType") -> None:
        return self._intf.set_property(IAnimation._metadata, IAnimation._set_animation_options_metadata, ani_options)

    _get_high_speed_metadata = { "offset" : _get_high_speed_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def high_speed(self) -> bool:
        """Control the animation speed."""
        return self._intf.get_property(IAnimation._metadata, IAnimation._get_high_speed_metadata)

    _set_high_speed_metadata = { "offset" : _set_high_speed_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @high_speed.setter
    def high_speed(self, high_speed:bool) -> None:
        return self._intf.set_property(IAnimation._metadata, IAnimation._set_high_speed_metadata, high_speed)

    _property_names[mode] = "mode"
    _property_names[current_time] = "current_time"
    _property_names[step] = "step"
    _property_names[animation_options] = "animation_options"
    _property_names[high_speed] = "high_speed"


agcls.AgClassCatalog.add_catalog_entry((4711865524792687706, 3558234660740142237), IAnimation)
agcls.AgTypeNameMap["IAnimation"] = IAnimation

class IComponentInfo(object):
    """Interface for a component."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _set_name_method_offset = 2
    _get_user_comment_method_offset = 3
    _set_user_comment_method_offset = 4
    _get_description_method_offset = 5
    _is_read_only_method_offset = 6
    _export_method_offset = 7
    _export_with_filename_path_method_offset = 8
    _metadata = {
        "iid_data" : (5393285516956947082, 17285868292206954116),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IComponentInfo."""
        initialize_from_source_object(self, source_object, IComponentInfo)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IComponentInfo)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IComponentInfo, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get or set the component name."""
        return self._intf.get_property(IComponentInfo._metadata, IComponentInfo._get_name_metadata)

    _set_name_metadata = { "offset" : _set_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @name.setter
    def name(self, name:str) -> None:
        return self._intf.set_property(IComponentInfo._metadata, IComponentInfo._set_name_metadata, name)

    _get_user_comment_metadata = { "offset" : _get_user_comment_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def user_comment(self) -> str:
        """Get or set the user comment for this component."""
        return self._intf.get_property(IComponentInfo._metadata, IComponentInfo._get_user_comment_metadata)

    _set_user_comment_metadata = { "offset" : _set_user_comment_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @user_comment.setter
    def user_comment(self, user_comment:str) -> None:
        return self._intf.set_property(IComponentInfo._metadata, IComponentInfo._set_user_comment_metadata, user_comment)

    _get_description_metadata = { "offset" : _get_description_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def description(self) -> str:
        """Get the description for this component."""
        return self._intf.get_property(IComponentInfo._metadata, IComponentInfo._get_description_metadata)

    _is_read_only_metadata = { "offset" : _is_read_only_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    def is_read_only(self) -> bool:
        """Return true if the component is read-only."""
        return self._intf.invoke(IComponentInfo._metadata, IComponentInfo._is_read_only_metadata, OutArg())

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def export(self) -> None:
        """Export the component with default component name as file name and component type as file extension to the scenario directory."""
        return self._intf.invoke(IComponentInfo._metadata, IComponentInfo._export_metadata, )

    _export_with_filename_path_metadata = { "offset" : _export_with_filename_path_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export_with_filename_path(self, filename_path:str) -> None:
        """Export the component with specified file name and location."""
        return self._intf.invoke(IComponentInfo._metadata, IComponentInfo._export_with_filename_path_metadata, filename_path)

    _property_names[name] = "name"
    _property_names[user_comment] = "user_comment"
    _property_names[description] = "description"


agcls.AgClassCatalog.add_catalog_entry((5393285516956947082, 17285868292206954116), IComponentInfo)
agcls.AgTypeNameMap["IComponentInfo"] = IComponentInfo

class ICloneable(object):
    """Interface for a component."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _clone_object_method_offset = 1
    _metadata = {
        "iid_data" : (5266199410648796167, 6078109941845782692),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ICloneable."""
        initialize_from_source_object(self, source_object, ICloneable)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ICloneable)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ICloneable, None)

    _clone_object_metadata = { "offset" : _clone_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def clone_object(self) -> typing.Any:
        """Make a clone of this component."""
        return self._intf.invoke(ICloneable._metadata, ICloneable._clone_object_metadata, OutArg())



agcls.AgClassCatalog.add_catalog_entry((5266199410648796167, 6078109941845782692), ICloneable)
agcls.AgTypeNameMap["ICloneable"] = ICloneable

class IComponentLinkEmbedControl(object):
    """Interface for a control which manages the linking or embedding of a component from the component browser."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_reference_type_method_offset = 1
    _set_reference_type_method_offset = 2
    _get_component_method_offset = 3
    _get_supported_components_method_offset = 4
    _set_component_method_offset = 5
    _metadata = {
        "iid_data" : (5602718486014656526, 8140965578869473943),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IComponentLinkEmbedControl."""
        initialize_from_source_object(self, source_object, IComponentLinkEmbedControl)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IComponentLinkEmbedControl)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IComponentLinkEmbedControl, None)

    _get_reference_type_metadata = { "offset" : _get_reference_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ComponentLinkEmbedControlReferenceType),) }
    @property
    def reference_type(self) -> "ComponentLinkEmbedControlReferenceType":
        """Get or set the component reference type."""
        return self._intf.get_property(IComponentLinkEmbedControl._metadata, IComponentLinkEmbedControl._get_reference_type_metadata)

    _set_reference_type_metadata = { "offset" : _set_reference_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ComponentLinkEmbedControlReferenceType),) }
    @reference_type.setter
    def reference_type(self, value:"ComponentLinkEmbedControlReferenceType") -> None:
        return self._intf.set_property(IComponentLinkEmbedControl._metadata, IComponentLinkEmbedControl._set_reference_type_metadata, value)

    _get_component_metadata = { "offset" : _get_component_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def component(self) -> "IComponentInfo":
        """Get the component interface."""
        return self._intf.get_property(IComponentLinkEmbedControl._metadata, IComponentLinkEmbedControl._get_component_metadata)

    _get_supported_components_metadata = { "offset" : _get_supported_components_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_components(self) -> list:
        """Get the list of supported component names."""
        return self._intf.get_property(IComponentLinkEmbedControl._metadata, IComponentLinkEmbedControl._get_supported_components_metadata)

    _set_component_metadata = { "offset" : _set_component_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_component(self, component_name:str) -> None:
        """Set the component by name."""
        return self._intf.invoke(IComponentLinkEmbedControl._metadata, IComponentLinkEmbedControl._set_component_metadata, component_name)

    _property_names[reference_type] = "reference_type"
    _property_names[component] = "component"
    _property_names[supported_components] = "supported_components"


agcls.AgClassCatalog.add_catalog_entry((5602718486014656526, 8140965578869473943), IComponentLinkEmbedControl)
agcls.AgTypeNameMap["IComponentLinkEmbedControl"] = IComponentLinkEmbedControl

class IDisplayTimesData(object):
    """Base Interface IDisplayTimesData. TimeIntervalCollection, DisplayTimesDuringAccess and DisplayTimesTimeComponent derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5237363789436860483, 10153003140195176627),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IDisplayTimesData."""
        initialize_from_source_object(self, source_object, IDisplayTimesData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IDisplayTimesData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IDisplayTimesData, None)



agcls.AgClassCatalog.add_catalog_entry((5237363789436860483, 10153003140195176627), IDisplayTimesData)
agcls.AgTypeNameMap["IDisplayTimesData"] = IDisplayTimesData

class IDisplayTime(object):
    """The display time interface."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_display_status_type_method_offset = 1
    _set_display_status_type_method_offset = 2
    _is_display_status_type_supported_method_offset = 3
    _get_display_status_supported_types_method_offset = 4
    _get_display_times_data_method_offset = 5
    _metadata = {
        "iid_data" : (4985255360035361613, 2214963519927515811),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IDisplayTime."""
        initialize_from_source_object(self, source_object, IDisplayTime)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IDisplayTime)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IDisplayTime, None)

    _get_display_status_type_metadata = { "offset" : _get_display_status_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DisplayTimesType),) }
    @property
    def display_status_type(self) -> "DisplayTimesType":
        """Return the Display Status type."""
        return self._intf.get_property(IDisplayTime._metadata, IDisplayTime._get_display_status_type_metadata)

    _set_display_status_type_metadata = { "offset" : _set_display_status_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(DisplayTimesType),) }
    def set_display_status_type(self, display_status:"DisplayTimesType") -> None:
        """Set the display status type."""
        return self._intf.invoke(IDisplayTime._metadata, IDisplayTime._set_display_status_type_metadata, display_status)

    _is_display_status_type_supported_metadata = { "offset" : _is_display_status_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(DisplayTimesType), agmarshall.VariantBoolArg,) }
    def is_display_status_type_supported(self, display_status:"DisplayTimesType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(IDisplayTime._metadata, IDisplayTime._is_display_status_type_supported_metadata, display_status, OutArg())

    _get_display_status_supported_types_metadata = { "offset" : _get_display_status_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def display_status_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(IDisplayTime._metadata, IDisplayTime._get_display_status_supported_types_metadata)

    _get_display_times_data_metadata = { "offset" : _get_display_times_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def display_times_data(self) -> "IDisplayTimesData":
        """Return the display times data."""
        return self._intf.get_property(IDisplayTime._metadata, IDisplayTime._get_display_times_data_metadata)

    _property_names[display_status_type] = "display_status_type"
    _property_names[display_status_supported_types] = "display_status_supported_types"
    _property_names[display_times_data] = "display_times_data"


agcls.AgClassCatalog.add_catalog_entry((4985255360035361613, 2214963519927515811), IDisplayTime)
agcls.AgTypeNameMap["IDisplayTime"] = IDisplayTime

class ITerrainNormData(object):
    """Base Interface ITerrainNormData. TerrainNormalSlopeAzimuth derives from this interface."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4710761608362925757, 5921492890169715082),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ITerrainNormData."""
        initialize_from_source_object(self, source_object, ITerrainNormData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ITerrainNormData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ITerrainNormData, None)



agcls.AgClassCatalog.add_catalog_entry((4710761608362925757, 5921492890169715082), ITerrainNormData)
agcls.AgTypeNameMap["ITerrainNormData"] = ITerrainNormData

class ILifetimeInformation(object):
    """Provide the information about the lifetime of the object."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_has_been_deleted_method_offset = 1
    _metadata = {
        "iid_data" : (5322228758688290418, 11325260168605084063),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ILifetimeInformation."""
        initialize_from_source_object(self, source_object, ILifetimeInformation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ILifetimeInformation)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ILifetimeInformation, None)

    _get_has_been_deleted_metadata = { "offset" : _get_has_been_deleted_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def has_been_deleted(self) -> bool:
        """Determine if the object has been deleted or has become invalid due to some other modifications to its internal state."""
        return self._intf.get_property(ILifetimeInformation._metadata, ILifetimeInformation._get_has_been_deleted_metadata)

    _property_names[has_been_deleted] = "has_been_deleted"


agcls.AgClassCatalog.add_catalog_entry((5322228758688290418, 11325260168605084063), ILifetimeInformation)
agcls.AgTypeNameMap["ILifetimeInformation"] = ILifetimeInformation

class IVehicleLeadTrailData(object):
    """Base interface IVehicleLeadTrailData."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5133290017253705720, 1818322219394130334),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleLeadTrailData."""
        initialize_from_source_object(self, source_object, IVehicleLeadTrailData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleLeadTrailData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleLeadTrailData, None)



agcls.AgClassCatalog.add_catalog_entry((5133290017253705720, 1818322219394130334), IVehicleLeadTrailData)
agcls.AgTypeNameMap["IVehicleLeadTrailData"] = IVehicleLeadTrailData

class IVehicleLeadTrailDataFraction(object):
    """The percentage of the leading or trailing portion of a vehicle's path that will display in the 2D or 3D window."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_fraction_method_offset = 1
    _set_fraction_method_offset = 2
    _metadata = {
        "iid_data" : (5228725570332796246, 5815275610829201051),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleLeadTrailDataFraction."""
        initialize_from_source_object(self, source_object, IVehicleLeadTrailDataFraction)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleLeadTrailDataFraction)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleLeadTrailDataFraction, None)

    _get_fraction_metadata = { "offset" : _get_fraction_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fraction(self) -> float:
        """Fraction of single leading or trailing vehicle pass to display. Dimensionless."""
        return self._intf.get_property(IVehicleLeadTrailDataFraction._metadata, IVehicleLeadTrailDataFraction._get_fraction_metadata)

    _set_fraction_metadata = { "offset" : _set_fraction_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fraction.setter
    def fraction(self, value:float) -> None:
        return self._intf.set_property(IVehicleLeadTrailDataFraction._metadata, IVehicleLeadTrailDataFraction._set_fraction_metadata, value)

    _property_names[fraction] = "fraction"


agcls.AgClassCatalog.add_catalog_entry((5228725570332796246, 5815275610829201051), IVehicleLeadTrailDataFraction)
agcls.AgTypeNameMap["IVehicleLeadTrailDataFraction"] = IVehicleLeadTrailDataFraction

class IVehicleLeadTrailDataTime(object):
    """Configure the amount of time to display the vehicle's path in 2D or 3D window."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_method_offset = 1
    _set_time_method_offset = 2
    _metadata = {
        "iid_data" : (5543876989805598204, 12572793620716963986),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleLeadTrailDataTime."""
        initialize_from_source_object(self, source_object, IVehicleLeadTrailDataTime)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleLeadTrailDataTime)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleLeadTrailDataTime, None)

    _get_time_metadata = { "offset" : _get_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time(self) -> float:
        """Amount of leading or trailing vehicle pass to display, in terms of time required to traverse it. Uses Time Dimension."""
        return self._intf.get_property(IVehicleLeadTrailDataTime._metadata, IVehicleLeadTrailDataTime._get_time_metadata)

    _set_time_metadata = { "offset" : _set_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time.setter
    def time(self, value:float) -> None:
        return self._intf.set_property(IVehicleLeadTrailDataTime._metadata, IVehicleLeadTrailDataTime._set_time_metadata, value)

    _property_names[time] = "time"


agcls.AgClassCatalog.add_catalog_entry((5543876989805598204, 12572793620716963986), IVehicleLeadTrailDataTime)
agcls.AgTypeNameMap["IVehicleLeadTrailDataTime"] = IVehicleLeadTrailDataTime

class IAccessConstraint(object):
    """
    AccessConstraint used to access the AccessConstraint attributes.

    Examples
    --------
    Get access between objects by path using the existing accesses:
    >>> # STKObjectRoot root: STK Object Model root
    >>> scenario = root.current_scenario
    >>> accesses = scenario.get_existing_accesses()
    >>>
    >>> size = len(accesses)  # number of accesses
    >>>
    >>> object1 = accesses[0][0]  # e.g. "Satellite/MySatellite"
    >>> object2 = accesses[0][1]  # e.g.  "Facility/MyFacility"
    >>> computed = accesses[0][2]  # e.g. True  (if access has been computed)
    >>>
    >>> access = scenario.get_access_between_objects_by_path(object1, object2)

    Configure the access interval to the availability time span of the object where access is being computed to:
    >>> # STKObjectRoot root: STK Object Model root
    >>>
    >>> satellite = root.get_object_from_path("Satellite/MySatellite")
    >>> facility = root.get_object_from_path("Facility/MyFacility")
    >>> access = satellite.get_access_to_object(facility)
    >>>
    >>> access.access_time_period = AccessTimeType.SPECIFIED_TIME_PERIOD
    >>> accessTimePeriod = access.access_time_period_data
    >>>
    >>> if satellite.analysis_workbench_components.time_intervals.contains("AvailabilityTimeSpan"):
    >>>     availabilityTimeSpan = satellite.analysis_workbench_components.time_intervals.item("AvailabilityTimeSpan")
    >>>     accessTimePeriod.access_interval.set_implicit_interval(availabilityTimeSpan)

    Remove all access constraints except for Line Of Sight:
    >>> # AccessConstraintCollection accessConstraints: Access Constraint collection
    >>> for i in range(accessConstraints.count - 1, 0, -1):
    >>>     constraint = accessConstraints.Item(i).ConstraintName
    >>>
    >>>     if (constraint == "LineOfSight") is False:
    >>>         if constraint == "ThirdBodyObstruction":
    >>>             thirdBodyConstraint = accessConstraints.GetActiveNamedConstraint("ThirdBodyObstruction")
    >>>             assignedArray = thirdBodyConstraint.AssignedObstructions
    >>>
    >>>             for j in range(0, len(assignedArray)):
    >>>                 thirdBodyConstraint.RemoveObstruction(assignedArray[j])
    >>>
    >>>         elif constraint == "ExclusionZone":
    >>>             accessConstraints.GetActiveNamedConstraint("ExclusionZone").RemoveAll()
    >>>
    >>>         else:
    >>>             accessConstraints.RemoveNamedConstraint(constraint)

    Add an Exclusion Zone access constraint:
    >>> # AccessConstraintCollection accessConstraints: Access Constraint collection
    >>> excludeZone = accessConstraints.add_named_constraint("ExclusionZone")
    >>> excludeZone.maximum_latitude = 45
    >>> excludeZone.minimum_latitude = 15
    >>> excludeZone.minimum_longitude = -75
    >>> excludeZone.maximum_longitude = -35

    Add multiple access constraints of the same type to an STK Object:
    >>> # AccessConstraintCollection accessConstraints: Access Constraint collection
    >>>
    >>> # Add constraints
    >>> # Only the eCstrApparentTime (4), eCstrDuration (13), eCstrGMT (16), eCstrIntervals (22), eCstrLocalTime (27) constraint
    >>> # types can be added multiple times to the constraint collection.
    >>> time1 = accessConstraints.add_constraint(AccessConstraintType.LOCAL_TIME)
    >>> time1.minimum = "00:00:00.000"
    >>> time1.maximum = "23:00:00.000"

    Add and configure an altitude access constraint:
    >>> # AccessConstraintCollection accessConstraints: Access Constraint collection
    >>>
    >>> # To make this more efficient, wrap this method between calls to root.BeginUpdate() and root.EndUpdate()
    >>> # Attitude constraint
    >>> altitude = accessConstraints.add_constraint(AccessConstraintType.ALTITUDE)
    >>> altitude.enable_minimum = True
    >>> altitude.minimum = 20.5  # km

    Add and configure a central body obstruction access constraint:
    >>> # AccessConstraintCollection accessConstraints: Access Constraint collection
    >>> # Get IAgAccessCnstrCbObstruction interface
    >>> cbObstrConstraint = accessConstraints.add_constraint(AccessConstraintType.CENTRAL_BODY_OBSTRUCTION)
    >>>
    >>> # AvailableObstructions returns a one dimensional array of obstruction paths
    >>> availableArray = cbObstrConstraint.available_obstructions
    >>>
    >>> # In this example add all available obstructions
    >>> print("Available obstructions")
    >>> for i in range(0, len(availableArray)):
    >>>     print(availableArray[i])
    >>>     if availableArray[i] != "Sun":  # Sun is enabled by default
    >>>         cbObstrConstraint.add_obstruction(availableArray[i])
    >>>
    >>> # AssignedObstructions returns a one dimensional array of obstruction paths
    >>> assignedArray = cbObstrConstraint.assigned_obstructions
    >>>
    >>> print("Assigned obstructions")
    >>> for i in range(0, len(assignedArray)):
    >>>     print(assignedArray[i])

    Add and configure a sun elevation angle access constraint:
    >>> # AccessConstraintCollection accessConstraints: Access Constraint collection
    >>>
    >>> # To make this more efficient, wrap this method between calls to root.BeginUpdate() and root.EndUpdate()
    >>> minmax = accessConstraints.add_constraint(AccessConstraintType.SUN_ELEVATION_ANGLE)
    >>> minmax.enable_minimum = True
    >>> minmax.minimum = 22.2
    >>> minmax.enable_maximum = True
    >>> minmax.maximum = 77.7

    Add and configure a lunar elevation angle access constraint:
    >>> # AccessConstraintCollection accessConstraints: Access Constraint collection
    >>>
    >>> # To make this more efficient, wrap this method between calls to root.BeginUpdate() and root.EndUpdate()
    >>> minmax = accessConstraints.add_constraint(AccessConstraintType.LUNAR_ELEVATION_ANGLE)
    >>> minmax.enable_minimum = True
    >>> minmax.minimum = 11.1
    >>> minmax.enable_maximum = True
    >>> minmax.maximum = 88.8

    Add and configure a Line Of Sight sun exclusion access constraint:
    >>> # AccessConstraintCollection accessConstraints: Access Constraint collection
    >>>
    >>> # Angle constraint
    >>> cnstrAngle = accessConstraints.add_constraint(AccessConstraintType.LIGHT_OF_SIGHT_SOLAR_EXCLUSION_ANGLE)
    >>> cnstrAngle.angle = 176.0

    Add and configure a lighting condition access constraint:
    >>> # AccessConstraintCollection accessConstraints: Access Constraint collection
    >>>
    >>> # Condition constraint
    >>> light = accessConstraints.add_constraint(AccessConstraintType.LIGHTING)
    >>> light.condition = ConstraintLighting.DIRECT_SUN

    Return a list of available constraints:
    >>> # AccessConstraintCollection accessConstraints: Access Constraint collection
    >>> constraintArray = accessConstraints.available_constraints()
    >>>
    >>> print("List of Available Constraints:")
    >>> for i in range(0, len(constraintArray)):
    >>>     print(constraintArray[i])
    """

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_constraint_name_method_offset = 1
    _get_is_plugin_method_offset = 2
    _get_exclusion_interval_method_offset = 3
    _set_exclusion_interval_method_offset = 4
    _get_constraint_type_method_offset = 5
    _get_maximum_time_step_method_offset = 6
    _set_maximum_time_step_method_offset = 7
    _get_maximum_relative_motion_method_offset = 8
    _set_maximum_relative_motion_method_offset = 9
    _metadata = {
        "iid_data" : (5475738984353902352, 14451817793207909765),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAccessConstraint."""
        initialize_from_source_object(self, source_object, IAccessConstraint)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAccessConstraint)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAccessConstraint, None)

    _get_constraint_name_metadata = { "offset" : _get_constraint_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def constraint_name(self) -> str:
        """Property used to access the constraint name."""
        return self._intf.get_property(IAccessConstraint._metadata, IAccessConstraint._get_constraint_name_metadata)

    _get_is_plugin_metadata = { "offset" : _get_is_plugin_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_plugin(self) -> bool:
        """Return true if the access constraint is a plugin."""
        return self._intf.get_property(IAccessConstraint._metadata, IAccessConstraint._get_is_plugin_metadata)

    _get_exclusion_interval_metadata = { "offset" : _get_exclusion_interval_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def exclusion_interval(self) -> bool:
        """Exclude Time Intervals."""
        return self._intf.get_property(IAccessConstraint._metadata, IAccessConstraint._get_exclusion_interval_metadata)

    _set_exclusion_interval_metadata = { "offset" : _set_exclusion_interval_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @exclusion_interval.setter
    def exclusion_interval(self, excl:bool) -> None:
        return self._intf.set_property(IAccessConstraint._metadata, IAccessConstraint._set_exclusion_interval_metadata, excl)

    _get_constraint_type_metadata = { "offset" : _get_constraint_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AccessConstraintType),) }
    @property
    def constraint_type(self) -> "AccessConstraintType":
        """Property used to access the constraint type."""
        return self._intf.get_property(IAccessConstraint._metadata, IAccessConstraint._get_constraint_type_metadata)

    _get_maximum_time_step_metadata = { "offset" : _get_maximum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_time_step(self) -> float:
        """Maximum time step used in adaptive sampling."""
        return self._intf.get_property(IAccessConstraint._metadata, IAccessConstraint._get_maximum_time_step_metadata)

    _set_maximum_time_step_metadata = { "offset" : _set_maximum_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_time_step.setter
    def maximum_time_step(self, value:float) -> None:
        return self._intf.set_property(IAccessConstraint._metadata, IAccessConstraint._set_maximum_time_step_metadata, value)

    _get_maximum_relative_motion_metadata = { "offset" : _get_maximum_relative_motion_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_relative_motion(self) -> float:
        """Maximum relative motion used in adaptive sampling."""
        return self._intf.get_property(IAccessConstraint._metadata, IAccessConstraint._get_maximum_relative_motion_metadata)

    _set_maximum_relative_motion_metadata = { "offset" : _set_maximum_relative_motion_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_relative_motion.setter
    def maximum_relative_motion(self, value:float) -> None:
        return self._intf.set_property(IAccessConstraint._metadata, IAccessConstraint._set_maximum_relative_motion_metadata, value)

    _property_names[constraint_name] = "constraint_name"
    _property_names[is_plugin] = "is_plugin"
    _property_names[exclusion_interval] = "exclusion_interval"
    _property_names[constraint_type] = "constraint_type"
    _property_names[maximum_time_step] = "maximum_time_step"
    _property_names[maximum_relative_motion] = "maximum_relative_motion"


agcls.AgClassCatalog.add_catalog_entry((5475738984353902352, 14451817793207909765), IAccessConstraint)
agcls.AgTypeNameMap["IAccessConstraint"] = IAccessConstraint

class IAccessConstraintMinMaxBase(IAccessConstraint):
    """Access Constraint used for min/max constraints."""

    _num_methods = 8
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_enable_minimum_method_offset = 1
    _set_enable_minimum_method_offset = 2
    _get_enable_maximum_method_offset = 3
    _set_enable_maximum_method_offset = 4
    _get_minimum_method_offset = 5
    _set_minimum_method_offset = 6
    _get_maximum_method_offset = 7
    _set_maximum_method_offset = 8
    _metadata = {
        "iid_data" : (5169408938295385610, 3074927429574054843),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAccessConstraintMinMaxBase."""
        initialize_from_source_object(self, source_object, IAccessConstraintMinMaxBase)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAccessConstraintMinMaxBase)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAccessConstraintMinMaxBase, IAccessConstraint)

    _get_enable_minimum_metadata = { "offset" : _get_enable_minimum_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_minimum(self) -> bool:
        """Enable the Min property."""
        return self._intf.get_property(IAccessConstraintMinMaxBase._metadata, IAccessConstraintMinMaxBase._get_enable_minimum_metadata)

    _set_enable_minimum_metadata = { "offset" : _set_enable_minimum_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_minimum.setter
    def enable_minimum(self, value:bool) -> None:
        return self._intf.set_property(IAccessConstraintMinMaxBase._metadata, IAccessConstraintMinMaxBase._set_enable_minimum_metadata, value)

    _get_enable_maximum_metadata = { "offset" : _get_enable_maximum_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_maximum(self) -> bool:
        """Enable the Max property."""
        return self._intf.get_property(IAccessConstraintMinMaxBase._metadata, IAccessConstraintMinMaxBase._get_enable_maximum_metadata)

    _set_enable_maximum_metadata = { "offset" : _set_enable_maximum_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_maximum.setter
    def enable_maximum(self, value:bool) -> None:
        return self._intf.set_property(IAccessConstraintMinMaxBase._metadata, IAccessConstraintMinMaxBase._set_enable_maximum_metadata, value)

    _get_minimum_metadata = { "offset" : _get_minimum_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum(self) -> typing.Any:
        """Min value for the access constraint."""
        return self._intf.get_property(IAccessConstraintMinMaxBase._metadata, IAccessConstraintMinMaxBase._get_minimum_metadata)

    _set_minimum_metadata = { "offset" : _set_minimum_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum.setter
    def minimum(self, value:typing.Any) -> None:
        return self._intf.set_property(IAccessConstraintMinMaxBase._metadata, IAccessConstraintMinMaxBase._set_minimum_metadata, value)

    _get_maximum_metadata = { "offset" : _get_maximum_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum(self) -> typing.Any:
        """Max value for the access constrain."""
        return self._intf.get_property(IAccessConstraintMinMaxBase._metadata, IAccessConstraintMinMaxBase._get_maximum_metadata)

    _set_maximum_metadata = { "offset" : _set_maximum_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum.setter
    def maximum(self, value:typing.Any) -> None:
        return self._intf.set_property(IAccessConstraintMinMaxBase._metadata, IAccessConstraintMinMaxBase._set_maximum_metadata, value)

    _property_names[enable_minimum] = "enable_minimum"
    _property_names[enable_maximum] = "enable_maximum"
    _property_names[minimum] = "minimum"
    _property_names[maximum] = "maximum"


agcls.AgClassCatalog.add_catalog_entry((5169408938295385610, 3074927429574054843), IAccessConstraintMinMaxBase)
agcls.AgTypeNameMap["IAccessConstraintMinMaxBase"] = IAccessConstraintMinMaxBase

class IGraphics3DMarkerData(object):
    """Base Interface IGraphics3DMarkerData."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4717643828216549729, 6823134375722684837),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IGraphics3DMarkerData."""
        initialize_from_source_object(self, source_object, IGraphics3DMarkerData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IGraphics3DMarkerData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IGraphics3DMarkerData, None)



agcls.AgClassCatalog.add_catalog_entry((4717643828216549729, 6823134375722684837), IGraphics3DMarkerData)
agcls.AgTypeNameMap["IGraphics3DMarkerData"] = IGraphics3DMarkerData

class IGraphics3DModelData(object):
    """IGraphics3DModelData base interface. IGraphics3DModelFile and Graphics3DModelCollection derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4666640754645996290, 15571154125827486100),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IGraphics3DModelData."""
        initialize_from_source_object(self, source_object, IGraphics3DModelData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IGraphics3DModelData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IGraphics3DModelData, None)



agcls.AgClassCatalog.add_catalog_entry((4666640754645996290, 15571154125827486100), IGraphics3DModelData)
agcls.AgTypeNameMap["IGraphics3DModelData"] = IGraphics3DModelData

class IGraphics3DModel(object):
    """IGraphics3DModel used to access the 3D model attributes."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_visible_method_offset = 1
    _set_visible_method_offset = 2
    _get_scale_value_method_offset = 3
    _set_scale_value_method_offset = 4
    _get_detail_threshold_method_offset = 5
    _get_model_data_method_offset = 6
    _get_model_type_method_offset = 7
    _set_model_type_method_offset = 8
    _get_articulation_method_offset = 9
    _metadata = {
        "iid_data" : (5018649763518820411, 5200106272048187566),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IGraphics3DModel."""
        initialize_from_source_object(self, source_object, IGraphics3DModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IGraphics3DModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IGraphics3DModel, None)

    _get_visible_metadata = { "offset" : _get_visible_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def visible(self) -> bool:
        """Display one or several models in the 3D Graphics window."""
        return self._intf.get_property(IGraphics3DModel._metadata, IGraphics3DModel._get_visible_metadata)

    _set_visible_metadata = { "offset" : _set_visible_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @visible.setter
    def visible(self, show:bool) -> None:
        return self._intf.set_property(IGraphics3DModel._metadata, IGraphics3DModel._set_visible_metadata, show)

    _get_scale_value_metadata = { "offset" : _get_scale_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scale_value(self) -> float:
        """Specify the absolute scaling value for the object. The model scale is an exponential scale. Dimensionless."""
        return self._intf.get_property(IGraphics3DModel._metadata, IGraphics3DModel._get_scale_value_metadata)

    _set_scale_value_metadata = { "offset" : _set_scale_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scale_value.setter
    def scale_value(self, scale:float) -> None:
        return self._intf.set_property(IGraphics3DModel._metadata, IGraphics3DModel._set_scale_value_metadata, scale)

    _get_detail_threshold_metadata = { "offset" : _get_detail_threshold_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def detail_threshold(self) -> "Graphics3DDetailThreshold":
        """Get the detail threshold attributes."""
        return self._intf.get_property(IGraphics3DModel._metadata, IGraphics3DModel._get_detail_threshold_metadata)

    _get_model_data_metadata = { "offset" : _get_model_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_data(self) -> "IGraphics3DModelData":
        """Get the model data property."""
        return self._intf.get_property(IGraphics3DModel._metadata, IGraphics3DModel._get_model_data_metadata)

    _get_model_type_metadata = { "offset" : _get_model_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ModelType),) }
    @property
    def model_type(self) -> "ModelType":
        """Get or set the model type property. A member of the ModelType enumeration."""
        return self._intf.get_property(IGraphics3DModel._metadata, IGraphics3DModel._get_model_type_metadata)

    _set_model_type_metadata = { "offset" : _set_model_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ModelType),) }
    @model_type.setter
    def model_type(self, type:"ModelType") -> None:
        return self._intf.set_property(IGraphics3DModel._metadata, IGraphics3DModel._set_model_type_metadata, type)

    _get_articulation_metadata = { "offset" : _get_articulation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def articulation(self) -> "Graphics3DModelArticulation":
        """Articulation property."""
        return self._intf.get_property(IGraphics3DModel._metadata, IGraphics3DModel._get_articulation_metadata)

    _property_names[visible] = "visible"
    _property_names[scale_value] = "scale_value"
    _property_names[detail_threshold] = "detail_threshold"
    _property_names[model_data] = "model_data"
    _property_names[model_type] = "model_type"
    _property_names[articulation] = "articulation"


agcls.AgClassCatalog.add_catalog_entry((5018649763518820411, 5200106272048187566), IGraphics3DModel)
agcls.AgTypeNameMap["IGraphics3DModel"] = IGraphics3DModel

class IGraphics3DReferenceAnalysisWorkbenchComponent(object):
    """IGraphics3DReferenceAnalysisWorkbenchComponent used to access the shared properties of all 3D RefCrdn."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_identifier_method_offset = 1
    _get_name_method_offset = 2
    _get_visible_method_offset = 3
    _set_visible_method_offset = 4
    _get_color_method_offset = 5
    _set_color_method_offset = 6
    _get_show_label_method_offset = 7
    _set_show_label_method_offset = 8
    _metadata = {
        "iid_data" : (5071062409309917739, 11212184571157187722),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IGraphics3DReferenceAnalysisWorkbenchComponent."""
        initialize_from_source_object(self, source_object, IGraphics3DReferenceAnalysisWorkbenchComponent)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IGraphics3DReferenceAnalysisWorkbenchComponent)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IGraphics3DReferenceAnalysisWorkbenchComponent, None)

    _get_type_identifier_metadata = { "offset" : _get_type_identifier_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(GeometricElementType),) }
    @property
    def type_identifier(self) -> "GeometricElementType":
        """Type of component (vector, axes, angle, plane, point). A member of the GeometricElementType enumeration."""
        return self._intf.get_property(IGraphics3DReferenceAnalysisWorkbenchComponent._metadata, IGraphics3DReferenceAnalysisWorkbenchComponent._get_type_identifier_metadata)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the name of the component."""
        return self._intf.get_property(IGraphics3DReferenceAnalysisWorkbenchComponent._metadata, IGraphics3DReferenceAnalysisWorkbenchComponent._get_name_metadata)

    _get_visible_metadata = { "offset" : _get_visible_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def visible(self) -> bool:
        """Whether component is visible."""
        return self._intf.get_property(IGraphics3DReferenceAnalysisWorkbenchComponent._metadata, IGraphics3DReferenceAnalysisWorkbenchComponent._get_visible_metadata)

    _set_visible_metadata = { "offset" : _set_visible_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @visible.setter
    def visible(self, visible:bool) -> None:
        return self._intf.set_property(IGraphics3DReferenceAnalysisWorkbenchComponent._metadata, IGraphics3DReferenceAnalysisWorkbenchComponent._set_visible_metadata, visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Color of the component."""
        return self._intf.get_property(IGraphics3DReferenceAnalysisWorkbenchComponent._metadata, IGraphics3DReferenceAnalysisWorkbenchComponent._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, visible:agcolor.Color) -> None:
        return self._intf.set_property(IGraphics3DReferenceAnalysisWorkbenchComponent._metadata, IGraphics3DReferenceAnalysisWorkbenchComponent._set_color_metadata, visible)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Is the label for the component visible?"""
        return self._intf.get_property(IGraphics3DReferenceAnalysisWorkbenchComponent._metadata, IGraphics3DReferenceAnalysisWorkbenchComponent._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, value:bool) -> None:
        return self._intf.set_property(IGraphics3DReferenceAnalysisWorkbenchComponent._metadata, IGraphics3DReferenceAnalysisWorkbenchComponent._set_show_label_metadata, value)

    _property_names[type_identifier] = "type_identifier"
    _property_names[name] = "name"
    _property_names[visible] = "visible"
    _property_names[color] = "color"
    _property_names[show_label] = "show_label"


agcls.AgClassCatalog.add_catalog_entry((5071062409309917739, 11212184571157187722), IGraphics3DReferenceAnalysisWorkbenchComponent)
agcls.AgTypeNameMap["IGraphics3DReferenceAnalysisWorkbenchComponent"] = IGraphics3DReferenceAnalysisWorkbenchComponent

class ILatitudeLongitudeAltitudePosition(object):
    """Interface to set and retrieve the LLA position type."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _convert_to_method_offset = 1
    _get_type_method_offset = 2
    _assign_method_offset = 3
    _assign_centric_method_offset = 4
    _assign_detic_method_offset = 5
    _metadata = {
        "iid_data" : (4938339597828829007, 10893460557548459451),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ILatitudeLongitudeAltitudePosition."""
        initialize_from_source_object(self, source_object, ILatitudeLongitudeAltitudePosition)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ILatitudeLongitudeAltitudePosition)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ILatitudeLongitudeAltitudePosition, None)

    _convert_to_metadata = { "offset" : _convert_to_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(DeticPositionType), agmarshall.InterfaceOutArg,) }
    def convert_to(self, type:"DeticPositionType") -> "ILatitudeLongitudeAltitudePosition":
        """Change the position representation."""
        return self._intf.invoke(ILatitudeLongitudeAltitudePosition._metadata, ILatitudeLongitudeAltitudePosition._convert_to_metadata, type, OutArg())

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DeticPositionType),) }
    @property
    def type(self) -> "DeticPositionType":
        """Return the position type currently being used."""
        return self._intf.get_property(ILatitudeLongitudeAltitudePosition._metadata, ILatitudeLongitudeAltitudePosition._get_type_metadata)

    _assign_metadata = { "offset" : _assign_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ILatitudeLongitudeAltitudePosition"),) }
    def assign(self, pos:"ILatitudeLongitudeAltitudePosition") -> None:
        """Assign a new position."""
        return self._intf.invoke(ILatitudeLongitudeAltitudePosition._metadata, ILatitudeLongitudeAltitudePosition._assign_metadata, pos)

    _assign_centric_metadata = { "offset" : _assign_centric_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def assign_centric(self, lat:float, lon:float, rad:float) -> None:
        """Assign the position using geocentric representation. Lat uses Latitude Dimension. Lon Uses Longitude Dimension. Rad uses Distance Dimension."""
        return self._intf.invoke(ILatitudeLongitudeAltitudePosition._metadata, ILatitudeLongitudeAltitudePosition._assign_centric_metadata, lat, lon, rad)

    _assign_detic_metadata = { "offset" : _assign_detic_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def assign_detic(self, lat:float, lon:float, alt:float) -> None:
        """Assign the position using geodetic representation.  Lat uses Latitude Dimension. Lon Uses Longitude Dimension. Alt uses Distance Dimension."""
        return self._intf.invoke(ILatitudeLongitudeAltitudePosition._metadata, ILatitudeLongitudeAltitudePosition._assign_detic_metadata, lat, lon, alt)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4938339597828829007, 10893460557548459451), ILatitudeLongitudeAltitudePosition)
agcls.AgTypeNameMap["ILatitudeLongitudeAltitudePosition"] = ILatitudeLongitudeAltitudePosition

class IClassicalSizeShape(object):
    """Base Interface for SizeShape property. ClassicalSizeShapeAltitude, ClassicalSizeShapeMeanMotion, ClassicalSizeShapePeriod, IClassicalSizeShapeRadius and ClassicalSizeShapeSemimajorAxis derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4730643798439028108, 12397902977405054860),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IClassicalSizeShape."""
        initialize_from_source_object(self, source_object, IClassicalSizeShape)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IClassicalSizeShape)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IClassicalSizeShape, None)



agcls.AgClassCatalog.add_catalog_entry((4730643798439028108, 12397902977405054860), IClassicalSizeShape)
agcls.AgTypeNameMap["IClassicalSizeShape"] = IClassicalSizeShape

class IOrientationAscNode(object):
    """Base Interface to OrientationLongitudeOfAscending and OrientationRightAscensionOfAscendingNode."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5241219906470719617, 6656593870488189359),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IOrientationAscNode."""
        initialize_from_source_object(self, source_object, IOrientationAscNode)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IOrientationAscNode)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IOrientationAscNode, None)



agcls.AgClassCatalog.add_catalog_entry((5241219906470719617, 6656593870488189359), IOrientationAscNode)
agcls.AgTypeNameMap["IOrientationAscNode"] = IOrientationAscNode

class IClassicalLocation(object):
    """Base Interface of all IClassicalLocation* interfaces."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5574855203244913327, 960360588506921877),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IClassicalLocation."""
        initialize_from_source_object(self, source_object, IClassicalLocation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IClassicalLocation)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IClassicalLocation, None)



agcls.AgClassCatalog.add_catalog_entry((5574855203244913327, 960360588506921877), IClassicalLocation)
agcls.AgTypeNameMap["IClassicalLocation"] = IClassicalLocation

class IGeodeticSize(object):
    """Base Interface IGeodeticSize. DeticSizeAltitude and DeticSizeRadius derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4669588592286829500, 12590540741910118846),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IGeodeticSize."""
        initialize_from_source_object(self, source_object, IGeodeticSize)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IGeodeticSize)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IGeodeticSize, None)



agcls.AgClassCatalog.add_catalog_entry((4669588592286829500, 12590540741910118846), IGeodeticSize)
agcls.AgTypeNameMap["IGeodeticSize"] = IGeodeticSize

class IDelaunayActionVariable(object):
    """Interface for Delaunay Variable L, which is related to the two-body orbital energy."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5170299042433857379, 18005220533706112395),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IDelaunayActionVariable."""
        initialize_from_source_object(self, source_object, IDelaunayActionVariable)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IDelaunayActionVariable)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IDelaunayActionVariable, None)



agcls.AgClassCatalog.add_catalog_entry((5170299042433857379, 18005220533706112395), IDelaunayActionVariable)
agcls.AgTypeNameMap["IDelaunayActionVariable"] = IDelaunayActionVariable

class IFlightPathAngle(object):
    """Base Interface IFlightPathAngle. MixedSphericalFlightPathAngleHorizontal, MixedSphericalFlightPathAngleVertical, SphericalFlightPathAngleHorizontal and SphericalFlightPathAngleVertical derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5260724130063239265, 3447438162362475703),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IFlightPathAngle."""
        initialize_from_source_object(self, source_object, IFlightPathAngle)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IFlightPathAngle)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IFlightPathAngle, None)



agcls.AgClassCatalog.add_catalog_entry((5260724130063239265, 3447438162362475703), IFlightPathAngle)
agcls.AgTypeNameMap["IFlightPathAngle"] = IFlightPathAngle

class IProvideSpatialInfo(object):
    """Provide methods for accessing spatial information for an object."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_spatial_information_method_offset = 1
    _metadata = {
        "iid_data" : (5519258181714874179, 17068623591288616338),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IProvideSpatialInfo."""
        initialize_from_source_object(self, source_object, IProvideSpatialInfo)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IProvideSpatialInfo)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IProvideSpatialInfo, None)

    _get_spatial_information_metadata = { "offset" : _get_spatial_information_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantBoolArg, agmarshall.InterfaceOutArg,) }
    def get_spatial_information(self, recycle:bool) -> "VehicleSpatialInformation":
        """Return the spatial information for an object."""
        return self._intf.invoke(IProvideSpatialInfo._metadata, IProvideSpatialInfo._get_spatial_information_metadata, recycle, OutArg())



agcls.AgClassCatalog.add_catalog_entry((5519258181714874179, 17068623591288616338), IProvideSpatialInfo)
agcls.AgTypeNameMap["IProvideSpatialInfo"] = IProvideSpatialInfo

class IRadarClutterMap(object):
    """Do not use this interface, as it is deprecated. This interface is no longer used and there is no alternative. Provides access to the properties and methods defining a radar clutter map."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_models_method_offset = 1
    _set_model_method_offset = 2
    _get_model_method_offset = 3
    _metadata = {
        "iid_data" : (5222375290930092897, 12043255858453081752),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarClutterMap."""
        initialize_from_source_object(self, source_object, IRadarClutterMap)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarClutterMap)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarClutterMap, None)

    _get_supported_models_metadata = { "offset" : _get_supported_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_models(self) -> list:
        """Get an array of supported model names."""
        return self._intf.get_property(IRadarClutterMap._metadata, IRadarClutterMap._get_supported_models_metadata)

    _set_model_metadata = { "offset" : _set_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_model(self, model_name:str) -> None:
        """Set the current clutter map model by name."""
        return self._intf.invoke(IRadarClutterMap._metadata, IRadarClutterMap._set_model_metadata, model_name)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "IRadarClutterMapModel":
        """Get the current clutter map model."""
        return self._intf.get_property(IRadarClutterMap._metadata, IRadarClutterMap._get_model_metadata)

    _property_names[supported_models] = "supported_models"
    _property_names[model] = "model"


agcls.AgClassCatalog.add_catalog_entry((5222375290930092897, 12043255858453081752), IRadarClutterMap)
agcls.AgTypeNameMap["IRadarClutterMap"] = IRadarClutterMap

class ITimePeriod(object):
    """Provide methods and properties to configure start and stop times."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_time_method_offset = 1
    _get_stop_time_method_offset = 2
    _get_duration_method_offset = 3
    _set_duration_method_offset = 4
    _metadata = {
        "iid_data" : (5028400110984901840, 16655259043950189749),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ITimePeriod."""
        initialize_from_source_object(self, source_object, ITimePeriod)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ITimePeriod)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ITimePeriod, None)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def start_time(self) -> "TimePeriodValue":
        """Get a start time. Uses DateFormat Dimension."""
        return self._intf.get_property(ITimePeriod._metadata, ITimePeriod._get_start_time_metadata)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def stop_time(self) -> "TimePeriodValue":
        """Get a stop time. Uses DateFormat Dimension."""
        return self._intf.get_property(ITimePeriod._metadata, ITimePeriod._get_stop_time_metadata)

    _get_duration_metadata = { "offset" : _get_duration_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def duration(self) -> typing.Any:
        """A time duration. The value is a relative duration (i.e. ``+1 day``, ``+1 hour``)."""
        return self._intf.get_property(ITimePeriod._metadata, ITimePeriod._get_duration_metadata)

    _set_duration_metadata = { "offset" : _set_duration_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @duration.setter
    def duration(self, duration:typing.Any) -> None:
        return self._intf.set_property(ITimePeriod._metadata, ITimePeriod._set_duration_metadata, duration)

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[duration] = "duration"


agcls.AgClassCatalog.add_catalog_entry((5028400110984901840, 16655259043950189749), ITimePeriod)
agcls.AgTypeNameMap["ITimePeriod"] = ITimePeriod

class ICelestialBodyInformation(object):
    """The interface represents information associated with a celestial body."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_identifier_method_offset = 1
    _get_catalog_name_method_offset = 2
    _get_right_ascension_method_offset = 3
    _get_declination_method_offset = 4
    _get_parallax_method_offset = 5
    _get_velocity_method_offset = 6
    _get_visual_magnitude_method_offset = 7
    _get_b_minus_v_method_offset = 8
    _get_effective_temperature_method_offset = 9
    _get_magnitude_to_irradiance_conversion_factor_method_offset = 10
    _get_last_computed_direction_in_icrf_method_offset = 11
    _metadata = {
        "iid_data" : (5316967365545587076, 5301002228354090117),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ICelestialBodyInformation."""
        initialize_from_source_object(self, source_object, ICelestialBodyInformation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ICelestialBodyInformation)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ICelestialBodyInformation, None)

    _get_identifier_metadata = { "offset" : _get_identifier_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def identifier(self) -> str:
        """Get the identification of the star as per star catalog."""
        return self._intf.get_property(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_identifier_metadata)

    _get_catalog_name_metadata = { "offset" : _get_catalog_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def catalog_name(self) -> str:
        """Get a name of the star catalog."""
        return self._intf.get_property(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_catalog_name_metadata)

    _get_right_ascension_metadata = { "offset" : _get_right_ascension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def right_ascension(self) -> float:
        """Right ascention. Use the ``Angle`` dimension."""
        return self._intf.get_property(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_right_ascension_metadata)

    _get_declination_metadata = { "offset" : _get_declination_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def declination(self) -> float:
        """Declination. Use the ``Angle`` dimension."""
        return self._intf.get_property(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_declination_metadata)

    _get_parallax_metadata = { "offset" : _get_parallax_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def parallax(self) -> float:
        """Trigonometric parallax. Use the ``Angle`` dimension."""
        return self._intf.get_property(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_parallax_metadata)

    _get_velocity_metadata = { "offset" : _get_velocity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def velocity(self) -> float:
        """Radial velocity."""
        return self._intf.get_property(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_velocity_metadata)

    _get_visual_magnitude_metadata = { "offset" : _get_visual_magnitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def visual_magnitude(self) -> float:
        """Visual magnitude."""
        return self._intf.get_property(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_visual_magnitude_metadata)

    _get_b_minus_v_metadata = { "offset" : _get_b_minus_v_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def b_minus_v(self) -> float:
        """Johnson B-V color index."""
        return self._intf.get_property(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_b_minus_v_metadata)

    _get_effective_temperature_metadata = { "offset" : _get_effective_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def effective_temperature(self) -> float:
        """Star's effective temperature. Use the ``Temperature`` dimension."""
        return self._intf.get_property(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_effective_temperature_metadata)

    _get_magnitude_to_irradiance_conversion_factor_metadata = { "offset" : _get_magnitude_to_irradiance_conversion_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def magnitude_to_irradiance_conversion_factor(self) -> float:
        """Magnitude to irradiance conversion factor is not given directly in any catalog. This factor converts the Planck function radiance to a rescaled irradiance at Earth's distance from the star. Unitless."""
        return self._intf.get_property(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_magnitude_to_irradiance_conversion_factor_metadata)

    _get_last_computed_direction_in_icrf_metadata = { "offset" : _get_last_computed_direction_in_icrf_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_last_computed_direction_in_icrf(self) -> "ICartesian3Vector":
        """Return the last computed direction vector in ICRF."""
        return self._intf.invoke(ICelestialBodyInformation._metadata, ICelestialBodyInformation._get_last_computed_direction_in_icrf_metadata, OutArg())

    _property_names[identifier] = "identifier"
    _property_names[catalog_name] = "catalog_name"
    _property_names[right_ascension] = "right_ascension"
    _property_names[declination] = "declination"
    _property_names[parallax] = "parallax"
    _property_names[velocity] = "velocity"
    _property_names[visual_magnitude] = "visual_magnitude"
    _property_names[b_minus_v] = "b_minus_v"
    _property_names[effective_temperature] = "effective_temperature"
    _property_names[magnitude_to_irradiance_conversion_factor] = "magnitude_to_irradiance_conversion_factor"


agcls.AgClassCatalog.add_catalog_entry((5316967365545587076, 5301002228354090117), ICelestialBodyInformation)
agcls.AgTypeNameMap["ICelestialBodyInformation"] = ICelestialBodyInformation

class ICelestialBodyInformationCollection(object):
    """Represents a collection of celestial bodies."""

    _num_methods = 5
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _get_recycle_method_offset = 4
    _set_recycle_method_offset = 5
    _metadata = {
        "iid_data" : (4773543347010503356, 16742073454930722438),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ICelestialBodyInformationCollection."""
        initialize_from_source_object(self, source_object, ICelestialBodyInformationCollection)
        self.__dict__["_enumerator"] = None
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ICelestialBodyInformationCollection)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ICelestialBodyInformationCollection, None)
    def __iter__(self):
        """Create an iterator for the ICelestialBodyInformationCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "ICelestialBodyInformation":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(ICelestialBodyInformationCollection._metadata, ICelestialBodyInformationCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "ICelestialBodyInformation":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(ICelestialBodyInformationCollection._metadata, ICelestialBodyInformationCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(ICelestialBodyInformationCollection._metadata, ICelestialBodyInformationCollection._get__new_enum_metadata)

    _get_recycle_metadata = { "offset" : _get_recycle_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def recycle(self) -> bool:
        """Control whether to reuse the same celestial info object when accessing the elements of the collection."""
        return self._intf.get_property(ICelestialBodyInformationCollection._metadata, ICelestialBodyInformationCollection._get_recycle_metadata)

    _set_recycle_metadata = { "offset" : _set_recycle_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @recycle.setter
    def recycle(self, recycle:bool) -> None:
        return self._intf.set_property(ICelestialBodyInformationCollection._metadata, ICelestialBodyInformationCollection._set_recycle_metadata, recycle)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[recycle] = "recycle"


agcls.AgClassCatalog.add_catalog_entry((4773543347010503356, 16742073454930722438), ICelestialBodyInformationCollection)
agcls.AgTypeNameMap["ICelestialBodyInformationCollection"] = ICelestialBodyInformationCollection

class IAccessAdvanced(object):
    """Interface for configuring advanced targeting access computation properties."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_aberration_type_method_offset = 1
    _set_aberration_type_method_offset = 2
    _get_time_delay_convergence_method_offset = 3
    _set_time_delay_convergence_method_offset = 4
    _get_event_detection_method_offset = 5
    _get_sampling_method_offset = 6
    _metadata = {
        "iid_data" : (4742667574011760443, 9745610038801979301),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAccessAdvanced."""
        initialize_from_source_object(self, source_object, IAccessAdvanced)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAccessAdvanced)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAccessAdvanced, None)

    _get_aberration_type_metadata = { "offset" : _get_aberration_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AberrationType),) }
    @property
    def aberration_type(self) -> "AberrationType":
        """Model used for including aberration in apparent direction computations."""
        return self._intf.get_property(IAccessAdvanced._metadata, IAccessAdvanced._get_aberration_type_metadata)

    _set_aberration_type_metadata = { "offset" : _set_aberration_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AberrationType),) }
    @aberration_type.setter
    def aberration_type(self, aberration_type:"AberrationType") -> None:
        return self._intf.set_property(IAccessAdvanced._metadata, IAccessAdvanced._set_aberration_type_metadata, aberration_type)

    _get_time_delay_convergence_metadata = { "offset" : _get_time_delay_convergence_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_delay_convergence(self) -> float:
        """Time delay convergence tolerance. Uses Time Dimension."""
        return self._intf.get_property(IAccessAdvanced._metadata, IAccessAdvanced._get_time_delay_convergence_metadata)

    _set_time_delay_convergence_metadata = { "offset" : _set_time_delay_convergence_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_delay_convergence.setter
    def time_delay_convergence(self, time_delay_convergence:float) -> None:
        return self._intf.set_property(IAccessAdvanced._metadata, IAccessAdvanced._set_time_delay_convergence_metadata, time_delay_convergence)

    _get_event_detection_metadata = { "offset" : _get_event_detection_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def event_detection(self) -> "AccessEventDetection":
        """Event detection strategy used in access calculations."""
        return self._intf.get_property(IAccessAdvanced._metadata, IAccessAdvanced._get_event_detection_metadata)

    _get_sampling_metadata = { "offset" : _get_sampling_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sampling(self) -> "AccessSampling":
        """Sampling method used in access calculations."""
        return self._intf.get_property(IAccessAdvanced._metadata, IAccessAdvanced._get_sampling_metadata)

    _property_names[aberration_type] = "aberration_type"
    _property_names[time_delay_convergence] = "time_delay_convergence"
    _property_names[event_detection] = "event_detection"
    _property_names[sampling] = "sampling"


agcls.AgClassCatalog.add_catalog_entry((4742667574011760443, 9745610038801979301), IAccessAdvanced)
agcls.AgTypeNameMap["IAccessAdvanced"] = IAccessAdvanced

class IRefractionModelBase(object):
    """A base interface for the Refraction Models."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5518298169939898931, 11346666359500385188),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRefractionModelBase."""
        initialize_from_source_object(self, source_object, IRefractionModelBase)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRefractionModelBase)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRefractionModelBase, None)



agcls.AgClassCatalog.add_catalog_entry((5518298169939898931, 11346666359500385188), IRefractionModelBase)
agcls.AgTypeNameMap["IRefractionModelBase"] = IRefractionModelBase

class IDisplayDistance(object):
    """Base interface IDisplayDistance. ISensorProjectionDisplayDistance, SensorProjectionConstantAltitude and ISensorProjectionObjectAltitude derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5408704985411414065, 6891047350164697747),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IDisplayDistance."""
        initialize_from_source_object(self, source_object, IDisplayDistance)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IDisplayDistance)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IDisplayDistance, None)



agcls.AgClassCatalog.add_catalog_entry((5408704985411414065, 6891047350164697747), IDisplayDistance)
agcls.AgTypeNameMap["IDisplayDistance"] = IDisplayDistance

class ISensorProjectionDisplayDistance(object):
    """ISensorProjectionDisplayDistance Interface for setting projection altitude options for a sensor."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_minimum_method_offset = 1
    _set_minimum_method_offset = 2
    _get_maximum_method_offset = 3
    _set_maximum_method_offset = 4
    _get_number_of_steps_method_offset = 5
    _set_number_of_steps_method_offset = 6
    _get_projects_thru_crossing_method_offset = 7
    _set_projects_thru_crossing_method_offset = 8
    _get_altitude_crossing_sides_method_offset = 9
    _set_altitude_crossing_sides_method_offset = 10
    _get_direction_method_offset = 11
    _set_direction_method_offset = 12
    _metadata = {
        "iid_data" : (4953315966664432405, 4968517206403938974),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ISensorProjectionDisplayDistance."""
        initialize_from_source_object(self, source_object, ISensorProjectionDisplayDistance)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ISensorProjectionDisplayDistance)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ISensorProjectionDisplayDistance, None)

    _get_minimum_metadata = { "offset" : _get_minimum_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum(self) -> float:
        """Minimum altitude above the facility, place or target from which the sensor projects. Uses Distance Dimension."""
        return self._intf.get_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._get_minimum_metadata)

    _set_minimum_metadata = { "offset" : _set_minimum_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum.setter
    def minimum(self, value:float) -> None:
        return self._intf.set_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._set_minimum_metadata, value)

    _get_maximum_metadata = { "offset" : _get_maximum_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum(self) -> float:
        """Maximum altitude above the facility, place or target from which the sensor projects. Uses Distance Dimension."""
        return self._intf.get_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._get_maximum_metadata)

    _set_maximum_metadata = { "offset" : _set_maximum_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum.setter
    def maximum(self, value:float) -> None:
        return self._intf.set_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._set_maximum_metadata, value)

    _get_number_of_steps_metadata = { "offset" : _get_number_of_steps_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_steps(self) -> int:
        """Step count. Determines the interval between sensor projections. For a specified min/max altitude: the step count determines the number and altitude of projections to be displayed. Dimensionless."""
        return self._intf.get_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._get_number_of_steps_metadata)

    _set_number_of_steps_metadata = { "offset" : _set_number_of_steps_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_steps.setter
    def number_of_steps(self, value:int) -> None:
        return self._intf.set_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._set_number_of_steps_metadata, value)

    _get_projects_thru_crossing_metadata = { "offset" : _get_projects_thru_crossing_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def projects_thru_crossing(self) -> bool:
        """Specify whether the sensor's field-of-view will extend beyond specified crossings."""
        return self._intf.get_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._get_projects_thru_crossing_metadata)

    _set_projects_thru_crossing_metadata = { "offset" : _set_projects_thru_crossing_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @projects_thru_crossing.setter
    def projects_thru_crossing(self, show_ground_crossing:bool) -> None:
        return self._intf.set_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._set_projects_thru_crossing_metadata, show_ground_crossing)

    _get_altitude_crossing_sides_metadata = { "offset" : _get_altitude_crossing_sides_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorAltitudeCrossingSideType),) }
    @property
    def altitude_crossing_sides(self) -> "SensorAltitudeCrossingSideType":
        """Indicate which crossings are computed and displayed in the 2D Graphics window."""
        return self._intf.get_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._get_altitude_crossing_sides_metadata)

    _set_altitude_crossing_sides_metadata = { "offset" : _set_altitude_crossing_sides_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorAltitudeCrossingSideType),) }
    @altitude_crossing_sides.setter
    def altitude_crossing_sides(self, alt_crossing_sides:"SensorAltitudeCrossingSideType") -> None:
        return self._intf.set_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._set_altitude_crossing_sides_metadata, alt_crossing_sides)

    _get_direction_metadata = { "offset" : _get_direction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorAltitudeCrossingDirection),) }
    @property
    def direction(self) -> "SensorAltitudeCrossingDirection":
        """Indicate the direction in which the sensor's field of view crosses the specified altitude."""
        return self._intf.get_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._get_direction_metadata)

    _set_direction_metadata = { "offset" : _set_direction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorAltitudeCrossingDirection),) }
    @direction.setter
    def direction(self, direction:"SensorAltitudeCrossingDirection") -> None:
        return self._intf.set_property(ISensorProjectionDisplayDistance._metadata, ISensorProjectionDisplayDistance._set_direction_metadata, direction)

    _property_names[minimum] = "minimum"
    _property_names[maximum] = "maximum"
    _property_names[number_of_steps] = "number_of_steps"
    _property_names[projects_thru_crossing] = "projects_thru_crossing"
    _property_names[altitude_crossing_sides] = "altitude_crossing_sides"
    _property_names[direction] = "direction"


agcls.AgClassCatalog.add_catalog_entry((4953315966664432405, 4968517206403938974), ISensorProjectionDisplayDistance)
agcls.AgTypeNameMap["ISensorProjectionDisplayDistance"] = ISensorProjectionDisplayDistance

class ISensorPattern(object):
    """Base interface ISensorPattern. SensorComplexConicPattern, SensorCustomPattern, SensorHalfPowerPattern, SensorRectangularPattern, SensorSARPattern, SensorEOIRPattern and ISensorSimpleConicPattern implement this interface."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4822074903610663257, 670794337477858212),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ISensorPattern."""
        initialize_from_source_object(self, source_object, ISensorPattern)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ISensorPattern)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ISensorPattern, None)



agcls.AgClassCatalog.add_catalog_entry((4822074903610663257, 670794337477858212), ISensorPattern)
agcls.AgTypeNameMap["ISensorPattern"] = ISensorPattern

class ISensorPointingTargetedBoresight(object):
    """Base interface ISensorPointingTargetedBoresight. SensorPointingTargetedBoresightFixed and ISensorPointingTargetedBoresightTrack derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5520308939413169285, 2414484971931353535),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ISensorPointingTargetedBoresight."""
        initialize_from_source_object(self, source_object, ISensorPointingTargetedBoresight)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ISensorPointingTargetedBoresight)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ISensorPointingTargetedBoresight, None)



agcls.AgClassCatalog.add_catalog_entry((5520308939413169285, 2414484971931353535), ISensorPointingTargetedBoresight)
agcls.AgTypeNameMap["ISensorPointingTargetedBoresight"] = ISensorPointingTargetedBoresight

class ISensorPointing(object):
    """Base interface ISensorPointing. ISensorPointing3DModel, SensorPointingExternal, ISensorPointingFixed, SensorPointingFixedInAxes, SensorPointingGrazingAltitude, IAgSnPtTargeted, SensorPointingAlongVector and IAgSnPtSchedule implement this interface."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4916161629126725326, 4167207342323185846),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ISensorPointing."""
        initialize_from_source_object(self, source_object, ISensorPointing)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ISensorPointing)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ISensorPointing, None)



agcls.AgClassCatalog.add_catalog_entry((4916161629126725326, 4167207342323185846), ISensorPointing)
agcls.AgTypeNameMap["ISensorPointing"] = ISensorPointing

class IAzElMaskData(object):
    """Base interface IAzElMaskData. SensorAzElMaskFile implements this interface."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5484583649368958181, 10363226351646093733),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAzElMaskData."""
        initialize_from_source_object(self, source_object, IAzElMaskData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAzElMaskData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAzElMaskData, None)



agcls.AgClassCatalog.add_catalog_entry((5484583649368958181, 10363226351646093733), IAzElMaskData)
agcls.AgTypeNameMap["IAzElMaskData"] = IAzElMaskData

class IRadarClutterMapInheritable(object):
    """Do not use this interface, as it is deprecated. This interface is no longer used and there is no alternative. Provides access to the properties and methods defining a radar inheritable clutter map."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_method_offset = 1
    _set_inherit_method_offset = 2
    _get_clutter_map_method_offset = 3
    _metadata = {
        "iid_data" : (5644681324895647268, 18226136145008367515),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarClutterMapInheritable."""
        initialize_from_source_object(self, source_object, IRadarClutterMapInheritable)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarClutterMapInheritable)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarClutterMapInheritable, None)

    _get_inherit_metadata = { "offset" : _get_inherit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit(self) -> bool:
        """Get or set the option to inherit the clutter map from the scenario object."""
        return self._intf.get_property(IRadarClutterMapInheritable._metadata, IRadarClutterMapInheritable._get_inherit_metadata)

    _set_inherit_metadata = { "offset" : _set_inherit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit.setter
    def inherit(self, value:bool) -> None:
        return self._intf.set_property(IRadarClutterMapInheritable._metadata, IRadarClutterMapInheritable._set_inherit_metadata, value)

    _get_clutter_map_metadata = { "offset" : _get_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def clutter_map(self) -> "IRadarClutterMap":
        """Get the radar clutter map."""
        return self._intf.get_property(IRadarClutterMapInheritable._metadata, IRadarClutterMapInheritable._get_clutter_map_metadata)

    _property_names[inherit] = "inherit"
    _property_names[clutter_map] = "clutter_map"


agcls.AgClassCatalog.add_catalog_entry((5644681324895647268, 18226136145008367515), IRadarClutterMapInheritable)
agcls.AgTypeNameMap["IRadarClutterMapInheritable"] = IRadarClutterMapInheritable

class IPlatformRFEnvironment(object):
    """Provide access to the properties and methods defining the platform RF environment."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_local_rain_data_method_offset = 1
    _set_enable_local_rain_data_method_offset = 2
    _get_local_rain_height_method_offset = 3
    _set_local_rain_height_method_offset = 4
    _get_local_rain_rate_method_offset = 5
    _set_local_rain_rate_method_offset = 6
    _get_local_surface_temperature_method_offset = 7
    _set_local_surface_temperature_method_offset = 8
    _get_propagation_channel_method_offset = 9
    _metadata = {
        "iid_data" : (5460182035440078467, 11199460751244848043),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPlatformRFEnvironment."""
        initialize_from_source_object(self, source_object, IPlatformRFEnvironment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPlatformRFEnvironment)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPlatformRFEnvironment, None)

    _get_enable_local_rain_data_metadata = { "offset" : _get_enable_local_rain_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_local_rain_data(self) -> bool:
        """Get or set the option for enabling local rain data."""
        return self._intf.get_property(IPlatformRFEnvironment._metadata, IPlatformRFEnvironment._get_enable_local_rain_data_metadata)

    _set_enable_local_rain_data_metadata = { "offset" : _set_enable_local_rain_data_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_local_rain_data.setter
    def enable_local_rain_data(self, value:bool) -> None:
        return self._intf.set_property(IPlatformRFEnvironment._metadata, IPlatformRFEnvironment._set_enable_local_rain_data_metadata, value)

    _get_local_rain_height_metadata = { "offset" : _get_local_rain_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_rain_height(self) -> float:
        """Get or set the local rain iso height."""
        return self._intf.get_property(IPlatformRFEnvironment._metadata, IPlatformRFEnvironment._get_local_rain_height_metadata)

    _set_local_rain_height_metadata = { "offset" : _set_local_rain_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_rain_height.setter
    def local_rain_height(self, value:float) -> None:
        return self._intf.set_property(IPlatformRFEnvironment._metadata, IPlatformRFEnvironment._set_local_rain_height_metadata, value)

    _get_local_rain_rate_metadata = { "offset" : _get_local_rain_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_rain_rate(self) -> float:
        """Get or set the local rain rate."""
        return self._intf.get_property(IPlatformRFEnvironment._metadata, IPlatformRFEnvironment._get_local_rain_rate_metadata)

    _set_local_rain_rate_metadata = { "offset" : _set_local_rain_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_rain_rate.setter
    def local_rain_rate(self, value:float) -> None:
        return self._intf.set_property(IPlatformRFEnvironment._metadata, IPlatformRFEnvironment._set_local_rain_rate_metadata, value)

    _get_local_surface_temperature_metadata = { "offset" : _get_local_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_surface_temperature(self) -> float:
        """Get or set the local surface temperature."""
        return self._intf.get_property(IPlatformRFEnvironment._metadata, IPlatformRFEnvironment._get_local_surface_temperature_metadata)

    _set_local_surface_temperature_metadata = { "offset" : _set_local_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_surface_temperature.setter
    def local_surface_temperature(self, value:float) -> None:
        return self._intf.set_property(IPlatformRFEnvironment._metadata, IPlatformRFEnvironment._set_local_surface_temperature_metadata, value)

    _get_propagation_channel_metadata = { "offset" : _get_propagation_channel_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def propagation_channel(self) -> "PropagationChannel":
        """Get the propagation channel."""
        return self._intf.get_property(IPlatformRFEnvironment._metadata, IPlatformRFEnvironment._get_propagation_channel_metadata)

    _property_names[enable_local_rain_data] = "enable_local_rain_data"
    _property_names[local_rain_height] = "local_rain_height"
    _property_names[local_rain_rate] = "local_rain_rate"
    _property_names[local_surface_temperature] = "local_surface_temperature"
    _property_names[propagation_channel] = "propagation_channel"


agcls.AgClassCatalog.add_catalog_entry((5460182035440078467, 11199460751244848043), IPlatformRFEnvironment)
agcls.AgTypeNameMap["IPlatformRFEnvironment"] = IPlatformRFEnvironment

class IAreaTypeData(object):
    """Base interface IAreaTypeData. AreaTypePatternCollection and AreaTypeEllipse derive from it."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5664566626614236498, 14474624381359299515),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAreaTypeData."""
        initialize_from_source_object(self, source_object, IAreaTypeData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAreaTypeData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAreaTypeData, None)



agcls.AgClassCatalog.add_catalog_entry((5664566626614236498, 14474624381359299515), IAreaTypeData)
agcls.AgTypeNameMap["IAreaTypeData"] = IAreaTypeData

class IPositionSourceData(object):
    """Base interface to PlanetPositionCentralBody and PlanetPositionFile."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4944781973044139013, 9561431264782681733),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPositionSourceData."""
        initialize_from_source_object(self, source_object, IPositionSourceData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPositionSourceData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPositionSourceData, None)



agcls.AgClassCatalog.add_catalog_entry((4944781973044139013, 9561431264782681733), IPositionSourceData)
agcls.AgTypeNameMap["IPositionSourceData"] = IPositionSourceData

class IOrbitDisplayData(object):
    """IOrbitDisplayData Interface. PlanetOrbitDisplayTime derives from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5221333333925059073, 1713820497602169998),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IOrbitDisplayData."""
        initialize_from_source_object(self, source_object, IOrbitDisplayData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IOrbitDisplayData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IOrbitDisplayData, None)



agcls.AgClassCatalog.add_catalog_entry((5221333333925059073, 1713820497602169998), IOrbitDisplayData)
agcls.AgTypeNameMap["IOrbitDisplayData"] = IOrbitDisplayData

class IPolarization(object):
    """Provide the base interface for the a polarization object."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5345158656874615605, 10854876898822590373),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPolarization."""
        initialize_from_source_object(self, source_object, IPolarization)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPolarization)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPolarization, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    @property
    def type(self) -> "PolarizationType":
        """Get the polarization type."""
        return self._intf.get_property(IPolarization._metadata, IPolarization._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5345158656874615605, 10854876898822590373), IPolarization)
agcls.AgTypeNameMap["IPolarization"] = IPolarization

class IPolarizationElliptical(object):
    """Provide the interface for elliptical polarization."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_reference_axis_method_offset = 1
    _set_reference_axis_method_offset = 2
    _get_tilt_angle_method_offset = 3
    _set_tilt_angle_method_offset = 4
    _get_axial_ratio_method_offset = 5
    _set_axial_ratio_method_offset = 6
    _metadata = {
        "iid_data" : (4696269047906975590, 8205225471499450812),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPolarizationElliptical."""
        initialize_from_source_object(self, source_object, IPolarizationElliptical)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPolarizationElliptical)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPolarizationElliptical, None)

    _get_reference_axis_metadata = { "offset" : _get_reference_axis_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PolarizationReferenceAxis),) }
    @property
    def reference_axis(self) -> "PolarizationReferenceAxis":
        """Get or set the polarization reference axis."""
        return self._intf.get_property(IPolarizationElliptical._metadata, IPolarizationElliptical._get_reference_axis_metadata)

    _set_reference_axis_metadata = { "offset" : _set_reference_axis_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationReferenceAxis),) }
    @reference_axis.setter
    def reference_axis(self, value:"PolarizationReferenceAxis") -> None:
        return self._intf.set_property(IPolarizationElliptical._metadata, IPolarizationElliptical._set_reference_axis_metadata, value)

    _get_tilt_angle_metadata = { "offset" : _get_tilt_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def tilt_angle(self) -> typing.Any:
        """Get or set the polarization tilt angle."""
        return self._intf.get_property(IPolarizationElliptical._metadata, IPolarizationElliptical._get_tilt_angle_metadata)

    _set_tilt_angle_metadata = { "offset" : _set_tilt_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @tilt_angle.setter
    def tilt_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(IPolarizationElliptical._metadata, IPolarizationElliptical._set_tilt_angle_metadata, value)

    _get_axial_ratio_metadata = { "offset" : _get_axial_ratio_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def axial_ratio(self) -> float:
        """Get or set the polarization axial ratio."""
        return self._intf.get_property(IPolarizationElliptical._metadata, IPolarizationElliptical._get_axial_ratio_metadata)

    _set_axial_ratio_metadata = { "offset" : _set_axial_ratio_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @axial_ratio.setter
    def axial_ratio(self, value:float) -> None:
        return self._intf.set_property(IPolarizationElliptical._metadata, IPolarizationElliptical._set_axial_ratio_metadata, value)

    _property_names[reference_axis] = "reference_axis"
    _property_names[tilt_angle] = "tilt_angle"
    _property_names[axial_ratio] = "axial_ratio"


agcls.AgClassCatalog.add_catalog_entry((4696269047906975590, 8205225471499450812), IPolarizationElliptical)
agcls.AgTypeNameMap["IPolarizationElliptical"] = IPolarizationElliptical

class IPolarizationCrossPolLeakage(object):
    """Provide the interface for polarization cross pol leakage."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_cross_polarization_leakage_method_offset = 1
    _set_cross_polarization_leakage_method_offset = 2
    _metadata = {
        "iid_data" : (5146923506495716281, 6991895547169696948),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPolarizationCrossPolLeakage."""
        initialize_from_source_object(self, source_object, IPolarizationCrossPolLeakage)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPolarizationCrossPolLeakage)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPolarizationCrossPolLeakage, None)

    _get_cross_polarization_leakage_metadata = { "offset" : _get_cross_polarization_leakage_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cross_polarization_leakage(self) -> float:
        """Get or set the polarization cross pol leakage."""
        return self._intf.get_property(IPolarizationCrossPolLeakage._metadata, IPolarizationCrossPolLeakage._get_cross_polarization_leakage_metadata)

    _set_cross_polarization_leakage_metadata = { "offset" : _set_cross_polarization_leakage_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cross_polarization_leakage.setter
    def cross_polarization_leakage(self, value:float) -> None:
        return self._intf.set_property(IPolarizationCrossPolLeakage._metadata, IPolarizationCrossPolLeakage._set_cross_polarization_leakage_metadata, value)

    _property_names[cross_polarization_leakage] = "cross_polarization_leakage"


agcls.AgClassCatalog.add_catalog_entry((5146923506495716281, 6991895547169696948), IPolarizationCrossPolLeakage)
agcls.AgTypeNameMap["IPolarizationCrossPolLeakage"] = IPolarizationCrossPolLeakage

class IPolarizationLinear(object):
    """Provide the interface for linear polarization."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_reference_axis_method_offset = 1
    _set_reference_axis_method_offset = 2
    _get_tilt_angle_method_offset = 3
    _set_tilt_angle_method_offset = 4
    _metadata = {
        "iid_data" : (5075030604204446319, 1127214944361484169),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPolarizationLinear."""
        initialize_from_source_object(self, source_object, IPolarizationLinear)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPolarizationLinear)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPolarizationLinear, None)

    _get_reference_axis_metadata = { "offset" : _get_reference_axis_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PolarizationReferenceAxis),) }
    @property
    def reference_axis(self) -> "PolarizationReferenceAxis":
        """Get or set the polarization reference axis."""
        return self._intf.get_property(IPolarizationLinear._metadata, IPolarizationLinear._get_reference_axis_metadata)

    _set_reference_axis_metadata = { "offset" : _set_reference_axis_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationReferenceAxis),) }
    @reference_axis.setter
    def reference_axis(self, value:"PolarizationReferenceAxis") -> None:
        return self._intf.set_property(IPolarizationLinear._metadata, IPolarizationLinear._set_reference_axis_metadata, value)

    _get_tilt_angle_metadata = { "offset" : _get_tilt_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def tilt_angle(self) -> typing.Any:
        """Get or set the polarization tilt angle."""
        return self._intf.get_property(IPolarizationLinear._metadata, IPolarizationLinear._get_tilt_angle_metadata)

    _set_tilt_angle_metadata = { "offset" : _set_tilt_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @tilt_angle.setter
    def tilt_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(IPolarizationLinear._metadata, IPolarizationLinear._set_tilt_angle_metadata, value)

    _property_names[reference_axis] = "reference_axis"
    _property_names[tilt_angle] = "tilt_angle"


agcls.AgClassCatalog.add_catalog_entry((5075030604204446319, 1127214944361484169), IPolarizationLinear)
agcls.AgTypeNameMap["IPolarizationLinear"] = IPolarizationLinear

class IPolarizationHorizontal(object):
    """Provide the interface for linear polarization."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_reference_axis_method_offset = 1
    _set_reference_axis_method_offset = 2
    _get_tilt_angle_method_offset = 3
    _metadata = {
        "iid_data" : (5113008820318405253, 3721014887644194443),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPolarizationHorizontal."""
        initialize_from_source_object(self, source_object, IPolarizationHorizontal)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPolarizationHorizontal)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPolarizationHorizontal, None)

    _get_reference_axis_metadata = { "offset" : _get_reference_axis_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PolarizationReferenceAxis),) }
    @property
    def reference_axis(self) -> "PolarizationReferenceAxis":
        """Get or set the polarization reference axis."""
        return self._intf.get_property(IPolarizationHorizontal._metadata, IPolarizationHorizontal._get_reference_axis_metadata)

    _set_reference_axis_metadata = { "offset" : _set_reference_axis_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationReferenceAxis),) }
    @reference_axis.setter
    def reference_axis(self, value:"PolarizationReferenceAxis") -> None:
        return self._intf.set_property(IPolarizationHorizontal._metadata, IPolarizationHorizontal._set_reference_axis_metadata, value)

    _get_tilt_angle_metadata = { "offset" : _get_tilt_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def tilt_angle(self) -> typing.Any:
        """Get the polarization tilt angle."""
        return self._intf.get_property(IPolarizationHorizontal._metadata, IPolarizationHorizontal._get_tilt_angle_metadata)

    _property_names[reference_axis] = "reference_axis"
    _property_names[tilt_angle] = "tilt_angle"


agcls.AgClassCatalog.add_catalog_entry((5113008820318405253, 3721014887644194443), IPolarizationHorizontal)
agcls.AgTypeNameMap["IPolarizationHorizontal"] = IPolarizationHorizontal

class IPolarizationVertical(object):
    """Provide the interface for linear polarization."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_reference_axis_method_offset = 1
    _set_reference_axis_method_offset = 2
    _get_tilt_angle_method_offset = 3
    _metadata = {
        "iid_data" : (4688580435089806816, 9730430946210584966),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPolarizationVertical."""
        initialize_from_source_object(self, source_object, IPolarizationVertical)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPolarizationVertical)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPolarizationVertical, None)

    _get_reference_axis_metadata = { "offset" : _get_reference_axis_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PolarizationReferenceAxis),) }
    @property
    def reference_axis(self) -> "PolarizationReferenceAxis":
        """Get or set the polarization reference axis."""
        return self._intf.get_property(IPolarizationVertical._metadata, IPolarizationVertical._get_reference_axis_metadata)

    _set_reference_axis_metadata = { "offset" : _set_reference_axis_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationReferenceAxis),) }
    @reference_axis.setter
    def reference_axis(self, value:"PolarizationReferenceAxis") -> None:
        return self._intf.set_property(IPolarizationVertical._metadata, IPolarizationVertical._set_reference_axis_metadata, value)

    _get_tilt_angle_metadata = { "offset" : _get_tilt_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def tilt_angle(self) -> typing.Any:
        """Get the polarization tilt angle."""
        return self._intf.get_property(IPolarizationVertical._metadata, IPolarizationVertical._get_tilt_angle_metadata)

    _property_names[reference_axis] = "reference_axis"
    _property_names[tilt_angle] = "tilt_angle"


agcls.AgClassCatalog.add_catalog_entry((4688580435089806816, 9730430946210584966), IPolarizationVertical)
agcls.AgTypeNameMap["IPolarizationVertical"] = IPolarizationVertical

class IPointingStrategy(object):
    """Provide the base interface for a pointing strategy."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5759398571514398171, 12684185655943868585),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPointingStrategy."""
        initialize_from_source_object(self, source_object, IPointingStrategy)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPointingStrategy)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPointingStrategy, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PointingStrategyType),) }
    @property
    def type(self) -> "PointingStrategyType":
        """Get the pointing strategy type."""
        return self._intf.get_property(IPointingStrategy._metadata, IPointingStrategy._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5759398571514398171, 12684185655943868585), IPointingStrategy)
agcls.AgTypeNameMap["IPointingStrategy"] = IPointingStrategy

class IWaveform(object):
    """Provide access to the properties and methods defining an antenna model."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _get_frequency_specification_method_offset = 3
    _set_frequency_specification_method_offset = 4
    _get_frequency_method_offset = 5
    _set_frequency_method_offset = 6
    _get_wavelength_method_offset = 7
    _set_wavelength_method_offset = 8
    _get_power_method_offset = 9
    _set_power_method_offset = 10
    _metadata = {
        "iid_data" : (5687517008246973263, 10742001917010752406),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IWaveform."""
        initialize_from_source_object(self, source_object, IWaveform)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IWaveform)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IWaveform, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the waveform name."""
        return self._intf.get_property(IWaveform._metadata, IWaveform._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(WaveformType),) }
    @property
    def type(self) -> "WaveformType":
        """Get the waveform type enumeration."""
        return self._intf.get_property(IWaveform._metadata, IWaveform._get_type_metadata)

    _get_frequency_specification_metadata = { "offset" : _get_frequency_specification_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FrequencySpecificationType),) }
    @property
    def frequency_specification(self) -> "FrequencySpecificationType":
        """Get or set the frequency specification."""
        return self._intf.get_property(IWaveform._metadata, IWaveform._get_frequency_specification_metadata)

    _set_frequency_specification_metadata = { "offset" : _set_frequency_specification_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FrequencySpecificationType),) }
    @frequency_specification.setter
    def frequency_specification(self, value:"FrequencySpecificationType") -> None:
        return self._intf.set_property(IWaveform._metadata, IWaveform._set_frequency_specification_metadata, value)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the frequency."""
        return self._intf.get_property(IWaveform._metadata, IWaveform._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(IWaveform._metadata, IWaveform._set_frequency_metadata, value)

    _get_wavelength_metadata = { "offset" : _get_wavelength_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def wavelength(self) -> float:
        """Get or set the wavelength."""
        return self._intf.get_property(IWaveform._metadata, IWaveform._get_wavelength_metadata)

    _set_wavelength_metadata = { "offset" : _set_wavelength_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @wavelength.setter
    def wavelength(self, value:float) -> None:
        return self._intf.set_property(IWaveform._metadata, IWaveform._set_wavelength_metadata, value)

    _get_power_metadata = { "offset" : _get_power_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def power(self) -> float:
        """Get the power."""
        return self._intf.get_property(IWaveform._metadata, IWaveform._get_power_metadata)

    _set_power_metadata = { "offset" : _set_power_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @power.setter
    def power(self, power:float) -> None:
        """Set the power."""
        return self._intf.set_property(IWaveform._metadata, IWaveform._set_power_metadata, power)

    _property_names[name] = "name"
    _property_names[type] = "type"
    _property_names[frequency_specification] = "frequency_specification"
    _property_names[frequency] = "frequency"
    _property_names[wavelength] = "wavelength"
    _property_names[power] = "power"


agcls.AgClassCatalog.add_catalog_entry((5687517008246973263, 10742001917010752406), IWaveform)
agcls.AgTypeNameMap["IWaveform"] = IWaveform

class IWaveformSelectionStrategy(object):
    """Provide the base interface for a waveform selection strategy."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (4742759297577063839, 1658392309505849478),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IWaveformSelectionStrategy."""
        initialize_from_source_object(self, source_object, IWaveformSelectionStrategy)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IWaveformSelectionStrategy)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IWaveformSelectionStrategy, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(WaveformSelectionStrategyType),) }
    @property
    def type(self) -> "WaveformSelectionStrategyType":
        """Get the waveform selection strategy type."""
        return self._intf.get_property(IWaveformSelectionStrategy._metadata, IWaveformSelectionStrategy._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4742759297577063839, 1658392309505849478), IWaveformSelectionStrategy)
agcls.AgTypeNameMap["IWaveformSelectionStrategy"] = IWaveformSelectionStrategy

class IScatteringPointProvider(object):
    """Provide access to the properties and methods defining a scattering point provider."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_point_provider_type_method_offset = 2
    _metadata = {
        "iid_data" : (5665591179565422222, 8071005272408887452),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IScatteringPointProvider."""
        initialize_from_source_object(self, source_object, IScatteringPointProvider)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IScatteringPointProvider)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IScatteringPointProvider, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the scattering point provider name."""
        return self._intf.get_property(IScatteringPointProvider._metadata, IScatteringPointProvider._get_name_metadata)

    _get_point_provider_type_metadata = { "offset" : _get_point_provider_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ScatteringPointProviderType),) }
    @property
    def point_provider_type(self) -> "ScatteringPointProviderType":
        """Get the scattering point provider type enumeration."""
        return self._intf.get_property(IScatteringPointProvider._metadata, IScatteringPointProvider._get_point_provider_type_metadata)

    _property_names[name] = "name"
    _property_names[point_provider_type] = "point_provider_type"


agcls.AgClassCatalog.add_catalog_entry((5665591179565422222, 8071005272408887452), IScatteringPointProvider)
agcls.AgTypeNameMap["IScatteringPointProvider"] = IScatteringPointProvider

class IScatteringPointModel(object):
    """Provide access to the properties and methods defining a scattering point model model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5087163638513298695, 4166810130017342357),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IScatteringPointModel."""
        initialize_from_source_object(self, source_object, IScatteringPointModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IScatteringPointModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IScatteringPointModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the radar clutter map model name."""
        return self._intf.get_property(IScatteringPointModel._metadata, IScatteringPointModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ScatteringPointModelType),) }
    @property
    def type(self) -> "ScatteringPointModelType":
        """Get the radar clutter map model type enumeration."""
        return self._intf.get_property(IScatteringPointModel._metadata, IScatteringPointModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5087163638513298695, 4166810130017342357), IScatteringPointModel)
agcls.AgTypeNameMap["IScatteringPointModel"] = IScatteringPointModel

class IAntennaModel(object):
    """Provide access to the properties and methods defining an antenna model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _get_design_frequency_method_offset = 3
    _set_design_frequency_method_offset = 4
    _metadata = {
        "iid_data" : (5365902589649152657, 16999847558138990507),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAntennaModel."""
        initialize_from_source_object(self, source_object, IAntennaModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAntennaModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAntennaModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the antenna model name."""
        return self._intf.get_property(IAntennaModel._metadata, IAntennaModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AntennaModelType),) }
    @property
    def type(self) -> "AntennaModelType":
        """Get the antenna model type enumeration."""
        return self._intf.get_property(IAntennaModel._metadata, IAntennaModel._get_type_metadata)

    _get_design_frequency_metadata = { "offset" : _get_design_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def design_frequency(self) -> float:
        """Get the antenna design frequency."""
        return self._intf.get_property(IAntennaModel._metadata, IAntennaModel._get_design_frequency_metadata)

    _set_design_frequency_metadata = { "offset" : _set_design_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @design_frequency.setter
    def design_frequency(self, design_freq:float) -> None:
        """Set the antenna design frequency."""
        return self._intf.set_property(IAntennaModel._metadata, IAntennaModel._set_design_frequency_metadata, design_freq)

    _property_names[name] = "name"
    _property_names[type] = "type"
    _property_names[design_frequency] = "design_frequency"


agcls.AgClassCatalog.add_catalog_entry((5365902589649152657, 16999847558138990507), IAntennaModel)
agcls.AgTypeNameMap["IAntennaModel"] = IAntennaModel

class IElementConfiguration(object):
    """Provide access to the properties and methods defining an element configuration."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (4943613592835937335, 17694237556676747419),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IElementConfiguration."""
        initialize_from_source_object(self, source_object, IElementConfiguration)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IElementConfiguration)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IElementConfiguration, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ElementConfigurationType),) }
    @property
    def type(self) -> "ElementConfigurationType":
        """Get the element configuration type enumeration."""
        return self._intf.get_property(IElementConfiguration._metadata, IElementConfiguration._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4943613592835937335, 17694237556676747419), IElementConfiguration)
agcls.AgTypeNameMap["IElementConfiguration"] = IElementConfiguration

class IElementConfigurationPolygon(object):
    """Provide access to the properties and methods defining a polygon element configuration."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_lattice_type_method_offset = 1
    _set_lattice_type_method_offset = 2
    _get_number_of_sides_method_offset = 3
    _set_number_of_sides_method_offset = 4
    _get_equilateral_method_offset = 5
    _set_equilateral_method_offset = 6
    _get_number_of_x_elements_method_offset = 7
    _set_number_of_x_elements_method_offset = 8
    _get_number_of_y_elements_method_offset = 9
    _set_number_of_y_elements_method_offset = 10
    _get_spacing_x_method_offset = 11
    _set_spacing_x_method_offset = 12
    _get_spacing_y_method_offset = 13
    _set_spacing_y_method_offset = 14
    _get_maximum_look_angle_elevation_method_offset = 15
    _get_maximum_look_angle_azimuth_method_offset = 16
    _get_spacing_unit_method_offset = 17
    _set_spacing_unit_method_offset = 18
    _metadata = {
        "iid_data" : (5541671416868424088, 1719543556508628147),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IElementConfigurationPolygon."""
        initialize_from_source_object(self, source_object, IElementConfigurationPolygon)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IElementConfigurationPolygon)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IElementConfigurationPolygon, None)

    _get_lattice_type_metadata = { "offset" : _get_lattice_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LatticeType),) }
    @property
    def lattice_type(self) -> "LatticeType":
        """Get or set the lattice type."""
        return self._intf.get_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._get_lattice_type_metadata)

    _set_lattice_type_metadata = { "offset" : _set_lattice_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LatticeType),) }
    @lattice_type.setter
    def lattice_type(self, value:"LatticeType") -> None:
        return self._intf.set_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._set_lattice_type_metadata, value)

    _get_number_of_sides_metadata = { "offset" : _get_number_of_sides_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_sides(self) -> int:
        """Get or set the number of polygon sides."""
        return self._intf.get_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._get_number_of_sides_metadata)

    _set_number_of_sides_metadata = { "offset" : _set_number_of_sides_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_sides.setter
    def number_of_sides(self, value:int) -> None:
        return self._intf.set_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._set_number_of_sides_metadata, value)

    _get_equilateral_metadata = { "offset" : _get_equilateral_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def equilateral(self) -> bool:
        """Get or set the option for evenly spacing adjacent elements."""
        return self._intf.get_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._get_equilateral_metadata)

    _set_equilateral_metadata = { "offset" : _set_equilateral_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @equilateral.setter
    def equilateral(self, value:bool) -> None:
        return self._intf.set_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._set_equilateral_metadata, value)

    _get_number_of_x_elements_metadata = { "offset" : _get_number_of_x_elements_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_x_elements(self) -> int:
        """Get or set the number of elements in the x direction."""
        return self._intf.get_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._get_number_of_x_elements_metadata)

    _set_number_of_x_elements_metadata = { "offset" : _set_number_of_x_elements_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_x_elements.setter
    def number_of_x_elements(self, value:int) -> None:
        return self._intf.set_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._set_number_of_x_elements_metadata, value)

    _get_number_of_y_elements_metadata = { "offset" : _get_number_of_y_elements_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_y_elements(self) -> int:
        """Get or set the number of elements in the y direction."""
        return self._intf.get_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._get_number_of_y_elements_metadata)

    _set_number_of_y_elements_metadata = { "offset" : _set_number_of_y_elements_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_y_elements.setter
    def number_of_y_elements(self, value:int) -> None:
        return self._intf.set_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._set_number_of_y_elements_metadata, value)

    _get_spacing_x_metadata = { "offset" : _get_spacing_x_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def spacing_x(self) -> float:
        """Get or set the spacing of the elements in the x direction, in wavelengths."""
        return self._intf.get_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._get_spacing_x_metadata)

    _set_spacing_x_metadata = { "offset" : _set_spacing_x_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @spacing_x.setter
    def spacing_x(self, value:float) -> None:
        return self._intf.set_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._set_spacing_x_metadata, value)

    _get_spacing_y_metadata = { "offset" : _get_spacing_y_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def spacing_y(self) -> float:
        """Get or set the spacing of the elements in the y direction, in wavelengths."""
        return self._intf.get_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._get_spacing_y_metadata)

    _set_spacing_y_metadata = { "offset" : _set_spacing_y_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @spacing_y.setter
    def spacing_y(self, value:float) -> None:
        return self._intf.set_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._set_spacing_y_metadata, value)

    _get_maximum_look_angle_elevation_metadata = { "offset" : _get_maximum_look_angle_elevation_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_look_angle_elevation(self) -> typing.Any:
        """Get the maximum look angle in the x direction."""
        return self._intf.get_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._get_maximum_look_angle_elevation_metadata)

    _get_maximum_look_angle_azimuth_metadata = { "offset" : _get_maximum_look_angle_azimuth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_look_angle_azimuth(self) -> typing.Any:
        """Get the maximum look angle in the y direction."""
        return self._intf.get_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._get_maximum_look_angle_azimuth_metadata)

    _get_spacing_unit_metadata = { "offset" : _get_spacing_unit_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpacingUnit),) }
    @property
    def spacing_unit(self) -> "SpacingUnit":
        """Get or set the spacing unit."""
        return self._intf.get_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._get_spacing_unit_metadata)

    _set_spacing_unit_metadata = { "offset" : _set_spacing_unit_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpacingUnit),) }
    @spacing_unit.setter
    def spacing_unit(self, value:"SpacingUnit") -> None:
        return self._intf.set_property(IElementConfigurationPolygon._metadata, IElementConfigurationPolygon._set_spacing_unit_metadata, value)

    _property_names[lattice_type] = "lattice_type"
    _property_names[number_of_sides] = "number_of_sides"
    _property_names[equilateral] = "equilateral"
    _property_names[number_of_x_elements] = "number_of_x_elements"
    _property_names[number_of_y_elements] = "number_of_y_elements"
    _property_names[spacing_x] = "spacing_x"
    _property_names[spacing_y] = "spacing_y"
    _property_names[maximum_look_angle_elevation] = "maximum_look_angle_elevation"
    _property_names[maximum_look_angle_azimuth] = "maximum_look_angle_azimuth"
    _property_names[spacing_unit] = "spacing_unit"


agcls.AgClassCatalog.add_catalog_entry((5541671416868424088, 1719543556508628147), IElementConfigurationPolygon)
agcls.AgTypeNameMap["IElementConfigurationPolygon"] = IElementConfigurationPolygon

class IBeamformer(object):
    """Provide access to the properties and methods defining a beamformer."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5600508114360893412, 11209552837748337067),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IBeamformer."""
        initialize_from_source_object(self, source_object, IBeamformer)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IBeamformer)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IBeamformer, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(BeamformerType),) }
    @property
    def type(self) -> "BeamformerType":
        """Get the beamformer type enumeration."""
        return self._intf.get_property(IBeamformer._metadata, IBeamformer._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5600508114360893412, 11209552837748337067), IBeamformer)
agcls.AgTypeNameMap["IBeamformer"] = IBeamformer

class ITargetSelectionMethod(object):
    """Provide access to the properties and methods defining a target selection method."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5260835428325420654, 13083385363619395751),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ITargetSelectionMethod."""
        initialize_from_source_object(self, source_object, ITargetSelectionMethod)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ITargetSelectionMethod)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ITargetSelectionMethod, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TargetSelectionMethod),) }
    @property
    def type(self) -> "TargetSelectionMethod":
        """Get the target selection method type enumeration."""
        return self._intf.get_property(ITargetSelectionMethod._metadata, ITargetSelectionMethod._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5260835428325420654, 13083385363619395751), ITargetSelectionMethod)
agcls.AgTypeNameMap["ITargetSelectionMethod"] = ITargetSelectionMethod

class IDirectionProvider(object):
    """Provide access to the properties and methods defining an direction provider."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5599564535202356048, 8305471409985746306),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IDirectionProvider."""
        initialize_from_source_object(self, source_object, IDirectionProvider)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IDirectionProvider)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IDirectionProvider, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DirectionProviderType),) }
    @property
    def type(self) -> "DirectionProviderType":
        """Get the direction provider type enumeration."""
        return self._intf.get_property(IDirectionProvider._metadata, IDirectionProvider._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5599564535202356048, 8305471409985746306), IDirectionProvider)
agcls.AgTypeNameMap["IDirectionProvider"] = IDirectionProvider

class IAntennaModelOpticalSimple(object):
    """Provide access to the properties and methods defining a simple optical antenna model."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_gain_method_offset = 1
    _set_compute_gain_method_offset = 2
    _get_maximum_gain_method_offset = 3
    _set_maximum_gain_method_offset = 4
    _get_area_method_offset = 5
    _set_area_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _metadata = {
        "iid_data" : (5216476642350706303, 1653965811619943064),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAntennaModelOpticalSimple."""
        initialize_from_source_object(self, source_object, IAntennaModelOpticalSimple)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAntennaModelOpticalSimple)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAntennaModelOpticalSimple, None)

    _get_compute_gain_metadata = { "offset" : _get_compute_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_gain(self) -> bool:
        """Get or set the option for computing gain."""
        return self._intf.get_property(IAntennaModelOpticalSimple._metadata, IAntennaModelOpticalSimple._get_compute_gain_metadata)

    _set_compute_gain_metadata = { "offset" : _set_compute_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_gain.setter
    def compute_gain(self, value:bool) -> None:
        return self._intf.set_property(IAntennaModelOpticalSimple._metadata, IAntennaModelOpticalSimple._set_compute_gain_metadata, value)

    _get_maximum_gain_metadata = { "offset" : _get_maximum_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_gain(self) -> float:
        """Get or set the maximum gain."""
        return self._intf.get_property(IAntennaModelOpticalSimple._metadata, IAntennaModelOpticalSimple._get_maximum_gain_metadata)

    _set_maximum_gain_metadata = { "offset" : _set_maximum_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_gain.setter
    def maximum_gain(self, value:float) -> None:
        return self._intf.set_property(IAntennaModelOpticalSimple._metadata, IAntennaModelOpticalSimple._set_maximum_gain_metadata, value)

    _get_area_metadata = { "offset" : _get_area_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def area(self) -> float:
        """Get or set the area."""
        return self._intf.get_property(IAntennaModelOpticalSimple._metadata, IAntennaModelOpticalSimple._get_area_metadata)

    _set_area_metadata = { "offset" : _set_area_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @area.setter
    def area(self, value:float) -> None:
        return self._intf.set_property(IAntennaModelOpticalSimple._metadata, IAntennaModelOpticalSimple._set_area_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the area."""
        return self._intf.get_property(IAntennaModelOpticalSimple._metadata, IAntennaModelOpticalSimple._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(IAntennaModelOpticalSimple._metadata, IAntennaModelOpticalSimple._set_efficiency_metadata, value)

    _property_names[compute_gain] = "compute_gain"
    _property_names[maximum_gain] = "maximum_gain"
    _property_names[area] = "area"
    _property_names[efficiency] = "efficiency"


agcls.AgClassCatalog.add_catalog_entry((5216476642350706303, 1653965811619943064), IAntennaModelOpticalSimple)
agcls.AgTypeNameMap["IAntennaModelOpticalSimple"] = IAntennaModelOpticalSimple

class IAntennaContour(object):
    """IAntennaContour Interface for a antenna's contour properties."""

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_at_altitude_method_offset = 1
    _set_show_at_altitude_method_offset = 2
    _get_altitude_method_offset = 3
    _set_altitude_method_offset = 4
    _get_relative_to_maximum_gain_method_offset = 5
    _set_relative_to_maximum_gain_method_offset = 6
    _get_show_labels_method_offset = 7
    _set_show_labels_method_offset = 8
    _get_number_of_label_decimal_digits_method_offset = 9
    _set_number_of_label_decimal_digits_method_offset = 10
    _get_line_width_method_offset = 11
    _set_line_width_method_offset = 12
    _get_color_method_method_offset = 13
    _set_color_method_method_offset = 14
    _get_start_color_method_offset = 15
    _set_start_color_method_offset = 16
    _get_stop_color_method_offset = 17
    _set_stop_color_method_offset = 18
    _get_type_method_offset = 19
    _get_levels_method_offset = 20
    _metadata = {
        "iid_data" : (5613976015755720505, 12727280771050595774),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAntennaContour."""
        initialize_from_source_object(self, source_object, IAntennaContour)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAntennaContour)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAntennaContour, None)

    _get_show_at_altitude_metadata = { "offset" : _get_show_at_altitude_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_at_altitude(self) -> bool:
        """Enable the ability to view the contours at a set altitude."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_show_at_altitude_metadata)

    _set_show_at_altitude_metadata = { "offset" : _set_show_at_altitude_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_at_altitude.setter
    def show_at_altitude(self, value:bool) -> None:
        return self._intf.set_property(IAntennaContour._metadata, IAntennaContour._set_show_at_altitude_metadata, value)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Get or set the altitude to view the contours."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, value:float) -> None:
        return self._intf.set_property(IAntennaContour._metadata, IAntennaContour._set_altitude_metadata, value)

    _get_relative_to_maximum_gain_metadata = { "offset" : _get_relative_to_maximum_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def relative_to_maximum_gain(self) -> bool:
        """The contours value represents the gain value relative to the maximum."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_relative_to_maximum_gain_metadata)

    _set_relative_to_maximum_gain_metadata = { "offset" : _set_relative_to_maximum_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @relative_to_maximum_gain.setter
    def relative_to_maximum_gain(self, value:bool) -> None:
        return self._intf.set_property(IAntennaContour._metadata, IAntennaContour._set_relative_to_maximum_gain_metadata, value)

    _get_show_labels_metadata = { "offset" : _get_show_labels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_labels(self) -> bool:
        """Get or set the option for showing contour labels."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_show_labels_metadata)

    _set_show_labels_metadata = { "offset" : _set_show_labels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_labels.setter
    def show_labels(self, value:bool) -> None:
        return self._intf.set_property(IAntennaContour._metadata, IAntennaContour._set_show_labels_metadata, value)

    _get_number_of_label_decimal_digits_metadata = { "offset" : _get_number_of_label_decimal_digits_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_label_decimal_digits(self) -> int:
        """Get or set the integer number of decimal places to display in the contour label."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_number_of_label_decimal_digits_metadata)

    _set_number_of_label_decimal_digits_metadata = { "offset" : _set_number_of_label_decimal_digits_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_label_decimal_digits.setter
    def number_of_label_decimal_digits(self, value:int) -> None:
        return self._intf.set_property(IAntennaContour._metadata, IAntennaContour._set_number_of_label_decimal_digits_metadata, value)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Select the line width in which antenna 2D graphics display from the LineWidth enumeration."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(IAntennaContour._metadata, IAntennaContour._set_line_width_metadata, value)

    _get_color_method_metadata = { "offset" : _get_color_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DColorMethod),) }
    @property
    def color_method(self) -> "FigureOfMeritGraphics2DColorMethod":
        """Color method for contours (color ramp or explicit)."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_color_method_metadata)

    _set_color_method_metadata = { "offset" : _set_color_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DColorMethod),) }
    @color_method.setter
    def color_method(self, value:"FigureOfMeritGraphics2DColorMethod") -> None:
        return self._intf.set_property(IAntennaContour._metadata, IAntennaContour._set_color_method_metadata, value)

    _get_start_color_metadata = { "offset" : _get_start_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def start_color(self) -> agcolor.Color:
        """The color ramp start color."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_start_color_metadata)

    _set_start_color_metadata = { "offset" : _set_start_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @start_color.setter
    def start_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(IAntennaContour._metadata, IAntennaContour._set_start_color_metadata, value)

    _get_stop_color_metadata = { "offset" : _get_stop_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def stop_color(self) -> agcolor.Color:
        """The color ramp stop color."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_stop_color_metadata)

    _set_stop_color_metadata = { "offset" : _set_stop_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @stop_color.setter
    def stop_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(IAntennaContour._metadata, IAntennaContour._set_stop_color_metadata, value)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AntennaContourType),) }
    @property
    def type(self) -> "AntennaContourType":
        """Get the contour type."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_type_metadata)

    _get_levels_metadata = { "offset" : _get_levels_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def levels(self) -> "AntennaContourLevelCollection":
        """Get the collection of contour levels."""
        return self._intf.get_property(IAntennaContour._metadata, IAntennaContour._get_levels_metadata)

    _property_names[show_at_altitude] = "show_at_altitude"
    _property_names[altitude] = "altitude"
    _property_names[relative_to_maximum_gain] = "relative_to_maximum_gain"
    _property_names[show_labels] = "show_labels"
    _property_names[number_of_label_decimal_digits] = "number_of_label_decimal_digits"
    _property_names[line_width] = "line_width"
    _property_names[color_method] = "color_method"
    _property_names[start_color] = "start_color"
    _property_names[stop_color] = "stop_color"
    _property_names[type] = "type"
    _property_names[levels] = "levels"


agcls.AgClassCatalog.add_catalog_entry((5613976015755720505, 12727280771050595774), IAntennaContour)
agcls.AgTypeNameMap["IAntennaContour"] = IAntennaContour

class IAntennaBeamSelectionStrategy(object):
    """Provide access to a beam selection strategy."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5591626761758379284, 7060707251130740102),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAntennaBeamSelectionStrategy."""
        initialize_from_source_object(self, source_object, IAntennaBeamSelectionStrategy)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAntennaBeamSelectionStrategy)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAntennaBeamSelectionStrategy, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(BeamSelectionStrategyType),) }
    @property
    def type(self) -> "BeamSelectionStrategyType":
        """Get the beam selection strategy type."""
        return self._intf.get_property(IAntennaBeamSelectionStrategy._metadata, IAntennaBeamSelectionStrategy._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5591626761758379284, 7060707251130740102), IAntennaBeamSelectionStrategy)
agcls.AgTypeNameMap["IAntennaBeamSelectionStrategy"] = IAntennaBeamSelectionStrategy

class IAntennaBeam(object):
    """Provide access to an antenna beam."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_identifier_method_offset = 1
    _set_identifier_method_offset = 2
    _get_is_active_method_offset = 3
    _set_is_active_method_offset = 4
    _get_frequency_method_offset = 5
    _set_frequency_method_offset = 6
    _get_supported_antenna_models_method_offset = 7
    _get_antenna_model_name_method_offset = 8
    _set_antenna_model_name_method_offset = 9
    _get_antenna_model_method_offset = 10
    _get_orientation_method_offset = 11
    _set_orientation_method_offset = 12
    _get_enable_polarization_method_offset = 13
    _set_enable_polarization_method_offset = 14
    _set_polarization_type_method_offset = 15
    _get_polarization_method_offset = 16
    _metadata = {
        "iid_data" : (5354342656616650177, 907097282141540752),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAntennaBeam."""
        initialize_from_source_object(self, source_object, IAntennaBeam)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAntennaBeam)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAntennaBeam, None)

    _get_identifier_metadata = { "offset" : _get_identifier_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def identifier(self) -> str:
        """Get or set the antenna beam identifier."""
        return self._intf.get_property(IAntennaBeam._metadata, IAntennaBeam._get_identifier_metadata)

    _set_identifier_metadata = { "offset" : _set_identifier_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @identifier.setter
    def identifier(self, value:str) -> None:
        return self._intf.set_property(IAntennaBeam._metadata, IAntennaBeam._set_identifier_metadata, value)

    _get_is_active_metadata = { "offset" : _get_is_active_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_active(self) -> bool:
        """Get or set the beam active flag."""
        return self._intf.get_property(IAntennaBeam._metadata, IAntennaBeam._get_is_active_metadata)

    _set_is_active_metadata = { "offset" : _set_is_active_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @is_active.setter
    def is_active(self, value:bool) -> None:
        return self._intf.set_property(IAntennaBeam._metadata, IAntennaBeam._set_is_active_metadata, value)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the beam frequency."""
        return self._intf.get_property(IAntennaBeam._metadata, IAntennaBeam._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(IAntennaBeam._metadata, IAntennaBeam._set_frequency_metadata, value)

    _get_supported_antenna_models_metadata = { "offset" : _get_supported_antenna_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_antenna_models(self) -> list:
        """Get an array of supported antenna model names."""
        return self._intf.get_property(IAntennaBeam._metadata, IAntennaBeam._get_supported_antenna_models_metadata)

    _get_antenna_model_name_metadata = { "offset" : _get_antenna_model_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def antenna_model_name(self) -> str:
        """Get or set the current antenna model by name."""
        return self._intf.get_property(IAntennaBeam._metadata, IAntennaBeam._get_antenna_model_name_metadata)

    _set_antenna_model_name_metadata = { "offset" : _set_antenna_model_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @antenna_model_name.setter
    def antenna_model_name(self, model_name:str) -> None:
        return self._intf.set_property(IAntennaBeam._metadata, IAntennaBeam._set_antenna_model_name_metadata, model_name)

    _get_antenna_model_metadata = { "offset" : _get_antenna_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_model(self) -> "IAntennaModel":
        """Get the current antenna model."""
        return self._intf.get_property(IAntennaBeam._metadata, IAntennaBeam._get_antenna_model_metadata)

    _get_orientation_metadata = { "offset" : _get_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orientation(self) -> "IOrientation":
        """Get the antenna orientation."""
        return self._intf.get_property(IAntennaBeam._metadata, IAntennaBeam._get_orientation_metadata)

    _set_orientation_metadata = { "offset" : _set_orientation_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("IOrientation"),) }
    @orientation.setter
    def orientation(self, orientation:"IOrientation") -> None:
        """Set the antenna orientation."""
        return self._intf.set_property(IAntennaBeam._metadata, IAntennaBeam._set_orientation_metadata, orientation)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(IAntennaBeam._metadata, IAntennaBeam._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(IAntennaBeam._metadata, IAntennaBeam._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(IAntennaBeam._metadata, IAntennaBeam._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(IAntennaBeam._metadata, IAntennaBeam._get_polarization_metadata)

    _property_names[identifier] = "identifier"
    _property_names[is_active] = "is_active"
    _property_names[frequency] = "frequency"
    _property_names[supported_antenna_models] = "supported_antenna_models"
    _property_names[antenna_model_name] = "antenna_model_name"
    _property_names[antenna_model] = "antenna_model"
    _property_names[orientation] = "orientation"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"


agcls.AgClassCatalog.add_catalog_entry((5354342656616650177, 907097282141540752), IAntennaBeam)
agcls.AgTypeNameMap["IAntennaBeam"] = IAntennaBeam

class IRFFilterModel(object):
    """Provide access to the properties and methods defining an RF filter model."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _get_upper_bandwidth_limit_method_offset = 3
    _set_upper_bandwidth_limit_method_offset = 4
    _get_lower_bandwidth_limit_method_offset = 5
    _set_lower_bandwidth_limit_method_offset = 6
    _get_bandwidth_method_offset = 7
    _get_insertion_loss_method_offset = 8
    _set_insertion_loss_method_offset = 9
    _metadata = {
        "iid_data" : (4907294956379547208, 9786742639172018312),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRFFilterModel."""
        initialize_from_source_object(self, source_object, IRFFilterModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRFFilterModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRFFilterModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the filter model name."""
        return self._intf.get_property(IRFFilterModel._metadata, IRFFilterModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RFFilterModelType),) }
    @property
    def type(self) -> "RFFilterModelType":
        """Get the filter model type enumeration."""
        return self._intf.get_property(IRFFilterModel._metadata, IRFFilterModel._get_type_metadata)

    _get_upper_bandwidth_limit_metadata = { "offset" : _get_upper_bandwidth_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def upper_bandwidth_limit(self) -> float:
        """Get or set the upper bandwidth limit."""
        return self._intf.get_property(IRFFilterModel._metadata, IRFFilterModel._get_upper_bandwidth_limit_metadata)

    _set_upper_bandwidth_limit_metadata = { "offset" : _set_upper_bandwidth_limit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @upper_bandwidth_limit.setter
    def upper_bandwidth_limit(self, value:float) -> None:
        return self._intf.set_property(IRFFilterModel._metadata, IRFFilterModel._set_upper_bandwidth_limit_metadata, value)

    _get_lower_bandwidth_limit_metadata = { "offset" : _get_lower_bandwidth_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lower_bandwidth_limit(self) -> float:
        """Get or set the lower bandwidth limit."""
        return self._intf.get_property(IRFFilterModel._metadata, IRFFilterModel._get_lower_bandwidth_limit_metadata)

    _set_lower_bandwidth_limit_metadata = { "offset" : _set_lower_bandwidth_limit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lower_bandwidth_limit.setter
    def lower_bandwidth_limit(self, value:float) -> None:
        return self._intf.set_property(IRFFilterModel._metadata, IRFFilterModel._set_lower_bandwidth_limit_metadata, value)

    _get_bandwidth_metadata = { "offset" : _get_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bandwidth(self) -> float:
        """Get the filter bandwidth."""
        return self._intf.get_property(IRFFilterModel._metadata, IRFFilterModel._get_bandwidth_metadata)

    _get_insertion_loss_metadata = { "offset" : _get_insertion_loss_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def insertion_loss(self) -> float:
        """Get or set the insertion loss."""
        return self._intf.get_property(IRFFilterModel._metadata, IRFFilterModel._get_insertion_loss_metadata)

    _set_insertion_loss_metadata = { "offset" : _set_insertion_loss_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @insertion_loss.setter
    def insertion_loss(self, value:float) -> None:
        return self._intf.set_property(IRFFilterModel._metadata, IRFFilterModel._set_insertion_loss_metadata, value)

    _property_names[name] = "name"
    _property_names[type] = "type"
    _property_names[upper_bandwidth_limit] = "upper_bandwidth_limit"
    _property_names[lower_bandwidth_limit] = "lower_bandwidth_limit"
    _property_names[bandwidth] = "bandwidth"
    _property_names[insertion_loss] = "insertion_loss"


agcls.AgClassCatalog.add_catalog_entry((4907294956379547208, 9786742639172018312), IRFFilterModel)
agcls.AgTypeNameMap["IRFFilterModel"] = IRFFilterModel

class IModulatorModel(object):
    """Provide access to the properties and methods defining a modulator model."""

    _num_methods = 21
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _get_enable_signal_psd_method_offset = 3
    _set_enable_signal_psd_method_offset = 4
    _get_psd_limit_multiplier_method_offset = 5
    _set_psd_limit_multiplier_method_offset = 6
    _get_enable_cdma_spread_method_offset = 7
    _set_enable_cdma_spread_method_offset = 8
    _get_chips_per_bit_method_offset = 9
    _set_chips_per_bit_method_offset = 10
    _get_spreading_gain_method_offset = 11
    _get_scale_bandwidth_automatically_method_offset = 12
    _set_scale_bandwidth_automatically_method_offset = 13
    _get_symmetric_bandwidth_method_offset = 14
    _set_symmetric_bandwidth_method_offset = 15
    _get_upper_bandwidth_limit_method_offset = 16
    _set_upper_bandwidth_limit_method_offset = 17
    _get_lower_bandwidth_limit_method_offset = 18
    _set_lower_bandwidth_limit_method_offset = 19
    _get_bandwidth_method_offset = 20
    _set_bandwidth_method_offset = 21
    _metadata = {
        "iid_data" : (5327966248334401329, 13464101353373673877),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IModulatorModel."""
        initialize_from_source_object(self, source_object, IModulatorModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IModulatorModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IModulatorModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the modulator model name."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ModulatorModelType),) }
    @property
    def type(self) -> "ModulatorModelType":
        """Get the modulator model type enumeration."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_type_metadata)

    _get_enable_signal_psd_metadata = { "offset" : _get_enable_signal_psd_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_signal_psd(self) -> bool:
        """Get or set the option for modeling signal PSD."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_enable_signal_psd_metadata)

    _set_enable_signal_psd_metadata = { "offset" : _set_enable_signal_psd_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_signal_psd.setter
    def enable_signal_psd(self, value:bool) -> None:
        return self._intf.set_property(IModulatorModel._metadata, IModulatorModel._set_enable_signal_psd_metadata, value)

    _get_psd_limit_multiplier_metadata = { "offset" : _get_psd_limit_multiplier_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def psd_limit_multiplier(self) -> int:
        """Get or set the PSD limit multiplier."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_psd_limit_multiplier_metadata)

    _set_psd_limit_multiplier_metadata = { "offset" : _set_psd_limit_multiplier_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @psd_limit_multiplier.setter
    def psd_limit_multiplier(self, value:int) -> None:
        return self._intf.set_property(IModulatorModel._metadata, IModulatorModel._set_psd_limit_multiplier_metadata, value)

    _get_enable_cdma_spread_metadata = { "offset" : _get_enable_cdma_spread_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_cdma_spread(self) -> bool:
        """Get or set the option for modeling CDMA spread."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_enable_cdma_spread_metadata)

    _set_enable_cdma_spread_metadata = { "offset" : _set_enable_cdma_spread_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_cdma_spread.setter
    def enable_cdma_spread(self, value:bool) -> None:
        return self._intf.set_property(IModulatorModel._metadata, IModulatorModel._set_enable_cdma_spread_metadata, value)

    _get_chips_per_bit_metadata = { "offset" : _get_chips_per_bit_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def chips_per_bit(self) -> int:
        """Get or set the chips per bit."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_chips_per_bit_metadata)

    _set_chips_per_bit_metadata = { "offset" : _set_chips_per_bit_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @chips_per_bit.setter
    def chips_per_bit(self, value:int) -> None:
        return self._intf.set_property(IModulatorModel._metadata, IModulatorModel._set_chips_per_bit_metadata, value)

    _get_spreading_gain_metadata = { "offset" : _get_spreading_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def spreading_gain(self) -> float:
        """Get the spreading gain."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_spreading_gain_metadata)

    _get_scale_bandwidth_automatically_metadata = { "offset" : _get_scale_bandwidth_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def scale_bandwidth_automatically(self) -> bool:
        """Get or set the option for auto scaling the bandwidth."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_scale_bandwidth_automatically_metadata)

    _set_scale_bandwidth_automatically_metadata = { "offset" : _set_scale_bandwidth_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @scale_bandwidth_automatically.setter
    def scale_bandwidth_automatically(self, value:bool) -> None:
        return self._intf.set_property(IModulatorModel._metadata, IModulatorModel._set_scale_bandwidth_automatically_metadata, value)

    _get_symmetric_bandwidth_metadata = { "offset" : _get_symmetric_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def symmetric_bandwidth(self) -> bool:
        """Get or set the option for specifying symmetric bandwidth."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_symmetric_bandwidth_metadata)

    _set_symmetric_bandwidth_metadata = { "offset" : _set_symmetric_bandwidth_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @symmetric_bandwidth.setter
    def symmetric_bandwidth(self, value:bool) -> None:
        return self._intf.set_property(IModulatorModel._metadata, IModulatorModel._set_symmetric_bandwidth_metadata, value)

    _get_upper_bandwidth_limit_metadata = { "offset" : _get_upper_bandwidth_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def upper_bandwidth_limit(self) -> float:
        """Get or set the upper bandwidth limit."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_upper_bandwidth_limit_metadata)

    _set_upper_bandwidth_limit_metadata = { "offset" : _set_upper_bandwidth_limit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @upper_bandwidth_limit.setter
    def upper_bandwidth_limit(self, value:float) -> None:
        return self._intf.set_property(IModulatorModel._metadata, IModulatorModel._set_upper_bandwidth_limit_metadata, value)

    _get_lower_bandwidth_limit_metadata = { "offset" : _get_lower_bandwidth_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lower_bandwidth_limit(self) -> float:
        """Get or set the lower bandwidth limit."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_lower_bandwidth_limit_metadata)

    _set_lower_bandwidth_limit_metadata = { "offset" : _set_lower_bandwidth_limit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lower_bandwidth_limit.setter
    def lower_bandwidth_limit(self, value:float) -> None:
        return self._intf.set_property(IModulatorModel._metadata, IModulatorModel._set_lower_bandwidth_limit_metadata, value)

    _get_bandwidth_metadata = { "offset" : _get_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bandwidth(self) -> float:
        """Get or set the filter bandwidth."""
        return self._intf.get_property(IModulatorModel._metadata, IModulatorModel._get_bandwidth_metadata)

    _set_bandwidth_metadata = { "offset" : _set_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bandwidth.setter
    def bandwidth(self, value:float) -> None:
        return self._intf.set_property(IModulatorModel._metadata, IModulatorModel._set_bandwidth_metadata, value)

    _property_names[name] = "name"
    _property_names[type] = "type"
    _property_names[enable_signal_psd] = "enable_signal_psd"
    _property_names[psd_limit_multiplier] = "psd_limit_multiplier"
    _property_names[enable_cdma_spread] = "enable_cdma_spread"
    _property_names[chips_per_bit] = "chips_per_bit"
    _property_names[spreading_gain] = "spreading_gain"
    _property_names[scale_bandwidth_automatically] = "scale_bandwidth_automatically"
    _property_names[symmetric_bandwidth] = "symmetric_bandwidth"
    _property_names[upper_bandwidth_limit] = "upper_bandwidth_limit"
    _property_names[lower_bandwidth_limit] = "lower_bandwidth_limit"
    _property_names[bandwidth] = "bandwidth"


agcls.AgClassCatalog.add_catalog_entry((5327966248334401329, 13464101353373673877), IModulatorModel)
agcls.AgTypeNameMap["IModulatorModel"] = IModulatorModel

class ITransmitterModel(object):
    """Provide access to the properties and methods defining a transmitter model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5036050268365048800, 10293930725737946517),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ITransmitterModel."""
        initialize_from_source_object(self, source_object, ITransmitterModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ITransmitterModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ITransmitterModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the transmitter model name."""
        return self._intf.get_property(ITransmitterModel._metadata, ITransmitterModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TransmitterModelType),) }
    @property
    def type(self) -> "TransmitterModelType":
        """Get the transmitter model type enumeration."""
        return self._intf.get_property(ITransmitterModel._metadata, ITransmitterModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5036050268365048800, 10293930725737946517), ITransmitterModel)
agcls.AgTypeNameMap["ITransmitterModel"] = ITransmitterModel

class ITransmitterModelScriptPlugin(object):
    """Provide access to the properties and methods defining a script plugin transmitter model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5724399052933185051, 15496035660765097359),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ITransmitterModelScriptPlugin."""
        initialize_from_source_object(self, source_object, ITransmitterModelScriptPlugin)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ITransmitterModelScriptPlugin)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ITransmitterModelScriptPlugin, None)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the script plugin filename."""
        return self._intf.get_property(ITransmitterModelScriptPlugin._metadata, ITransmitterModelScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, filename:str) -> None:
        return self._intf.set_property(ITransmitterModelScriptPlugin._metadata, ITransmitterModelScriptPlugin._set_filename_metadata, filename)

    _property_names[filename] = "filename"


agcls.AgClassCatalog.add_catalog_entry((5724399052933185051, 15496035660765097359), ITransmitterModelScriptPlugin)
agcls.AgTypeNameMap["ITransmitterModelScriptPlugin"] = ITransmitterModelScriptPlugin

class IReTransmitterModel(object):
    """Provide access to the properties and methods defining a re-transmitter model."""

    _num_methods = 19
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_frequency_transfer_function_polynomial_method_offset = 1
    _get_power_back_off_transfer_function_type_method_offset = 2
    _set_power_back_off_transfer_function_type_method_offset = 3
    _get_power_back_off_linear_scale_method_offset = 4
    _set_power_back_off_linear_scale_method_offset = 5
    _get_power_back_off_transfer_function_polynomial_method_offset = 6
    _get_power_back_off_transfer_function_table_method_offset = 7
    _get_enable_c_over_im_method_offset = 8
    _set_enable_c_over_im_method_offset = 9
    _get_c_over_im_transfer_function_type_method_offset = 10
    _set_c_over_im_transfer_function_type_method_offset = 11
    _get_c_over_im_linear_scale_method_offset = 12
    _set_c_over_im_linear_scale_method_offset = 13
    _get_c_over_im_transfer_function_polynomial_method_offset = 14
    _get_c_over_im_transfer_function_table_method_offset = 15
    _get_saturated_flux_density_method_offset = 16
    _set_saturated_flux_density_method_offset = 17
    _get_operational_mode_method_offset = 18
    _set_operational_mode_method_offset = 19
    _metadata = {
        "iid_data" : (5169917944113376101, 5744647544785366406),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IReTransmitterModel."""
        initialize_from_source_object(self, source_object, IReTransmitterModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IReTransmitterModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IReTransmitterModel, None)

    _get_frequency_transfer_function_polynomial_metadata = { "offset" : _get_frequency_transfer_function_polynomial_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def frequency_transfer_function_polynomial(self) -> "TransferFunctionPolynomialCollection":
        """Get the frequency transfer function polynomial collection."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_frequency_transfer_function_polynomial_metadata)

    _get_power_back_off_transfer_function_type_metadata = { "offset" : _get_power_back_off_transfer_function_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TransferFunctionType),) }
    @property
    def power_back_off_transfer_function_type(self) -> "TransferFunctionType":
        """Get or set the power back off transfer function type."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_power_back_off_transfer_function_type_metadata)

    _set_power_back_off_transfer_function_type_metadata = { "offset" : _set_power_back_off_transfer_function_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TransferFunctionType),) }
    @power_back_off_transfer_function_type.setter
    def power_back_off_transfer_function_type(self, value:"TransferFunctionType") -> None:
        return self._intf.set_property(IReTransmitterModel._metadata, IReTransmitterModel._set_power_back_off_transfer_function_type_metadata, value)

    _get_power_back_off_linear_scale_metadata = { "offset" : _get_power_back_off_linear_scale_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def power_back_off_linear_scale(self) -> bool:
        """Get or set the option to enable power back off linear scale."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_power_back_off_linear_scale_metadata)

    _set_power_back_off_linear_scale_metadata = { "offset" : _set_power_back_off_linear_scale_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @power_back_off_linear_scale.setter
    def power_back_off_linear_scale(self, value:bool) -> None:
        return self._intf.set_property(IReTransmitterModel._metadata, IReTransmitterModel._set_power_back_off_linear_scale_metadata, value)

    _get_power_back_off_transfer_function_polynomial_metadata = { "offset" : _get_power_back_off_transfer_function_polynomial_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def power_back_off_transfer_function_polynomial(self) -> "TransferFunctionPolynomialCollection":
        """Get the power back off transfer function polynomial collection."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_power_back_off_transfer_function_polynomial_metadata)

    _get_power_back_off_transfer_function_table_metadata = { "offset" : _get_power_back_off_transfer_function_table_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def power_back_off_transfer_function_table(self) -> "TransferFunctionInputBackOffOutputBackOffTable":
        """Get the power back off transfer function table."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_power_back_off_transfer_function_table_metadata)

    _get_enable_c_over_im_metadata = { "offset" : _get_enable_c_over_im_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_c_over_im(self) -> bool:
        """Get or set the option to enable C/Im."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_enable_c_over_im_metadata)

    _set_enable_c_over_im_metadata = { "offset" : _set_enable_c_over_im_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_c_over_im.setter
    def enable_c_over_im(self, value:bool) -> None:
        return self._intf.set_property(IReTransmitterModel._metadata, IReTransmitterModel._set_enable_c_over_im_metadata, value)

    _get_c_over_im_transfer_function_type_metadata = { "offset" : _get_c_over_im_transfer_function_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TransferFunctionType),) }
    @property
    def c_over_im_transfer_function_type(self) -> "TransferFunctionType":
        """Get or set the C/Im transfer function type."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_c_over_im_transfer_function_type_metadata)

    _set_c_over_im_transfer_function_type_metadata = { "offset" : _set_c_over_im_transfer_function_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TransferFunctionType),) }
    @c_over_im_transfer_function_type.setter
    def c_over_im_transfer_function_type(self, value:"TransferFunctionType") -> None:
        return self._intf.set_property(IReTransmitterModel._metadata, IReTransmitterModel._set_c_over_im_transfer_function_type_metadata, value)

    _get_c_over_im_linear_scale_metadata = { "offset" : _get_c_over_im_linear_scale_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def c_over_im_linear_scale(self) -> bool:
        """Get or set the option to enable C/Im linear scale."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_c_over_im_linear_scale_metadata)

    _set_c_over_im_linear_scale_metadata = { "offset" : _set_c_over_im_linear_scale_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @c_over_im_linear_scale.setter
    def c_over_im_linear_scale(self, value:bool) -> None:
        return self._intf.set_property(IReTransmitterModel._metadata, IReTransmitterModel._set_c_over_im_linear_scale_metadata, value)

    _get_c_over_im_transfer_function_polynomial_metadata = { "offset" : _get_c_over_im_transfer_function_polynomial_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def c_over_im_transfer_function_polynomial(self) -> "TransferFunctionPolynomialCollection":
        """Get the C/Im transfer function polynomial collection."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_c_over_im_transfer_function_polynomial_metadata)

    _get_c_over_im_transfer_function_table_metadata = { "offset" : _get_c_over_im_transfer_function_table_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def c_over_im_transfer_function_table(self) -> "TransferFunctionInputBackOffVsCOverImTable":
        """Get the C/Im transfer function table."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_c_over_im_transfer_function_table_metadata)

    _get_saturated_flux_density_metadata = { "offset" : _get_saturated_flux_density_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def saturated_flux_density(self) -> float:
        """Get or set the saturated flux density."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_saturated_flux_density_metadata)

    _set_saturated_flux_density_metadata = { "offset" : _set_saturated_flux_density_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @saturated_flux_density.setter
    def saturated_flux_density(self, value:float) -> None:
        return self._intf.set_property(IReTransmitterModel._metadata, IReTransmitterModel._set_saturated_flux_density_metadata, value)

    _get_operational_mode_metadata = { "offset" : _get_operational_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ReTransmitterOpMode),) }
    @property
    def operational_mode(self) -> "ReTransmitterOpMode":
        """Get or set the operational mode."""
        return self._intf.get_property(IReTransmitterModel._metadata, IReTransmitterModel._get_operational_mode_metadata)

    _set_operational_mode_metadata = { "offset" : _set_operational_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ReTransmitterOpMode),) }
    @operational_mode.setter
    def operational_mode(self, value:"ReTransmitterOpMode") -> None:
        return self._intf.set_property(IReTransmitterModel._metadata, IReTransmitterModel._set_operational_mode_metadata, value)

    _property_names[frequency_transfer_function_polynomial] = "frequency_transfer_function_polynomial"
    _property_names[power_back_off_transfer_function_type] = "power_back_off_transfer_function_type"
    _property_names[power_back_off_linear_scale] = "power_back_off_linear_scale"
    _property_names[power_back_off_transfer_function_polynomial] = "power_back_off_transfer_function_polynomial"
    _property_names[power_back_off_transfer_function_table] = "power_back_off_transfer_function_table"
    _property_names[enable_c_over_im] = "enable_c_over_im"
    _property_names[c_over_im_transfer_function_type] = "c_over_im_transfer_function_type"
    _property_names[c_over_im_linear_scale] = "c_over_im_linear_scale"
    _property_names[c_over_im_transfer_function_polynomial] = "c_over_im_transfer_function_polynomial"
    _property_names[c_over_im_transfer_function_table] = "c_over_im_transfer_function_table"
    _property_names[saturated_flux_density] = "saturated_flux_density"
    _property_names[operational_mode] = "operational_mode"


agcls.AgClassCatalog.add_catalog_entry((5169917944113376101, 5744647544785366406), IReTransmitterModel)
agcls.AgTypeNameMap["IReTransmitterModel"] = IReTransmitterModel

class IDemodulatorModel(object):
    """Provide access to the properties and methods defining a demodulator model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5522501506257373046, 7120154331200164015),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IDemodulatorModel."""
        initialize_from_source_object(self, source_object, IDemodulatorModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IDemodulatorModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IDemodulatorModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the demodulator model name."""
        return self._intf.get_property(IDemodulatorModel._metadata, IDemodulatorModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DemodulatorModelType),) }
    @property
    def type(self) -> "DemodulatorModelType":
        """Get the demodulator model type enumeration."""
        return self._intf.get_property(IDemodulatorModel._metadata, IDemodulatorModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5522501506257373046, 7120154331200164015), IDemodulatorModel)
agcls.AgTypeNameMap["IDemodulatorModel"] = IDemodulatorModel

class IReceiverModel(object):
    """Provide access to the properties and methods defining a receiver model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5030432353077524693, 13078406473886298541),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IReceiverModel."""
        initialize_from_source_object(self, source_object, IReceiverModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IReceiverModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IReceiverModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the receiver model name."""
        return self._intf.get_property(IReceiverModel._metadata, IReceiverModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ReceiverModelType),) }
    @property
    def type(self) -> "ReceiverModelType":
        """Get the receiver model type enumeration."""
        return self._intf.get_property(IReceiverModel._metadata, IReceiverModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5030432353077524693, 13078406473886298541), IReceiverModel)
agcls.AgTypeNameMap["IReceiverModel"] = IReceiverModel

class IReceiverModelScriptPlugin(object):
    """Provide access to the properties and methods defining a script plugin receiver model."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_link_margin_method_offset = 3
    _metadata = {
        "iid_data" : (4939806786916530743, 12745909696803957916),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IReceiverModelScriptPlugin."""
        initialize_from_source_object(self, source_object, IReceiverModelScriptPlugin)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IReceiverModelScriptPlugin)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IReceiverModelScriptPlugin, None)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the script plugin filename."""
        return self._intf.get_property(IReceiverModelScriptPlugin._metadata, IReceiverModelScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, filename:str) -> None:
        return self._intf.set_property(IReceiverModelScriptPlugin._metadata, IReceiverModelScriptPlugin._set_filename_metadata, filename)

    _get_link_margin_metadata = { "offset" : _get_link_margin_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def link_margin(self) -> "LinkMargin":
        """Get the interface for configuring the link margin computation parameters."""
        return self._intf.get_property(IReceiverModelScriptPlugin._metadata, IReceiverModelScriptPlugin._get_link_margin_metadata)

    _property_names[filename] = "filename"
    _property_names[link_margin] = "link_margin"


agcls.AgClassCatalog.add_catalog_entry((4939806786916530743, 12745909696803957916), IReceiverModelScriptPlugin)
agcls.AgTypeNameMap["IReceiverModelScriptPlugin"] = IReceiverModelScriptPlugin

class IRadarActivity(object):
    """Provide access to the properties and methods defining radar activity."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5673149103926043042, 9174540520485228417),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarActivity."""
        initialize_from_source_object(self, source_object, IRadarActivity)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarActivity)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarActivity, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarActivityType),) }
    @property
    def type(self) -> "RadarActivityType":
        """Get the activity times type."""
        return self._intf.get_property(IRadarActivity._metadata, IRadarActivity._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5673149103926043042, 9174540520485228417), IRadarActivity)
agcls.AgTypeNameMap["IRadarActivity"] = IRadarActivity

class IRadarSTCAttenuation(object):
    """Provide access to the properties and methods defining a radar STC attenuation."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _get_name_method_offset = 2
    _metadata = {
        "iid_data" : (4637318822904733215, 4654656499523741582),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarSTCAttenuation."""
        initialize_from_source_object(self, source_object, IRadarSTCAttenuation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarSTCAttenuation)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarSTCAttenuation, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarSTCAttenuationType),) }
    @property
    def type(self) -> "RadarSTCAttenuationType":
        """Get the STC type."""
        return self._intf.get_property(IRadarSTCAttenuation._metadata, IRadarSTCAttenuation._get_type_metadata)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the radar STC string name."""
        return self._intf.get_property(IRadarSTCAttenuation._metadata, IRadarSTCAttenuation._get_name_metadata)

    _property_names[type] = "type"
    _property_names[name] = "name"


agcls.AgClassCatalog.add_catalog_entry((4637318822904733215, 4654656499523741582), IRadarSTCAttenuation)
agcls.AgTypeNameMap["IRadarSTCAttenuation"] = IRadarSTCAttenuation

class IRadarSTCAttenuationMap(object):
    """Provide access to the properties and methods defining a radar STC attenuation map."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5339880582747996706, 2107294806854631070),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarSTCAttenuationMap."""
        initialize_from_source_object(self, source_object, IRadarSTCAttenuationMap)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarSTCAttenuationMap)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarSTCAttenuationMap, None)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the map filename."""
        return self._intf.get_property(IRadarSTCAttenuationMap._metadata, IRadarSTCAttenuationMap._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(IRadarSTCAttenuationMap._metadata, IRadarSTCAttenuationMap._set_filename_metadata, value)

    _property_names[filename] = "filename"


agcls.AgClassCatalog.add_catalog_entry((5339880582747996706, 2107294806854631070), IRadarSTCAttenuationMap)
agcls.AgTypeNameMap["IRadarSTCAttenuationMap"] = IRadarSTCAttenuationMap

class IRadarClutterGeometryModel(object):
    """Do not use this interface, as it is deprecated. Use IScatteringPointProvider interface instead. Provides access to the properties and methods defining a radar clutter geometry model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (4780141874124802821, 16664795639668072616),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarClutterGeometryModel."""
        initialize_from_source_object(self, source_object, IRadarClutterGeometryModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarClutterGeometryModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarClutterGeometryModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Do not use this property, as it is deprecated. Use Name on IScatteringPointProvider instead. Gets the radar clutter geometry model name."""
        return self._intf.get_property(IRadarClutterGeometryModel._metadata, IRadarClutterGeometryModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarClutterGeometryModelType),) }
    @property
    def type(self) -> "RadarClutterGeometryModelType":
        """Do not use this property, as it is deprecated. Use PointProviderType on IScatteringPointProvider instead. Gets the radar clutter geometry model type enumeration."""
        return self._intf.get_property(IRadarClutterGeometryModel._metadata, IRadarClutterGeometryModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4780141874124802821, 16664795639668072616), IRadarClutterGeometryModel)
agcls.AgTypeNameMap["IRadarClutterGeometryModel"] = IRadarClutterGeometryModel

class IRadarClutterGeometryModelPlugin(object):
    """Do not use this interface, as it is deprecated. Use ScatteringPointProviderPlugin interface instead. Provides access to the properties and methods defining a radar clutter geometry plugin model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_plugin_configuration_method_offset = 1
    _get_raw_plugin_object_method_offset = 2
    _metadata = {
        "iid_data" : (5413178837078390304, 15857632865236011159),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarClutterGeometryModelPlugin."""
        initialize_from_source_object(self, source_object, IRadarClutterGeometryModelPlugin)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarClutterGeometryModelPlugin)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarClutterGeometryModelPlugin, None)

    _get_plugin_configuration_metadata = { "offset" : _get_plugin_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_configuration(self) -> "CommRadPluginConfiguration":
        """Do not use this property, as it is deprecated. Use PluginConfiguration on ScatteringPointProviderPlugin instead. Gets the plugin configuration interface."""
        return self._intf.get_property(IRadarClutterGeometryModelPlugin._metadata, IRadarClutterGeometryModelPlugin._get_plugin_configuration_metadata)

    _get_raw_plugin_object_metadata = { "offset" : _get_raw_plugin_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def raw_plugin_object(self) -> typing.Any:
        """Do not use this property, as it is deprecated. Use RawPluginObject on ScatteringPointProviderPlugin instead. Gets the raw plugin IUnknown interface."""
        return self._intf.get_property(IRadarClutterGeometryModelPlugin._metadata, IRadarClutterGeometryModelPlugin._get_raw_plugin_object_metadata)

    _property_names[plugin_configuration] = "plugin_configuration"
    _property_names[raw_plugin_object] = "raw_plugin_object"


agcls.AgClassCatalog.add_catalog_entry((5413178837078390304, 15857632865236011159), IRadarClutterGeometryModelPlugin)
agcls.AgTypeNameMap["IRadarClutterGeometryModelPlugin"] = IRadarClutterGeometryModelPlugin

class IRadarContinuousWaveAnalysisMode(object):
    """Interface which defines an continuous wave analysis."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5544844341919634966, 10734830335434562445),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarContinuousWaveAnalysisMode."""
        initialize_from_source_object(self, source_object, IRadarContinuousWaveAnalysisMode)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarContinuousWaveAnalysisMode)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarContinuousWaveAnalysisMode, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarContinuousWaveAnalysisMode),) }
    @property
    def type(self) -> "RadarContinuousWaveAnalysisMode":
        """Get the analysis type enumeration."""
        return self._intf.get_property(IRadarContinuousWaveAnalysisMode._metadata, IRadarContinuousWaveAnalysisMode._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5544844341919634966, 10734830335434562445), IRadarContinuousWaveAnalysisMode)
agcls.AgTypeNameMap["IRadarContinuousWaveAnalysisMode"] = IRadarContinuousWaveAnalysisMode

class IRadarPulseIntegration(object):
    """Interface which defines an integration method."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5447986119186401375, 10307065544363588263),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarPulseIntegration."""
        initialize_from_source_object(self, source_object, IRadarPulseIntegration)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarPulseIntegration)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarPulseIntegration, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegrationType),) }
    @property
    def type(self) -> "RadarPulseIntegrationType":
        """Get the waveform type enumeration."""
        return self._intf.get_property(IRadarPulseIntegration._metadata, IRadarPulseIntegration._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5447986119186401375, 10307065544363588263), IRadarPulseIntegration)
agcls.AgTypeNameMap["IRadarPulseIntegration"] = IRadarPulseIntegration

class IRadarWaveformSearchTrack(object):
    """Interface which is implemented by a search/track waveform."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5753753179627114310, 278545085356401816),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarWaveformSearchTrack."""
        initialize_from_source_object(self, source_object, IRadarWaveformSearchTrack)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarWaveformSearchTrack)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarWaveformSearchTrack, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarWaveformSearchTrackType),) }
    @property
    def type(self) -> "RadarWaveformSearchTrackType":
        """Get the waveform type enumeration."""
        return self._intf.get_property(IRadarWaveformSearchTrack._metadata, IRadarWaveformSearchTrack._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5753753179627114310, 278545085356401816), IRadarWaveformSearchTrack)
agcls.AgTypeNameMap["IRadarWaveformSearchTrack"] = IRadarWaveformSearchTrack

class IRadarProbabilityOfDetection(object):
    """Provide access to the properties and methods for configuring probability of detection parameters."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5189198921495265684, 7977279480523186580),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarProbabilityOfDetection."""
        initialize_from_source_object(self, source_object, IRadarProbabilityOfDetection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarProbabilityOfDetection)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarProbabilityOfDetection, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the probability of detection algorithm name."""
        return self._intf.get_property(IRadarProbabilityOfDetection._metadata, IRadarProbabilityOfDetection._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarProbabilityOfDetectionType),) }
    @property
    def type(self) -> "RadarProbabilityOfDetectionType":
        """Get the probability of detection type."""
        return self._intf.get_property(IRadarProbabilityOfDetection._metadata, IRadarProbabilityOfDetection._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5189198921495265684, 7977279480523186580), IRadarProbabilityOfDetection)
agcls.AgTypeNameMap["IRadarProbabilityOfDetection"] = IRadarProbabilityOfDetection

class IRadarProbabilityOfDetectionCFAR(object):
    """Provide access to the properties and methods for configuring probability of detection parameters."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_probability_of_false_alarm_method_offset = 1
    _set_probability_of_false_alarm_method_offset = 2
    _get_number_of_cfar_reference_cells_method_offset = 3
    _set_number_of_cfar_reference_cells_method_offset = 4
    _metadata = {
        "iid_data" : (4986222255691422839, 12453471900594749348),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarProbabilityOfDetectionCFAR."""
        initialize_from_source_object(self, source_object, IRadarProbabilityOfDetectionCFAR)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarProbabilityOfDetectionCFAR)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarProbabilityOfDetectionCFAR, None)

    _get_probability_of_false_alarm_metadata = { "offset" : _get_probability_of_false_alarm_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def probability_of_false_alarm(self) -> float:
        """Get or set the probability of false alarm."""
        return self._intf.get_property(IRadarProbabilityOfDetectionCFAR._metadata, IRadarProbabilityOfDetectionCFAR._get_probability_of_false_alarm_metadata)

    _set_probability_of_false_alarm_metadata = { "offset" : _set_probability_of_false_alarm_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @probability_of_false_alarm.setter
    def probability_of_false_alarm(self, value:float) -> None:
        return self._intf.set_property(IRadarProbabilityOfDetectionCFAR._metadata, IRadarProbabilityOfDetectionCFAR._set_probability_of_false_alarm_metadata, value)

    _get_number_of_cfar_reference_cells_metadata = { "offset" : _get_number_of_cfar_reference_cells_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_cfar_reference_cells(self) -> int:
        """Get or set the number of CFAR reference cells."""
        return self._intf.get_property(IRadarProbabilityOfDetectionCFAR._metadata, IRadarProbabilityOfDetectionCFAR._get_number_of_cfar_reference_cells_metadata)

    _set_number_of_cfar_reference_cells_metadata = { "offset" : _set_number_of_cfar_reference_cells_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_cfar_reference_cells.setter
    def number_of_cfar_reference_cells(self, value:int) -> None:
        return self._intf.set_property(IRadarProbabilityOfDetectionCFAR._metadata, IRadarProbabilityOfDetectionCFAR._set_number_of_cfar_reference_cells_metadata, value)

    _property_names[probability_of_false_alarm] = "probability_of_false_alarm"
    _property_names[number_of_cfar_reference_cells] = "number_of_cfar_reference_cells"


agcls.AgClassCatalog.add_catalog_entry((4986222255691422839, 12453471900594749348), IRadarProbabilityOfDetectionCFAR)
agcls.AgTypeNameMap["IRadarProbabilityOfDetectionCFAR"] = IRadarProbabilityOfDetectionCFAR

class IRadarModel(object):
    """Provide access to the properties and methods defining a radar model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5418642130520373873, 16084217176399402660),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarModel."""
        initialize_from_source_object(self, source_object, IRadarModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the radar model name."""
        return self._intf.get_property(IRadarModel._metadata, IRadarModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarModelType),) }
    @property
    def type(self) -> "RadarModelType":
        """Get the radar model type enumeration."""
        return self._intf.get_property(IRadarModel._metadata, IRadarModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5418642130520373873, 16084217176399402660), IRadarModel)
agcls.AgTypeNameMap["IRadarModel"] = IRadarModel

class IRadarModeMonostatic(object):
    """Provide access to the properties and methods defining a monostatic mode."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (4970187702558133423, 12901576956408262036),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarModeMonostatic."""
        initialize_from_source_object(self, source_object, IRadarModeMonostatic)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarModeMonostatic)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarModeMonostatic, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the radar mode name."""
        return self._intf.get_property(IRadarModeMonostatic._metadata, IRadarModeMonostatic._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarMode),) }
    @property
    def type(self) -> "RadarMode":
        """Get the radar mode type enumeration."""
        return self._intf.get_property(IRadarModeMonostatic._metadata, IRadarModeMonostatic._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4970187702558133423, 12901576956408262036), IRadarModeMonostatic)
agcls.AgTypeNameMap["IRadarModeMonostatic"] = IRadarModeMonostatic

class IRadarModeBistaticTransmitter(object):
    """Provide access to the properties and methods defining a bistatic transmitter mode."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (4908438291715703619, 13162977304684557480),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarModeBistaticTransmitter."""
        initialize_from_source_object(self, source_object, IRadarModeBistaticTransmitter)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarModeBistaticTransmitter)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarModeBistaticTransmitter, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the radar mode name."""
        return self._intf.get_property(IRadarModeBistaticTransmitter._metadata, IRadarModeBistaticTransmitter._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarMode),) }
    @property
    def type(self) -> "RadarMode":
        """Get the radar mode type enumeration."""
        return self._intf.get_property(IRadarModeBistaticTransmitter._metadata, IRadarModeBistaticTransmitter._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4908438291715703619, 13162977304684557480), IRadarModeBistaticTransmitter)
agcls.AgTypeNameMap["IRadarModeBistaticTransmitter"] = IRadarModeBistaticTransmitter

class IRadarModeBistaticReceiver(object):
    """Provide access to the properties and methods defining a bistatic receiver mode."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5331367138186186022, 506597589450112659),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarModeBistaticReceiver."""
        initialize_from_source_object(self, source_object, IRadarModeBistaticReceiver)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarModeBistaticReceiver)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarModeBistaticReceiver, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the radar mode name."""
        return self._intf.get_property(IRadarModeBistaticReceiver._metadata, IRadarModeBistaticReceiver._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarMode),) }
    @property
    def type(self) -> "RadarMode":
        """Get the radar mode type enumeration."""
        return self._intf.get_property(IRadarModeBistaticReceiver._metadata, IRadarModeBistaticReceiver._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5331367138186186022, 506597589450112659), IRadarModeBistaticReceiver)
agcls.AgTypeNameMap["IRadarModeBistaticReceiver"] = IRadarModeBistaticReceiver

class IRadarClutterMapModel(object):
    """Do not use this interface, as it is deprecated. Use IScatteringPointModel interface instead. Provides access to the properties and methods defining a radar clutter map model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (4867807712446108131, 12387101423791785602),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarClutterMapModel."""
        initialize_from_source_object(self, source_object, IRadarClutterMapModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarClutterMapModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarClutterMapModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Do not use this property, as it is deprecated. Use Name on IScatteringPointModel instead. Gets the radar clutter map model name."""
        return self._intf.get_property(IRadarClutterMapModel._metadata, IRadarClutterMapModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarClutterMapModelType),) }
    @property
    def type(self) -> "RadarClutterMapModelType":
        """Do not use this property, as it is deprecated. Use Type on IScatteringPointModel instead. Gets the radar clutter map model type enumeration."""
        return self._intf.get_property(IRadarClutterMapModel._metadata, IRadarClutterMapModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4867807712446108131, 12387101423791785602), IRadarClutterMapModel)
agcls.AgTypeNameMap["IRadarClutterMapModel"] = IRadarClutterMapModel

class IRadarClutterMapModelPlugin(object):
    """Do not use this interface, as it is deprecated. Use ScatteringPointModelPlugin interface instead. Provides access to the properties and methods defining a radar clutter map plugin model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_plugin_configuration_method_offset = 1
    _get_raw_plugin_object_method_offset = 2
    _metadata = {
        "iid_data" : (5031692082348415792, 11922441730988338606),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarClutterMapModelPlugin."""
        initialize_from_source_object(self, source_object, IRadarClutterMapModelPlugin)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarClutterMapModelPlugin)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarClutterMapModelPlugin, None)

    _get_plugin_configuration_metadata = { "offset" : _get_plugin_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_configuration(self) -> "CommRadPluginConfiguration":
        """Do not use this property, as it is deprecated. Use PluginConfiguration on ScatteringPointModelPlugin instead. Gets the plugin configuration interface."""
        return self._intf.get_property(IRadarClutterMapModelPlugin._metadata, IRadarClutterMapModelPlugin._get_plugin_configuration_metadata)

    _get_raw_plugin_object_metadata = { "offset" : _get_raw_plugin_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def raw_plugin_object(self) -> typing.Any:
        """Do not use this property, as it is deprecated. Use RawPluginObject on ScatteringPointModelPlugin instead. Gets the raw plugin IUnknown interface."""
        return self._intf.get_property(IRadarClutterMapModelPlugin._metadata, IRadarClutterMapModelPlugin._get_raw_plugin_object_metadata)

    _property_names[plugin_configuration] = "plugin_configuration"
    _property_names[raw_plugin_object] = "raw_plugin_object"


agcls.AgClassCatalog.add_catalog_entry((5031692082348415792, 11922441730988338606), IRadarClutterMapModelPlugin)
agcls.AgTypeNameMap["IRadarClutterMapModelPlugin"] = IRadarClutterMapModelPlugin

class IRadarClutterMapModelConstantCoefficient(object):
    """Do not use this interface, as it is deprecated. Use ScatteringPointModelConstantCoefficient interface instead. Provides access to the properties and methods defining a radar clutter map constant coefficient model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_constant_coefficient_method_offset = 1
    _set_constant_coefficient_method_offset = 2
    _metadata = {
        "iid_data" : (4936125184131881973, 17663348557034948027),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarClutterMapModelConstantCoefficient."""
        initialize_from_source_object(self, source_object, IRadarClutterMapModelConstantCoefficient)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarClutterMapModelConstantCoefficient)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarClutterMapModelConstantCoefficient, None)

    _get_constant_coefficient_metadata = { "offset" : _get_constant_coefficient_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def constant_coefficient(self) -> float:
        """Do not use this property, as it is deprecated. Use ConstantCoefficient on ScatteringPointModelConstantCoefficient instead. Gets the constant coefficient value."""
        return self._intf.get_property(IRadarClutterMapModelConstantCoefficient._metadata, IRadarClutterMapModelConstantCoefficient._get_constant_coefficient_metadata)

    _set_constant_coefficient_metadata = { "offset" : _set_constant_coefficient_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @constant_coefficient.setter
    def constant_coefficient(self, value:float) -> None:
        return self._intf.set_property(IRadarClutterMapModelConstantCoefficient._metadata, IRadarClutterMapModelConstantCoefficient._set_constant_coefficient_metadata, value)

    _property_names[constant_coefficient] = "constant_coefficient"


agcls.AgClassCatalog.add_catalog_entry((4936125184131881973, 17663348557034948027), IRadarClutterMapModelConstantCoefficient)
agcls.AgTypeNameMap["IRadarClutterMapModelConstantCoefficient"] = IRadarClutterMapModelConstantCoefficient

class IRadarCrossSectionComputeStrategy(object):
    """Provide access to the properties and methods defining a radar cross section compute Strategy."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5710528816396277778, 13397989219346869431),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRadarCrossSectionComputeStrategy."""
        initialize_from_source_object(self, source_object, IRadarCrossSectionComputeStrategy)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRadarCrossSectionComputeStrategy)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRadarCrossSectionComputeStrategy, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the radar cross section compute strategy name."""
        return self._intf.get_property(IRadarCrossSectionComputeStrategy._metadata, IRadarCrossSectionComputeStrategy._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RCSComputeStrategy),) }
    @property
    def type(self) -> "RCSComputeStrategy":
        """Get the radar cross section compute strategy enumeration."""
        return self._intf.get_property(IRadarCrossSectionComputeStrategy._metadata, IRadarCrossSectionComputeStrategy._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5710528816396277778, 13397989219346869431), IRadarCrossSectionComputeStrategy)
agcls.AgTypeNameMap["IRadarCrossSectionComputeStrategy"] = IRadarCrossSectionComputeStrategy

class IModulatorModelScriptPlugin(object):
    """Provide access to the properties and methods defining an script plugin modulator model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5073384229586334400, 241928354667072433),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IModulatorModelScriptPlugin."""
        initialize_from_source_object(self, source_object, IModulatorModelScriptPlugin)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IModulatorModelScriptPlugin)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IModulatorModelScriptPlugin, None)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the external filename."""
        return self._intf.get_property(IModulatorModelScriptPlugin._metadata, IModulatorModelScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(IModulatorModelScriptPlugin._metadata, IModulatorModelScriptPlugin._set_filename_metadata, value)

    _property_names[filename] = "filename"


agcls.AgClassCatalog.add_catalog_entry((5073384229586334400, 241928354667072433), IModulatorModelScriptPlugin)
agcls.AgTypeNameMap["IModulatorModelScriptPlugin"] = IModulatorModelScriptPlugin

class IRainLossModel(object):
    """Provide access to the properties and methods a rain loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (4903217322202960801, 14250600675292157853),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IRainLossModel."""
        initialize_from_source_object(self, source_object, IRainLossModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IRainLossModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IRainLossModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the rain loss model name."""
        return self._intf.get_property(IRainLossModel._metadata, IRainLossModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RainLossModelType),) }
    @property
    def type(self) -> "RainLossModelType":
        """Get the rain loss model type enumeration."""
        return self._intf.get_property(IRainLossModel._metadata, IRainLossModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4903217322202960801, 14250600675292157853), IRainLossModel)
agcls.AgTypeNameMap["IRainLossModel"] = IRainLossModel

class IUrbanTerrestrialLossModel(object):
    """Provide access to the properties and methods for an urban/terrestrial loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (4761953284863665641, 18179120095316283294),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IUrbanTerrestrialLossModel."""
        initialize_from_source_object(self, source_object, IUrbanTerrestrialLossModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IUrbanTerrestrialLossModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IUrbanTerrestrialLossModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the Urban Terrestrial loss model name."""
        return self._intf.get_property(IUrbanTerrestrialLossModel._metadata, IUrbanTerrestrialLossModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(UrbanTerrestrialLossModelType),) }
    @property
    def type(self) -> "UrbanTerrestrialLossModelType":
        """Get the Urban Terrestrial loss model type enumeration."""
        return self._intf.get_property(IUrbanTerrestrialLossModel._metadata, IUrbanTerrestrialLossModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4761953284863665641, 18179120095316283294), IUrbanTerrestrialLossModel)
agcls.AgTypeNameMap["IUrbanTerrestrialLossModel"] = IUrbanTerrestrialLossModel

class ITroposphericScintillationFadingLossModel(object):
    """Provide access to the properties and methods for a TropoSpheric Scintillation Fading loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5208680887154461530, 2261905771175173548),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ITroposphericScintillationFadingLossModel."""
        initialize_from_source_object(self, source_object, ITroposphericScintillationFadingLossModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ITroposphericScintillationFadingLossModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ITroposphericScintillationFadingLossModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the TropoSpheric Scintillation Fading loss model name."""
        return self._intf.get_property(ITroposphericScintillationFadingLossModel._metadata, ITroposphericScintillationFadingLossModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TroposphericScintillationFadingLossModelType),) }
    @property
    def type(self) -> "TroposphericScintillationFadingLossModelType":
        """Get the TropoSpheric Scintillation Fading loss model type enumeration."""
        return self._intf.get_property(ITroposphericScintillationFadingLossModel._metadata, ITroposphericScintillationFadingLossModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5208680887154461530, 2261905771175173548), ITroposphericScintillationFadingLossModel)
agcls.AgTypeNameMap["ITroposphericScintillationFadingLossModel"] = ITroposphericScintillationFadingLossModel

class IIonosphericFadingLossModel(object):
    """Provide access to the properties and methods for an Ionospheric Fading loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5501767177780066856, 6554038788432725376),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IIonosphericFadingLossModel."""
        initialize_from_source_object(self, source_object, IIonosphericFadingLossModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IIonosphericFadingLossModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IIonosphericFadingLossModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the IonoSpheric Fading loss model name."""
        return self._intf.get_property(IIonosphericFadingLossModel._metadata, IIonosphericFadingLossModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(IonosphericFadingLossModelType),) }
    @property
    def type(self) -> "IonosphericFadingLossModelType":
        """Get the IonoSpheric Fading loss model type enumeration."""
        return self._intf.get_property(IIonosphericFadingLossModel._metadata, IIonosphericFadingLossModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5501767177780066856, 6554038788432725376), IIonosphericFadingLossModel)
agcls.AgTypeNameMap["IIonosphericFadingLossModel"] = IIonosphericFadingLossModel

class ICloudsAndFogFadingLossModel(object):
    """Provide access to the properties and methods for Clouds and Fog loss models."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5611568552580796800, 533580683375654285),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ICloudsAndFogFadingLossModel."""
        initialize_from_source_object(self, source_object, ICloudsAndFogFadingLossModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ICloudsAndFogFadingLossModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ICloudsAndFogFadingLossModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the Clouds and Fog loss model name."""
        return self._intf.get_property(ICloudsAndFogFadingLossModel._metadata, ICloudsAndFogFadingLossModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CloudsAndFogFadingLossModelType),) }
    @property
    def type(self) -> "CloudsAndFogFadingLossModelType":
        """Get the Clouds and Fog loss model type enumeration."""
        return self._intf.get_property(ICloudsAndFogFadingLossModel._metadata, ICloudsAndFogFadingLossModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5611568552580796800, 533580683375654285), ICloudsAndFogFadingLossModel)
agcls.AgTypeNameMap["ICloudsAndFogFadingLossModel"] = ICloudsAndFogFadingLossModel

class IAtmosphericAbsorptionModel(object):
    """Provide access to the properties and methods an atmospheric absorption model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (4639354891994271970, 8676637918239658657),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAtmosphericAbsorptionModel."""
        initialize_from_source_object(self, source_object, IAtmosphericAbsorptionModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAtmosphericAbsorptionModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAtmosphericAbsorptionModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the atmospheric absorption model name."""
        return self._intf.get_property(IAtmosphericAbsorptionModel._metadata, IAtmosphericAbsorptionModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AtmosphericAbsorptionModelType),) }
    @property
    def type(self) -> "AtmosphericAbsorptionModelType":
        """Get the atmospheric absorption model type enumeration."""
        return self._intf.get_property(IAtmosphericAbsorptionModel._metadata, IAtmosphericAbsorptionModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4639354891994271970, 8676637918239658657), IAtmosphericAbsorptionModel)
agcls.AgTypeNameMap["IAtmosphericAbsorptionModel"] = IAtmosphericAbsorptionModel

class IAtmosphericAbsorptionModelITURP676(object):
    """Provide access to the properties and methods of the ITU-R P676 atmospheric absorption model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_fast_approximation_method_method_offset = 1
    _set_fast_approximation_method_method_offset = 2
    _get_seasonal_regional_method_method_offset = 3
    _set_seasonal_regional_method_method_offset = 4
    _metadata = {
        "iid_data" : (5038272657251594510, 10434970451019938704),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAtmosphericAbsorptionModelITURP676."""
        initialize_from_source_object(self, source_object, IAtmosphericAbsorptionModelITURP676)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAtmosphericAbsorptionModelITURP676)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAtmosphericAbsorptionModelITURP676, None)

    _get_fast_approximation_method_metadata = { "offset" : _get_fast_approximation_method_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def fast_approximation_method(self) -> bool:
        """Get or set the option for using the fast approximation method."""
        return self._intf.get_property(IAtmosphericAbsorptionModelITURP676._metadata, IAtmosphericAbsorptionModelITURP676._get_fast_approximation_method_metadata)

    _set_fast_approximation_method_metadata = { "offset" : _set_fast_approximation_method_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @fast_approximation_method.setter
    def fast_approximation_method(self, value:bool) -> None:
        return self._intf.set_property(IAtmosphericAbsorptionModelITURP676._metadata, IAtmosphericAbsorptionModelITURP676._set_fast_approximation_method_metadata, value)

    _get_seasonal_regional_method_metadata = { "offset" : _get_seasonal_regional_method_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def seasonal_regional_method(self) -> bool:
        """Get or set the option for using the seasonal/regional method."""
        return self._intf.get_property(IAtmosphericAbsorptionModelITURP676._metadata, IAtmosphericAbsorptionModelITURP676._get_seasonal_regional_method_metadata)

    _set_seasonal_regional_method_metadata = { "offset" : _set_seasonal_regional_method_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @seasonal_regional_method.setter
    def seasonal_regional_method(self, value:bool) -> None:
        return self._intf.set_property(IAtmosphericAbsorptionModelITURP676._metadata, IAtmosphericAbsorptionModelITURP676._set_seasonal_regional_method_metadata, value)

    _property_names[fast_approximation_method] = "fast_approximation_method"
    _property_names[seasonal_regional_method] = "seasonal_regional_method"


agcls.AgClassCatalog.add_catalog_entry((5038272657251594510, 10434970451019938704), IAtmosphericAbsorptionModelITURP676)
agcls.AgTypeNameMap["IAtmosphericAbsorptionModelITURP676"] = IAtmosphericAbsorptionModelITURP676

class IAtmosphericAbsorptionModelTIREM(object):
    """Provide access to the properties and methods of the TIREM atmospheric absorption model."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_surface_temperature_method_offset = 1
    _set_surface_temperature_method_offset = 2
    _get_surface_humidity_method_offset = 3
    _set_surface_humidity_method_offset = 4
    _get_surface_conductivity_method_offset = 5
    _set_surface_conductivity_method_offset = 6
    _get_surface_refractivity_method_offset = 7
    _set_surface_refractivity_method_offset = 8
    _get_relative_permittivity_method_offset = 9
    _set_relative_permittivity_method_offset = 10
    _get_override_terrain_sample_resolution_method_offset = 11
    _set_override_terrain_sample_resolution_method_offset = 12
    _get_terrain_sample_resolution_method_offset = 13
    _set_terrain_sample_resolution_method_offset = 14
    _get_polarization_type_method_offset = 15
    _set_polarization_type_method_offset = 16
    _metadata = {
        "iid_data" : (5274156196296289459, 6922873188154417292),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAtmosphericAbsorptionModelTIREM."""
        initialize_from_source_object(self, source_object, IAtmosphericAbsorptionModelTIREM)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAtmosphericAbsorptionModelTIREM)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAtmosphericAbsorptionModelTIREM, None)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._set_surface_temperature_metadata, value)

    _get_surface_humidity_metadata = { "offset" : _get_surface_humidity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_humidity(self) -> float:
        """Get or set the surface humidity."""
        return self._intf.get_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._get_surface_humidity_metadata)

    _set_surface_humidity_metadata = { "offset" : _set_surface_humidity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_humidity.setter
    def surface_humidity(self, value:float) -> None:
        return self._intf.set_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._set_surface_humidity_metadata, value)

    _get_surface_conductivity_metadata = { "offset" : _get_surface_conductivity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_conductivity(self) -> float:
        """Get or set the surface conductivity."""
        return self._intf.get_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._get_surface_conductivity_metadata)

    _set_surface_conductivity_metadata = { "offset" : _set_surface_conductivity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_conductivity.setter
    def surface_conductivity(self, value:float) -> None:
        return self._intf.set_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._set_surface_conductivity_metadata, value)

    _get_surface_refractivity_metadata = { "offset" : _get_surface_refractivity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_refractivity(self) -> float:
        """Get or set the surface refractivity."""
        return self._intf.get_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._get_surface_refractivity_metadata)

    _set_surface_refractivity_metadata = { "offset" : _set_surface_refractivity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_refractivity.setter
    def surface_refractivity(self, value:float) -> None:
        return self._intf.set_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._set_surface_refractivity_metadata, value)

    _get_relative_permittivity_metadata = { "offset" : _get_relative_permittivity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def relative_permittivity(self) -> float:
        """Get or set the relative permittivity."""
        return self._intf.get_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._get_relative_permittivity_metadata)

    _set_relative_permittivity_metadata = { "offset" : _set_relative_permittivity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @relative_permittivity.setter
    def relative_permittivity(self, value:float) -> None:
        return self._intf.set_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._set_relative_permittivity_metadata, value)

    _get_override_terrain_sample_resolution_metadata = { "offset" : _get_override_terrain_sample_resolution_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_terrain_sample_resolution(self) -> bool:
        """Get or set the option for overriding available terrain sample resolution."""
        return self._intf.get_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._get_override_terrain_sample_resolution_metadata)

    _set_override_terrain_sample_resolution_metadata = { "offset" : _set_override_terrain_sample_resolution_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_terrain_sample_resolution.setter
    def override_terrain_sample_resolution(self, value:bool) -> None:
        return self._intf.set_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._set_override_terrain_sample_resolution_metadata, value)

    _get_terrain_sample_resolution_metadata = { "offset" : _get_terrain_sample_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def terrain_sample_resolution(self) -> float:
        """Get or set the terrain sample resolution."""
        return self._intf.get_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._get_terrain_sample_resolution_metadata)

    _set_terrain_sample_resolution_metadata = { "offset" : _set_terrain_sample_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @terrain_sample_resolution.setter
    def terrain_sample_resolution(self, value:float) -> None:
        return self._intf.set_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._set_terrain_sample_resolution_metadata, value)

    _get_polarization_type_metadata = { "offset" : _get_polarization_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TIREMPolarizationType),) }
    @property
    def polarization_type(self) -> "TIREMPolarizationType":
        """Get or set the polarization type."""
        return self._intf.get_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._get_polarization_type_metadata)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TIREMPolarizationType),) }
    @polarization_type.setter
    def polarization_type(self, value:"TIREMPolarizationType") -> None:
        return self._intf.set_property(IAtmosphericAbsorptionModelTIREM._metadata, IAtmosphericAbsorptionModelTIREM._set_polarization_type_metadata, value)

    _property_names[surface_temperature] = "surface_temperature"
    _property_names[surface_humidity] = "surface_humidity"
    _property_names[surface_conductivity] = "surface_conductivity"
    _property_names[surface_refractivity] = "surface_refractivity"
    _property_names[relative_permittivity] = "relative_permittivity"
    _property_names[override_terrain_sample_resolution] = "override_terrain_sample_resolution"
    _property_names[terrain_sample_resolution] = "terrain_sample_resolution"
    _property_names[polarization_type] = "polarization_type"


agcls.AgClassCatalog.add_catalog_entry((5274156196296289459, 6922873188154417292), IAtmosphericAbsorptionModelTIREM)
agcls.AgTypeNameMap["IAtmosphericAbsorptionModelTIREM"] = IAtmosphericAbsorptionModelTIREM

class ISolarActivityConfiguration(object):
    """Provide access to the properties and methods defining the solar activity configuration."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (4933389110832147333, 11535893757759372938),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ISolarActivityConfiguration."""
        initialize_from_source_object(self, source_object, ISolarActivityConfiguration)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ISolarActivityConfiguration)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ISolarActivityConfiguration, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DACAPSolarActivityConfigurationType),) }
    @property
    def type(self) -> "Graphics3DACAPSolarActivityConfigurationType":
        """Get the solar activity configuration enumeration."""
        return self._intf.get_property(ISolarActivityConfiguration._metadata, ISolarActivityConfiguration._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4933389110832147333, 11535893757759372938), ISolarActivityConfiguration)
agcls.AgTypeNameMap["ISolarActivityConfiguration"] = ISolarActivityConfiguration

class ILaserAtmosphericLossModel(object):
    """Provide access to the properties and methods for a laser atmospheric absorption loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5377332082888097657, 3475573334162558896),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ILaserAtmosphericLossModel."""
        initialize_from_source_object(self, source_object, ILaserAtmosphericLossModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ILaserAtmosphericLossModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ILaserAtmosphericLossModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the model name."""
        return self._intf.get_property(ILaserAtmosphericLossModel._metadata, ILaserAtmosphericLossModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LaserPropagationLossModelType),) }
    @property
    def type(self) -> "LaserPropagationLossModelType":
        """Get the model type enumeration."""
        return self._intf.get_property(ILaserAtmosphericLossModel._metadata, ILaserAtmosphericLossModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5377332082888097657, 3475573334162558896), ILaserAtmosphericLossModel)
agcls.AgTypeNameMap["ILaserAtmosphericLossModel"] = ILaserAtmosphericLossModel

class ILaserTroposphericScintillationLossModel(object):
    """Provide access to the properties and methods for a laser tropospheric scintillation loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _metadata = {
        "iid_data" : (5619117213023705426, 16106002562257095815),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ILaserTroposphericScintillationLossModel."""
        initialize_from_source_object(self, source_object, ILaserTroposphericScintillationLossModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ILaserTroposphericScintillationLossModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ILaserTroposphericScintillationLossModel, None)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the model name."""
        return self._intf.get_property(ILaserTroposphericScintillationLossModel._metadata, ILaserTroposphericScintillationLossModel._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LaserTroposphericScintillationLossModelType),) }
    @property
    def type(self) -> "LaserTroposphericScintillationLossModelType":
        """Get the model type enumeration."""
        return self._intf.get_property(ILaserTroposphericScintillationLossModel._metadata, ILaserTroposphericScintillationLossModel._get_type_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5619117213023705426, 16106002562257095815), ILaserTroposphericScintillationLossModel)
agcls.AgTypeNameMap["ILaserTroposphericScintillationLossModel"] = ILaserTroposphericScintillationLossModel

class IAtmosphericTurbulenceModel(object):
    """Provide access to a refractive index structure parameter model."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (4934895858531787826, 15005049333499468937),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IAtmosphericTurbulenceModel."""
        initialize_from_source_object(self, source_object, IAtmosphericTurbulenceModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IAtmosphericTurbulenceModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IAtmosphericTurbulenceModel, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AtmosphericTurbulenceModelType),) }
    @property
    def type(self) -> "AtmosphericTurbulenceModelType":
        """Get the model type enumeration."""
        return self._intf.get_property(IAtmosphericTurbulenceModel._metadata, IAtmosphericTurbulenceModel._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4934895858531787826, 15005049333499468937), IAtmosphericTurbulenceModel)
agcls.AgTypeNameMap["IAtmosphericTurbulenceModel"] = IAtmosphericTurbulenceModel

class ILaserPropagationChannel(object):
    """Provide access to laser propagation loss models."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_atmospheric_loss_model_method_offset = 1
    _set_enable_atmospheric_loss_model_method_offset = 2
    _set_atmospheric_loss_model_method_offset = 3
    _get_atmospheric_loss_model_method_offset = 4
    _get_enable_tropospheric_scintillation_loss_model_method_offset = 5
    _set_enable_tropospheric_scintillation_loss_model_method_offset = 6
    _set_tropospheric_scintillation_loss_model_method_offset = 7
    _get_tropospheric_scintillation_loss_model_method_offset = 8
    _get_atmospheric_loss_model_component_linking_method_offset = 9
    _get_tropospheric_scintillation_loss_model_component_linking_method_offset = 10
    _metadata = {
        "iid_data" : (5405068464516701808, 8818527412348089472),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ILaserPropagationChannel."""
        initialize_from_source_object(self, source_object, ILaserPropagationChannel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ILaserPropagationChannel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ILaserPropagationChannel, None)

    _get_enable_atmospheric_loss_model_metadata = { "offset" : _get_enable_atmospheric_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_atmospheric_loss_model(self) -> bool:
        """Get or set the option for computing atmospheric absorption propagation loss."""
        return self._intf.get_property(ILaserPropagationChannel._metadata, ILaserPropagationChannel._get_enable_atmospheric_loss_model_metadata)

    _set_enable_atmospheric_loss_model_metadata = { "offset" : _set_enable_atmospheric_loss_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_atmospheric_loss_model.setter
    def enable_atmospheric_loss_model(self, value:bool) -> None:
        return self._intf.set_property(ILaserPropagationChannel._metadata, ILaserPropagationChannel._set_enable_atmospheric_loss_model_metadata, value)

    _set_atmospheric_loss_model_metadata = { "offset" : _set_atmospheric_loss_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_atmospheric_loss_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use AtmosphericLossModelComponentLinking on ILaserPropagationChannel instead. Sets the current atmospheric absorption loss model by name."""
        return self._intf.invoke(ILaserPropagationChannel._metadata, ILaserPropagationChannel._set_atmospheric_loss_model_metadata, model_name)

    _get_atmospheric_loss_model_metadata = { "offset" : _get_atmospheric_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmospheric_loss_model(self) -> "ILaserAtmosphericLossModel":
        """Do not use this property, as it is deprecated. Use AtmosphericLossModelComponentLinking on ILaserPropagationChannel instead. Gets the laser atmospheric absorption loss model."""
        return self._intf.get_property(ILaserPropagationChannel._metadata, ILaserPropagationChannel._get_atmospheric_loss_model_metadata)

    _get_enable_tropospheric_scintillation_loss_model_metadata = { "offset" : _get_enable_tropospheric_scintillation_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_tropospheric_scintillation_loss_model(self) -> bool:
        """Get or set the option for computing tropospheric scintillation propagation loss."""
        return self._intf.get_property(ILaserPropagationChannel._metadata, ILaserPropagationChannel._get_enable_tropospheric_scintillation_loss_model_metadata)

    _set_enable_tropospheric_scintillation_loss_model_metadata = { "offset" : _set_enable_tropospheric_scintillation_loss_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_tropospheric_scintillation_loss_model.setter
    def enable_tropospheric_scintillation_loss_model(self, value:bool) -> None:
        return self._intf.set_property(ILaserPropagationChannel._metadata, ILaserPropagationChannel._set_enable_tropospheric_scintillation_loss_model_metadata, value)

    _set_tropospheric_scintillation_loss_model_metadata = { "offset" : _set_tropospheric_scintillation_loss_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_tropospheric_scintillation_loss_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use TroposphericScintillationLossModelComponentLinking on ILaserPropagationChannel instead. Sets the current tropospheric scintillation loss model by name."""
        return self._intf.invoke(ILaserPropagationChannel._metadata, ILaserPropagationChannel._set_tropospheric_scintillation_loss_model_metadata, model_name)

    _get_tropospheric_scintillation_loss_model_metadata = { "offset" : _get_tropospheric_scintillation_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tropospheric_scintillation_loss_model(self) -> "ILaserTroposphericScintillationLossModel":
        """Do not use this property, as it is deprecated. Use TroposphericScintillationLossModelComponentLinking on ILaserPropagationChannel instead. Gets the laser propagation loss model."""
        return self._intf.get_property(ILaserPropagationChannel._metadata, ILaserPropagationChannel._get_tropospheric_scintillation_loss_model_metadata)

    _get_atmospheric_loss_model_component_linking_metadata = { "offset" : _get_atmospheric_loss_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmospheric_loss_model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the atmospheric loss model component."""
        return self._intf.get_property(ILaserPropagationChannel._metadata, ILaserPropagationChannel._get_atmospheric_loss_model_component_linking_metadata)

    _get_tropospheric_scintillation_loss_model_component_linking_metadata = { "offset" : _get_tropospheric_scintillation_loss_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tropospheric_scintillation_loss_model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the tropospheric scintillation loss model component."""
        return self._intf.get_property(ILaserPropagationChannel._metadata, ILaserPropagationChannel._get_tropospheric_scintillation_loss_model_component_linking_metadata)

    _property_names[enable_atmospheric_loss_model] = "enable_atmospheric_loss_model"
    _property_names[atmospheric_loss_model] = "atmospheric_loss_model"
    _property_names[enable_tropospheric_scintillation_loss_model] = "enable_tropospheric_scintillation_loss_model"
    _property_names[tropospheric_scintillation_loss_model] = "tropospheric_scintillation_loss_model"
    _property_names[atmospheric_loss_model_component_linking] = "atmospheric_loss_model_component_linking"
    _property_names[tropospheric_scintillation_loss_model_component_linking] = "tropospheric_scintillation_loss_model_component_linking"


agcls.AgClassCatalog.add_catalog_entry((5405068464516701808, 8818527412348089472), ILaserPropagationChannel)
agcls.AgTypeNameMap["ILaserPropagationChannel"] = ILaserPropagationChannel

class ICommSystemLinkSelectionCriteria(object):
    """Provide access to a link selection criteria."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (4677210225164506469, 6443323360222069394),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ICommSystemLinkSelectionCriteria."""
        initialize_from_source_object(self, source_object, ICommSystemLinkSelectionCriteria)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ICommSystemLinkSelectionCriteria)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ICommSystemLinkSelectionCriteria, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CommSystemLinkSelectionCriteriaType),) }
    @property
    def type(self) -> "CommSystemLinkSelectionCriteriaType":
        """Get the link selection criteria type."""
        return self._intf.get_property(ICommSystemLinkSelectionCriteria._metadata, ICommSystemLinkSelectionCriteria._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4677210225164506469, 6443323360222069394), ICommSystemLinkSelectionCriteria)
agcls.AgTypeNameMap["ICommSystemLinkSelectionCriteria"] = ICommSystemLinkSelectionCriteria

class ICommSystemAccessEventDetection(object):
    """Provide access to the properties an access event detection algorithm."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5208341045069386558, 3088738700208561563),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ICommSystemAccessEventDetection."""
        initialize_from_source_object(self, source_object, ICommSystemAccessEventDetection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ICommSystemAccessEventDetection)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ICommSystemAccessEventDetection, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CommSystemAccessEventDetectionType),) }
    @property
    def type(self) -> "CommSystemAccessEventDetectionType":
        """Get the access event detection type."""
        return self._intf.get_property(ICommSystemAccessEventDetection._metadata, ICommSystemAccessEventDetection._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5208341045069386558, 3088738700208561563), ICommSystemAccessEventDetection)
agcls.AgTypeNameMap["ICommSystemAccessEventDetection"] = ICommSystemAccessEventDetection

class ICommSystemAccessSamplingMethod(object):
    """Provide access to the properties for the sampling method."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (4674942315843519248, 13441377460609190050),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ICommSystemAccessSamplingMethod."""
        initialize_from_source_object(self, source_object, ICommSystemAccessSamplingMethod)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ICommSystemAccessSamplingMethod)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ICommSystemAccessSamplingMethod, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CommSystemAccessSamplingMethodType),) }
    @property
    def type(self) -> "CommSystemAccessSamplingMethodType":
        """Get the access sampling method type."""
        return self._intf.get_property(ICommSystemAccessSamplingMethod._metadata, ICommSystemAccessSamplingMethod._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4674942315843519248, 13441377460609190050), ICommSystemAccessSamplingMethod)
agcls.AgTypeNameMap["ICommSystemAccessSamplingMethod"] = ICommSystemAccessSamplingMethod

class ISRPModelBase(object):
    """A base interface for solar radiation pressure models."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5737677571023715874, 3567370799694821533),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ISRPModelBase."""
        initialize_from_source_object(self, source_object, ISRPModelBase)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ISRPModelBase)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ISRPModelBase, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SolarRadiationPressureModelType),) }
    @property
    def type(self) -> "SolarRadiationPressureModelType":
        """Return the type of the solar radiation pressure model."""
        return self._intf.get_property(ISRPModelBase._metadata, ISRPModelBase._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5737677571023715874, 3567370799694821533), ISRPModelBase)
agcls.AgTypeNameMap["ISRPModelBase"] = ISRPModelBase

class IVehicleHPOPDragModel(object):
    """A base interface for drag models."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5150607289378482806, 3589177186674435468),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleHPOPDragModel."""
        initialize_from_source_object(self, source_object, IVehicleHPOPDragModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleHPOPDragModel)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleHPOPDragModel, None)



agcls.AgClassCatalog.add_catalog_entry((5150607289378482806, 3589177186674435468), IVehicleHPOPDragModel)
agcls.AgTypeNameMap["IVehicleHPOPDragModel"] = IVehicleHPOPDragModel

class IPropagatorSGP4LoadData(object):
    """Load Method Data interface."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5657081851075772385, 5899130106963592070),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPropagatorSGP4LoadData."""
        initialize_from_source_object(self, source_object, IPropagatorSGP4LoadData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPropagatorSGP4LoadData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPropagatorSGP4LoadData, None)



agcls.AgClassCatalog.add_catalog_entry((5657081851075772385, 5899130106963592070), IPropagatorSGP4LoadData)
agcls.AgTypeNameMap["IPropagatorSGP4LoadData"] = IPropagatorSGP4LoadData

class IVehicleSolarFluxGeoMagnitude(object):
    """Base Interface IVehicleSolarFluxGeoMagnitude. SolarFluxGeoMagneticValueSettings and SolarFluxGeoMagneticFileSettings derive from this interface."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5663764114058169289, 5585639902224213913),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleSolarFluxGeoMagnitude."""
        initialize_from_source_object(self, source_object, IVehicleSolarFluxGeoMagnitude)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleSolarFluxGeoMagnitude)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleSolarFluxGeoMagnitude, None)



agcls.AgClassCatalog.add_catalog_entry((5663764114058169289, 5585639902224213913), IVehicleSolarFluxGeoMagnitude)
agcls.AgTypeNameMap["IVehicleSolarFluxGeoMagnitude"] = IVehicleSolarFluxGeoMagnitude

class IPropagator(object):
    """Base vehicle propagator interface."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5504648384907297615, 12129420499141611952),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IPropagator."""
        initialize_from_source_object(self, source_object, IPropagator)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IPropagator)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IPropagator, None)



agcls.AgClassCatalog.add_catalog_entry((5504648384907297615, 12129420499141611952), IPropagator)
agcls.AgTypeNameMap["IPropagator"] = IPropagator

class IVehicleWaypointAltitudeReference(object):
    """Base interface for the altitude references."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5721554599985946437, 14209732357360914588),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleWaypointAltitudeReference."""
        initialize_from_source_object(self, source_object, IVehicleWaypointAltitudeReference)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleWaypointAltitudeReference)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleWaypointAltitudeReference, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleAltitudeReference),) }
    @property
    def type(self) -> "VehicleAltitudeReference":
        """Get the altitude reference type."""
        return self._intf.get_property(IVehicleWaypointAltitudeReference._metadata, IVehicleWaypointAltitudeReference._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5721554599985946437, 14209732357360914588), IVehicleWaypointAltitudeReference)
agcls.AgTypeNameMap["IVehicleWaypointAltitudeReference"] = IVehicleWaypointAltitudeReference

class IVehicleImpact(object):
    """Base Interface IVehicleImpact. VehicleImpactLocationDetic and IVehicleImpactLocationCentric derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4832445116390211078, 7809417337291873412),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleImpact."""
        initialize_from_source_object(self, source_object, IVehicleImpact)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleImpact)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleImpact, None)



agcls.AgClassCatalog.add_catalog_entry((4832445116390211078, 7809417337291873412), IVehicleImpact)
agcls.AgTypeNameMap["IVehicleImpact"] = IVehicleImpact

class IVehicleLaunchControl(object):
    """Base Interface IVehicleLaunchControl. LaunchVehicleControlFixedApogeeAltitude, LaunchVehicleControlFixedDeltaV, IVehicleLaunchControlDixedDeltaVMinEcc and IAgVeLaunchControlTimeOfFlight derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5180842658582628008, 3423034990240912026),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleLaunchControl."""
        initialize_from_source_object(self, source_object, IVehicleLaunchControl)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleLaunchControl)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleLaunchControl, None)



agcls.AgClassCatalog.add_catalog_entry((5180842658582628008, 3423034990240912026), IVehicleLaunchControl)
agcls.AgTypeNameMap["IVehicleLaunchControl"] = IVehicleLaunchControl

class IVehicleLaunch(object):
    """Base interface IVehicleLaunch. LaunchVehicleLocationDetic and ILaunchVehicleLocationCentric derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5351964125400055779, 4055263661803858079),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleLaunch."""
        initialize_from_source_object(self, source_object, IVehicleLaunch)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleLaunch)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleLaunch, None)



agcls.AgClassCatalog.add_catalog_entry((5351964125400055779, 4055263661803858079), IVehicleLaunch)
agcls.AgTypeNameMap["IVehicleLaunch"] = IVehicleLaunch

class IVehicleImpactLocation(object):
    """Base interface IVehicleImpactLocation. VehicleImpactLocationLaunchAzEl and VehicleImpactLocationPoint derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5574567871368957423, 5632221821773033149),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleImpactLocation."""
        initialize_from_source_object(self, source_object, IVehicleImpactLocation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleImpactLocation)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleImpactLocation, None)



agcls.AgClassCatalog.add_catalog_entry((5574567871368957423, 5632221821773033149), IVehicleImpactLocation)
agcls.AgTypeNameMap["IVehicleImpactLocation"] = IVehicleImpactLocation

class IVehicleGPSAlmanacProperties(object):
    """A common base interface for GPS almanac properties."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5138238116490604522, 3979978333503839397),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGPSAlmanacProperties."""
        initialize_from_source_object(self, source_object, IVehicleGPSAlmanacProperties)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGPSAlmanacProperties)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGPSAlmanacProperties, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGPSAlmanacType),) }
    @property
    def type(self) -> "VehicleGPSAlmanacType":
        """Get a type of the almanac."""
        return self._intf.get_property(IVehicleGPSAlmanacProperties._metadata, IVehicleGPSAlmanacProperties._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5138238116490604522, 3979978333503839397), IVehicleGPSAlmanacProperties)
agcls.AgTypeNameMap["IVehicleGPSAlmanacProperties"] = IVehicleGPSAlmanacProperties

class IVehicleAttitudeProfile(object):
    """The base interface that all vehicle attitude profiles are derived from."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5490912438345647069, 1340453343981047969),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleAttitudeProfile."""
        initialize_from_source_object(self, source_object, IVehicleAttitudeProfile)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleAttitudeProfile)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleAttitudeProfile, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def type(self) -> str:
        """Get profile type."""
        return self._intf.get_property(IVehicleAttitudeProfile._metadata, IVehicleAttitudeProfile._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5490912438345647069, 1340453343981047969), IVehicleAttitudeProfile)
agcls.AgTypeNameMap["IVehicleAttitudeProfile"] = IVehicleAttitudeProfile

class IVehiclePointing(object):
    """Interface for target pointing attitude profiles, which override the basic attitude profile for a satellite and have a selected axis point in the direction of one or more selected targets, subject to applicable access constraints."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_target_pointing_method_offset = 1
    _set_use_target_pointing_method_offset = 2
    _get_targets_method_offset = 3
    _get_target_times_method_offset = 4
    _metadata = {
        "iid_data" : (5643160664876148404, 12925423194043504537),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehiclePointing."""
        initialize_from_source_object(self, source_object, IVehiclePointing)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehiclePointing)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehiclePointing, None)

    _get_use_target_pointing_metadata = { "offset" : _get_use_target_pointing_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_target_pointing(self) -> bool:
        """Opt whether to use a target pointing attitude."""
        return self._intf.get_property(IVehiclePointing._metadata, IVehiclePointing._get_use_target_pointing_metadata)

    _set_use_target_pointing_metadata = { "offset" : _set_use_target_pointing_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_target_pointing.setter
    def use_target_pointing(self, use_target_pointing:bool) -> None:
        return self._intf.set_property(IVehiclePointing._metadata, IVehiclePointing._set_use_target_pointing_metadata, use_target_pointing)

    _get_targets_metadata = { "offset" : _get_targets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def targets(self) -> "VehicleTargetPointingCollection":
        """Get the targets used for the attitude profile."""
        return self._intf.get_property(IVehiclePointing._metadata, IVehiclePointing._get_targets_metadata)

    _get_target_times_metadata = { "offset" : _get_target_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def target_times(self) -> "VehicleTargetTimes":
        """Get the target times."""
        return self._intf.get_property(IVehiclePointing._metadata, IVehiclePointing._get_target_times_metadata)

    _property_names[use_target_pointing] = "use_target_pointing"
    _property_names[targets] = "targets"
    _property_names[target_times] = "target_times"


agcls.AgClassCatalog.add_catalog_entry((5643160664876148404, 12925423194043504537), IVehiclePointing)
agcls.AgTypeNameMap["IVehiclePointing"] = IVehiclePointing

class IVehicleAttitude(object):
    """Base interface for vehicle attitude options."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5037685547370727970, 17771839035887661243),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleAttitude."""
        initialize_from_source_object(self, source_object, IVehicleAttitude)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleAttitude)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleAttitude, None)



agcls.AgClassCatalog.add_catalog_entry((5037685547370727970, 17771839035887661243), IVehicleAttitude)
agcls.AgTypeNameMap["IVehicleAttitude"] = IVehicleAttitude

class IVehicleAttitudeStandard(IVehicleAttitude):
    """Standard attitude profile."""

    _num_methods = 1
    _vtable_offset = IVehicleAttitude._vtable_offset + IVehicleAttitude._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5431937810667330261, 2828467013878475399),
        "vtable_reference" : IVehicleAttitude._vtable_offset + IVehicleAttitude._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleAttitudeStandard."""
        initialize_from_source_object(self, source_object, IVehicleAttitudeStandard)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitude._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleAttitudeStandard)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleAttitudeStandard, IVehicleAttitude)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AttitudeStandardType),) }
    @property
    def type(self) -> "AttitudeStandardType":
        """Get the standard attitude profile type."""
        return self._intf.get_property(IVehicleAttitudeStandard._metadata, IVehicleAttitudeStandard._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5431937810667330261, 2828467013878475399), IVehicleAttitudeStandard)
agcls.AgTypeNameMap["IVehicleAttitudeStandard"] = IVehicleAttitudeStandard

class IVehicleGraphics2DPass(object):
    """interface IVehicleGraphics2DPass. VehicleGraphics2DPassShowPasses and IVehicleGraphics2DPassResolution derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5311915477281129694, 9226485923864577470),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics2DPass."""
        initialize_from_source_object(self, source_object, IVehicleGraphics2DPass)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics2DPass)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics2DPass, None)



agcls.AgClassCatalog.add_catalog_entry((5311915477281129694, 9226485923864577470), IVehicleGraphics2DPass)
agcls.AgTypeNameMap["IVehicleGraphics2DPass"] = IVehicleGraphics2DPass

class IVehicleGraphics2DTimeEventType(object):
    """Base Interface IVehicleGraphics2DTimeEventType. VehicleGraphics2DTimeEventTypeLine, VehicleGraphics2DTimeEventTypeMarker and IVehicleGraphics2DTimeEventTypeText derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5025294780258769292, 9041894382540971193),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics2DTimeEventType."""
        initialize_from_source_object(self, source_object, IVehicleGraphics2DTimeEventType)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics2DTimeEventType)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics2DTimeEventType, None)



agcls.AgClassCatalog.add_catalog_entry((5025294780258769292, 9041894382540971193), IVehicleGraphics2DTimeEventType)
agcls.AgTypeNameMap["IVehicleGraphics2DTimeEventType"] = IVehicleGraphics2DTimeEventType

class IVehicleGraphics2DAttributes(object):
    """Base Interface for Vehicle 2D Graphics Attributes."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5630724632594214322, 3054352712622501550),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics2DAttributes."""
        initialize_from_source_object(self, source_object, IVehicleGraphics2DAttributes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics2DAttributes)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics2DAttributes, None)



agcls.AgClassCatalog.add_catalog_entry((5630724632594214322, 3054352712622501550), IVehicleGraphics2DAttributes)
agcls.AgTypeNameMap["IVehicleGraphics2DAttributes"] = IVehicleGraphics2DAttributes

class IVehicleGraphics2DAttributesBasic(IVehicleGraphics2DAttributes):
    r"""
    Basic 2D Graphics Attributes for a vehicle.

    Examples
    --------
    Set 2D Graphics display properties:
    >>> # STKObjectRoot root: STK Object Model root
    >>> # Satellite satellite: Satellite object
    >>> # Change the line width, style, color and marker
    >>>
    >>> graphics = satellite.graphics
    >>> graphics.set_attributes_type(VehicleGraphics2DAttributeType.BASIC)
    >>> attributes = graphics.attributes
    >>> attributes.inherit = False
    >>> attributes.line.width = LineWidth.WIDTH4
    >>> attributes.line.style = LineStyle.LONG_DASH
    >>> attributes.color = Colors.Lime
    >>> if os.name == "nt":
    >>>     installPath = r"C:\Program Files\AGI\STK 12"
    >>> else:
    >>>     installPath = os.environ["STK_INSTALL_DIR"]
    >>> attributes.marker_style = os.path.join(installPath, "STKData", "Pixmaps", "MarkersWin", "m010Satellite.bmp")
    """

    _num_methods = 11
    _vtable_offset = IVehicleGraphics2DAttributes._vtable_offset + IVehicleGraphics2DAttributes._num_methods
    _get_inherit_method_offset = 1
    _set_inherit_method_offset = 2
    _get_show_graphics_method_offset = 3
    _set_show_graphics_method_offset = 4
    _get_color_method_offset = 5
    _set_color_method_offset = 6
    _get_marker_style_method_offset = 7
    _set_marker_style_method_offset = 8
    _get_show_label_method_offset = 9
    _set_show_label_method_offset = 10
    _get_line_method_offset = 11
    _metadata = {
        "iid_data" : (5480623769893779252, 2957098088799866781),
        "vtable_reference" : IVehicleGraphics2DAttributes._vtable_offset + IVehicleGraphics2DAttributes._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics2DAttributesBasic."""
        initialize_from_source_object(self, source_object, IVehicleGraphics2DAttributesBasic)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DAttributes._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics2DAttributesBasic)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics2DAttributesBasic, IVehicleGraphics2DAttributes)

    _get_inherit_metadata = { "offset" : _get_inherit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit(self) -> bool:
        """Inherit certain 2D graphics settings from the scenario level."""
        return self._intf.get_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._get_inherit_metadata)

    _set_inherit_metadata = { "offset" : _set_inherit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit.setter
    def inherit(self, inherit:bool) -> None:
        return self._intf.set_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._set_inherit_metadata, inherit)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Show 2D Graphics for the vehicle."""
        return self._intf.get_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._set_show_graphics_metadata, is_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Color in which vehicle marker, label and tracks are displayed."""
        return self._intf.get_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._set_color_metadata, color)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """Style of marker used to represent vehicle."""
        return self._intf.get_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, bstr:str) -> None:
        return self._intf.set_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._set_marker_style_metadata, bstr)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Opt whether to display the vehicle's label."""
        return self._intf.get_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, value:bool) -> None:
        return self._intf.set_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._set_show_label_metadata, value)

    _get_line_metadata = { "offset" : _get_line_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def line(self) -> "VehicleGraphics2DLine":
        """Get the line display properties for the vehicle."""
        return self._intf.get_property(IVehicleGraphics2DAttributesBasic._metadata, IVehicleGraphics2DAttributesBasic._get_line_metadata)

    _property_names[inherit] = "inherit"
    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[marker_style] = "marker_style"
    _property_names[show_label] = "show_label"
    _property_names[line] = "line"


agcls.AgClassCatalog.add_catalog_entry((5480623769893779252, 2957098088799866781), IVehicleGraphics2DAttributesBasic)
agcls.AgTypeNameMap["IVehicleGraphics2DAttributesBasic"] = IVehicleGraphics2DAttributesBasic

class IVehicleGraphics2DAttributesDisplayState(object):
    """Provide access to non-trivial properties of 2D vehicle attributes."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_display_intervals_method_offset = 1
    _metadata = {
        "iid_data" : (5066551902426933770, 13961717558826846128),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics2DAttributesDisplayState."""
        initialize_from_source_object(self, source_object, IVehicleGraphics2DAttributesDisplayState)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics2DAttributesDisplayState)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics2DAttributesDisplayState, None)

    _get_display_intervals_metadata = { "offset" : _get_display_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_display_intervals(self) -> "VehicleGraphics2DIntervalsCollection":
        """Get a read-only collection of computed display intervals."""
        return self._intf.invoke(IVehicleGraphics2DAttributesDisplayState._metadata, IVehicleGraphics2DAttributesDisplayState._get_display_intervals_metadata, OutArg())



agcls.AgClassCatalog.add_catalog_entry((5066551902426933770, 13961717558826846128), IVehicleGraphics2DAttributesDisplayState)
agcls.AgTypeNameMap["IVehicleGraphics2DAttributesDisplayState"] = IVehicleGraphics2DAttributesDisplayState

class IVehicleGraphics2DElevation(object):
    """Base Interface IVehicleGraphics2DElevation. VehicleGraphics2DElevationGroundElevation, IAgVeGfxElevationsSwathHalfWidth and IAgVeGfxElevationsSwathHalfAngle derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4992558730722716931, 16770144538786824586),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics2DElevation."""
        initialize_from_source_object(self, source_object, IVehicleGraphics2DElevation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics2DElevation)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics2DElevation, None)



agcls.AgClassCatalog.add_catalog_entry((4992558730722716931, 16770144538786824586), IVehicleGraphics2DElevation)
agcls.AgTypeNameMap["IVehicleGraphics2DElevation"] = IVehicleGraphics2DElevation

class IVehicleGraphics2DTimeComponentsElement(object):
    """Provide properties to configure the vehicle's appearance in 2D and 3D views."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_qualified_path_method_offset = 1
    _get_priority_method_offset = 2
    _increase_priority_method_offset = 3
    _decrease_priority_method_offset = 4
    _set_highest_priority_method_offset = 5
    _set_lowest_priority_method_offset = 6
    _metadata = {
        "iid_data" : (5365391812913111040, 4103492805061713310),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics2DTimeComponentsElement."""
        initialize_from_source_object(self, source_object, IVehicleGraphics2DTimeComponentsElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics2DTimeComponentsElement)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics2DTimeComponentsElement, None)

    _get_qualified_path_metadata = { "offset" : _get_qualified_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def qualified_path(self) -> str:
        """A fully qualified path of a time component."""
        return self._intf.get_property(IVehicleGraphics2DTimeComponentsElement._metadata, IVehicleGraphics2DTimeComponentsElement._get_qualified_path_metadata)

    _get_priority_metadata = { "offset" : _get_priority_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def priority(self) -> int:
        """Priority indicates the order of a time component when resolving the overlapping intervals during rendering."""
        return self._intf.get_property(IVehicleGraphics2DTimeComponentsElement._metadata, IVehicleGraphics2DTimeComponentsElement._get_priority_metadata)

    _increase_priority_metadata = { "offset" : _increase_priority_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def increase_priority(self) -> None:
        """Increase the time component's rendering priority."""
        return self._intf.invoke(IVehicleGraphics2DTimeComponentsElement._metadata, IVehicleGraphics2DTimeComponentsElement._increase_priority_metadata, )

    _decrease_priority_metadata = { "offset" : _decrease_priority_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def decrease_priority(self) -> None:
        """Decrease the time component's rendering priority."""
        return self._intf.invoke(IVehicleGraphics2DTimeComponentsElement._metadata, IVehicleGraphics2DTimeComponentsElement._decrease_priority_metadata, )

    _set_highest_priority_metadata = { "offset" : _set_highest_priority_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def set_highest_priority(self) -> None:
        """Set the highest time component's rendering priority."""
        return self._intf.invoke(IVehicleGraphics2DTimeComponentsElement._metadata, IVehicleGraphics2DTimeComponentsElement._set_highest_priority_metadata, )

    _set_lowest_priority_metadata = { "offset" : _set_lowest_priority_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def set_lowest_priority(self) -> None:
        """Set the lowest time component's rendering priority."""
        return self._intf.invoke(IVehicleGraphics2DTimeComponentsElement._metadata, IVehicleGraphics2DTimeComponentsElement._set_lowest_priority_metadata, )

    _property_names[qualified_path] = "qualified_path"
    _property_names[priority] = "priority"


agcls.AgClassCatalog.add_catalog_entry((5365391812913111040, 4103492805061713310), IVehicleGraphics2DTimeComponentsElement)
agcls.AgTypeNameMap["IVehicleGraphics2DTimeComponentsElement"] = IVehicleGraphics2DTimeComponentsElement

class IVehicleGraphics3DSystemsElementBase(object):
    """Define methods and properties used to configure the 3D properties of a reference system used for displaying vehicle orbits and trajectories."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_method_offset = 1
    _set_inherit_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_graphics_3d_window_method_offset = 5
    _set_graphics_3d_window_method_offset = 6
    _get_available_graphics_3d_windows_method_offset = 7
    _get_persist_for_all_passes_method_offset = 8
    _set_persist_for_all_passes_method_offset = 9
    _metadata = {
        "iid_data" : (5652880855108379770, 18064717504486947231),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics3DSystemsElementBase."""
        initialize_from_source_object(self, source_object, IVehicleGraphics3DSystemsElementBase)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics3DSystemsElementBase)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics3DSystemsElementBase, None)

    _get_inherit_metadata = { "offset" : _get_inherit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit(self) -> bool:
        """Inherit color from 2D graphics."""
        return self._intf.get_property(IVehicleGraphics3DSystemsElementBase._metadata, IVehicleGraphics3DSystemsElementBase._get_inherit_metadata)

    _set_inherit_metadata = { "offset" : _set_inherit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit.setter
    def inherit(self, inherit:bool) -> None:
        return self._intf.set_property(IVehicleGraphics3DSystemsElementBase._metadata, IVehicleGraphics3DSystemsElementBase._set_inherit_metadata, inherit)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Specify a custom color."""
        return self._intf.get_property(IVehicleGraphics3DSystemsElementBase._metadata, IVehicleGraphics3DSystemsElementBase._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(IVehicleGraphics3DSystemsElementBase._metadata, IVehicleGraphics3DSystemsElementBase._set_color_metadata, color)

    _get_graphics_3d_window_metadata = { "offset" : _get_graphics_3d_window_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def graphics_3d_window(self) -> str:
        """Get or set the selected 3D Graphics window."""
        return self._intf.get_property(IVehicleGraphics3DSystemsElementBase._metadata, IVehicleGraphics3DSystemsElementBase._get_graphics_3d_window_metadata)

    _set_graphics_3d_window_metadata = { "offset" : _set_graphics_3d_window_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @graphics_3d_window.setter
    def graphics_3d_window(self, window3d:str) -> None:
        return self._intf.set_property(IVehicleGraphics3DSystemsElementBase._metadata, IVehicleGraphics3DSystemsElementBase._set_graphics_3d_window_metadata, window3d)

    _get_available_graphics_3d_windows_metadata = { "offset" : _get_available_graphics_3d_windows_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_graphics_3d_windows(self) -> list:
        """3D Graphics Windows available to display the reference system."""
        return self._intf.get_property(IVehicleGraphics3DSystemsElementBase._metadata, IVehicleGraphics3DSystemsElementBase._get_available_graphics_3d_windows_metadata)

    _get_persist_for_all_passes_metadata = { "offset" : _get_persist_for_all_passes_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def persist_for_all_passes(self) -> bool:
        """Persistent the reference system when all passes are displayed."""
        return self._intf.get_property(IVehicleGraphics3DSystemsElementBase._metadata, IVehicleGraphics3DSystemsElementBase._get_persist_for_all_passes_metadata)

    _set_persist_for_all_passes_metadata = { "offset" : _set_persist_for_all_passes_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @persist_for_all_passes.setter
    def persist_for_all_passes(self, value:bool) -> None:
        return self._intf.set_property(IVehicleGraphics3DSystemsElementBase._metadata, IVehicleGraphics3DSystemsElementBase._set_persist_for_all_passes_metadata, value)

    _property_names[inherit] = "inherit"
    _property_names[color] = "color"
    _property_names[graphics_3d_window] = "graphics_3d_window"
    _property_names[available_graphics_3d_windows] = "available_graphics_3d_windows"
    _property_names[persist_for_all_passes] = "persist_for_all_passes"


agcls.AgClassCatalog.add_catalog_entry((5652880855108379770, 18064717504486947231), IVehicleGraphics3DSystemsElementBase)
agcls.AgTypeNameMap["IVehicleGraphics3DSystemsElementBase"] = IVehicleGraphics3DSystemsElementBase

class IVehicleGraphics3DProximityAreaObject(object):
    """A base class that defines methods and properties common to all proximity area objects."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_line_width_method_offset = 5
    _set_line_width_method_offset = 6
    _get_show_label_method_offset = 7
    _set_show_label_method_offset = 8
    _get_show_text_method_offset = 9
    _set_show_text_method_offset = 10
    _get_text_method_offset = 11
    _set_text_method_offset = 12
    _get_line_style_method_offset = 13
    _set_line_style_method_offset = 14
    _metadata = {
        "iid_data" : (5188900544332703262, 18083370273956676540),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics3DProximityAreaObject."""
        initialize_from_source_object(self, source_object, IVehicleGraphics3DProximityAreaObject)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics3DProximityAreaObject)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics3DProximityAreaObject, None)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether to show the proximity area object."""
        return self._intf.get_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._set_show_graphics_metadata, is_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Specify a line color."""
        return self._intf.get_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._set_color_metadata, color)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Specify a line width."""
        return self._intf.get_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._set_line_width_metadata, line_width)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Specify whether to display a label."""
        return self._intf.get_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, show_label:bool) -> None:
        return self._intf.set_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._set_show_label_metadata, show_label)

    _get_show_text_metadata = { "offset" : _get_show_text_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_text(self) -> bool:
        """Specify whether to display a text."""
        return self._intf.get_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._get_show_text_metadata)

    _set_show_text_metadata = { "offset" : _set_show_text_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_text.setter
    def show_text(self, show_text:bool) -> None:
        return self._intf.set_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._set_show_text_metadata, show_text)

    _get_text_metadata = { "offset" : _get_text_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def text(self) -> str:
        """Specify a text."""
        return self._intf.get_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._get_text_metadata)

    _set_text_metadata = { "offset" : _set_text_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @text.setter
    def text(self, text:str) -> None:
        return self._intf.set_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._set_text_metadata, text)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Specify a line style type."""
        return self._intf.get_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, line_style:"LineStyle") -> None:
        return self._intf.set_property(IVehicleGraphics3DProximityAreaObject._metadata, IVehicleGraphics3DProximityAreaObject._set_line_style_metadata, line_style)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[line_width] = "line_width"
    _property_names[show_label] = "show_label"
    _property_names[show_text] = "show_text"
    _property_names[text] = "text"
    _property_names[line_style] = "line_style"


agcls.AgClassCatalog.add_catalog_entry((5188900544332703262, 18083370273956676540), IVehicleGraphics3DProximityAreaObject)
agcls.AgTypeNameMap["IVehicleGraphics3DProximityAreaObject"] = IVehicleGraphics3DProximityAreaObject

class IVehicleGraphics3DProximity(object):
    """Base Proximity graphics interface."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5490361507773927852, 8106375085866449845),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics3DProximity."""
        initialize_from_source_object(self, source_object, IVehicleGraphics3DProximity)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics3DProximity)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics3DProximity, None)



agcls.AgClassCatalog.add_catalog_entry((5490361507773927852, 8106375085866449845), IVehicleGraphics3DProximity)
agcls.AgTypeNameMap["IVehicleGraphics3DProximity"] = IVehicleGraphics3DProximity

class IVehicleGraphics3DSigmaScale(object):
    """Base Interface IVehicleGraphics3DSigmaScale. VehicleGraphics3DSigmaScaleScale and VehicleGraphics3DSigmaScaleProbability derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5196941435489636404, 13597946803055151802),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics3DSigmaScale."""
        initialize_from_source_object(self, source_object, IVehicleGraphics3DSigmaScale)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics3DSigmaScale)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics3DSigmaScale, None)



agcls.AgClassCatalog.add_catalog_entry((5196941435489636404, 13597946803055151802), IVehicleGraphics3DSigmaScale)
agcls.AgTypeNameMap["IVehicleGraphics3DSigmaScale"] = IVehicleGraphics3DSigmaScale

class IVehicleGraphics3DAttributes(object):
    """Base Interface IVehicleGraphics3DAttributes. VehicleGraphics3DAttributesBasic and VehicleGraphics3DAttributesIntervals derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5620786374833848697, 2758767996263707820),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics3DAttributes."""
        initialize_from_source_object(self, source_object, IVehicleGraphics3DAttributes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics3DAttributes)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics3DAttributes, None)



agcls.AgClassCatalog.add_catalog_entry((5620786374833848697, 2758767996263707820), IVehicleGraphics3DAttributes)
agcls.AgTypeNameMap["IVehicleGraphics3DAttributes"] = IVehicleGraphics3DAttributes

class IVehicleGraphics3DTickData(object):
    """Base interface IVehicleGraphics3DTickData. VehicleGraphics3DTickDataLine and VehicleGraphics3DTickDataPoint derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5621580583188411286, 864090969697721496),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics3DTickData."""
        initialize_from_source_object(self, source_object, IVehicleGraphics3DTickData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics3DTickData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics3DTickData, None)



agcls.AgClassCatalog.add_catalog_entry((5621580583188411286, 864090969697721496), IVehicleGraphics3DTickData)
agcls.AgTypeNameMap["IVehicleGraphics3DTickData"] = IVehicleGraphics3DTickData

class IGreatArcGraphics(object):
    """2D Graphics common for all Great Arc Vehicles."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_attributes_type_method_offset = 1
    _set_attributes_type_method_offset = 2
    _is_attributes_type_supported_method_offset = 3
    _get_attributes_supported_types_method_offset = 4
    _get_attributes_method_offset = 5
    _get_pass_data_method_offset = 6
    _get_waypoint_marker_method_offset = 7
    _get_resolution_method_offset = 8
    _get_range_contours_method_offset = 9
    _get_lighting_method_offset = 10
    _get_ground_ellipses_method_offset = 11
    _get_label_notes_method_offset = 12
    _get_use_instance_name_label_method_offset = 13
    _set_use_instance_name_label_method_offset = 14
    _get_label_name_method_offset = 15
    _set_label_name_method_offset = 16
    _get_show_graphics_method_offset = 17
    _set_show_graphics_method_offset = 18
    _metadata = {
        "iid_data" : (5303736710526434346, 12151474888660363417),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IGreatArcGraphics."""
        initialize_from_source_object(self, source_object, IGreatArcGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IGreatArcGraphics)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IGreatArcGraphics, None)

    _get_attributes_type_metadata = { "offset" : _get_attributes_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType),) }
    @property
    def attributes_type(self) -> "VehicleGraphics2DAttributeType":
        """Get the 2D Graphics attributes type for the vehicle: basic, access intervals, custom intervals, or real time."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_attributes_type_metadata)

    _set_attributes_type_metadata = { "offset" : _set_attributes_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType),) }
    def set_attributes_type(self, attributes:"VehicleGraphics2DAttributeType") -> None:
        """Set the 2D Graphics attributes type for the vehicle."""
        return self._intf.invoke(IGreatArcGraphics._metadata, IGreatArcGraphics._set_attributes_type_metadata, attributes)

    _is_attributes_type_supported_metadata = { "offset" : _is_attributes_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType), agmarshall.VariantBoolArg,) }
    def is_attributes_type_supported(self, attributes:"VehicleGraphics2DAttributeType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(IGreatArcGraphics._metadata, IGreatArcGraphics._is_attributes_type_supported_metadata, attributes, OutArg())

    _get_attributes_supported_types_metadata = { "offset" : _get_attributes_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attributes_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_attributes_supported_types_metadata)

    _get_attributes_metadata = { "offset" : _get_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attributes(self) -> "IVehicleGraphics2DAttributes":
        """Get the vehicle's 2D Graphics attributes."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_attributes_metadata)

    _get_pass_data_metadata = { "offset" : _get_pass_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pass_data(self) -> "VehicleGraphics2DRoutePassData":
        """Get the vehicle's 2D route graphics."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_pass_data_metadata)

    _get_waypoint_marker_metadata = { "offset" : _get_waypoint_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def waypoint_marker(self) -> "VehicleGraphics2DWaypointMarker":
        """Get the vehicle's 2D waypoint marker graphics."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_waypoint_marker_metadata)

    _get_resolution_metadata = { "offset" : _get_resolution_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def resolution(self) -> "VehicleGraphics2DRouteResolution":
        """Get the vehicle's 2D resolution graphics."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_resolution_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics2DRangeContours":
        """Get the vehicle's 2D range contour graphics."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_range_contours_metadata)

    _get_lighting_metadata = { "offset" : _get_lighting_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def lighting(self) -> "VehicleGraphics2DLighting":
        """Get the vehicle's 2D lighting graphics."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_lighting_metadata)

    _get_ground_ellipses_metadata = { "offset" : _get_ground_ellipses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_ellipses(self) -> "VehicleGraphics2DGroundEllipsesCollection":
        """Get the vehicle's 2D ground ellipses graphics."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_ground_ellipses_metadata)

    _get_label_notes_metadata = { "offset" : _get_label_notes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_notes(self) -> "LabelNoteCollection":
        """Notes attached to the object and displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_label_notes_metadata)

    _get_use_instance_name_label_metadata = { "offset" : _get_use_instance_name_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_instance_name_label(self) -> bool:
        """Specify whether to use the name of the vehicle (as shown in the Object Browser) as its label."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_use_instance_name_label_metadata)

    _set_use_instance_name_label_metadata = { "offset" : _set_use_instance_name_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_instance_name_label.setter
    def use_instance_name_label(self, use_inst_name:bool) -> None:
        return self._intf.set_property(IGreatArcGraphics._metadata, IGreatArcGraphics._set_use_instance_name_label_metadata, use_inst_name)

    _get_label_name_metadata = { "offset" : _get_label_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label_name(self) -> str:
        """The user-specified name to use as a label for the vehicle."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_label_name_metadata)

    _set_label_name_metadata = { "offset" : _set_label_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label_name.setter
    def label_name(self, value:str) -> None:
        return self._intf.set_property(IGreatArcGraphics._metadata, IGreatArcGraphics._set_label_name_metadata, value)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the vehicle are visible."""
        return self._intf.get_property(IGreatArcGraphics._metadata, IGreatArcGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(IGreatArcGraphics._metadata, IGreatArcGraphics._set_show_graphics_metadata, is_visible)

    _property_names[attributes_type] = "attributes_type"
    _property_names[attributes_supported_types] = "attributes_supported_types"
    _property_names[attributes] = "attributes"
    _property_names[pass_data] = "pass_data"
    _property_names[waypoint_marker] = "waypoint_marker"
    _property_names[resolution] = "resolution"
    _property_names[range_contours] = "range_contours"
    _property_names[lighting] = "lighting"
    _property_names[ground_ellipses] = "ground_ellipses"
    _property_names[label_notes] = "label_notes"
    _property_names[use_instance_name_label] = "use_instance_name_label"
    _property_names[label_name] = "label_name"
    _property_names[show_graphics] = "show_graphics"


agcls.AgClassCatalog.add_catalog_entry((5303736710526434346, 12151474888660363417), IGreatArcGraphics)
agcls.AgTypeNameMap["IGreatArcGraphics"] = IGreatArcGraphics

class IGreatArcGraphics3D(object):
    """3D Graphics common for all Great Arc Vehicles."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_model_method_offset = 1
    _get_route_method_offset = 2
    _get_offsets_method_offset = 3
    _get_range_contours_method_offset = 4
    _get_covariance_method_offset = 5
    _get_vector_method_offset = 6
    _get_data_display_method_offset = 7
    _get_model_pointing_method_offset = 8
    _get_velocity_covariance_method_offset = 9
    _metadata = {
        "iid_data" : (4654794006484014352, 7168301143859717287),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IGreatArcGraphics3D."""
        initialize_from_source_object(self, source_object, IGreatArcGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IGreatArcGraphics3D)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IGreatArcGraphics3D, None)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "VehicleGraphics3DModelRoute":
        """Get the vehicle's 3D model properties."""
        return self._intf.get_property(IGreatArcGraphics3D._metadata, IGreatArcGraphics3D._get_model_metadata)

    _get_route_metadata = { "offset" : _get_route_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def route(self) -> "VehicleGraphics3DRoute":
        """Get the vehicle's 3D route properties."""
        return self._intf.get_property(IGreatArcGraphics3D._metadata, IGreatArcGraphics3D._get_route_metadata)

    _get_offsets_metadata = { "offset" : _get_offsets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def offsets(self) -> "Graphics3DOffset":
        """Get the vehicle's 3D offsets properties."""
        return self._intf.get_property(IGreatArcGraphics3D._metadata, IGreatArcGraphics3D._get_offsets_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics3DRangeContours":
        """Get the vehicle's 3D range contour properties."""
        return self._intf.get_property(IGreatArcGraphics3D._metadata, IGreatArcGraphics3D._get_range_contours_metadata)

    _get_covariance_metadata = { "offset" : _get_covariance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def covariance(self) -> "VehicleGraphics3DCovariance":
        """Get the vehicle's 3D covariance properties."""
        return self._intf.get_property(IGreatArcGraphics3D._metadata, IGreatArcGraphics3D._get_covariance_metadata)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get the vehicle's 3D vector properties."""
        return self._intf.get_property(IGreatArcGraphics3D._metadata, IGreatArcGraphics3D._get_vector_metadata)

    _get_data_display_metadata = { "offset" : _get_data_display_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_display(self) -> "Graphics3DDataDisplayCollection":
        """Get the vehicle's 3D data display properties."""
        return self._intf.get_property(IGreatArcGraphics3D._metadata, IGreatArcGraphics3D._get_data_display_metadata)

    _get_model_pointing_metadata = { "offset" : _get_model_pointing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_pointing(self) -> "Graphics3DModelPointing":
        """Use to point parts of a facility or vehicle model toward a target, such as the Sun or Earth."""
        return self._intf.get_property(IGreatArcGraphics3D._metadata, IGreatArcGraphics3D._get_model_pointing_metadata)

    _get_velocity_covariance_metadata = { "offset" : _get_velocity_covariance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def velocity_covariance(self) -> "VehicleGraphics3DVelocityCovariance":
        """Get the vehicle's 3D velocity covariance properties."""
        return self._intf.get_property(IGreatArcGraphics3D._metadata, IGreatArcGraphics3D._get_velocity_covariance_metadata)

    _property_names[model] = "model"
    _property_names[route] = "route"
    _property_names[offsets] = "offsets"
    _property_names[range_contours] = "range_contours"
    _property_names[covariance] = "covariance"
    _property_names[vector] = "vector"
    _property_names[data_display] = "data_display"
    _property_names[model_pointing] = "model_pointing"
    _property_names[velocity_covariance] = "velocity_covariance"


agcls.AgClassCatalog.add_catalog_entry((4654794006484014352, 7168301143859717287), IGreatArcGraphics3D)
agcls.AgTypeNameMap["IGreatArcGraphics3D"] = IGreatArcGraphics3D

class IGreatArcVehicle(object):
    """A base interface for all Great Arc Vehicles."""

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_route_type_method_offset = 1
    _set_route_type_method_offset = 2
    _is_route_type_supported_method_offset = 3
    _get_route_supported_types_method_offset = 4
    _get_route_method_offset = 5
    _get_attitude_type_method_offset = 6
    _set_attitude_type_method_offset = 7
    _is_attitude_type_supported_method_offset = 8
    _get_attitude_supported_types_method_offset = 9
    _get_attitude_method_offset = 10
    _get_ground_ellipses_method_offset = 11
    _get_access_constraints_method_offset = 12
    _get_eclipse_bodies_method_offset = 13
    _get_use_terrain_in_lighting_computations_method_offset = 14
    _set_use_terrain_in_lighting_computations_method_offset = 15
    _get_lighting_maximum_step_method_offset = 16
    _set_lighting_maximum_step_method_offset = 17
    _metadata = {
        "iid_data" : (5279504316049954210, 15594367786580511107),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IGreatArcVehicle."""
        initialize_from_source_object(self, source_object, IGreatArcVehicle)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IGreatArcVehicle)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IGreatArcVehicle, None)

    _get_route_type_metadata = { "offset" : _get_route_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorType),) }
    @property
    def route_type(self) -> "PropagatorType":
        """Get the propagator type."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_route_type_metadata)

    _set_route_type_metadata = { "offset" : _set_route_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorType),) }
    def set_route_type(self, route:"PropagatorType") -> None:
        """Set the propagator type."""
        return self._intf.invoke(IGreatArcVehicle._metadata, IGreatArcVehicle._set_route_type_metadata, route)

    _is_route_type_supported_metadata = { "offset" : _is_route_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(PropagatorType), agmarshall.VariantBoolArg,) }
    def is_route_type_supported(self, route:"PropagatorType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(IGreatArcVehicle._metadata, IGreatArcVehicle._is_route_type_supported_metadata, route, OutArg())

    _get_route_supported_types_metadata = { "offset" : _get_route_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def route_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_route_supported_types_metadata)

    _get_route_metadata = { "offset" : _get_route_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def route(self) -> "IPropagator":
        """Get the route properties."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_route_metadata)

    _get_attitude_type_metadata = { "offset" : _get_attitude_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude),) }
    @property
    def attitude_type(self) -> "VehicleAttitude":
        """Get the type of attitude profile."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_attitude_type_metadata)

    _set_attitude_type_metadata = { "offset" : _set_attitude_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude),) }
    def set_attitude_type(self, attitude:"VehicleAttitude") -> None:
        """Set the type of attitude profile."""
        return self._intf.invoke(IGreatArcVehicle._metadata, IGreatArcVehicle._set_attitude_type_metadata, attitude)

    _is_attitude_type_supported_metadata = { "offset" : _is_attitude_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude), agmarshall.VariantBoolArg,) }
    def is_attitude_type_supported(self, attitude:"VehicleAttitude") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(IGreatArcVehicle._metadata, IGreatArcVehicle._is_attitude_type_supported_metadata, attitude, OutArg())

    _get_attitude_supported_types_metadata = { "offset" : _get_attitude_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attitude_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_attitude_supported_types_metadata)

    _get_attitude_metadata = { "offset" : _get_attitude_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attitude(self) -> "IVehicleAttitude":
        """Get the  attitude profile."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_attitude_metadata)

    _get_ground_ellipses_metadata = { "offset" : _get_ground_ellipses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_ellipses(self) -> "VehicleGroundEllipsesCollection":
        """Get the  ground ellipses properties."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_ground_ellipses_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the vehicle."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_access_constraints_metadata)

    _get_eclipse_bodies_metadata = { "offset" : _get_eclipse_bodies_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def eclipse_bodies(self) -> "VehicleEclipseBodies":
        """Get the customized list of Eclipse Bodies, which are central bodies used in lighting computations."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_eclipse_bodies_metadata)

    _get_use_terrain_in_lighting_computations_metadata = { "offset" : _get_use_terrain_in_lighting_computations_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain_in_lighting_computations(self) -> bool:
        """Opt whether to compute lighting using terrain data."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_use_terrain_in_lighting_computations_metadata)

    _set_use_terrain_in_lighting_computations_metadata = { "offset" : _set_use_terrain_in_lighting_computations_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain_in_lighting_computations.setter
    def use_terrain_in_lighting_computations(self, value:bool) -> None:
        return self._intf.set_property(IGreatArcVehicle._metadata, IGreatArcVehicle._set_use_terrain_in_lighting_computations_metadata, value)

    _get_lighting_maximum_step_metadata = { "offset" : _get_lighting_maximum_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step(self) -> float:
        """Do not use this property, as it is deprecated. Use LightingMaxStepTerrain or LightingMaxStepCbShape as appropriate. The maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension."""
        return self._intf.get_property(IGreatArcVehicle._metadata, IGreatArcVehicle._get_lighting_maximum_step_metadata)

    _set_lighting_maximum_step_metadata = { "offset" : _set_lighting_maximum_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step.setter
    def lighting_maximum_step(self, max_step:float) -> None:
        return self._intf.set_property(IGreatArcVehicle._metadata, IGreatArcVehicle._set_lighting_maximum_step_metadata, max_step)

    _property_names[route_type] = "route_type"
    _property_names[route_supported_types] = "route_supported_types"
    _property_names[route] = "route"
    _property_names[attitude_type] = "attitude_type"
    _property_names[attitude_supported_types] = "attitude_supported_types"
    _property_names[attitude] = "attitude"
    _property_names[ground_ellipses] = "ground_ellipses"
    _property_names[access_constraints] = "access_constraints"
    _property_names[eclipse_bodies] = "eclipse_bodies"
    _property_names[use_terrain_in_lighting_computations] = "use_terrain_in_lighting_computations"
    _property_names[lighting_maximum_step] = "lighting_maximum_step"


agcls.AgClassCatalog.add_catalog_entry((5279504316049954210, 15594367786580511107), IGreatArcVehicle)
agcls.AgTypeNameMap["IGreatArcVehicle"] = IGreatArcVehicle

class IVehicleGraphics3DBPlaneTargetPointPosition(object):
    """A base class for BPlane target point position interfaces."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4945646807221379868, 9716763658900496770),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleGraphics3DBPlaneTargetPointPosition."""
        initialize_from_source_object(self, source_object, IVehicleGraphics3DBPlaneTargetPointPosition)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleGraphics3DBPlaneTargetPointPosition)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleGraphics3DBPlaneTargetPointPosition, None)



agcls.AgClassCatalog.add_catalog_entry((4945646807221379868, 9716763658900496770), IVehicleGraphics3DBPlaneTargetPointPosition)
agcls.AgTypeNameMap["IVehicleGraphics3DBPlaneTargetPointPosition"] = IVehicleGraphics3DBPlaneTargetPointPosition

class IEOIR(object):
    """Property used to access IEOIR interface."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4997054115735588989, 10978269664136040866),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IEOIR."""
        initialize_from_source_object(self, source_object, IEOIR)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IEOIR)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IEOIR, None)



agcls.AgClassCatalog.add_catalog_entry((4997054115735588989, 10978269664136040866), IEOIR)
agcls.AgTypeNameMap["IEOIR"] = IEOIR

class IVehicleBreakAngle(object):
    """Base Interface IVehicleBreakAngle. VehicleBreakAngleBreakByLatitude and VehicleBreakAngleBreakByLongitude derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4988134996306585048, 9407320597422388622),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleBreakAngle."""
        initialize_from_source_object(self, source_object, IVehicleBreakAngle)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleBreakAngle)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleBreakAngle, None)



agcls.AgClassCatalog.add_catalog_entry((4988134996306585048, 9407320597422388622), IVehicleBreakAngle)
agcls.AgTypeNameMap["IVehicleBreakAngle"] = IVehicleBreakAngle

class IVehiclePassNumbering(object):
    """Base Interaface IVehiclePassNumbering. PassBreakNumberingDateOfFirstPass and PassBreakNumberingFirstPassNumber derive from this."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5398552838798370779, 18042157829268078765),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehiclePassNumbering."""
        initialize_from_source_object(self, source_object, IVehiclePassNumbering)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehiclePassNumbering)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehiclePassNumbering, None)



agcls.AgClassCatalog.add_catalog_entry((5398552838798370779, 18042157829268078765), IVehiclePassNumbering)
agcls.AgTypeNameMap["IVehiclePassNumbering"] = IVehiclePassNumbering

class IVehicleCoordinateAxes(object):
    """IVehicleCoordinateAxes."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5572439643719372335, 9216755239166683788),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleCoordinateAxes."""
        initialize_from_source_object(self, source_object, IVehicleCoordinateAxes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleCoordinateAxes)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleCoordinateAxes, None)



agcls.AgClassCatalog.add_catalog_entry((5572439643719372335, 9216755239166683788), IVehicleCoordinateAxes)
agcls.AgTypeNameMap["IVehicleCoordinateAxes"] = IVehicleCoordinateAxes

class IChainTimePeriod(object):
    """Chain time period options."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5709704128622212135, 13013663028119115678),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IChainTimePeriod."""
        initialize_from_source_object(self, source_object, IChainTimePeriod)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IChainTimePeriod)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IChainTimePeriod, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ChainTimePeriodType),) }
    @property
    def type(self) -> "ChainTimePeriodType":
        """Get the option used for setting the chain's time period."""
        return self._intf.get_property(IChainTimePeriod._metadata, IChainTimePeriod._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5709704128622212135, 13013663028119115678), IChainTimePeriod)
agcls.AgTypeNameMap["IChainTimePeriod"] = IChainTimePeriod

class ICoverageBounds(object):
    """Base interface for ICoverageBoundsCustom, CoverageBoundsGlobal, CoverageBoundsLatitude, CoverageBoundsLatitudeLines, IAgCvBoundsLonLines, CoverageBoundsCustomBoundary."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5367377918736334076, 11585881449721349005),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ICoverageBounds."""
        initialize_from_source_object(self, source_object, ICoverageBounds)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ICoverageBounds)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ICoverageBounds, None)



agcls.AgClassCatalog.add_catalog_entry((5367377918736334076, 11585881449721349005), ICoverageBounds)
agcls.AgTypeNameMap["ICoverageBounds"] = ICoverageBounds

class ICoverageResolution(object):
    """Base interface for CoverageResolutionArea, CoverageResolutionDistance and CoverageResolutionLatLon, used to define coverage resolution (spacing between grid points)."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5117993917188865935, 4486992342774042278),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ICoverageResolution."""
        initialize_from_source_object(self, source_object, ICoverageResolution)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ICoverageResolution)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ICoverageResolution, None)



agcls.AgClassCatalog.add_catalog_entry((5117993917188865935, 4486992342774042278), ICoverageResolution)
agcls.AgTypeNameMap["ICoverageResolution"] = ICoverageResolution

class IFigureOfMeritGraphics2DContours(object):
    """Coverage contours."""

    _num_methods = 19
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_contour_type_method_offset = 3
    _set_contour_type_method_offset = 4
    _get_color_method_method_offset = 5
    _set_color_method_method_offset = 6
    _get_ramp_color_method_offset = 7
    _get_level_attributes_method_offset = 8
    _get_legend_method_offset = 9
    _get_show_up_to_maximum_only_method_offset = 10
    _set_show_up_to_maximum_only_method_offset = 11
    _get_show_contour_lines_method_offset = 12
    _set_show_contour_lines_method_offset = 13
    _get_line_width_method_offset = 14
    _set_line_width_method_offset = 15
    _get_use_static_contours_method_offset = 16
    _set_use_static_contours_method_offset = 17
    _get_line_style_method_offset = 18
    _set_line_style_method_offset = 19
    _metadata = {
        "iid_data" : (5669575479017612456, 17001755752824129189),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IFigureOfMeritGraphics2DContours."""
        initialize_from_source_object(self, source_object, IFigureOfMeritGraphics2DContours)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IFigureOfMeritGraphics2DContours)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IFigureOfMeritGraphics2DContours, None)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display contours."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._set_show_graphics_metadata, is_visible)

    _get_contour_type_metadata = { "offset" : _get_contour_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DContourType),) }
    @property
    def contour_type(self) -> "FigureOfMeritGraphics2DContourType":
        """Contour display method (block fill or smooth fill)."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_contour_type_metadata)

    _set_contour_type_metadata = { "offset" : _set_contour_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DContourType),) }
    @contour_type.setter
    def contour_type(self, contour_type:"FigureOfMeritGraphics2DContourType") -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._set_contour_type_metadata, contour_type)

    _get_color_method_metadata = { "offset" : _get_color_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DColorMethod),) }
    @property
    def color_method(self) -> "FigureOfMeritGraphics2DColorMethod":
        """Color method for contours (color ramp or explicit)."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_color_method_metadata)

    _set_color_method_metadata = { "offset" : _set_color_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DColorMethod),) }
    @color_method.setter
    def color_method(self, color_method:"FigureOfMeritGraphics2DColorMethod") -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._set_color_method_metadata, color_method)

    _get_ramp_color_metadata = { "offset" : _get_ramp_color_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ramp_color(self) -> "FigureOfMeritGraphics2DRampColor":
        """Color ramp colors."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_ramp_color_metadata)

    _get_level_attributes_metadata = { "offset" : _get_level_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def level_attributes(self) -> "FigureOfMeritGraphics2DLevelAttributesCollection":
        """Contour level display properties."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_level_attributes_metadata)

    _get_legend_metadata = { "offset" : _get_legend_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def legend(self) -> "FigureOfMeritGraphics2DLegend":
        """Contour legend."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_legend_metadata)

    _get_show_up_to_maximum_only_metadata = { "offset" : _get_show_up_to_maximum_only_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_up_to_maximum_only(self) -> bool:
        """FOM values greater than max contour level are drawn as transparent."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_show_up_to_maximum_only_metadata)

    _set_show_up_to_maximum_only_metadata = { "offset" : _set_show_up_to_maximum_only_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_up_to_maximum_only.setter
    def show_up_to_maximum_only(self, show:bool) -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._set_show_up_to_maximum_only_metadata, show)

    _get_show_contour_lines_metadata = { "offset" : _get_show_contour_lines_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_contour_lines(self) -> bool:
        """Show Contour Lines."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_show_contour_lines_metadata)

    _set_show_contour_lines_metadata = { "offset" : _set_show_contour_lines_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_contour_lines.setter
    def show_contour_lines(self, show:bool) -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._set_show_contour_lines_metadata, show)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def line_width(self) -> int:
        """Contour Lines width."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @line_width.setter
    def line_width(self, value:int) -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._set_line_width_metadata, value)

    _get_use_static_contours_metadata = { "offset" : _get_use_static_contours_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_static_contours(self) -> bool:
        """Use static contour settings for animation contours."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_use_static_contours_metadata)

    _set_use_static_contours_metadata = { "offset" : _set_use_static_contours_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_static_contours.setter
    def use_static_contours(self, use_static_contours:bool) -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._set_use_static_contours_metadata, use_static_contours)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Contour lines style."""
        return self._intf.get_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DContours._metadata, IFigureOfMeritGraphics2DContours._set_line_style_metadata, value)

    _property_names[show_graphics] = "show_graphics"
    _property_names[contour_type] = "contour_type"
    _property_names[color_method] = "color_method"
    _property_names[ramp_color] = "ramp_color"
    _property_names[level_attributes] = "level_attributes"
    _property_names[legend] = "legend"
    _property_names[show_up_to_maximum_only] = "show_up_to_maximum_only"
    _property_names[show_contour_lines] = "show_contour_lines"
    _property_names[line_width] = "line_width"
    _property_names[use_static_contours] = "use_static_contours"
    _property_names[line_style] = "line_style"


agcls.AgClassCatalog.add_catalog_entry((5669575479017612456, 17001755752824129189), IFigureOfMeritGraphics2DContours)
agcls.AgTypeNameMap["IFigureOfMeritGraphics2DContours"] = IFigureOfMeritGraphics2DContours

class IFigureOfMeritGraphics2DAttributes(object):
    """Figure of Merit 2D graphics properties."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_fill_points_method_offset = 5
    _set_fill_points_method_offset = 6
    _get_marker_style_method_offset = 7
    _set_marker_style_method_offset = 8
    _get_contours_method_offset = 9
    _get_fill_translucency_method_offset = 10
    _set_fill_translucency_method_offset = 11
    _metadata = {
        "iid_data" : (5002089876201265557, 516918898942819773),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IFigureOfMeritGraphics2DAttributes."""
        initialize_from_source_object(self, source_object, IFigureOfMeritGraphics2DAttributes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IFigureOfMeritGraphics2DAttributes)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IFigureOfMeritGraphics2DAttributes, None)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Show graphics: highlight each point on the 2D map that meets the specified Satisfaction criterion (if Satisfaction is enabled) or the default Satisfaction criterion (if Satisfaction is disabled)."""
        return self._intf.get_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._set_show_graphics_metadata, is_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Color in which points display on the 2D map."""
        return self._intf.get_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._set_color_metadata, color)

    _get_fill_points_metadata = { "offset" : _get_fill_points_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def fill_points(self) -> bool:
        """Opt whether coverage points display as filled polygons on the 2D map."""
        return self._intf.get_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._get_fill_points_metadata)

    _set_fill_points_metadata = { "offset" : _set_fill_points_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @fill_points.setter
    def fill_points(self, fill_points:bool) -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._set_fill_points_metadata, fill_points)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """Choose a marker to represent each point in the grid that meets satisfaction criteria."""
        return self._intf.get_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, marker_style:str) -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._set_marker_style_metadata, marker_style)

    _get_contours_metadata = { "offset" : _get_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def contours(self) -> "IFigureOfMeritGraphics2DContours":
        """Coverage contours."""
        return self._intf.get_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._get_contours_metadata)

    _get_fill_translucency_metadata = { "offset" : _get_fill_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fill_translucency(self) -> float:
        """Specify the percent translucency of filled polygons on the 2D map. Translucency ranges from 0 to 100 percent, where 100 percent is invisible. Dimensionless."""
        return self._intf.get_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._get_fill_translucency_metadata)

    _set_fill_translucency_metadata = { "offset" : _set_fill_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fill_translucency.setter
    def fill_translucency(self, value:float) -> None:
        return self._intf.set_property(IFigureOfMeritGraphics2DAttributes._metadata, IFigureOfMeritGraphics2DAttributes._set_fill_translucency_metadata, value)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[fill_points] = "fill_points"
    _property_names[marker_style] = "marker_style"
    _property_names[contours] = "contours"
    _property_names[fill_translucency] = "fill_translucency"


agcls.AgClassCatalog.add_catalog_entry((5002089876201265557, 516918898942819773), IFigureOfMeritGraphics2DAttributes)
agcls.AgTypeNameMap["IFigureOfMeritGraphics2DAttributes"] = IFigureOfMeritGraphics2DAttributes

class IFigureOfMeritNavigationAccuracyMethod(object):
    """Navigation Accuracy Figure of Merit type."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5439536752531767955, 6895029694432350080),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IFigureOfMeritNavigationAccuracyMethod."""
        initialize_from_source_object(self, source_object, IFigureOfMeritNavigationAccuracyMethod)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IFigureOfMeritNavigationAccuracyMethod)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IFigureOfMeritNavigationAccuracyMethod, None)



agcls.AgClassCatalog.add_catalog_entry((5439536752531767955, 6895029694432350080), IFigureOfMeritNavigationAccuracyMethod)
agcls.AgTypeNameMap["IFigureOfMeritNavigationAccuracyMethod"] = IFigureOfMeritNavigationAccuracyMethod

class IFigureOfMeritDefinitionData(object):
    """IFigureOfMeritDefinitionData."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5762472793711328176, 1648658281617051277),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IFigureOfMeritDefinitionData."""
        initialize_from_source_object(self, source_object, IFigureOfMeritDefinitionData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IFigureOfMeritDefinitionData)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IFigureOfMeritDefinitionData, None)



agcls.AgClassCatalog.add_catalog_entry((5762472793711328176, 1648658281617051277), IFigureOfMeritDefinitionData)
agcls.AgTypeNameMap["IFigureOfMeritDefinitionData"] = IFigureOfMeritDefinitionData

class IFigureOfMeritDefinitionResponseTime(IFigureOfMeritDefinitionCompute):
    """Response Time Figure of Merit."""

    _num_methods = 2
    _vtable_offset = IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods
    _get_minimum_assets_method_offset = 1
    _set_minimum_assets_method_offset = 2
    _metadata = {
        "iid_data" : (5536673861946953761, 10265506897498970502),
        "vtable_reference" : IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IFigureOfMeritDefinitionResponseTime."""
        initialize_from_source_object(self, source_object, IFigureOfMeritDefinitionResponseTime)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IFigureOfMeritDefinitionResponseTime)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IFigureOfMeritDefinitionResponseTime, IFigureOfMeritDefinitionCompute)

    _get_minimum_assets_metadata = { "offset" : _get_minimum_assets_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def minimum_assets(self) -> int:
        """Minimum number of for computing Response Time Figure of Merit."""
        return self._intf.get_property(IFigureOfMeritDefinitionResponseTime._metadata, IFigureOfMeritDefinitionResponseTime._get_minimum_assets_metadata)

    _set_minimum_assets_metadata = { "offset" : _set_minimum_assets_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @minimum_assets.setter
    def minimum_assets(self, min_assets:int) -> None:
        return self._intf.set_property(IFigureOfMeritDefinitionResponseTime._metadata, IFigureOfMeritDefinitionResponseTime._set_minimum_assets_metadata, min_assets)

    _property_names[minimum_assets] = "minimum_assets"


agcls.AgClassCatalog.add_catalog_entry((5536673861946953761, 10265506897498970502), IFigureOfMeritDefinitionResponseTime)
agcls.AgTypeNameMap["IFigureOfMeritDefinitionResponseTime"] = IFigureOfMeritDefinitionResponseTime

class IFigureOfMeritDefinitionDilutionOfPrecision(IFigureOfMeritDefinitionCompute):
    """Dilution Of Precision Figure of Merit."""

    _num_methods = 13
    _vtable_offset = IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods
    _get_method_method_offset = 1
    _set_method_method_offset = 2
    _is_method_supported_method_offset = 3
    _get_supported_methods_method_offset = 4
    _get_type_method_offset = 5
    _set_type_method_offset = 6
    _is_type_supported_method_offset = 7
    _get_supported_types_method_offset = 8
    _get_time_step_method_offset = 9
    _set_time_step_method_offset = 10
    _get_type_data_method_offset = 11
    _get_invalid_value_action_method_offset = 12
    _set_invalid_value_action_method_offset = 13
    _metadata = {
        "iid_data" : (5280943407702019661, 5120971307039842206),
        "vtable_reference" : IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IFigureOfMeritDefinitionDilutionOfPrecision."""
        initialize_from_source_object(self, source_object, IFigureOfMeritDefinitionDilutionOfPrecision)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IFigureOfMeritDefinitionDilutionOfPrecision)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IFigureOfMeritDefinitionDilutionOfPrecision, IFigureOfMeritDefinitionCompute)

    _get_method_metadata = { "offset" : _get_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritMethod),) }
    @property
    def method(self) -> "FigureOfMeritMethod":
        """Calculate dilution of precision."""
        return self._intf.get_property(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._get_method_metadata)

    _set_method_metadata = { "offset" : _set_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritMethod),) }
    def set_method(self, method:"FigureOfMeritMethod") -> None:
        """Set a static DOP value over the entire coverage interval."""
        return self._intf.invoke(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._set_method_metadata, method)

    _is_method_supported_metadata = { "offset" : _is_method_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritMethod), agmarshall.VariantBoolArg,) }
    def is_method_supported(self, method:"FigureOfMeritMethod") -> bool:
        """Is the DOP method supported?"""
        return self._intf.invoke(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._is_method_supported_metadata, method, OutArg())

    _get_supported_methods_metadata = { "offset" : _get_supported_methods_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_methods(self) -> list:
        """Supported DOP methods."""
        return self._intf.get_property(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._get_supported_methods_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritNavigationComputeType),) }
    @property
    def type(self) -> "FigureOfMeritNavigationComputeType":
        """Compute options for the DOP Figure of Merit."""
        return self._intf.get_property(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._get_type_metadata)

    _set_type_metadata = { "offset" : _set_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritNavigationComputeType),) }
    def set_type(self, compute_type:"FigureOfMeritNavigationComputeType") -> None:
        """Set the compute option."""
        return self._intf.invoke(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._set_type_metadata, compute_type)

    _is_type_supported_metadata = { "offset" : _is_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritNavigationComputeType), agmarshall.VariantBoolArg,) }
    def is_type_supported(self, compute_type:"FigureOfMeritNavigationComputeType") -> bool:
        """Is the compute option supported?"""
        return self._intf.invoke(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._is_type_supported_metadata, compute_type, OutArg())

    _get_supported_types_metadata = { "offset" : _get_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_types(self) -> list:
        """Supported compute options."""
        return self._intf.get_property(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._get_supported_types_metadata)

    _get_time_step_metadata = { "offset" : _get_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_step(self) -> float:
        """Get or set the value to be used during the sampling of the dynamic definition for use in the static definition."""
        return self._intf.get_property(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._get_time_step_metadata)

    _set_time_step_metadata = { "offset" : _set_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_step.setter
    def time_step(self, time_step:float) -> None:
        return self._intf.set_property(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._set_time_step_metadata, time_step)

    _get_type_data_metadata = { "offset" : _get_type_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def type_data(self) -> "IFigureOfMeritDefinitionData":
        """DOP type data."""
        return self._intf.get_property(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._get_type_data_metadata)

    _get_invalid_value_action_metadata = { "offset" : _get_invalid_value_action_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritInvalidValueActionType),) }
    @property
    def invalid_value_action(self) -> "FigureOfMeritInvalidValueActionType":
        """Control consideration of time samples usage for computing navigation solution."""
        return self._intf.get_property(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._get_invalid_value_action_metadata)

    _set_invalid_value_action_metadata = { "offset" : _set_invalid_value_action_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritInvalidValueActionType),) }
    @invalid_value_action.setter
    def invalid_value_action(self, invalid_value_action_type:"FigureOfMeritInvalidValueActionType") -> None:
        return self._intf.set_property(IFigureOfMeritDefinitionDilutionOfPrecision._metadata, IFigureOfMeritDefinitionDilutionOfPrecision._set_invalid_value_action_metadata, invalid_value_action_type)

    _property_names[method] = "method"
    _property_names[supported_methods] = "supported_methods"
    _property_names[type] = "type"
    _property_names[supported_types] = "supported_types"
    _property_names[time_step] = "time_step"
    _property_names[type_data] = "type_data"
    _property_names[invalid_value_action] = "invalid_value_action"


agcls.AgClassCatalog.add_catalog_entry((5280943407702019661, 5120971307039842206), IFigureOfMeritDefinitionDilutionOfPrecision)
agcls.AgTypeNameMap["IFigureOfMeritDefinitionDilutionOfPrecision"] = IFigureOfMeritDefinitionDilutionOfPrecision

class IConstellationConstraintRestriction(object):
    """A base interface for all interfaces returned by the Restriction property of the ConstellationConstraints interface. It can be cast to ConstellationConstraintObjectRestriction."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5507327946078615820, 9804071551691362187),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IConstellationConstraintRestriction."""
        initialize_from_source_object(self, source_object, IConstellationConstraintRestriction)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IConstellationConstraintRestriction)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IConstellationConstraintRestriction, None)



agcls.AgClassCatalog.add_catalog_entry((5507327946078615820, 9804071551691362187), IConstellationConstraintRestriction)
agcls.AgTypeNameMap["IConstellationConstraintRestriction"] = IConstellationConstraintRestriction

class IEventDetectionStrategy(object):
    """Define a base interface for the event detection strategies."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5208890756423031065, 17931748581538634144),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IEventDetectionStrategy."""
        initialize_from_source_object(self, source_object, IEventDetectionStrategy)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IEventDetectionStrategy)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IEventDetectionStrategy, None)



agcls.AgClassCatalog.add_catalog_entry((5208890756423031065, 17931748581538634144), IEventDetectionStrategy)
agcls.AgTypeNameMap["IEventDetectionStrategy"] = IEventDetectionStrategy

class ISamplingMethodStrategy(object):
    """Define a base interface for the sampling method strategies."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5272298299360289261, 5797151039106251421),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type ISamplingMethodStrategy."""
        initialize_from_source_object(self, source_object, ISamplingMethodStrategy)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, ISamplingMethodStrategy)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, ISamplingMethodStrategy, None)



agcls.AgClassCatalog.add_catalog_entry((5272298299360289261, 5797151039106251421), ISamplingMethodStrategy)
agcls.AgTypeNameMap["ISamplingMethodStrategy"] = ISamplingMethodStrategy

class IVehicleAttitudeSlewBase(object):
    """Represents an attitude slew base type."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (4935425881449669452, 2456344758463857072),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVehicleAttitudeSlewBase."""
        initialize_from_source_object(self, source_object, IVehicleAttitudeSlewBase)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVehicleAttitudeSlewBase)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVehicleAttitudeSlewBase, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSlewMode),) }
    @property
    def type(self) -> "VehicleSlewMode":
        """An attitude slew mode."""
        return self._intf.get_property(IVehicleAttitudeSlewBase._metadata, IVehicleAttitudeSlewBase._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((4935425881449669452, 2456344758463857072), IVehicleAttitudeSlewBase)
agcls.AgTypeNameMap["IVehicleAttitudeSlewBase"] = IVehicleAttitudeSlewBase

class IVolumetricGridDefinition(object):
    """Base interface IVolumetricGridDefinition. VolumetricGridSpatialCalculation and VolumetricExternalFile implement this interface."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4647386605621383105, 8728166008586900153),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IVolumetricGridDefinition."""
        initialize_from_source_object(self, source_object, IVolumetricGridDefinition)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IVolumetricGridDefinition)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IVolumetricGridDefinition, None)



agcls.AgClassCatalog.add_catalog_entry((4647386605621383105, 8728166008586900153), IVolumetricGridDefinition)
agcls.AgTypeNameMap["IVolumetricGridDefinition"] = IVolumetricGridDefinition

class IEOIRShapeObject(object):
    """A shape object interface."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _metadata = {
        "iid_data" : (5685968343336887387, 8603529884513149608),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def __init__(self, source_object=None):
        """Construct an object of type IEOIRShapeObject."""
        initialize_from_source_object(self, source_object, IEOIRShapeObject)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def _get_property(self, attrname):
        return get_interface_property(attrname, IEOIRShapeObject)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_interface_attribute(self, attrname, value, IEOIRShapeObject, None)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EOIRShapeType),) }
    @property
    def type(self) -> "EOIRShapeType":
        """Property used to access the shape type."""
        return self._intf.get_property(IEOIRShapeObject._metadata, IEOIRShapeObject._get_type_metadata)

    _property_names[type] = "type"


agcls.AgClassCatalog.add_catalog_entry((5685968343336887387, 8603529884513149608), IEOIRShapeObject)
agcls.AgTypeNameMap["IEOIRShapeObject"] = IEOIRShapeObject



class STKObject(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """Represents a generic STK object."""
    def __init__(self, source_object=None):
        """Construct an object of type STKObject."""
        SupportsDeleteCallback.__init__(self)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, STKObject, [ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5125385608468594096, 179815710070104704), STKObject)
agcls.AgTypeNameMap["STKObject"] = STKObject

class STKObjectRoot(ISTKObject, ILifetimeInformation, IAnimation, SupportsDeleteCallback):
    r"""
    Represents the automation interface supported by the root object of the Automation Object Model.

    Examples
    --------
    Extract data from Connect results:
    >>> result = root.execute_command('Report_RM */Place/MyPlace Style "Cartesian Position"')
    >>>
    >>> for i in range(0, result.count):
    >>>     cmdRes = result.item(i)
    >>>     print(cmdRes)

    Use arrays to send and retrieve data with Connect:
    >>> from ansys.stk.core.stkutil import ExecuteMultipleCommandsMode
    >>>
    >>> connect_cmds = ["GetStkVersion /", "New / Scenario ExampleScenario"]
    >>> results = root.execute_multiple_commands(connect_cmds, ExecuteMultipleCommandsMode.CONTINUE_ON_ERROR)
    >>>
    >>> first_message = results.item(0)
    >>> also_first_message = results[0]
    >>>
    >>> for message in results:
    >>>     print(message.count)

    Execute multiple Connect commands:
    >>> commandList = [["New / */Place MyPlace"], ["SetPosition */Place/MyPlace Geodetic 37.9 -75.5 0.0"]]
    >>> root.execute_multiple_commands(commandList, ExecuteMultipleCommandsMode.EXCEPTION_ON_ERROR)

    Execute a Connect command:
    >>> root.execute_command("New / */Target MyTarget")

    Attach to an already running STK Runtime instance and get a reference to the STK object root:
    >>> # Attach to already running instance of STK Runtime
    >>> from ansys.stk.core.stkruntime import STKRuntime
    >>>
    >>> stk = STKRuntime.attach_to_application()
    >>>
    >>> # Get the STK Object Root interface
    >>> root = stk.new_object_root()

    Start STK Runtime and get a reference to the STK object root:
    >>> # Start new instance of STK Runtime
    >>> from ansys.stk.core.stkruntime import STKRuntime
    >>>
    >>> stk = STKRuntime.start_application()
    >>>
    >>> # Get the STK Object Root interface
    >>> root = stk.new_object_root()

    Start STK Desktop and get a reference to the STK object root:
    >>> # Start new instance of STK Desktop
    >>> from ansys.stk.core.stkdesktop import STKDesktop
    >>>
    >>> stk = STKDesktop.start_application(visible=True)  # using optional visible argument
    >>>
    >>> # Get the STK Object Root interface
    >>> root = stk.root
    >>>
    >>> # ...
    >>>
    >>> # Clean-up when done
    >>> stk.shutdown()

    Get a reference to the STK object root using a running STK desktop application instance:
    >>> # Get reference to running STK Desktop instance
    >>> from ansys.stk.core.stkdesktop import STKDesktop
    >>>
    >>> stk = STKDesktop.attach_to_application()
    >>>
    >>> # Get the STK Object Root interface
    >>> root = stk.root

    Initialize STK Engine in no graphics mode and get a reference to the STK object root:
    >>> # Initialize STK Engine without graphics in the current process
    >>> from ansys.stk.core.stkengine import STKEngine
    >>>
    >>> stk = STKEngine.start_application(no_graphics=True)
    >>>
    >>> # Get the STK Object Root interface
    >>> root = stk.new_object_root()

    Initialize STK Engine with graphics and get a reference to the STK object root:
    >>> # Initialize STK Engine with graphics in the current process
    >>> from ansys.stk.core.stkengine import STKEngine
    >>>
    >>> stk = STKEngine.start_application(no_graphics=False)
    >>>
    >>> # Get the STK Object Root interface
    >>> root = stk.new_object_root()

    Set unit preferences for the Object Model:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> root.units_preferences.item("DateFormat").set_current_unit("UTCG")
    >>> root.units_preferences.item("Distance").set_current_unit("km")

    Create a new Scenario:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> root.new_scenario("Example_Scenario")

    Manage STK Desktop application events:
    >>> from ansys.stk.core.stkdesktop import STKDesktop
    >>> from ansys.stk.core.stkobjects import STKObjectType
    >>>
    >>> def on_stk_object_added_custom_callback(path: str):
    >>>     print(f"{path} has been added.")
    >>>
    >>> stk = STKDesktop.start_application(visible=True)
    >>> root = stk.root
    >>> root.new_scenario("ExampleScenario")
    >>> stk_object_root_events = root.subscribe()
    >>> stk_object_root_events.on_stk_object_added += on_stk_object_added_custom_callback
    >>> scenario = root.current_scenario
    >>>
    >>> # on_stk_object_added_custom_callback is successfully called when the next line is executed
    >>> facility = scenario.children.new(STKObjectType.FACILITY, "Exton")
    >>>
    >>> # Now switch control to the desktop application and create another facility.
    >>> # The user interface becomes unresponsive.
    >>>
    >>> # Now open a tkinter window that processing Windows messages.
    >>> from tkinter import Tk
    >>>
    >>> window = Tk()
    >>> window.mainloop()

    Manage STK Engine events:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> def on_scenario_new_custom_callback(path: str):
    >>>     print(f"Scenario {path} has been created.")
    >>>
    >>> stk_object_root_events = root.subscribe()
    >>> stk_object_root_events.on_scenario_new += on_scenario_new_custom_callback
    >>>
    >>> root.new_scenario("ExampleScenario")
    >>> # callback should be executed now
    >>>
    >>> # remove the callback from the handler
    >>> stk_object_root_events.on_scenario_new -= on_scenario_new_custom_callback
    >>>
    >>> # all finished with events, unsubscribe
    >>> stk_object_root_events.unsubscribe()

    Close an open Scenario:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> root.close_scenario()

    Open a Viewer Data File:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> if os.name == "nt":
    >>>     installPath = r"C:\Program Files\AGI\STK 12"
    >>> else:
    >>>     installPath = os.environ["STK_INSTALL_DIR"]
    >>> vdfPath = "Data", "ExampleScenarios", "Intro_STK_Space_Systems.vdf"
    >>> root.load_vdf(os.path.join(installPath, *vdfPath), "")
    """

    _num_methods = 35
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _execute_command_method_offset = 1
    _load_scenario_method_offset = 2
    _close_scenario_method_offset = 3
    _new_scenario_method_offset = 4
    _save_scenario_method_offset = 5
    _save_scenario_as_method_offset = 6
    _get_units_preferences_method_offset = 7
    _get_current_scenario_method_offset = 8
    _load_custom_marker_method_offset = 9
    _get_object_from_path_method_offset = 10
    _all_instance_names_in_xml_method_offset = 11
    _begin_update_method_offset = 12
    _end_update_method_offset = 13
    _execute_multiple_commands_method_offset = 14
    _isolate_method_offset = 15
    _get_isolated_method_offset = 16
    _get_conversion_utility_method_offset = 17
    _get_military_standard_2525b_symbols_method_offset = 18
    _load_vdf_method_offset = 19
    _get_available_features_method_offset = 20
    _object_exists_method_offset = 21
    _get_analysis_workbench_components_root_method_offset = 22
    _get_central_bodies_method_offset = 23
    _get_licensing_report_method_offset = 24
    _set_notification_filter_method_offset = 25
    _get_notification_filter_method_offset = 26
    _save_vdf_as_method_offset = 27
    _get_preferences_method_offset = 28
    _load_method_offset = 29
    _save_method_offset = 30
    _save_as_method_offset = 31
    _load_vdf_from_sdf_method_offset = 32
    _load_vdf_from_sdf_with_version_method_offset = 33
    _save_vdf_to_sdf_method_offset = 34
    _get_rf_channel_modeler_method_offset = 35
    _metadata = {
        "iid_data" : (4786869921036693907, 4857582766587880637),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, STKObjectRoot)
    def subscribe(self) -> ISTKObjectRootEventHandler:
        """Return an ISTKObjectRootEventHandler that is subscribed to handle events associated with this instance of STKObjectRoot."""
        return ISTKObjectRootEventHandler(self._intf)

    _execute_command_metadata = { "offset" : _execute_command_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def execute_command(self, connect_command:str) -> "ExecuteCommandResult":
        """Execute a custom CONNECT action. The method throws an exception if the command has failed."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._execute_command_metadata, connect_command, OutArg())

    _load_scenario_metadata = { "offset" : _load_scenario_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def load_scenario(self, path:str) -> None:
        """Use Load method. Loads a scenario using the specified path. The method throws an exception if there is a scenario already loaded."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._load_scenario_metadata, path)

    _close_scenario_metadata = { "offset" : _close_scenario_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def close_scenario(self) -> None:
        """
        Close the scenario. The method throws an exception if no scenario has been loaded.

        Examples
        --------
        Close an open Scenario:
        >>> # STKObjectRoot root: STK Object Model Root
        >>> root.close_scenario()
        """
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._close_scenario_metadata, )

    _new_scenario_metadata = { "offset" : _new_scenario_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def new_scenario(self, scenario_name:str) -> None:
        """
        Create a new scenario. User must close a scenario before creating a new one; otherwise an exception will occur.

        Examples
        --------
        Create a new Scenario:
        >>> # STKObjectRoot root: STK Object Model Root
        >>> root.new_scenario("Example_Scenario")
        """
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._new_scenario_metadata, scenario_name)

    _save_scenario_metadata = { "offset" : _save_scenario_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def save_scenario(self) -> None:
        """Use Save method. Saves the changes made to the scenario."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._save_scenario_metadata, )

    _save_scenario_as_metadata = { "offset" : _save_scenario_as_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def save_scenario_as(self, sc_file_name:str) -> None:
        """Use SaveAs method. Saves the changes made to the scenario to a specified path and file name."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._save_scenario_as_metadata, sc_file_name)

    _get_units_preferences_metadata = { "offset" : _get_units_preferences_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def units_preferences(self) -> "IUnitPreferencesDimensionCollection":
        """
        Provide access to the Global Unit table.

        Examples
        --------
        Set unit preferences for the Object Model:
        >>> # STKObjectRoot root: STK Object Model Root
        >>> root.units_preferences.item("DateFormat").set_current_unit("UTCG")
        >>> root.units_preferences.item("Distance").set_current_unit("km")
        """
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_units_preferences_metadata)

    _get_current_scenario_metadata = { "offset" : _get_current_scenario_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def current_scenario(self) -> "ISTKObject":
        """Return a Scenario object or null if no scenario has been loaded yet."""
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_current_scenario_metadata)

    _load_custom_marker_metadata = { "offset" : _load_custom_marker_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def load_custom_marker(self, filename:str) -> None:
        """Add a custom marker to Application."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._load_custom_marker_metadata, filename)

    _get_object_from_path_metadata = { "offset" : _get_object_from_path_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_object_from_path(self, object_path:str) -> "ISTKObject":
        """Get the object instance that matches the path provided."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._get_object_from_path_metadata, object_path, OutArg())

    _all_instance_names_in_xml_metadata = { "offset" : _all_instance_names_in_xml_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    def all_instance_names_in_xml(self) -> str:
        """Return an XML representation of AllInstanceNames."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._all_instance_names_in_xml_metadata, OutArg())

    _begin_update_metadata = { "offset" : _begin_update_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def begin_update(self) -> None:
        """Signals the object that the batch update is starting."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._begin_update_metadata, )

    _end_update_metadata = { "offset" : _end_update_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def end_update(self) -> None:
        """Signals the object that the batch update is complete."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._end_update_metadata, )

    _execute_multiple_commands_metadata = { "offset" : _execute_multiple_commands_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.EnumArg(ExecuteMultipleCommandsMode), agmarshall.InterfaceOutArg,) }
    def execute_multiple_commands(self, connect_commands:list, action:"ExecuteMultipleCommandsMode") -> "ExecuteMultipleCommandsResult":
        """Execute multiple CONNECT actions.  The behavior of the method when encountering an exception varies depending on the setting of the Action parameter. See the help for ExecuteMultipleCommandsMode."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._execute_multiple_commands_metadata, connect_commands, action, OutArg())

    _isolate_metadata = { "offset" : _isolate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def isolate(self) -> None:
        """Make the unit preferences of the current instance isolated."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._isolate_metadata, )

    _get_isolated_metadata = { "offset" : _get_isolated_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def isolated(self) -> bool:
        """Return whether the instance is isolated."""
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_isolated_metadata)

    _get_conversion_utility_metadata = { "offset" : _get_conversion_utility_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def conversion_utility(self) -> "ConversionUtility":
        """Return the conversion utility interface."""
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_conversion_utility_metadata)

    _get_military_standard_2525b_symbols_metadata = { "offset" : _get_military_standard_2525b_symbols_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def military_standard_2525b_symbols(self) -> "MilitaryStandard2525bSymbols":
        """Return the interface that enables creating 2525b symbols."""
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_military_standard_2525b_symbols_metadata)

    _load_vdf_metadata = { "offset" : _load_vdf_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def load_vdf(self, path:str, password:str) -> None:
        r"""
        Load a vdf using the specified path. The method throws an exception if there is a scenario already loaded. If the password isn't needed, enter an empty string.

        Examples
        --------
        Open a Viewer Data File:
        >>> # STKObjectRoot root: STK Object Model Root
        >>> if os.name == "nt":
        >>>     installPath = r"C:\Program Files\AGI\STK 12"
        >>> else:
        >>>     installPath = os.environ["STK_INSTALL_DIR"]
        >>> vdfPath = "Data", "ExampleScenarios", "Intro_STK_Space_Systems.vdf"
        >>> root.load_vdf(os.path.join(installPath, *vdfPath), "")
        """
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._load_vdf_metadata, path, password)

    _get_available_features_metadata = { "offset" : _get_available_features_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def available_features(self) -> "AvailableFeatures":
        """Allow the user to inquiry about the available features."""
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_available_features_metadata)

    _object_exists_metadata = { "offset" : _object_exists_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def object_exists(self, object_path:str) -> bool:
        """Check whether a currently loaded scenario contains an object with the given path."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._object_exists_metadata, object_path, OutArg())

    _get_analysis_workbench_components_root_metadata = { "offset" : _get_analysis_workbench_components_root_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis_workbench_components_root(self) -> "IAnalysisWorkbenchRoot":
        """Return an instance of VGT root object."""
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_analysis_workbench_components_root_metadata)

    _get_central_bodies_metadata = { "offset" : _get_central_bodies_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def central_bodies(self) -> "CentralBodyCollection":
        """Return a collection of available central bodies."""
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_central_bodies_metadata)

    _get_licensing_report_metadata = { "offset" : _get_licensing_report_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    def get_licensing_report(self) -> str:
        """Return a formatted string that contains the license names and their states. The string is formatted as an XML document."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._get_licensing_report_metadata, OutArg())

    _get_notification_filter_metadata = { "offset" : _get_notification_filter_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(NotificationFilterMask),) }
    @property
    def notification_filter(self) -> "NotificationFilterMask":
        """Temporarily disable only the root events to prevent them from being raised. The event filtering can be used to improve client application performance."""
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_notification_filter_metadata)

    _set_notification_filter_metadata = { "offset" : _set_notification_filter_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(NotificationFilterMask),) }
    @notification_filter.setter
    def notification_filter(self, bit_mask:"NotificationFilterMask") -> None:
        """Temporarily disable only the root events to prevent them from being raised. The event filtering can be used to improve client application performance."""
        return self._intf.set_property(STKObjectRoot._metadata, STKObjectRoot._set_notification_filter_metadata, bit_mask)

    _save_vdf_as_metadata = { "offset" : _save_vdf_as_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR, agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.BStrArg,) }
    def save_vdf_as(self, vdf_file_name:str, password:str, description:str, window_id:str) -> None:
        """Save the changes made to the scenario to a specified path and file name as a vdf file."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._save_vdf_as_metadata, vdf_file_name, password, description, window_id)

    _get_preferences_metadata = { "offset" : _get_preferences_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def preferences(self) -> "Preferences":
        """Configures STK preferences."""
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_preferences_metadata)

    _load_metadata = { "offset" : _load_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def load(self, path:str) -> None:
        """Load a scenario/vdf using the specified path. The method throws an exception if there is a scenario already loaded."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._load_metadata, path)

    _save_metadata = { "offset" : _save_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def save(self) -> None:
        """Save the changes made to the scenario/vdf."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._save_metadata, )

    _save_as_metadata = { "offset" : _save_as_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def save_as(self, file_name:str) -> None:
        """Save the changes made to the scenario/vdf to a specified path and file name."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._save_as_metadata, file_name)

    _load_vdf_from_sdf_metadata = { "offset" : _load_vdf_from_sdf_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def load_vdf_from_sdf(self, vdf_path:str, password:str) -> None:
        """Do not use this method, as it is deprecated. SDF functionality has been removed and this will be removed in the next major release. Loads a vdf from SDF using the specified path. The method throws an exception if there is a scenario already loaded."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._load_vdf_from_sdf_metadata, vdf_path, password)

    _load_vdf_from_sdf_with_version_metadata = { "offset" : _load_vdf_from_sdf_with_version_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR, agcom.DOUBLE,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.DoubleArg,) }
    def load_vdf_from_sdf_with_version(self, vdf_path:str, password:str, version:float) -> None:
        """Do not use this method, as it is deprecated. SDF functionality has been removed and this will be removed in the next major release. Loads a vdf from SDF using the specified path. The method throws an exception if there is a scenario already loaded."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._load_vdf_from_sdf_with_version_metadata, vdf_path, password, version)

    _save_vdf_to_sdf_metadata = { "offset" : _save_vdf_to_sdf_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def save_vdf_to_sdf(self, sdf_path:str) -> None:
        """Do not use this method, as it is deprecated. SDF functionality has been removed and this will be removed in the next major release. Saves a vdf to SDF at the specified location. The method throws an exception if the VDF creation or upload fails."""
        return self._intf.invoke(STKObjectRoot._metadata, STKObjectRoot._save_vdf_to_sdf_metadata, sdf_path)

    _get_rf_channel_modeler_metadata = { "offset" : _get_rf_channel_modeler_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_channel_modeler(self) -> typing.Any:
        """Return an RF Channel Modeler object."""
        return self._intf.get_property(STKObjectRoot._metadata, STKObjectRoot._get_rf_channel_modeler_metadata)

    _property_names[units_preferences] = "units_preferences"
    _property_names[current_scenario] = "current_scenario"
    _property_names[isolated] = "isolated"
    _property_names[conversion_utility] = "conversion_utility"
    _property_names[military_standard_2525b_symbols] = "military_standard_2525b_symbols"
    _property_names[available_features] = "available_features"
    _property_names[analysis_workbench_components_root] = "analysis_workbench_components_root"
    _property_names[central_bodies] = "central_bodies"
    _property_names[notification_filter] = "notification_filter"
    _property_names[preferences] = "preferences"
    _property_names[rf_channel_modeler] = "rf_channel_modeler"

    def __init__(self, source_object=None):
        """Construct an object of type STKObjectRoot."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, STKObjectRoot)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IAnimation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IAnimation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, STKObjectRoot, [STKObjectRoot, ISTKObject, ILifetimeInformation, IAnimation])

agcls.AgClassCatalog.add_catalog_entry((5068737736014417486, 18344048457192688537), STKObjectRoot)
agcls.AgTypeNameMap["STKObjectRoot"] = STKObjectRoot

class LevelAttribute(SupportsDeleteCallback):
    """LevelAttribute used to access individual contour level attributes."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_level_method_offset = 1
    _set_level_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_line_style_method_offset = 5
    _set_line_style_method_offset = 6
    _get_line_width_method_offset = 7
    _set_line_width_method_offset = 8
    _get_show_label_method_offset = 9
    _set_show_label_method_offset = 10
    _get_show_user_text_visible_method_offset = 11
    _set_show_user_text_visible_method_offset = 12
    _get_label_angle_method_offset = 13
    _set_label_angle_method_offset = 14
    _get_user_text_method_offset = 15
    _set_user_text_method_offset = 16
    _metadata = {
        "iid_data" : (4742747168436904428, 15069713448064004228),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LevelAttribute)

    _get_level_metadata = { "offset" : _get_level_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def level(self) -> typing.Any:
        """Contour level."""
        return self._intf.get_property(LevelAttribute._metadata, LevelAttribute._get_level_metadata)

    _set_level_metadata = { "offset" : _set_level_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @level.setter
    def level(self, level:typing.Any) -> None:
        return self._intf.set_property(LevelAttribute._metadata, LevelAttribute._set_level_metadata, level)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Color in which contours at the given level are displayed."""
        return self._intf.get_property(LevelAttribute._metadata, LevelAttribute._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(LevelAttribute._metadata, LevelAttribute._set_color_metadata, color)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """The style of the line representing contours at the given level. A member of the LineStyle enumeration."""
        return self._intf.get_property(LevelAttribute._metadata, LevelAttribute._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, line_style:"LineStyle") -> None:
        return self._intf.set_property(LevelAttribute._metadata, LevelAttribute._set_line_style_metadata, line_style)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """The width of the line representing contours at the given level."""
        return self._intf.get_property(LevelAttribute._metadata, LevelAttribute._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(LevelAttribute._metadata, LevelAttribute._set_line_width_metadata, line_width)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Display a label identifying the given contour level."""
        return self._intf.get_property(LevelAttribute._metadata, LevelAttribute._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, show_label:bool) -> None:
        return self._intf.set_property(LevelAttribute._metadata, LevelAttribute._set_show_label_metadata, show_label)

    _get_show_user_text_visible_metadata = { "offset" : _get_show_user_text_visible_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_user_text_visible(self) -> bool:
        """Whether the user-specified text is displayed."""
        return self._intf.get_property(LevelAttribute._metadata, LevelAttribute._get_show_user_text_visible_metadata)

    _set_show_user_text_visible_metadata = { "offset" : _set_show_user_text_visible_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_user_text_visible.setter
    def show_user_text_visible(self, show_user_text:bool) -> None:
        return self._intf.set_property(LevelAttribute._metadata, LevelAttribute._set_show_user_text_visible_metadata, show_user_text)

    _get_label_angle_metadata = { "offset" : _get_label_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def label_angle(self) -> float:
        """The angle from the contour at which the label is displayed. Dimensionless."""
        return self._intf.get_property(LevelAttribute._metadata, LevelAttribute._get_label_angle_metadata)

    _set_label_angle_metadata = { "offset" : _set_label_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @label_angle.setter
    def label_angle(self, level:float) -> None:
        return self._intf.set_property(LevelAttribute._metadata, LevelAttribute._set_label_angle_metadata, level)

    _get_user_text_metadata = { "offset" : _get_user_text_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def user_text(self) -> str:
        """User-specified text that can be displayed with the contour."""
        return self._intf.get_property(LevelAttribute._metadata, LevelAttribute._get_user_text_metadata)

    _set_user_text_metadata = { "offset" : _set_user_text_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @user_text.setter
    def user_text(self, level:str) -> None:
        return self._intf.set_property(LevelAttribute._metadata, LevelAttribute._set_user_text_metadata, level)

    _property_names[level] = "level"
    _property_names[color] = "color"
    _property_names[line_style] = "line_style"
    _property_names[line_width] = "line_width"
    _property_names[show_label] = "show_label"
    _property_names[show_user_text_visible] = "show_user_text_visible"
    _property_names[label_angle] = "label_angle"
    _property_names[user_text] = "user_text"

    def __init__(self, source_object=None):
        """Construct an object of type LevelAttribute."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LevelAttribute)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LevelAttribute, [LevelAttribute, ])

agcls.AgClassCatalog.add_catalog_entry((4691836421904998504, 13358401866955592639), LevelAttribute)
agcls.AgTypeNameMap["LevelAttribute"] = LevelAttribute

class LevelAttributeCollection(SupportsDeleteCallback):
    """LevelAttributeCollection used to access level attributes."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_method_offset = 4
    _remove_all_method_offset = 5
    _add_level_method_offset = 6
    _add_level_range_method_offset = 7
    _metadata = {
        "iid_data" : (5189546526172506034, 11941577777618216071),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LevelAttributeCollection)
    def __iter__(self):
        """Create an iterator for the LevelAttributeCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "LevelAttribute":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the size of the collection."""
        return self._intf.get_property(LevelAttributeCollection._metadata, LevelAttributeCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "LevelAttribute":
        """Return an LevelAttribute given an index number."""
        return self._intf.invoke(LevelAttributeCollection._metadata, LevelAttributeCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through LevelAttributeCollection."""
        return self._intf.get_property(LevelAttributeCollection._metadata, LevelAttributeCollection._get__new_enum_metadata)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove(self, index:int) -> None:
        """Remove an LevelAttribute Item with given index."""
        return self._intf.invoke(LevelAttributeCollection._metadata, LevelAttributeCollection._remove_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all LevelAttribute."""
        return self._intf.invoke(LevelAttributeCollection._metadata, LevelAttributeCollection._remove_all_metadata, )

    _add_level_metadata = { "offset" : _add_level_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def add_level(self, level:typing.Any) -> "LevelAttribute":
        """Add a level."""
        return self._intf.invoke(LevelAttributeCollection._metadata, LevelAttributeCollection._add_level_metadata, level, OutArg())

    _add_level_range_metadata = { "offset" : _add_level_range_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def add_level_range(self, start:typing.Any, stop:typing.Any, step:typing.Any) -> None:
        """Add a level range."""
        return self._intf.invoke(LevelAttributeCollection._metadata, LevelAttributeCollection._add_level_range_metadata, start, stop, step)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type LevelAttributeCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LevelAttributeCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LevelAttributeCollection, [LevelAttributeCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4675181609603961754, 15384718876649957268), LevelAttributeCollection)
agcls.AgTypeNameMap["LevelAttributeCollection"] = LevelAttributeCollection

class BasicAzElMask(SupportsDeleteCallback):
    """
    AgAzElMask Azimuth-elevation access points.

    Examples
    --------
    Display the AzEl Mask in 2D/3D:
    >>> # Facility facility: Facility Object
    >>> azelMask = facility.graphics.az_el_mask
    >>> azelMask.show_mask_over_range = True
    >>> azelMask.number_of_range_steps = 10
    >>> azelMask.display_range_minimum = 0  # km
    >>> azelMask.display_range_maximum = 100  # km
    >>> azelMask.show_color_at_range = True
    >>> azelMask.range_color = Colors.Cyan
    """

    _num_methods = 24
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_display_mask_over_altitude_range_method_offset = 1
    _set_display_mask_over_altitude_range_method_offset = 2
    _get_number_of_altitude_steps_method_offset = 3
    _set_number_of_altitude_steps_method_offset = 4
    _get_show_mask_over_range_method_offset = 5
    _set_show_mask_over_range_method_offset = 6
    _get_number_of_range_steps_method_offset = 7
    _set_number_of_range_steps_method_offset = 8
    _get_display_range_minimum_method_offset = 9
    _set_display_range_minimum_method_offset = 10
    _get_display_range_maximum_method_offset = 11
    _set_display_range_maximum_method_offset = 12
    _get_display_altitude_minimum_method_offset = 13
    _set_display_altitude_minimum_method_offset = 14
    _get_display_altitude_maximum_method_offset = 15
    _set_display_altitude_maximum_method_offset = 16
    _get_display_color_at_altitude_method_offset = 17
    _set_display_color_at_altitude_method_offset = 18
    _get_altitude_color_method_offset = 19
    _set_altitude_color_method_offset = 20
    _get_show_color_at_range_method_offset = 21
    _set_show_color_at_range_method_offset = 22
    _get_range_color_method_offset = 23
    _set_range_color_method_offset = 24
    _metadata = {
        "iid_data" : (5071466537752059594, 12341808046202171280),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BasicAzElMask)

    _get_display_mask_over_altitude_range_metadata = { "offset" : _get_display_mask_over_altitude_range_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def display_mask_over_altitude_range(self) -> bool:
        """Display the terrain mask at a specified number of steps from the minimum to the maximum altitude above the central body."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_display_mask_over_altitude_range_metadata)

    _set_display_mask_over_altitude_range_metadata = { "offset" : _set_display_mask_over_altitude_range_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @display_mask_over_altitude_range.setter
    def display_mask_over_altitude_range(self, value:bool) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_display_mask_over_altitude_range_metadata, value)

    _get_number_of_altitude_steps_metadata = { "offset" : _get_number_of_altitude_steps_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_altitude_steps(self) -> int:
        """The relative intervals at which the terrain mask is displayed, e.g. if this value is 3 steps, and the minimum and maximum altitudes are 500 and 1500 km, respectively, then the terrain mask is displayed at altitudes of 500, 1000 and 1500 km."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_number_of_altitude_steps_metadata)

    _set_number_of_altitude_steps_metadata = { "offset" : _set_number_of_altitude_steps_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_altitude_steps.setter
    def number_of_altitude_steps(self, num:int) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_number_of_altitude_steps_metadata, num)

    _get_show_mask_over_range_metadata = { "offset" : _get_show_mask_over_range_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_mask_over_range(self) -> bool:
        """Display the terrain mask at the specified number of steps from the minimum to the maximum range from the facility, place or target."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_show_mask_over_range_metadata)

    _set_show_mask_over_range_metadata = { "offset" : _set_show_mask_over_range_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_mask_over_range.setter
    def show_mask_over_range(self, value:bool) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_show_mask_over_range_metadata, value)

    _get_number_of_range_steps_metadata = { "offset" : _get_number_of_range_steps_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_range_steps(self) -> int:
        """The relative intervals at which the terrain mask is displayed, e.g. if this value is 3 steps, and the minimum and maximum ranges are 500 and 1500 km, respectively, then the terrain mask is displayed at ranges of 500, 1000 and 1500 km."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_number_of_range_steps_metadata)

    _set_number_of_range_steps_metadata = { "offset" : _set_number_of_range_steps_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_range_steps.setter
    def number_of_range_steps(self, num:int) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_number_of_range_steps_metadata, num)

    _get_display_range_minimum_metadata = { "offset" : _get_display_range_minimum_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def display_range_minimum(self) -> float:
        """The shortest range at which the terrain mask is displayed. Uses Distance Dimension."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_display_range_minimum_metadata)

    _set_display_range_minimum_metadata = { "offset" : _set_display_range_minimum_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @display_range_minimum.setter
    def display_range_minimum(self, min:float) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_display_range_minimum_metadata, min)

    _get_display_range_maximum_metadata = { "offset" : _get_display_range_maximum_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def display_range_maximum(self) -> float:
        """The longest range at which the terrain mask is displayed. Uses Distance Dimension."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_display_range_maximum_metadata)

    _set_display_range_maximum_metadata = { "offset" : _set_display_range_maximum_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @display_range_maximum.setter
    def display_range_maximum(self, max:float) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_display_range_maximum_metadata, max)

    _get_display_altitude_minimum_metadata = { "offset" : _get_display_altitude_minimum_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def display_altitude_minimum(self) -> float:
        """The lowest altitude at which the terrain mask is displayed. The minimum altitude must be at least equal to the altitude of the facility, place or target, including the height above ground, if specified. Uses Distance Dimension."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_display_altitude_minimum_metadata)

    _set_display_altitude_minimum_metadata = { "offset" : _set_display_altitude_minimum_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @display_altitude_minimum.setter
    def display_altitude_minimum(self, min:float) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_display_altitude_minimum_metadata, min)

    _get_display_altitude_maximum_metadata = { "offset" : _get_display_altitude_maximum_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def display_altitude_maximum(self) -> float:
        """The highest altitude above the central body at which the terrain mask is displayed. Uses Distance Dimension."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_display_altitude_maximum_metadata)

    _set_display_altitude_maximum_metadata = { "offset" : _set_display_altitude_maximum_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @display_altitude_maximum.setter
    def display_altitude_maximum(self, max:float) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_display_altitude_maximum_metadata, max)

    _get_display_color_at_altitude_metadata = { "offset" : _get_display_color_at_altitude_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def display_color_at_altitude(self) -> bool:
        """Display the color at altitude."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_display_color_at_altitude_metadata)

    _set_display_color_at_altitude_metadata = { "offset" : _set_display_color_at_altitude_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @display_color_at_altitude.setter
    def display_color_at_altitude(self, value:bool) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_display_color_at_altitude_metadata, value)

    _get_altitude_color_metadata = { "offset" : _get_altitude_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def altitude_color(self) -> agcolor.Color:
        """Get or set the altitude color."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_altitude_color_metadata)

    _set_altitude_color_metadata = { "offset" : _set_altitude_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @altitude_color.setter
    def altitude_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_altitude_color_metadata, value)

    _get_show_color_at_range_metadata = { "offset" : _get_show_color_at_range_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_color_at_range(self) -> bool:
        """Display the color at range."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_show_color_at_range_metadata)

    _set_show_color_at_range_metadata = { "offset" : _set_show_color_at_range_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_color_at_range.setter
    def show_color_at_range(self, value:bool) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_show_color_at_range_metadata, value)

    _get_range_color_metadata = { "offset" : _get_range_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def range_color(self) -> agcolor.Color:
        """Get or set the range color."""
        return self._intf.get_property(BasicAzElMask._metadata, BasicAzElMask._get_range_color_metadata)

    _set_range_color_metadata = { "offset" : _set_range_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @range_color.setter
    def range_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(BasicAzElMask._metadata, BasicAzElMask._set_range_color_metadata, value)

    _property_names[display_mask_over_altitude_range] = "display_mask_over_altitude_range"
    _property_names[number_of_altitude_steps] = "number_of_altitude_steps"
    _property_names[show_mask_over_range] = "show_mask_over_range"
    _property_names[number_of_range_steps] = "number_of_range_steps"
    _property_names[display_range_minimum] = "display_range_minimum"
    _property_names[display_range_maximum] = "display_range_maximum"
    _property_names[display_altitude_minimum] = "display_altitude_minimum"
    _property_names[display_altitude_maximum] = "display_altitude_maximum"
    _property_names[display_color_at_altitude] = "display_color_at_altitude"
    _property_names[altitude_color] = "altitude_color"
    _property_names[show_color_at_range] = "show_color_at_range"
    _property_names[range_color] = "range_color"

    def __init__(self, source_object=None):
        """Construct an object of type BasicAzElMask."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BasicAzElMask)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BasicAzElMask, [BasicAzElMask, ])

agcls.AgClassCatalog.add_catalog_entry((5462326246335759447, 12191027663593535891), BasicAzElMask)
agcls.AgTypeNameMap["BasicAzElMask"] = BasicAzElMask

class FacilityGraphics(SupportsDeleteCallback):
    """FacilityGraphics used to access the 2D graphics for a Facility object interface."""

    _num_methods = 22
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_from_scenario_method_offset = 1
    _set_inherit_from_scenario_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_marker_style_method_offset = 5
    _set_marker_style_method_offset = 6
    _get_show_label_method_offset = 7
    _set_show_label_method_offset = 8
    _get_az_el_mask_method_offset = 9
    _get_contours_method_offset = 10
    _get_use_instance_name_label_method_offset = 11
    _set_use_instance_name_label_method_offset = 12
    _get_label_name_method_offset = 13
    _set_label_name_method_offset = 14
    _get_label_notes_method_offset = 15
    _get_marker_color_method_offset = 16
    _set_marker_color_method_offset = 17
    _get_label_color_method_offset = 18
    _set_label_color_method_offset = 19
    _get_show_graphics_method_offset = 20
    _set_show_graphics_method_offset = 21
    _get_radar_cross_section_method_offset = 22
    _metadata = {
        "iid_data" : (5189738631287432743, 13630767254644157856),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FacilityGraphics)

    _get_inherit_from_scenario_metadata = { "offset" : _get_inherit_from_scenario_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_from_scenario(self) -> bool:
        """Inheritable graphics attributes are inherited from the Scenario object instead of being set locally for the facility, place or target."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_inherit_from_scenario_metadata)

    _set_inherit_from_scenario_metadata = { "offset" : _set_inherit_from_scenario_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_from_scenario.setter
    def inherit_from_scenario(self, inherit:bool) -> None:
        return self._intf.set_property(FacilityGraphics._metadata, FacilityGraphics._set_inherit_from_scenario_metadata, inherit)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """The color in which the marker and label for the object is displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(FacilityGraphics._metadata, FacilityGraphics._set_color_metadata, color)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """The style of the marker representing the object in the 2D Graphics window. A member of the MarkerStyle enumeration."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, marker_style:str) -> None:
        return self._intf.set_property(FacilityGraphics._metadata, FacilityGraphics._set_marker_style_metadata, marker_style)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Display the label for the facility, place or target."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, show_label:bool) -> None:
        return self._intf.set_property(FacilityGraphics._metadata, FacilityGraphics._set_show_label_metadata, show_label)

    _get_az_el_mask_metadata = { "offset" : _get_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def az_el_mask(self) -> "BasicAzElMask":
        """The graphics az-el mask properties for the facility, place or target."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_az_el_mask_metadata)

    _get_contours_metadata = { "offset" : _get_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def contours(self) -> "Graphics2DRangeContours":
        """The range contours properties for the facility, place or target."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_contours_metadata)

    _get_use_instance_name_label_metadata = { "offset" : _get_use_instance_name_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_instance_name_label(self) -> bool:
        """Use the name of the object as the label for the facility, place or target."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_use_instance_name_label_metadata)

    _set_use_instance_name_label_metadata = { "offset" : _set_use_instance_name_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_instance_name_label.setter
    def use_instance_name_label(self, value:bool) -> None:
        return self._intf.set_property(FacilityGraphics._metadata, FacilityGraphics._set_use_instance_name_label_metadata, value)

    _get_label_name_metadata = { "offset" : _get_label_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label_name(self) -> str:
        """Use a user-specified name as the label for the facility, place or target. This does not have to correspond to the name of the object in the Object Browser."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_label_name_metadata)

    _set_label_name_metadata = { "offset" : _set_label_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label_name.setter
    def label_name(self, value:str) -> None:
        return self._intf.set_property(FacilityGraphics._metadata, FacilityGraphics._set_label_name_metadata, value)

    _get_label_notes_metadata = { "offset" : _get_label_notes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_notes(self) -> "LabelNoteCollection":
        """Notes attached to the object and displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_label_notes_metadata)

    _get_marker_color_metadata = { "offset" : _get_marker_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def marker_color(self) -> agcolor.Color:
        """The color in which the marker for the object is displayed."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_marker_color_metadata)

    _set_marker_color_metadata = { "offset" : _set_marker_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @marker_color.setter
    def marker_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(FacilityGraphics._metadata, FacilityGraphics._set_marker_color_metadata, color)

    _get_label_color_metadata = { "offset" : _get_label_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def label_color(self) -> agcolor.Color:
        """The color in which the label for the object is displayed."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_label_color_metadata)

    _set_label_color_metadata = { "offset" : _set_label_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @label_color.setter
    def label_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(FacilityGraphics._metadata, FacilityGraphics._set_label_color_metadata, color)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the facility are visible."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(FacilityGraphics._metadata, FacilityGraphics._set_show_graphics_metadata, is_visible)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(FacilityGraphics._metadata, FacilityGraphics._get_radar_cross_section_metadata)

    _property_names[inherit_from_scenario] = "inherit_from_scenario"
    _property_names[color] = "color"
    _property_names[marker_style] = "marker_style"
    _property_names[show_label] = "show_label"
    _property_names[az_el_mask] = "az_el_mask"
    _property_names[contours] = "contours"
    _property_names[use_instance_name_label] = "use_instance_name_label"
    _property_names[label_name] = "label_name"
    _property_names[label_notes] = "label_notes"
    _property_names[marker_color] = "marker_color"
    _property_names[label_color] = "label_color"
    _property_names[show_graphics] = "show_graphics"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type FacilityGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FacilityGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FacilityGraphics, [FacilityGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5476104007043449322, 13245343541410307748), FacilityGraphics)
agcls.AgTypeNameMap["FacilityGraphics"] = FacilityGraphics

class PlaceGraphics(SupportsDeleteCallback):
    """PlaceGraphics used to access the 2-d graphics properties for a Place object."""

    _num_methods = 22
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_from_scenario_method_offset = 1
    _set_inherit_from_scenario_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_marker_style_method_offset = 5
    _set_marker_style_method_offset = 6
    _get_show_label_method_offset = 7
    _set_show_label_method_offset = 8
    _get_az_el_mask_method_offset = 9
    _get_contours_method_offset = 10
    _get_use_instance_name_label_method_offset = 11
    _set_use_instance_name_label_method_offset = 12
    _get_label_name_method_offset = 13
    _set_label_name_method_offset = 14
    _get_label_notes_method_offset = 15
    _get_marker_color_method_offset = 16
    _set_marker_color_method_offset = 17
    _get_label_color_method_offset = 18
    _set_label_color_method_offset = 19
    _get_show_graphics_method_offset = 20
    _set_show_graphics_method_offset = 21
    _get_radar_cross_section_method_offset = 22
    _metadata = {
        "iid_data" : (5358984658127419762, 18443295366928010380),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PlaceGraphics)

    _get_inherit_from_scenario_metadata = { "offset" : _get_inherit_from_scenario_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_from_scenario(self) -> bool:
        """Inheritable graphics attributes are inherited from the Scenario object instead of being set locally for the facility or place."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_inherit_from_scenario_metadata)

    _set_inherit_from_scenario_metadata = { "offset" : _set_inherit_from_scenario_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_from_scenario.setter
    def inherit_from_scenario(self, inherit:bool) -> None:
        return self._intf.set_property(PlaceGraphics._metadata, PlaceGraphics._set_inherit_from_scenario_metadata, inherit)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """The color in which the marker and label for the object is displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(PlaceGraphics._metadata, PlaceGraphics._set_color_metadata, color)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """The style of the marker representing the object in the 2D Graphics window. A member of the MarkerStyle enumeration."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, marker_style:str) -> None:
        return self._intf.set_property(PlaceGraphics._metadata, PlaceGraphics._set_marker_style_metadata, marker_style)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Display the label for the place."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, show_label:bool) -> None:
        return self._intf.set_property(PlaceGraphics._metadata, PlaceGraphics._set_show_label_metadata, show_label)

    _get_az_el_mask_metadata = { "offset" : _get_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def az_el_mask(self) -> "BasicAzElMask":
        """The graphics az-el mask properties for the place."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_az_el_mask_metadata)

    _get_contours_metadata = { "offset" : _get_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def contours(self) -> "Graphics2DRangeContours":
        """The range contours properties for the place."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_contours_metadata)

    _get_use_instance_name_label_metadata = { "offset" : _get_use_instance_name_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_instance_name_label(self) -> bool:
        """Use the name of the object as the label for the place."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_use_instance_name_label_metadata)

    _set_use_instance_name_label_metadata = { "offset" : _set_use_instance_name_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_instance_name_label.setter
    def use_instance_name_label(self, value:bool) -> None:
        return self._intf.set_property(PlaceGraphics._metadata, PlaceGraphics._set_use_instance_name_label_metadata, value)

    _get_label_name_metadata = { "offset" : _get_label_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label_name(self) -> str:
        """Use a user-specified name as the label for the place. This does not have to correspond to the name of the object in the Object Browser."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_label_name_metadata)

    _set_label_name_metadata = { "offset" : _set_label_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label_name.setter
    def label_name(self, value:str) -> None:
        return self._intf.set_property(PlaceGraphics._metadata, PlaceGraphics._set_label_name_metadata, value)

    _get_label_notes_metadata = { "offset" : _get_label_notes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_notes(self) -> "LabelNoteCollection":
        """Notes attached to the object and displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_label_notes_metadata)

    _get_marker_color_metadata = { "offset" : _get_marker_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def marker_color(self) -> agcolor.Color:
        """The color in which the marker for the object is displayed."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_marker_color_metadata)

    _set_marker_color_metadata = { "offset" : _set_marker_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @marker_color.setter
    def marker_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(PlaceGraphics._metadata, PlaceGraphics._set_marker_color_metadata, color)

    _get_label_color_metadata = { "offset" : _get_label_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def label_color(self) -> agcolor.Color:
        """The color in which the label for the object is displayed."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_label_color_metadata)

    _set_label_color_metadata = { "offset" : _set_label_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @label_color.setter
    def label_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(PlaceGraphics._metadata, PlaceGraphics._set_label_color_metadata, color)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the place are visible."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(PlaceGraphics._metadata, PlaceGraphics._set_show_graphics_metadata, is_visible)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(PlaceGraphics._metadata, PlaceGraphics._get_radar_cross_section_metadata)

    _property_names[inherit_from_scenario] = "inherit_from_scenario"
    _property_names[color] = "color"
    _property_names[marker_style] = "marker_style"
    _property_names[show_label] = "show_label"
    _property_names[az_el_mask] = "az_el_mask"
    _property_names[contours] = "contours"
    _property_names[use_instance_name_label] = "use_instance_name_label"
    _property_names[label_name] = "label_name"
    _property_names[label_notes] = "label_notes"
    _property_names[marker_color] = "marker_color"
    _property_names[label_color] = "label_color"
    _property_names[show_graphics] = "show_graphics"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type PlaceGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PlaceGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PlaceGraphics, [PlaceGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5702610636509048736, 18141085906842949561), PlaceGraphics)
agcls.AgTypeNameMap["PlaceGraphics"] = PlaceGraphics

class Graphics2DRangeContours(SupportsDeleteCallback):
    """
    Graphics2DRangeContours used to access contours of 2-d object.

    Examples
    --------
    Set 2D/3D Range Contours:
    >>> # Satellite satellite: Satellite object
    >>> # Set a contour level in the 2D properties
    >>> rangeContours = satellite.graphics.range_contours
    >>> rangeContours.show_graphics = True
    >>> rangeLevel = rangeContours.level_attributes.add_level(2000)  # km
    >>> rangeLevel.color = Colors.Fuchsia
    >>> rangeLevel.line_width = LineWidth.WIDTH5
    >>> rangeLevel.label_angle = 90
    >>> rangeLevel.show_user_text_visible = True
    >>> rangeLevel.user_text = "Range"
    >>> # Turn the contours on in the 3D properties
    >>> satellite.graphics_3d.range_contours.show_graphics = True
    """

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_show_filled_contours_method_offset = 3
    _set_show_filled_contours_method_offset = 4
    _get_fill_style_method_offset = 5
    _set_fill_style_method_offset = 6
    _get_level_attributes_method_offset = 7
    _get_number_of_decimal_digits_method_offset = 8
    _set_number_of_decimal_digits_method_offset = 9
    _get_label_units_method_offset = 10
    _set_label_units_method_offset = 11
    _get_available_label_units_method_offset = 12
    _get_fill_translucency_method_offset = 13
    _set_fill_translucency_method_offset = 14
    _metadata = {
        "iid_data" : (4652380719005928742, 8035077553737424536),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics2DRangeContours)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Display range contours representing the various regions of the surface that can see an object at the specified level."""
        return self._intf.get_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, show:bool) -> None:
        return self._intf.set_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._set_show_graphics_metadata, show)

    _get_show_filled_contours_metadata = { "offset" : _get_show_filled_contours_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_filled_contours(self) -> bool:
        """Display the range contours as a filled polygon on the surface of the central body."""
        return self._intf.get_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._get_show_filled_contours_metadata)

    _set_show_filled_contours_metadata = { "offset" : _set_show_filled_contours_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_filled_contours.setter
    def show_filled_contours(self, value:bool) -> None:
        return self._intf.set_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._set_show_filled_contours_metadata, value)

    _get_fill_style_metadata = { "offset" : _get_fill_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FillStyle),) }
    @property
    def fill_style(self) -> "FillStyle":
        """Get or set the style in which the range contours polygon is filled. A member of the FillStyle enumeration."""
        return self._intf.get_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._get_fill_style_metadata)

    _set_fill_style_metadata = { "offset" : _set_fill_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FillStyle),) }
    @fill_style.setter
    def fill_style(self, value:"FillStyle") -> None:
        return self._intf.set_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._set_fill_style_metadata, value)

    _get_level_attributes_metadata = { "offset" : _get_level_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def level_attributes(self) -> "LevelAttributeCollection":
        """The collection of level attributes defining the way in which the range contours are displayed."""
        return self._intf.get_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._get_level_attributes_metadata)

    _get_number_of_decimal_digits_metadata = { "offset" : _get_number_of_decimal_digits_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_decimal_digits(self) -> int:
        """Number of decimal digits."""
        return self._intf.get_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._get_number_of_decimal_digits_metadata)

    _set_number_of_decimal_digits_metadata = { "offset" : _set_number_of_decimal_digits_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_decimal_digits.setter
    def number_of_decimal_digits(self, dec_digits:int) -> None:
        return self._intf.set_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._set_number_of_decimal_digits_metadata, dec_digits)

    _get_label_units_metadata = { "offset" : _get_label_units_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label_units(self) -> str:
        """Get or set the display units on the 2d map."""
        return self._intf.get_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._get_label_units_metadata)

    _set_label_units_metadata = { "offset" : _set_label_units_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label_units.setter
    def label_units(self, label_unit:str) -> None:
        return self._intf.set_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._set_label_units_metadata, label_unit)

    _get_available_label_units_metadata = { "offset" : _get_available_label_units_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_label_units(self) -> list:
        """Get the available units for the LabelUnit."""
        return self._intf.get_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._get_available_label_units_metadata)

    _get_fill_translucency_metadata = { "offset" : _get_fill_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fill_translucency(self) -> float:
        """Specify the fill translucency percentage of the polygon on the surface of the central body. Translucency ranges from 0 to 100 percent, where 100 percent is invisible."""
        return self._intf.get_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._get_fill_translucency_metadata)

    _set_fill_translucency_metadata = { "offset" : _set_fill_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fill_translucency.setter
    def fill_translucency(self, value:float) -> None:
        return self._intf.set_property(Graphics2DRangeContours._metadata, Graphics2DRangeContours._set_fill_translucency_metadata, value)

    _property_names[show_graphics] = "show_graphics"
    _property_names[show_filled_contours] = "show_filled_contours"
    _property_names[fill_style] = "fill_style"
    _property_names[level_attributes] = "level_attributes"
    _property_names[number_of_decimal_digits] = "number_of_decimal_digits"
    _property_names[label_units] = "label_units"
    _property_names[available_label_units] = "available_label_units"
    _property_names[fill_translucency] = "fill_translucency"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics2DRangeContours."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics2DRangeContours)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics2DRangeContours, [Graphics2DRangeContours, ])

agcls.AgClassCatalog.add_catalog_entry((5071012221124472853, 12956424215014946945), Graphics2DRangeContours)
agcls.AgTypeNameMap["Graphics2DRangeContours"] = Graphics2DRangeContours

class AccessConstraint(IAccessConstraint, SupportsDeleteCallback):
    """Class defining access constraints."""
    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraint."""
        SupportsDeleteCallback.__init__(self)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraint, [IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((5403324889890139352, 11730074011765467024), AccessConstraint)
agcls.AgTypeNameMap["AccessConstraint"] = AccessConstraint

class AccessConstraintCollection(SupportsDeleteCallback):
    """
    AccessConstraintCollection used to access the list of constraints.

    Examples
    --------
    Get handle to the object access constraints:
    >>> # Satellite satellite: Satellite object
    >>> accessConstraints = satellite.access_constraints
    """

    _num_methods = 20
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _add_constraint_method_offset = 4
    _remove_constraint_method_offset = 5
    _get_active_constraint_method_offset = 6
    _is_constraint_active_method_offset = 7
    _available_constraints_method_offset = 8
    _is_constraint_supported_method_offset = 9
    _is_named_constraint_supported_method_offset = 10
    _add_named_constraint_method_offset = 11
    _remove_named_constraint_method_offset = 12
    _is_named_constraint_active_method_offset = 13
    _get_active_named_constraint_method_offset = 14
    _get_analysis_workbench_constraints_method_offset = 15
    _get_use_preferred_maximum_time_step_method_offset = 16
    _set_use_preferred_maximum_time_step_method_offset = 17
    _get_preferred_maximum_time_step_method_offset = 18
    _set_preferred_maximum_time_step_method_offset = 19
    _remove_named_constraint_ex_method_offset = 20
    _metadata = {
        "iid_data" : (5621037918833283987, 86641657678199952),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintCollection)
    def __iter__(self):
        """Create an iterator for the AccessConstraintCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "IAccessConstraint":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the size of the collection."""
        return self._intf.get_property(AccessConstraintCollection._metadata, AccessConstraintCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "IAccessConstraint":
        """Return an AccessConstraint interface using an index."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerate the AccessConstraint items in the collection."""
        return self._intf.get_property(AccessConstraintCollection._metadata, AccessConstraintCollection._get__new_enum_metadata)

    _add_constraint_metadata = { "offset" : _add_constraint_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(AccessConstraintType), agmarshall.InterfaceOutArg,) }
    def add_constraint(self, constraint:"AccessConstraintType") -> "IAccessConstraint":
        """Add a constraint to the Constraint Collection."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._add_constraint_metadata, constraint, OutArg())

    _remove_constraint_metadata = { "offset" : _remove_constraint_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AccessConstraintType),) }
    def remove_constraint(self, constraint:"AccessConstraintType") -> None:
        """Remove a constraint from the collection."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._remove_constraint_metadata, constraint)

    _get_active_constraint_metadata = { "offset" : _get_active_constraint_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(AccessConstraintType), agmarshall.InterfaceOutArg,) }
    def get_active_constraint(self, constraint:"AccessConstraintType") -> "IAccessConstraint":
        """Retrieve the active constraint."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._get_active_constraint_metadata, constraint, OutArg())

    _is_constraint_active_metadata = { "offset" : _is_constraint_active_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(AccessConstraintType), agmarshall.VariantBoolArg,) }
    def is_constraint_active(self, constraint:"AccessConstraintType") -> bool:
        """Given an AccessConstraintType enum, informs the user if the constraint is active."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._is_constraint_active_metadata, constraint, OutArg())

    _available_constraints_metadata = { "offset" : _available_constraints_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def available_constraints(self) -> list:
        """Return a rectangular two-dimensional array of available constraints. A row of the array consists of two elements where the first element is a symbolic name of the constraint and the second is a corresponding enumeration value."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._available_constraints_metadata, OutArg())

    _is_constraint_supported_metadata = { "offset" : _is_constraint_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(AccessConstraintType), agmarshall.VariantBoolArg,) }
    def is_constraint_supported(self, constraint:"AccessConstraintType") -> bool:
        """Is the constraint supported for this object."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._is_constraint_supported_metadata, constraint, OutArg())

    _is_named_constraint_supported_metadata = { "offset" : _is_named_constraint_supported_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_named_constraint_supported(self, cnstr_name:str) -> bool:
        """Is the named constraint supported for this object."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._is_named_constraint_supported_metadata, cnstr_name, OutArg())

    _add_named_constraint_metadata = { "offset" : _add_named_constraint_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add_named_constraint(self, cnstr_name:str) -> "IAccessConstraint":
        """Add a constraint with the given name to the collection."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._add_named_constraint_metadata, cnstr_name, OutArg())

    _remove_named_constraint_metadata = { "offset" : _remove_named_constraint_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_named_constraint(self, cnstr_name:str) -> None:
        """Do not use this method, as it is deprecated. Use RemoveNamedConstraintEx instead. Removes a constraint with the given name from the collection."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._remove_named_constraint_metadata, cnstr_name)

    _is_named_constraint_active_metadata = { "offset" : _is_named_constraint_active_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_named_constraint_active(self, cnstr_name:str) -> bool:
        """Given a constraint name, returns whether the specified constraint is active."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._is_named_constraint_active_metadata, cnstr_name, OutArg())

    _get_active_named_constraint_metadata = { "offset" : _get_active_named_constraint_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_active_named_constraint(self, cnstr_name:str) -> "IAccessConstraint":
        """Retrieve an active constraint with the given name."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._get_active_named_constraint_metadata, cnstr_name, OutArg())

    _get_analysis_workbench_constraints_metadata = { "offset" : _get_analysis_workbench_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis_workbench_constraints(self) -> "AccessConstraintAnalysisWorkbenchCollection":
        """Return a AccessConstraintAnalysisWorkbenchCollection constraint used to access angle, vector and condition constraint."""
        return self._intf.get_property(AccessConstraintCollection._metadata, AccessConstraintCollection._get_analysis_workbench_constraints_metadata)

    _get_use_preferred_maximum_time_step_metadata = { "offset" : _get_use_preferred_maximum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_preferred_maximum_time_step(self) -> bool:
        """Flag indicating that the preferred max time step should be used in access computations."""
        return self._intf.get_property(AccessConstraintCollection._metadata, AccessConstraintCollection._get_use_preferred_maximum_time_step_metadata)

    _set_use_preferred_maximum_time_step_metadata = { "offset" : _set_use_preferred_maximum_time_step_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_preferred_maximum_time_step.setter
    def use_preferred_maximum_time_step(self, use_preferred_max_time_step:bool) -> None:
        return self._intf.set_property(AccessConstraintCollection._metadata, AccessConstraintCollection._set_use_preferred_maximum_time_step_metadata, use_preferred_max_time_step)

    _get_preferred_maximum_time_step_metadata = { "offset" : _get_preferred_maximum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def preferred_maximum_time_step(self) -> float:
        """Maximum time step to be considered in access computations. New access computations consider this value when determining a suitable maximum step size."""
        return self._intf.get_property(AccessConstraintCollection._metadata, AccessConstraintCollection._get_preferred_maximum_time_step_metadata)

    _set_preferred_maximum_time_step_metadata = { "offset" : _set_preferred_maximum_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @preferred_maximum_time_step.setter
    def preferred_maximum_time_step(self, value:float) -> None:
        return self._intf.set_property(AccessConstraintCollection._metadata, AccessConstraintCollection._set_preferred_maximum_time_step_metadata, value)

    _remove_named_constraint_ex_metadata = { "offset" : _remove_named_constraint_ex_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_named_constraint_ex(self, cnstr_name:str) -> None:
        """Remove a constraint with the given name from the collection."""
        return self._intf.invoke(AccessConstraintCollection._metadata, AccessConstraintCollection._remove_named_constraint_ex_metadata, cnstr_name)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[analysis_workbench_constraints] = "analysis_workbench_constraints"
    _property_names[use_preferred_maximum_time_step] = "use_preferred_maximum_time_step"
    _property_names[preferred_maximum_time_step] = "preferred_maximum_time_step"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintCollection, [AccessConstraintCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4820065720847647409, 8995028674083257531), AccessConstraintCollection)
agcls.AgTypeNameMap["AccessConstraintCollection"] = AccessConstraintCollection

class Graphics3DRangeContours(SupportsDeleteCallback):
    """AgVORangeContour used to access the 3D RangeContour attributes."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_translucent_lines_method_offset = 3
    _set_translucent_lines_method_offset = 4
    _get_percent_translucency_method_offset = 5
    _set_percent_translucency_method_offset = 6
    _get_border_wall_method_offset = 7
    _get_label_swap_distance_method_offset = 8
    _metadata = {
        "iid_data" : (5285701231483295364, 8153269883126888598),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DRangeContours)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Display the contour cone's projection on the surface of the central body."""
        return self._intf.get_property(Graphics3DRangeContours._metadata, Graphics3DRangeContours._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(Graphics3DRangeContours._metadata, Graphics3DRangeContours._set_show_graphics_metadata, is_visible)

    _get_translucent_lines_metadata = { "offset" : _get_translucent_lines_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def translucent_lines(self) -> bool:
        """Make the contour cone translucent at the specified percentage."""
        return self._intf.get_property(Graphics3DRangeContours._metadata, Graphics3DRangeContours._get_translucent_lines_metadata)

    _set_translucent_lines_metadata = { "offset" : _set_translucent_lines_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @translucent_lines.setter
    def translucent_lines(self, translucent_lines:bool) -> None:
        return self._intf.set_property(Graphics3DRangeContours._metadata, Graphics3DRangeContours._set_translucent_lines_metadata, translucent_lines)

    _get_percent_translucency_metadata = { "offset" : _get_percent_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def percent_translucency(self) -> float:
        """Get or set the translucency of the contour cone's projection on the surface of the central body, where 100% = invisible. Dimensionless."""
        return self._intf.get_property(Graphics3DRangeContours._metadata, Graphics3DRangeContours._get_percent_translucency_metadata)

    _set_percent_translucency_metadata = { "offset" : _set_percent_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @percent_translucency.setter
    def percent_translucency(self, percent_translucency:float) -> None:
        return self._intf.set_property(Graphics3DRangeContours._metadata, Graphics3DRangeContours._set_percent_translucency_metadata, percent_translucency)

    _get_border_wall_metadata = { "offset" : _get_border_wall_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def border_wall(self) -> "Graphics3DBorderWall":
        """Retrieve the border wall properties of the range contours."""
        return self._intf.get_property(Graphics3DRangeContours._metadata, Graphics3DRangeContours._get_border_wall_metadata)

    _get_label_swap_distance_metadata = { "offset" : _get_label_swap_distance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_swap_distance(self) -> "Graphics3DLabelSwapDistance":
        """Interface to control the level of detail in labels and other screen objects at specified distances."""
        return self._intf.get_property(Graphics3DRangeContours._metadata, Graphics3DRangeContours._get_label_swap_distance_metadata)

    _property_names[show_graphics] = "show_graphics"
    _property_names[translucent_lines] = "translucent_lines"
    _property_names[percent_translucency] = "percent_translucency"
    _property_names[border_wall] = "border_wall"
    _property_names[label_swap_distance] = "label_swap_distance"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DRangeContours."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DRangeContours)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DRangeContours, [Graphics3DRangeContours, ])

agcls.AgClassCatalog.add_catalog_entry((4997990314645699875, 11284070761571696037), Graphics3DRangeContours)
agcls.AgTypeNameMap["Graphics3DRangeContours"] = Graphics3DRangeContours

class Graphics3DOffsetRotate(SupportsDeleteCallback):
    """Graphics3DOffsetRotate used to access the 3D Rotational attributes."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_method_offset = 1
    _set_enable_method_offset = 2
    _get_x_method_offset = 3
    _set_x_method_offset = 4
    _get_y_method_offset = 5
    _set_y_method_offset = 6
    _get_z_method_offset = 7
    _set_z_method_offset = 8
    _metadata = {
        "iid_data" : (5096939079821186749, 15006156622265403053),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DOffsetRotate)

    _get_enable_metadata = { "offset" : _get_enable_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable(self) -> bool:
        """Specify the model rotation in the object body frame's X, Y and Z directions."""
        return self._intf.get_property(Graphics3DOffsetRotate._metadata, Graphics3DOffsetRotate._get_enable_metadata)

    _set_enable_metadata = { "offset" : _set_enable_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable.setter
    def enable(self, use:bool) -> None:
        return self._intf.set_property(Graphics3DOffsetRotate._metadata, Graphics3DOffsetRotate._set_enable_metadata, use)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def x(self) -> typing.Any:
        """Rotation about the X axis. Uses Angle Dimension."""
        return self._intf.get_property(Graphics3DOffsetRotate._metadata, Graphics3DOffsetRotate._get_x_metadata)

    _set_x_metadata = { "offset" : _set_x_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @x.setter
    def x(self, vx:typing.Any) -> None:
        return self._intf.set_property(Graphics3DOffsetRotate._metadata, Graphics3DOffsetRotate._set_x_metadata, vx)

    _get_y_metadata = { "offset" : _get_y_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def y(self) -> typing.Any:
        """Rotation about the Y axis. Uses Angle Dimension."""
        return self._intf.get_property(Graphics3DOffsetRotate._metadata, Graphics3DOffsetRotate._get_y_metadata)

    _set_y_metadata = { "offset" : _set_y_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @y.setter
    def y(self, vy:typing.Any) -> None:
        return self._intf.set_property(Graphics3DOffsetRotate._metadata, Graphics3DOffsetRotate._set_y_metadata, vy)

    _get_z_metadata = { "offset" : _get_z_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def z(self) -> typing.Any:
        """Rotation about the Z axis. Uses Angle Dimension."""
        return self._intf.get_property(Graphics3DOffsetRotate._metadata, Graphics3DOffsetRotate._get_z_metadata)

    _set_z_metadata = { "offset" : _set_z_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @z.setter
    def z(self, value:typing.Any) -> None:
        return self._intf.set_property(Graphics3DOffsetRotate._metadata, Graphics3DOffsetRotate._set_z_metadata, value)

    _property_names[enable] = "enable"
    _property_names[x] = "x"
    _property_names[y] = "y"
    _property_names[z] = "z"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DOffsetRotate."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DOffsetRotate)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DOffsetRotate, [Graphics3DOffsetRotate, ])

agcls.AgClassCatalog.add_catalog_entry((5471926415575056291, 14820620289341967783), Graphics3DOffsetRotate)
agcls.AgTypeNameMap["Graphics3DOffsetRotate"] = Graphics3DOffsetRotate

class Graphics3DOffsetTransformation(SupportsDeleteCallback):
    """Graphics3DOffsetTransformation used to access the 3D Translational attributes."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_method_offset = 1
    _set_enable_method_offset = 2
    _get_x_method_offset = 3
    _set_x_method_offset = 4
    _get_y_method_offset = 5
    _set_y_method_offset = 6
    _get_z_method_offset = 7
    _set_z_method_offset = 8
    _metadata = {
        "iid_data" : (4996826452943371577, 162195490198843041),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DOffsetTransformation)

    _get_enable_metadata = { "offset" : _get_enable_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable(self) -> bool:
        """Specify the model translation in the object body frame's X, Y and Z directions."""
        return self._intf.get_property(Graphics3DOffsetTransformation._metadata, Graphics3DOffsetTransformation._get_enable_metadata)

    _set_enable_metadata = { "offset" : _set_enable_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable.setter
    def enable(self, use:bool) -> None:
        return self._intf.set_property(Graphics3DOffsetTransformation._metadata, Graphics3DOffsetTransformation._set_enable_metadata, use)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x(self) -> float:
        """Translation in the X direction. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DOffsetTransformation._metadata, Graphics3DOffsetTransformation._get_x_metadata)

    _set_x_metadata = { "offset" : _set_x_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x.setter
    def x(self, dx:float) -> None:
        return self._intf.set_property(Graphics3DOffsetTransformation._metadata, Graphics3DOffsetTransformation._set_x_metadata, dx)

    _get_y_metadata = { "offset" : _get_y_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y(self) -> float:
        """Translation in the Y direction. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DOffsetTransformation._metadata, Graphics3DOffsetTransformation._get_y_metadata)

    _set_y_metadata = { "offset" : _set_y_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y.setter
    def y(self, dy:float) -> None:
        return self._intf.set_property(Graphics3DOffsetTransformation._metadata, Graphics3DOffsetTransformation._set_y_metadata, dy)

    _get_z_metadata = { "offset" : _get_z_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z(self) -> float:
        """Translation in the Z direction. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DOffsetTransformation._metadata, Graphics3DOffsetTransformation._get_z_metadata)

    _set_z_metadata = { "offset" : _set_z_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z.setter
    def z(self, value:float) -> None:
        return self._intf.set_property(Graphics3DOffsetTransformation._metadata, Graphics3DOffsetTransformation._set_z_metadata, value)

    _property_names[enable] = "enable"
    _property_names[x] = "x"
    _property_names[y] = "y"
    _property_names[z] = "z"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DOffsetTransformation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DOffsetTransformation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DOffsetTransformation, [Graphics3DOffsetTransformation, ])

agcls.AgClassCatalog.add_catalog_entry((5435413317123025715, 13475997651443531704), Graphics3DOffsetTransformation)
agcls.AgTypeNameMap["Graphics3DOffsetTransformation"] = Graphics3DOffsetTransformation

class Graphics3DOffsetAttachment(SupportsDeleteCallback):
    """Interface for specifying attach points for the attachment of lines to objects."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_method_offset = 1
    _set_enable_method_offset = 2
    _get_attachment_point_name_method_offset = 3
    _set_attachment_point_name_method_offset = 4
    _get_available_attachment_points_method_offset = 5
    _metadata = {
        "iid_data" : (4725703941349488530, 1219054006864124337),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DOffsetAttachment)

    _get_enable_metadata = { "offset" : _get_enable_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable(self) -> bool:
        """Opt whether to attach the line to a specific point on the object. Otherwise, the line is attached to the center of the object."""
        return self._intf.get_property(Graphics3DOffsetAttachment._metadata, Graphics3DOffsetAttachment._get_enable_metadata)

    _set_enable_metadata = { "offset" : _set_enable_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable.setter
    def enable(self, use:bool) -> None:
        return self._intf.set_property(Graphics3DOffsetAttachment._metadata, Graphics3DOffsetAttachment._set_enable_metadata, use)

    _get_attachment_point_name_metadata = { "offset" : _get_attachment_point_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def attachment_point_name(self) -> str:
        """Name of the attach point."""
        return self._intf.get_property(Graphics3DOffsetAttachment._metadata, Graphics3DOffsetAttachment._get_attachment_point_name_metadata)

    _set_attachment_point_name_metadata = { "offset" : _set_attachment_point_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @attachment_point_name.setter
    def attachment_point_name(self, value:str) -> None:
        return self._intf.set_property(Graphics3DOffsetAttachment._metadata, Graphics3DOffsetAttachment._set_attachment_point_name_metadata, value)

    _get_available_attachment_points_metadata = { "offset" : _get_available_attachment_points_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_attachment_points(self) -> list:
        """Return available attach points."""
        return self._intf.get_property(Graphics3DOffsetAttachment._metadata, Graphics3DOffsetAttachment._get_available_attachment_points_metadata)

    _property_names[enable] = "enable"
    _property_names[attachment_point_name] = "attachment_point_name"
    _property_names[available_attachment_points] = "available_attachment_points"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DOffsetAttachment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DOffsetAttachment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DOffsetAttachment, [Graphics3DOffsetAttachment, ])

agcls.AgClassCatalog.add_catalog_entry((5032136750734978879, 6762316841219473283), Graphics3DOffsetAttachment)
agcls.AgTypeNameMap["Graphics3DOffsetAttachment"] = Graphics3DOffsetAttachment

class Graphics3DOffsetLabel(SupportsDeleteCallback):
    """Graphics3DOffsetLabel used to access the 3D Label attributes."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_method_offset = 1
    _set_enable_method_offset = 2
    _get_x_method_offset = 3
    _set_x_method_offset = 4
    _get_y_method_offset = 5
    _set_y_method_offset = 6
    _get_z_method_offset = 7
    _set_z_method_offset = 8
    _get_offset_frame_method_offset = 9
    _set_offset_frame_method_offset = 10
    _metadata = {
        "iid_data" : (5303830052855958522, 5906494117709468583),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DOffsetLabel)

    _get_enable_metadata = { "offset" : _get_enable_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable(self) -> bool:
        """Offset the position of an object label in the 3D Graphics window."""
        return self._intf.get_property(Graphics3DOffsetLabel._metadata, Graphics3DOffsetLabel._get_enable_metadata)

    _set_enable_metadata = { "offset" : _set_enable_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable.setter
    def enable(self, use:bool) -> None:
        return self._intf.set_property(Graphics3DOffsetLabel._metadata, Graphics3DOffsetLabel._set_enable_metadata, use)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x(self) -> float:
        """X value of the offset, where positive and negative values move the label to the right and left, respectively. Dimension depends on context."""
        return self._intf.get_property(Graphics3DOffsetLabel._metadata, Graphics3DOffsetLabel._get_x_metadata)

    _set_x_metadata = { "offset" : _set_x_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x.setter
    def x(self, dx:float) -> None:
        return self._intf.set_property(Graphics3DOffsetLabel._metadata, Graphics3DOffsetLabel._set_x_metadata, dx)

    _get_y_metadata = { "offset" : _get_y_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y(self) -> float:
        """The Y value of the offset, where positive and negative values move the label up and down, respectively. Dimension depends on context."""
        return self._intf.get_property(Graphics3DOffsetLabel._metadata, Graphics3DOffsetLabel._get_y_metadata)

    _set_y_metadata = { "offset" : _set_y_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y.setter
    def y(self, dy:float) -> None:
        return self._intf.set_property(Graphics3DOffsetLabel._metadata, Graphics3DOffsetLabel._set_y_metadata, dy)

    _get_z_metadata = { "offset" : _get_z_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z(self) -> float:
        """The Z value of the offset, used only when the offset frame is Cartesian, where positive and negative values move the label out of and into the screen, respectively. Uses SmallDistanceUnit Dimension."""
        return self._intf.get_property(Graphics3DOffsetLabel._metadata, Graphics3DOffsetLabel._get_z_metadata)

    _set_z_metadata = { "offset" : _set_z_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z.setter
    def z(self, value:float) -> None:
        return self._intf.set_property(Graphics3DOffsetLabel._metadata, Graphics3DOffsetLabel._set_z_metadata, value)

    _get_offset_frame_metadata = { "offset" : _get_offset_frame_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(OffsetFrameType),) }
    @property
    def offset_frame(self) -> "OffsetFrameType":
        """The frame used in computing the offset. A member of the OffsetFrameType enumeration."""
        return self._intf.get_property(Graphics3DOffsetLabel._metadata, Graphics3DOffsetLabel._get_offset_frame_metadata)

    _set_offset_frame_metadata = { "offset" : _set_offset_frame_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(OffsetFrameType),) }
    @offset_frame.setter
    def offset_frame(self, type:"OffsetFrameType") -> None:
        return self._intf.set_property(Graphics3DOffsetLabel._metadata, Graphics3DOffsetLabel._set_offset_frame_metadata, type)

    _property_names[enable] = "enable"
    _property_names[x] = "x"
    _property_names[y] = "y"
    _property_names[z] = "z"
    _property_names[offset_frame] = "offset_frame"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DOffsetLabel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DOffsetLabel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DOffsetLabel, [Graphics3DOffsetLabel, ])

agcls.AgClassCatalog.add_catalog_entry((5009771181099546699, 13321140278531855523), Graphics3DOffsetLabel)
agcls.AgTypeNameMap["Graphics3DOffsetLabel"] = Graphics3DOffsetLabel

class Graphics3DOffset(SupportsDeleteCallback):
    """Graphics3DOffset used to access the 3D offset attributes."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_rotational_method_offset = 1
    _get_translational_method_offset = 2
    _get_label_method_offset = 3
    _get_attachment_point_method_offset = 4
    _metadata = {
        "iid_data" : (5251466060974723430, 13412880926564638125),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DOffset)

    _get_rotational_metadata = { "offset" : _get_rotational_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rotational(self) -> "Graphics3DOffsetRotate":
        """Return the rotational offset attributes."""
        return self._intf.get_property(Graphics3DOffset._metadata, Graphics3DOffset._get_rotational_metadata)

    _get_translational_metadata = { "offset" : _get_translational_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def translational(self) -> "Graphics3DOffsetTransformation":
        """Return the translational offset attributes."""
        return self._intf.get_property(Graphics3DOffset._metadata, Graphics3DOffset._get_translational_metadata)

    _get_label_metadata = { "offset" : _get_label_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label(self) -> "Graphics3DOffsetLabel":
        """Return the label offset attributes."""
        return self._intf.get_property(Graphics3DOffset._metadata, Graphics3DOffset._get_label_metadata)

    _get_attachment_point_metadata = { "offset" : _get_attachment_point_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attachment_point(self) -> "Graphics3DOffsetAttachment":
        """Return the attach point offset attributes."""
        return self._intf.get_property(Graphics3DOffset._metadata, Graphics3DOffset._get_attachment_point_metadata)

    _property_names[rotational] = "rotational"
    _property_names[translational] = "translational"
    _property_names[label] = "label"
    _property_names[attachment_point] = "attachment_point"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DOffset."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DOffset)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DOffset, [Graphics3DOffset, ])

agcls.AgClassCatalog.add_catalog_entry((4871853079103029351, 4705150768642452660), Graphics3DOffset)
agcls.AgTypeNameMap["Graphics3DOffset"] = Graphics3DOffset

class Graphics3DMarkerShape(IGraphics3DMarkerData, SupportsDeleteCallback):
    """Graphics3DMarkerShape used to access the 3D markerShape attributes."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_style_method_offset = 1
    _set_style_method_offset = 2
    _metadata = {
        "iid_data" : (5451184913321189103, 4119975509738962613),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DMarkerShape)

    _get_style_metadata = { "offset" : _get_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MarkerShape3d),) }
    @property
    def style(self) -> "MarkerShape3d":
        """The 2D marker type that represents the object in the 3D Graphics window. A member of the MarkerShape3d enumeration."""
        return self._intf.get_property(Graphics3DMarkerShape._metadata, Graphics3DMarkerShape._get_style_metadata)

    _set_style_metadata = { "offset" : _set_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MarkerShape3d),) }
    @style.setter
    def style(self, value:"MarkerShape3d") -> None:
        return self._intf.set_property(Graphics3DMarkerShape._metadata, Graphics3DMarkerShape._set_style_metadata, value)

    _property_names[style] = "style"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DMarkerShape."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DMarkerShape)
        IGraphics3DMarkerData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DMarkerData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DMarkerShape, [Graphics3DMarkerShape, IGraphics3DMarkerData])

agcls.AgClassCatalog.add_catalog_entry((5719324276372777283, 13748440144271360185), Graphics3DMarkerShape)
agcls.AgTypeNameMap["Graphics3DMarkerShape"] = Graphics3DMarkerShape

class Graphics3DMarkerFile(IGraphics3DMarkerData, SupportsDeleteCallback):
    """Graphics3DMarkerFile used to access the 3D MarkerFile attributes."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_is_transparent_method_offset = 3
    _set_is_transparent_method_offset = 4
    _get_use_soft_transparency_method_offset = 5
    _set_use_soft_transparency_method_offset = 6
    _get_file_path_method_offset = 7
    _metadata = {
        "iid_data" : (4870948748535736926, 6848529613614031275),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DMarkerFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Display a 2D image to represent the object at the specified threshold."""
        return self._intf.get_property(Graphics3DMarkerFile._metadata, Graphics3DMarkerFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(Graphics3DMarkerFile._metadata, Graphics3DMarkerFile._set_filename_metadata, value)

    _get_is_transparent_metadata = { "offset" : _get_is_transparent_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_transparent(self) -> bool:
        """Use the color of the upper right pixel of the image as the transparent color if an image file is being used. No pixels of that color in the image are drawn."""
        return self._intf.get_property(Graphics3DMarkerFile._metadata, Graphics3DMarkerFile._get_is_transparent_metadata)

    _set_is_transparent_metadata = { "offset" : _set_is_transparent_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @is_transparent.setter
    def is_transparent(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DMarkerFile._metadata, Graphics3DMarkerFile._set_is_transparent_metadata, value)

    _get_use_soft_transparency_metadata = { "offset" : _get_use_soft_transparency_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_soft_transparency(self) -> bool:
        """Whether to use soft transparency.  Soft transparency shows smoother edges for images with a transparency channel."""
        return self._intf.get_property(Graphics3DMarkerFile._metadata, Graphics3DMarkerFile._get_use_soft_transparency_metadata)

    _set_use_soft_transparency_metadata = { "offset" : _set_use_soft_transparency_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_soft_transparency.setter
    def use_soft_transparency(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DMarkerFile._metadata, Graphics3DMarkerFile._set_use_soft_transparency_metadata, value)

    _get_file_path_metadata = { "offset" : _get_file_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file_path(self) -> str:
        """Full file path and name to display a 2D image to represent the object at the specified threshold."""
        return self._intf.get_property(Graphics3DMarkerFile._metadata, Graphics3DMarkerFile._get_file_path_metadata)

    _property_names[filename] = "filename"
    _property_names[is_transparent] = "is_transparent"
    _property_names[use_soft_transparency] = "use_soft_transparency"
    _property_names[file_path] = "file_path"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DMarkerFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DMarkerFile)
        IGraphics3DMarkerData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DMarkerData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DMarkerFile, [Graphics3DMarkerFile, IGraphics3DMarkerData])

agcls.AgClassCatalog.add_catalog_entry((5014537191269433457, 7921192102521903508), Graphics3DMarkerFile)
agcls.AgTypeNameMap["Graphics3DMarkerFile"] = Graphics3DMarkerFile

class Graphics3DMarker(SupportsDeleteCallback):
    """Graphics3DMarker used to access the Marker values."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pixel_size_method_offset = 1
    _set_pixel_size_method_offset = 2
    _get_visible_method_offset = 3
    _set_visible_method_offset = 4
    _get_marker_type_method_offset = 5
    _set_marker_type_method_offset = 6
    _get_angle_method_offset = 7
    _set_angle_method_offset = 8
    _get_x_origin_method_offset = 9
    _set_x_origin_method_offset = 10
    _get_y_origin_method_offset = 11
    _set_y_origin_method_offset = 12
    _get_marker_data_method_offset = 13
    _set_marker_image_filename_method_offset = 14
    _get_orientation_mode_method_offset = 15
    _set_orientation_mode_method_offset = 16
    _metadata = {
        "iid_data" : (4626180003251604815, 1455627048614524332),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DMarker)

    _get_pixel_size_metadata = { "offset" : _get_pixel_size_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def pixel_size(self) -> int:
        """The pixel size of the marker. Dimensionless."""
        return self._intf.get_property(Graphics3DMarker._metadata, Graphics3DMarker._get_pixel_size_metadata)

    _set_pixel_size_metadata = { "offset" : _set_pixel_size_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @pixel_size.setter
    def pixel_size(self, size:int) -> None:
        return self._intf.set_property(Graphics3DMarker._metadata, Graphics3DMarker._set_pixel_size_metadata, size)

    _get_visible_metadata = { "offset" : _get_visible_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def visible(self) -> bool:
        """Display a marker in the 3D Graphics window at the object position for the object once a specified detail threshold has been crossed."""
        return self._intf.get_property(Graphics3DMarker._metadata, Graphics3DMarker._get_visible_metadata)

    _set_visible_metadata = { "offset" : _set_visible_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @visible.setter
    def visible(self, show:bool) -> None:
        return self._intf.set_property(Graphics3DMarker._metadata, Graphics3DMarker._set_visible_metadata, show)

    _get_marker_type_metadata = { "offset" : _get_marker_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MarkerType),) }
    @property
    def marker_type(self) -> "MarkerType":
        """Specify a 3D marker type to represent the object at the specified threshold. Setting the type with the enum eImageFile is invalid, use SetMarkerImageFile instead."""
        return self._intf.get_property(Graphics3DMarker._metadata, Graphics3DMarker._get_marker_type_metadata)

    _set_marker_type_metadata = { "offset" : _set_marker_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MarkerType),) }
    @marker_type.setter
    def marker_type(self, marker_type:"MarkerType") -> None:
        return self._intf.set_property(Graphics3DMarker._metadata, Graphics3DMarker._set_marker_type_metadata, marker_type)

    _get_angle_metadata = { "offset" : _get_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def angle(self) -> typing.Any:
        """The angle representing the amount of rotation of the marker. Uses Angle Dimension."""
        return self._intf.get_property(Graphics3DMarker._metadata, Graphics3DMarker._get_angle_metadata)

    _set_angle_metadata = { "offset" : _set_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @angle.setter
    def angle(self, angle:typing.Any) -> None:
        return self._intf.set_property(Graphics3DMarker._metadata, Graphics3DMarker._set_angle_metadata, angle)

    _get_x_origin_metadata = { "offset" : _get_x_origin_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOriginType),) }
    @property
    def x_origin(self) -> "Graphics3DMarkerOriginType":
        """The horizontal point of origin for the marker (left, center or right)."""
        return self._intf.get_property(Graphics3DMarker._metadata, Graphics3DMarker._get_x_origin_metadata)

    _set_x_origin_metadata = { "offset" : _set_x_origin_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOriginType),) }
    @x_origin.setter
    def x_origin(self, x_origin:"Graphics3DMarkerOriginType") -> None:
        return self._intf.set_property(Graphics3DMarker._metadata, Graphics3DMarker._set_x_origin_metadata, x_origin)

    _get_y_origin_metadata = { "offset" : _get_y_origin_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOriginType),) }
    @property
    def y_origin(self) -> "Graphics3DMarkerOriginType":
        """The vertical point of origin for the marker (top, center or bottom.)."""
        return self._intf.get_property(Graphics3DMarker._metadata, Graphics3DMarker._get_y_origin_metadata)

    _set_y_origin_metadata = { "offset" : _set_y_origin_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOriginType),) }
    @y_origin.setter
    def y_origin(self, y_origin:"Graphics3DMarkerOriginType") -> None:
        return self._intf.set_property(Graphics3DMarker._metadata, Graphics3DMarker._set_y_origin_metadata, y_origin)

    _get_marker_data_metadata = { "offset" : _get_marker_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def marker_data(self) -> "IGraphics3DMarkerData":
        """The MarkerData property."""
        return self._intf.get_property(Graphics3DMarker._metadata, Graphics3DMarker._get_marker_data_metadata)

    _set_marker_image_filename_metadata = { "offset" : _set_marker_image_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_marker_image_filename(self, image_file:str) -> None:
        """Set the marker image file."""
        return self._intf.invoke(Graphics3DMarker._metadata, Graphics3DMarker._set_marker_image_filename_metadata, image_file)

    _get_orientation_mode_metadata = { "offset" : _get_orientation_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOrientation),) }
    @property
    def orientation_mode(self) -> "Graphics3DMarkerOrientation":
        """Control the rotation of the marker."""
        return self._intf.get_property(Graphics3DMarker._metadata, Graphics3DMarker._get_orientation_mode_metadata)

    _set_orientation_mode_metadata = { "offset" : _set_orientation_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOrientation),) }
    @orientation_mode.setter
    def orientation_mode(self, orientation_mode:"Graphics3DMarkerOrientation") -> None:
        return self._intf.set_property(Graphics3DMarker._metadata, Graphics3DMarker._set_orientation_mode_metadata, orientation_mode)

    _property_names[pixel_size] = "pixel_size"
    _property_names[visible] = "visible"
    _property_names[marker_type] = "marker_type"
    _property_names[angle] = "angle"
    _property_names[x_origin] = "x_origin"
    _property_names[y_origin] = "y_origin"
    _property_names[marker_data] = "marker_data"
    _property_names[orientation_mode] = "orientation_mode"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DMarker."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DMarker)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DMarker, [Graphics3DMarker, ])

agcls.AgClassCatalog.add_catalog_entry((4832548645362528134, 7929234088733270932), Graphics3DMarker)
agcls.AgTypeNameMap["Graphics3DMarker"] = Graphics3DMarker

class Graphics3DDetailThreshold(SupportsDeleteCallback):
    """
    Graphics3DDetailThreshold used to access the 3D DetailThreshold values.

    Examples
    --------
    Modify the Detail Thresholds Levels:
    >>> # Satellite satellite: Satellite object
    >>> details = satellite.graphics_3d.model.detail_threshold
    >>> details.enable_detail_threshold = True
    >>> details.all = 1  # km
    >>> details.model_label = 2  # km
    >>> details.marker_label = 40000  # km
    >>> details.marker = 500000  # km
    >>> details.point = 500000  # km
    """

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_detail_threshold_method_offset = 1
    _set_enable_detail_threshold_method_offset = 2
    _get_all_method_offset = 3
    _set_all_method_offset = 4
    _get_model_label_method_offset = 5
    _set_model_label_method_offset = 6
    _get_marker_label_method_offset = 7
    _set_marker_label_method_offset = 8
    _get_marker_method_offset = 9
    _set_marker_method_offset = 10
    _get_point_method_offset = 11
    _set_point_method_offset = 12
    _metadata = {
        "iid_data" : (5297442447925212257, 10388740250429327781),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DDetailThreshold)

    _get_enable_detail_threshold_metadata = { "offset" : _get_enable_detail_threshold_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_detail_threshold(self) -> bool:
        """Detail thresholds as an aid for improving performance when viewing in 3D. Using these thresholds, the viewer sees varying degrees of detail on the models and graphics in the 3D Graphics window, depending on the distance of the object from the viewer."""
        return self._intf.get_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._get_enable_detail_threshold_metadata)

    _set_enable_detail_threshold_metadata = { "offset" : _set_enable_detail_threshold_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_detail_threshold.setter
    def enable_detail_threshold(self, use_detail:bool) -> None:
        return self._intf.set_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._set_enable_detail_threshold_metadata, use_detail)

    _get_all_metadata = { "offset" : _get_all_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def all(self) -> float:
        """The maximum viewing distance at which the finest detail in the model, label and vectors, attitude sphere, and geostationary box is displayed. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._get_all_metadata)

    _set_all_metadata = { "offset" : _set_all_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @all.setter
    def all(self, all:float) -> None:
        return self._intf.set_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._set_all_metadata, all)

    _get_model_label_metadata = { "offset" : _get_model_label_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def model_label(self) -> float:
        """The maximum viewing distance at which the coarsest detail in the model, label and vectors, attitude sphere, and geostationary box is displayed. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._get_model_label_metadata)

    _set_model_label_metadata = { "offset" : _set_model_label_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @model_label.setter
    def model_label(self, model_label:float) -> None:
        return self._intf.set_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._set_model_label_metadata, model_label)

    _get_marker_label_metadata = { "offset" : _get_marker_label_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def marker_label(self) -> float:
        """The maximum viewing distance at which a label and marker representing the object is visible. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._get_marker_label_metadata)

    _set_marker_label_metadata = { "offset" : _set_marker_label_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @marker_label.setter
    def marker_label(self, marker_label:float) -> None:
        return self._intf.set_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._set_marker_label_metadata, marker_label)

    _get_marker_metadata = { "offset" : _get_marker_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def marker(self) -> float:
        """The maximum viewing distance at which a marker representing the object is visible. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._get_marker_metadata)

    _set_marker_metadata = { "offset" : _set_marker_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @marker.setter
    def marker(self, marker:float) -> None:
        return self._intf.set_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._set_marker_metadata, marker)

    _get_point_metadata = { "offset" : _get_point_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def point(self) -> float:
        """The maximum viewing distance at which a point representing the object is visible. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._get_point_metadata)

    _set_point_metadata = { "offset" : _set_point_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @point.setter
    def point(self, point:float) -> None:
        return self._intf.set_property(Graphics3DDetailThreshold._metadata, Graphics3DDetailThreshold._set_point_metadata, point)

    _property_names[enable_detail_threshold] = "enable_detail_threshold"
    _property_names[all] = "all"
    _property_names[model_label] = "model_label"
    _property_names[marker_label] = "marker_label"
    _property_names[marker] = "marker"
    _property_names[point] = "point"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DDetailThreshold."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DDetailThreshold)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DDetailThreshold, [Graphics3DDetailThreshold, ])

agcls.AgClassCatalog.add_catalog_entry((5057275865653005019, 2192675243141494974), Graphics3DDetailThreshold)
agcls.AgTypeNameMap["Graphics3DDetailThreshold"] = Graphics3DDetailThreshold

class Graphics3DModelItem(SupportsDeleteCallback):
    """Graphics3DModelItem used to access the Model Item in the ModelCollection."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_switch_time_method_offset = 1
    _set_switch_time_method_offset = 2
    _get_graphics_3d_model_file_method_offset = 3
    _metadata = {
        "iid_data" : (5399367640690706388, 9666930825852745907),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DModelItem)

    _get_switch_time_metadata = { "offset" : _get_switch_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def switch_time(self) -> typing.Any:
        """The time that the display switches between models. Uses DateFormat Dimension."""
        return self._intf.get_property(Graphics3DModelItem._metadata, Graphics3DModelItem._get_switch_time_metadata)

    _set_switch_time_metadata = { "offset" : _set_switch_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @switch_time.setter
    def switch_time(self, value:typing.Any) -> None:
        return self._intf.set_property(Graphics3DModelItem._metadata, Graphics3DModelItem._set_switch_time_metadata, value)

    _get_graphics_3d_model_file_metadata = { "offset" : _get_graphics_3d_model_file_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d_model_file(self) -> "Graphics3DModelFile":
        """Interface to specify model's file."""
        return self._intf.get_property(Graphics3DModelItem._metadata, Graphics3DModelItem._get_graphics_3d_model_file_metadata)

    _property_names[switch_time] = "switch_time"
    _property_names[graphics_3d_model_file] = "graphics_3d_model_file"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DModelItem."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DModelItem)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DModelItem, [Graphics3DModelItem, ])

agcls.AgClassCatalog.add_catalog_entry((4961546559777784825, 13522830516427641738), Graphics3DModelItem)
agcls.AgTypeNameMap["Graphics3DModelItem"] = Graphics3DModelItem

class Graphics3DModelCollection(IGraphics3DModelData, SupportsDeleteCallback):
    """Graphics3DModelCollection used to access the 3D Model List."""

    _num_methods = 5
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _add_method_offset = 2
    _remove_method_offset = 3
    _item_method_offset = 4
    _get__new_enum_method_offset = 5
    _metadata = {
        "iid_data" : (4832919729132491847, 5746236782345297841),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DModelCollection)
    def __iter__(self):
        """Create an iterator for the Graphics3DModelCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "Graphics3DModelItem":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Number of items in the collection."""
        return self._intf.get_property(Graphics3DModelCollection._metadata, Graphics3DModelCollection._get_count_metadata)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, time:typing.Any, filename:str) -> "Graphics3DModelItem":
        """Add a model file at the given time. Time Param uses DateFormat Dimension."""
        return self._intf.invoke(Graphics3DModelCollection._metadata, Graphics3DModelCollection._add_metadata, time, filename, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove(self, index:int) -> None:
        """Remove an item at the given index."""
        return self._intf.invoke(Graphics3DModelCollection._metadata, Graphics3DModelCollection._remove_metadata, index)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "Graphics3DModelItem":
        """Return an Graphics3DModelItem at the given index."""
        return self._intf.invoke(Graphics3DModelCollection._metadata, Graphics3DModelCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the collection."""
        return self._intf.get_property(Graphics3DModelCollection._metadata, Graphics3DModelCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DModelCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DModelCollection)
        IGraphics3DModelData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DModelData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DModelCollection, [Graphics3DModelCollection, IGraphics3DModelData])

agcls.AgClassCatalog.add_catalog_entry((4751877123699464953, 4649983838691794091), Graphics3DModelCollection)
agcls.AgTypeNameMap["Graphics3DModelCollection"] = Graphics3DModelCollection

class LabelNote(SupportsDeleteCallback):
    """LabelNote used to access the label note."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_note_method_offset = 1
    _set_note_method_offset = 2
    _get_show_note_method_offset = 3
    _set_show_note_method_offset = 4
    _get_show_label_method_offset = 5
    _set_show_label_method_offset = 6
    _get_intervals_method_offset = 7
    _metadata = {
        "iid_data" : (4686440002558982551, 8727306364132692649),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LabelNote)

    _get_note_metadata = { "offset" : _get_note_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def note(self) -> str:
        """Note property."""
        return self._intf.get_property(LabelNote._metadata, LabelNote._get_note_metadata)

    _set_note_metadata = { "offset" : _set_note_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @note.setter
    def note(self, value:str) -> None:
        return self._intf.set_property(LabelNote._metadata, LabelNote._set_note_metadata, value)

    _get_show_note_metadata = { "offset" : _get_show_note_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(NoteShowType),) }
    @property
    def show_note(self) -> "NoteShowType":
        """Property specifying when the note is displayed. A member of the NoteShowType enumeration."""
        return self._intf.get_property(LabelNote._metadata, LabelNote._get_show_note_metadata)

    _set_show_note_metadata = { "offset" : _set_show_note_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(NoteShowType),) }
    @show_note.setter
    def show_note(self, value:"NoteShowType") -> None:
        return self._intf.set_property(LabelNote._metadata, LabelNote._set_show_note_metadata, value)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Property specifying whether the label is displayed."""
        return self._intf.get_property(LabelNote._metadata, LabelNote._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, value:bool) -> None:
        return self._intf.set_property(LabelNote._metadata, LabelNote._set_show_label_metadata, value)

    _get_intervals_metadata = { "offset" : _get_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def intervals(self) -> "TimeIntervalCollection":
        """Intervals during which the note is displayed. This property is used if the corresponding value is selected for the NoteVisible property."""
        return self._intf.get_property(LabelNote._metadata, LabelNote._get_intervals_metadata)

    _property_names[note] = "note"
    _property_names[show_note] = "show_note"
    _property_names[show_label] = "show_label"
    _property_names[intervals] = "intervals"

    def __init__(self, source_object=None):
        """Construct an object of type LabelNote."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LabelNote)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LabelNote, [LabelNote, ])

agcls.AgClassCatalog.add_catalog_entry((4820844581322668682, 9871806706313642903), LabelNote)
agcls.AgTypeNameMap["LabelNote"] = LabelNote

class LabelNoteCollection(SupportsDeleteCallback):
    """LabelNoteCollection used to access the list of label notes."""

    _num_methods = 5
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _add_method_offset = 2
    _remove_method_offset = 3
    _item_method_offset = 4
    _get__new_enum_method_offset = 5
    _metadata = {
        "iid_data" : (5328288503804151441, 1337940575631293846),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LabelNoteCollection)
    def __iter__(self):
        """Create an iterator for the LabelNoteCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "LabelNote":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Number of label notes."""
        return self._intf.get_property(LabelNoteCollection._metadata, LabelNoteCollection._get_count_metadata)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, msg:str) -> "LabelNote":
        """Add a label note to the collection."""
        return self._intf.invoke(LabelNoteCollection._metadata, LabelNoteCollection._add_metadata, msg, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove(self, index:int) -> None:
        """Remove an item given an index."""
        return self._intf.invoke(LabelNoteCollection._metadata, LabelNoteCollection._remove_metadata, index)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "LabelNote":
        """Get a LabelNote."""
        return self._intf.invoke(LabelNoteCollection._metadata, LabelNoteCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the LabelNotes."""
        return self._intf.get_property(LabelNoteCollection._metadata, LabelNoteCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type LabelNoteCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LabelNoteCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LabelNoteCollection, [LabelNoteCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5347308008965272444, 3181785027649952393), LabelNoteCollection)
agcls.AgTypeNameMap["LabelNoteCollection"] = LabelNoteCollection

class Graphics3DVector(SupportsDeleteCallback):
    """
    Configures the Vector Geometry Tool 3D visualization.

    Examples
    --------
    Add a Vector to display in 3D:
    >>> # Satellite satellite: Satellite object
    >>> vector = satellite.graphics_3d.vector
    >>> angVel = vector.vector_geometry_tool_components.add(0, "Satellite/MySatellite AngVelocity")
    >>> angVel.show_label = True
    """

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_vector_geometry_tool_components_method_offset = 1
    _get_vector_size_scale_method_offset = 2
    _set_vector_size_scale_method_offset = 3
    _get_scale_relative_to_model_method_offset = 4
    _set_scale_relative_to_model_method_offset = 5
    _get_angle_size_scale_method_offset = 6
    _set_angle_size_scale_method_offset = 7
    _metadata = {
        "iid_data" : (5590377511611797252, 15308787074105456527),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DVector)

    _get_vector_geometry_tool_components_metadata = { "offset" : _get_vector_geometry_tool_components_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector_geometry_tool_components(self) -> "Graphics3DReferenceVectorGeometryToolComponentCollection":
        """Get a collection that manages the 3D VGT visualizations."""
        return self._intf.get_property(Graphics3DVector._metadata, Graphics3DVector._get_vector_geometry_tool_components_metadata)

    _get_vector_size_scale_metadata = { "offset" : _get_vector_size_scale_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def vector_size_scale(self) -> float:
        """The size scale of the geometric elements. Dimensionless."""
        return self._intf.get_property(Graphics3DVector._metadata, Graphics3DVector._get_vector_size_scale_metadata)

    _set_vector_size_scale_metadata = { "offset" : _set_vector_size_scale_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @vector_size_scale.setter
    def vector_size_scale(self, value:float) -> None:
        return self._intf.set_property(Graphics3DVector._metadata, Graphics3DVector._set_vector_size_scale_metadata, value)

    _get_scale_relative_to_model_metadata = { "offset" : _get_scale_relative_to_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def scale_relative_to_model(self) -> bool:
        """Control whether to scale the geometric elements relative to an object scale with the object's model."""
        return self._intf.get_property(Graphics3DVector._metadata, Graphics3DVector._get_scale_relative_to_model_metadata)

    _set_scale_relative_to_model_metadata = { "offset" : _set_scale_relative_to_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @scale_relative_to_model.setter
    def scale_relative_to_model(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DVector._metadata, Graphics3DVector._set_scale_relative_to_model_metadata, value)

    _get_angle_size_scale_metadata = { "offset" : _get_angle_size_scale_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def angle_size_scale(self) -> float:
        """The angle size scale. Dimensionless."""
        return self._intf.get_property(Graphics3DVector._metadata, Graphics3DVector._get_angle_size_scale_metadata)

    _set_angle_size_scale_metadata = { "offset" : _set_angle_size_scale_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @angle_size_scale.setter
    def angle_size_scale(self, value:float) -> None:
        return self._intf.set_property(Graphics3DVector._metadata, Graphics3DVector._set_angle_size_scale_metadata, value)

    _property_names[vector_geometry_tool_components] = "vector_geometry_tool_components"
    _property_names[vector_size_scale] = "vector_size_scale"
    _property_names[scale_relative_to_model] = "scale_relative_to_model"
    _property_names[angle_size_scale] = "angle_size_scale"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DVector."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DVector)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DVector, [Graphics3DVector, ])

agcls.AgClassCatalog.add_catalog_entry((5686556053398266610, 5453445183963612841), Graphics3DVector)
agcls.AgTypeNameMap["Graphics3DVector"] = Graphics3DVector

class FacilityGraphics3D(SupportsDeleteCallback):
    """FacilityGraphics3D Interface. For 3D properties of a Facility object interface."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_model_method_offset = 1
    _get_offsets_method_offset = 2
    _get_range_contours_method_offset = 3
    _get_data_displays_method_offset = 4
    _get_vector_method_offset = 5
    _get_az_el_mask_method_offset = 6
    _get_model_pointing_method_offset = 7
    _get_uncertainty_area_label_swap_distance_method_offset = 8
    _get_vapor_trail_method_offset = 9
    _get_radar_cross_section_method_offset = 10
    _metadata = {
        "iid_data" : (5325079513214990954, 6792359971024292771),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FacilityGraphics3D)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "PointTargetGraphics3DModel":
        """Return Model properties."""
        return self._intf.get_property(FacilityGraphics3D._metadata, FacilityGraphics3D._get_model_metadata)

    _get_offsets_metadata = { "offset" : _get_offsets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def offsets(self) -> "Graphics3DOffset":
        """Return Offsets properties."""
        return self._intf.get_property(FacilityGraphics3D._metadata, FacilityGraphics3D._get_offsets_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics3DRangeContours":
        """Return Range Contours properties."""
        return self._intf.get_property(FacilityGraphics3D._metadata, FacilityGraphics3D._get_range_contours_metadata)

    _get_data_displays_metadata = { "offset" : _get_data_displays_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_displays(self) -> "Graphics3DDataDisplayCollection":
        """Return DataDisplays collection."""
        return self._intf.get_property(FacilityGraphics3D._metadata, FacilityGraphics3D._get_data_displays_metadata)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Return a vector."""
        return self._intf.get_property(FacilityGraphics3D._metadata, FacilityGraphics3D._get_vector_metadata)

    _get_az_el_mask_metadata = { "offset" : _get_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def az_el_mask(self) -> "Graphics3DAzElMask":
        """Return the AzElMask property."""
        return self._intf.get_property(FacilityGraphics3D._metadata, FacilityGraphics3D._get_az_el_mask_metadata)

    _get_model_pointing_metadata = { "offset" : _get_model_pointing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_pointing(self) -> "Graphics3DModelPointing":
        """Return ModelPointing properties used to point parts of a facility model toward a target, such as the Sun or Earth."""
        return self._intf.get_property(FacilityGraphics3D._metadata, FacilityGraphics3D._get_model_pointing_metadata)

    _get_uncertainty_area_label_swap_distance_metadata = { "offset" : _get_uncertainty_area_label_swap_distance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def uncertainty_area_label_swap_distance(self) -> "Graphics3DLabelSwapDistance":
        """Area of uncertainty label swap distance."""
        return self._intf.get_property(FacilityGraphics3D._metadata, FacilityGraphics3D._get_uncertainty_area_label_swap_distance_metadata)

    _get_vapor_trail_metadata = { "offset" : _get_vapor_trail_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vapor_trail(self) -> "Graphics3DVaporTrail":
        """Vapor trail attributes."""
        return self._intf.get_property(FacilityGraphics3D._metadata, FacilityGraphics3D._get_vapor_trail_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics3D":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(FacilityGraphics3D._metadata, FacilityGraphics3D._get_radar_cross_section_metadata)

    _property_names[model] = "model"
    _property_names[offsets] = "offsets"
    _property_names[range_contours] = "range_contours"
    _property_names[data_displays] = "data_displays"
    _property_names[vector] = "vector"
    _property_names[az_el_mask] = "az_el_mask"
    _property_names[model_pointing] = "model_pointing"
    _property_names[uncertainty_area_label_swap_distance] = "uncertainty_area_label_swap_distance"
    _property_names[vapor_trail] = "vapor_trail"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type FacilityGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FacilityGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FacilityGraphics3D, [FacilityGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((4959291441680011489, 10364706058960409779), FacilityGraphics3D)
agcls.AgTypeNameMap["FacilityGraphics3D"] = FacilityGraphics3D

class PlaceGraphics3D(SupportsDeleteCallback):
    """PlaceGraphics3D Interface. For 3D properties of a Place object."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_model_method_offset = 1
    _get_offsets_method_offset = 2
    _get_range_contours_method_offset = 3
    _get_data_displays_method_offset = 4
    _get_vector_method_offset = 5
    _get_az_el_mask_method_offset = 6
    _get_model_pointing_method_offset = 7
    _get_uncertainty_area_label_swap_distance_method_offset = 8
    _get_vapor_trail_method_offset = 9
    _get_radar_cross_section_method_offset = 10
    _metadata = {
        "iid_data" : (4929669131933386155, 7327874851420237757),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PlaceGraphics3D)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "PointTargetGraphics3DModel":
        """Return the 3D model properties."""
        return self._intf.get_property(PlaceGraphics3D._metadata, PlaceGraphics3D._get_model_metadata)

    _get_offsets_metadata = { "offset" : _get_offsets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def offsets(self) -> "Graphics3DOffset":
        """Return the 3D offsets properties."""
        return self._intf.get_property(PlaceGraphics3D._metadata, PlaceGraphics3D._get_offsets_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics3DRangeContours":
        """Return the 3D range contours properties."""
        return self._intf.get_property(PlaceGraphics3D._metadata, PlaceGraphics3D._get_range_contours_metadata)

    _get_data_displays_metadata = { "offset" : _get_data_displays_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_displays(self) -> "Graphics3DDataDisplayCollection":
        """Return the 3D data display properties."""
        return self._intf.get_property(PlaceGraphics3D._metadata, PlaceGraphics3D._get_data_displays_metadata)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Return the 3D vectorector properties."""
        return self._intf.get_property(PlaceGraphics3D._metadata, PlaceGraphics3D._get_vector_metadata)

    _get_az_el_mask_metadata = { "offset" : _get_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def az_el_mask(self) -> "Graphics3DAzElMask":
        """Return the 3D AzElMask properties."""
        return self._intf.get_property(PlaceGraphics3D._metadata, PlaceGraphics3D._get_az_el_mask_metadata)

    _get_model_pointing_metadata = { "offset" : _get_model_pointing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_pointing(self) -> "Graphics3DModelPointing":
        """Return 3D model pointing properties used to point parts of a place model toward a place, such as the Sun or Earth."""
        return self._intf.get_property(PlaceGraphics3D._metadata, PlaceGraphics3D._get_model_pointing_metadata)

    _get_uncertainty_area_label_swap_distance_metadata = { "offset" : _get_uncertainty_area_label_swap_distance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def uncertainty_area_label_swap_distance(self) -> "Graphics3DLabelSwapDistance":
        """Area of uncertainty label swap distance."""
        return self._intf.get_property(PlaceGraphics3D._metadata, PlaceGraphics3D._get_uncertainty_area_label_swap_distance_metadata)

    _get_vapor_trail_metadata = { "offset" : _get_vapor_trail_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vapor_trail(self) -> "Graphics3DVaporTrail":
        """Vapor trail attributes."""
        return self._intf.get_property(PlaceGraphics3D._metadata, PlaceGraphics3D._get_vapor_trail_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics3D":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(PlaceGraphics3D._metadata, PlaceGraphics3D._get_radar_cross_section_metadata)

    _property_names[model] = "model"
    _property_names[offsets] = "offsets"
    _property_names[range_contours] = "range_contours"
    _property_names[data_displays] = "data_displays"
    _property_names[vector] = "vector"
    _property_names[az_el_mask] = "az_el_mask"
    _property_names[model_pointing] = "model_pointing"
    _property_names[uncertainty_area_label_swap_distance] = "uncertainty_area_label_swap_distance"
    _property_names[vapor_trail] = "vapor_trail"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type PlaceGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PlaceGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PlaceGraphics3D, [PlaceGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((4869258699370364048, 1120807930241505968), PlaceGraphics3D)
agcls.AgTypeNameMap["PlaceGraphics3D"] = PlaceGraphics3D

class TerrainNormalSlopeAzimuth(ITerrainNormData, SupportsDeleteCallback):
    """TerrainNormalSlopeAzimuth used to access the Slope/Azimuth data for the TerrainNormal."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_slope_method_offset = 1
    _set_slope_method_offset = 2
    _get_azimuth_method_offset = 3
    _set_azimuth_method_offset = 4
    _metadata = {
        "iid_data" : (5449570158921891454, 13806526992612844479),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TerrainNormalSlopeAzimuth)

    _get_slope_metadata = { "offset" : _get_slope_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def slope(self) -> typing.Any:
        """Specify the Slope of the local terrain, defined as the angle between the normal to the local terrain and local surface normal, where the local surface normal is defined by the reference shape of the globe. Uses Angle Dimension."""
        return self._intf.get_property(TerrainNormalSlopeAzimuth._metadata, TerrainNormalSlopeAzimuth._get_slope_metadata)

    _set_slope_metadata = { "offset" : _set_slope_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @slope.setter
    def slope(self, value:typing.Any) -> None:
        return self._intf.set_property(TerrainNormalSlopeAzimuth._metadata, TerrainNormalSlopeAzimuth._set_slope_metadata, value)

    _get_azimuth_metadata = { "offset" : _get_azimuth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def azimuth(self) -> typing.Any:
        """Specify the Azimuth (measured in an easterly sense from local north) of the normal to local terrain. This may also be thought of as the azimuth of the downhill direction. Uses Longitude Dimension."""
        return self._intf.get_property(TerrainNormalSlopeAzimuth._metadata, TerrainNormalSlopeAzimuth._get_azimuth_metadata)

    _set_azimuth_metadata = { "offset" : _set_azimuth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @azimuth.setter
    def azimuth(self, value:typing.Any) -> None:
        return self._intf.set_property(TerrainNormalSlopeAzimuth._metadata, TerrainNormalSlopeAzimuth._set_azimuth_metadata, value)

    _property_names[slope] = "slope"
    _property_names[azimuth] = "azimuth"

    def __init__(self, source_object=None):
        """Construct an object of type TerrainNormalSlopeAzimuth."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TerrainNormalSlopeAzimuth)
        ITerrainNormData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITerrainNormData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TerrainNormalSlopeAzimuth, [TerrainNormalSlopeAzimuth, ITerrainNormData])

agcls.AgClassCatalog.add_catalog_entry((5558617015717542940, 10830710575038722696), TerrainNormalSlopeAzimuth)
agcls.AgTypeNameMap["TerrainNormalSlopeAzimuth"] = TerrainNormalSlopeAzimuth

class TimeIntervalCollection(IDisplayTimesData, IAccessInterval, SupportsDeleteCallback):
    """TimeIntervalCollection used to access the Intervals Collection interface."""

    _num_methods = 10
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _add_method_offset = 2
    _remove_index_method_offset = 3
    _remove_all_method_offset = 4
    _remove_interval_method_offset = 5
    _deconflict_method_offset = 6
    _load_intervals_method_offset = 7
    _change_interval_method_offset = 8
    _get_interval_method_offset = 9
    _to_array_method_offset = 10
    _metadata = {
        "iid_data" : (4987393967964338930, 11329763573820501901),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TimeIntervalCollection)

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Number of items in the collection."""
        return self._intf.get_property(TimeIntervalCollection._metadata, TimeIntervalCollection._get_count_metadata)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.LongArg,) }
    def add(self, start:typing.Any, stop:typing.Any) -> int:
        """Add an interval to the collection and returns the index. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(TimeIntervalCollection._metadata, TimeIntervalCollection._add_metadata, start, stop, OutArg())

    _remove_index_metadata = { "offset" : _remove_index_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_index(self, index:int) -> None:
        """Remove an item by the index."""
        return self._intf.invoke(TimeIntervalCollection._metadata, TimeIntervalCollection._remove_index_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all items in the collection."""
        return self._intf.invoke(TimeIntervalCollection._metadata, TimeIntervalCollection._remove_all_metadata, )

    _remove_interval_metadata = { "offset" : _remove_interval_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def remove_interval(self, start:typing.Any, stop:typing.Any) -> None:
        """Remove an interval using the interval interface. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(TimeIntervalCollection._metadata, TimeIntervalCollection._remove_interval_metadata, start, stop)

    _deconflict_metadata = { "offset" : _deconflict_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def deconflict(self) -> None:
        """Deconflict display intervals."""
        return self._intf.invoke(TimeIntervalCollection._metadata, TimeIntervalCollection._deconflict_metadata, )

    _load_intervals_metadata = { "offset" : _load_intervals_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def load_intervals(self, filename:str) -> None:
        """Load an interval file."""
        return self._intf.invoke(TimeIntervalCollection._metadata, TimeIntervalCollection._load_intervals_metadata, filename)

    _change_interval_metadata = { "offset" : _change_interval_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.LongArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def change_interval(self, index:int, start:typing.Any, stop:typing.Any) -> None:
        """Update interval with specified start and stop times at a given index. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(TimeIntervalCollection._metadata, TimeIntervalCollection._change_interval_metadata, index, start, stop)

    _get_interval_metadata = { "offset" : _get_interval_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.Variant), POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.LongArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def get_interval(self, index:int) -> typing.Tuple[typing.Any, typing.Any]:
        """Return start and stop times of the interval at a given index. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(TimeIntervalCollection._metadata, TimeIntervalCollection._get_interval_metadata, index, OutArg(), OutArg())

    _to_array_metadata = { "offset" : _to_array_method_offset,
            "arg_types" : (agcom.LONG, agcom.LONG, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LongArg, agmarshall.LongArg, agmarshall.LPSafearrayArg,) }
    def to_array(self, index:int, length:int) -> list:
        """Return a two-dimensional array of intervals beginning at a given position and having specified number of rows."""
        return self._intf.invoke(TimeIntervalCollection._metadata, TimeIntervalCollection._to_array_metadata, index, length, OutArg())

    _property_names[count] = "count"

    def __init__(self, source_object=None):
        """Construct an object of type TimeIntervalCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TimeIntervalCollection)
        IDisplayTimesData.__init__(self, source_object)
        IAccessInterval.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDisplayTimesData._private_init(self, intf)
        IAccessInterval._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TimeIntervalCollection, [TimeIntervalCollection, IDisplayTimesData, IAccessInterval])

agcls.AgClassCatalog.add_catalog_entry((4904908566517379997, 13219945747362136480), TimeIntervalCollection)
agcls.AgTypeNameMap["TimeIntervalCollection"] = TimeIntervalCollection

class TimeIntervalCollectionReadOnly(SupportsDeleteCallback):
    """TimeIntervalCollectionReadOnly represents a immutable (read-only) collection of intervals."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _get_interval_method_offset = 2
    _to_array_method_offset = 3
    _metadata = {
        "iid_data" : (4700082279576932632, 17678711912109314443),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TimeIntervalCollectionReadOnly)

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Number of items in the collection."""
        return self._intf.get_property(TimeIntervalCollectionReadOnly._metadata, TimeIntervalCollectionReadOnly._get_count_metadata)

    _get_interval_metadata = { "offset" : _get_interval_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.Variant), POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.LongArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def get_interval(self, index:int) -> typing.Tuple[typing.Any, typing.Any]:
        """Return start and stop times of the interval at a given index. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(TimeIntervalCollectionReadOnly._metadata, TimeIntervalCollectionReadOnly._get_interval_metadata, index, OutArg(), OutArg())

    _to_array_metadata = { "offset" : _to_array_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def to_array(self) -> list:
        """Return a two-dimensional array of intervals."""
        return self._intf.invoke(TimeIntervalCollectionReadOnly._metadata, TimeIntervalCollectionReadOnly._to_array_metadata, OutArg())

    _property_names[count] = "count"

    def __init__(self, source_object=None):
        """Construct an object of type TimeIntervalCollectionReadOnly."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TimeIntervalCollectionReadOnly)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TimeIntervalCollectionReadOnly, [TimeIntervalCollectionReadOnly, ])

agcls.AgClassCatalog.add_catalog_entry((5762432616505207271, 10761052681166425790), TimeIntervalCollectionReadOnly)
agcls.AgTypeNameMap["TimeIntervalCollectionReadOnly"] = TimeIntervalCollectionReadOnly

class DisplayTimesDuringAccess(IDisplayTimesData, SupportsDeleteCallback):
    """DisplayTimesDuringAccess used to access the display intervals and Access objects."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_display_intervals_method_offset = 1
    _get_access_objects_method_offset = 2
    _metadata = {
        "iid_data" : (5688722268732098223, 2318176416635322287),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DisplayTimesDuringAccess)

    _get_display_intervals_metadata = { "offset" : _get_display_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def display_intervals(self) -> "TimeIntervalCollection":
        """Get the display intervals property."""
        return self._intf.get_property(DisplayTimesDuringAccess._metadata, DisplayTimesDuringAccess._get_display_intervals_metadata)

    _get_access_objects_metadata = { "offset" : _get_access_objects_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_objects(self) -> "ObjectLinkCollection":
        """Get the access objects property."""
        return self._intf.get_property(DisplayTimesDuringAccess._metadata, DisplayTimesDuringAccess._get_access_objects_metadata)

    _property_names[display_intervals] = "display_intervals"
    _property_names[access_objects] = "access_objects"

    def __init__(self, source_object=None):
        """Construct an object of type DisplayTimesDuringAccess."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DisplayTimesDuringAccess)
        IDisplayTimesData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDisplayTimesData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DisplayTimesDuringAccess, [DisplayTimesDuringAccess, IDisplayTimesData])

agcls.AgClassCatalog.add_catalog_entry((5666059169916353786, 14265954454204274365), DisplayTimesDuringAccess)
agcls.AgTypeNameMap["DisplayTimesDuringAccess"] = DisplayTimesDuringAccess

class DisplayTimesTimeComponent(IDisplayTimesData, SupportsDeleteCallback):
    """Interface provides methods to configure the display times using Timeline API components."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _set_time_component_method_offset = 1
    _set_qualified_path_method_offset = 2
    _get_time_component_method_offset = 3
    _get_qualified_path_method_offset = 4
    _reset_method_offset = 5
    _metadata = {
        "iid_data" : (5054765862162299251, 17800229578414681232),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DisplayTimesTimeComponent)

    _set_time_component_metadata = { "offset" : _set_time_component_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("IAnalysisWorkbenchComponent"),) }
    def set_time_component(self, component:"IAnalysisWorkbenchComponent") -> None:
        """Configure the display times using the specified time component. Allowed are only intervals and interval lists."""
        return self._intf.invoke(DisplayTimesTimeComponent._metadata, DisplayTimesTimeComponent._set_time_component_metadata, component)

    _set_qualified_path_metadata = { "offset" : _set_qualified_path_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_qualified_path(self, qualified_path:str) -> None:
        """Configure the display times using the specified time component. Allowed are only intervals and interval lists. QualifiedPath format adheres to the format used throughout VGT API (i.e. ``Scenario/Scenario1 AnalysisInterval EventInterval``)."""
        return self._intf.invoke(DisplayTimesTimeComponent._metadata, DisplayTimesTimeComponent._set_qualified_path_metadata, qualified_path)

    _get_time_component_metadata = { "offset" : _get_time_component_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_time_component(self) -> "IAnalysisWorkbenchComponent":
        """Return a time component used to configure the display times or null if component has not been configured yet."""
        return self._intf.invoke(DisplayTimesTimeComponent._metadata, DisplayTimesTimeComponent._get_time_component_metadata, OutArg())

    _get_qualified_path_metadata = { "offset" : _get_qualified_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    def get_qualified_path(self) -> str:
        """Return the time component' qualified path or null if no component has been configured yet."""
        return self._intf.invoke(DisplayTimesTimeComponent._metadata, DisplayTimesTimeComponent._get_qualified_path_metadata, OutArg())

    _reset_metadata = { "offset" : _reset_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reset(self) -> None:
        """Remove and resets the display configuration by unsetting currently set time component (if any)."""
        return self._intf.invoke(DisplayTimesTimeComponent._metadata, DisplayTimesTimeComponent._reset_metadata, )


    def __init__(self, source_object=None):
        """Construct an object of type DisplayTimesTimeComponent."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DisplayTimesTimeComponent)
        IDisplayTimesData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDisplayTimesData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DisplayTimesTimeComponent, [DisplayTimesTimeComponent, IDisplayTimesData])

agcls.AgClassCatalog.add_catalog_entry((4644626098284706469, 18053866677173619645), DisplayTimesTimeComponent)
agcls.AgTypeNameMap["DisplayTimesTimeComponent"] = DisplayTimesTimeComponent

class StarGraphics3D(SupportsDeleteCallback):
    """StarGraphics3D used to access the Star's 3D graphics."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_inertial_position_method_offset = 1
    _set_show_inertial_position_method_offset = 2
    _get_show_sub_star_point_method_offset = 3
    _set_show_sub_star_point_method_offset = 4
    _get_inherit_from_2d_graphics_2d_method_offset = 5
    _set_inherit_from_2d_graphics_2d_method_offset = 6
    _get_show_position_label_method_offset = 7
    _set_show_position_label_method_offset = 8
    _get_show_sub_star_label_method_offset = 9
    _set_show_sub_star_label_method_offset = 10
    _metadata = {
        "iid_data" : (4955293069846890813, 9294898849606866602),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, StarGraphics3D)

    _get_show_inertial_position_metadata = { "offset" : _get_show_inertial_position_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_inertial_position(self) -> bool:
        """Display the inertial position of the star, i.e. its position on the celestial sphere."""
        return self._intf.get_property(StarGraphics3D._metadata, StarGraphics3D._get_show_inertial_position_metadata)

    _set_show_inertial_position_metadata = { "offset" : _set_show_inertial_position_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_inertial_position.setter
    def show_inertial_position(self, inertial_position_visible:bool) -> None:
        return self._intf.set_property(StarGraphics3D._metadata, StarGraphics3D._set_show_inertial_position_metadata, inertial_position_visible)

    _get_show_sub_star_point_metadata = { "offset" : _get_show_sub_star_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sub_star_point(self) -> bool:
        """Display the location at which the star is overhead on the globe."""
        return self._intf.get_property(StarGraphics3D._metadata, StarGraphics3D._get_show_sub_star_point_metadata)

    _set_show_sub_star_point_metadata = { "offset" : _set_show_sub_star_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sub_star_point.setter
    def show_sub_star_point(self, show_sub_star_point:bool) -> None:
        return self._intf.set_property(StarGraphics3D._metadata, StarGraphics3D._set_show_sub_star_point_metadata, show_sub_star_point)

    _get_inherit_from_2d_graphics_2d_metadata = { "offset" : _get_inherit_from_2d_graphics_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_from_2d_graphics_2d(self) -> bool:
        """Specify whether star properties set for 2D Graphics are used in the 3D Graphics window."""
        return self._intf.get_property(StarGraphics3D._metadata, StarGraphics3D._get_inherit_from_2d_graphics_2d_metadata)

    _set_inherit_from_2d_graphics_2d_metadata = { "offset" : _set_inherit_from_2d_graphics_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_from_2d_graphics_2d.setter
    def inherit_from_2d_graphics_2d(self, inherit_from_2dfx:bool) -> None:
        return self._intf.set_property(StarGraphics3D._metadata, StarGraphics3D._set_inherit_from_2d_graphics_2d_metadata, inherit_from_2dfx)

    _get_show_position_label_metadata = { "offset" : _get_show_position_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_position_label(self) -> bool:
        """Display a label on the globe at the inertial position of the star."""
        return self._intf.get_property(StarGraphics3D._metadata, StarGraphics3D._get_show_position_label_metadata)

    _set_show_position_label_metadata = { "offset" : _set_show_position_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_position_label.setter
    def show_position_label(self, position_label_visible:bool) -> None:
        return self._intf.set_property(StarGraphics3D._metadata, StarGraphics3D._set_show_position_label_metadata, position_label_visible)

    _get_show_sub_star_label_metadata = { "offset" : _get_show_sub_star_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sub_star_label(self) -> bool:
        """Display a label at the location at which the star is overhead."""
        return self._intf.get_property(StarGraphics3D._metadata, StarGraphics3D._get_show_sub_star_label_metadata)

    _set_show_sub_star_label_metadata = { "offset" : _set_show_sub_star_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sub_star_label.setter
    def show_sub_star_label(self, show_sub_star_label:bool) -> None:
        return self._intf.set_property(StarGraphics3D._metadata, StarGraphics3D._set_show_sub_star_label_metadata, show_sub_star_label)

    _property_names[show_inertial_position] = "show_inertial_position"
    _property_names[show_sub_star_point] = "show_sub_star_point"
    _property_names[inherit_from_2d_graphics_2d] = "inherit_from_2d_graphics_2d"
    _property_names[show_position_label] = "show_position_label"
    _property_names[show_sub_star_label] = "show_sub_star_label"

    def __init__(self, source_object=None):
        """Construct an object of type StarGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, StarGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, StarGraphics3D, [StarGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5438435515789659886, 3140491311477058949), StarGraphics3D)
agcls.AgTypeNameMap["StarGraphics3D"] = StarGraphics3D

class StarGraphics(SupportsDeleteCallback):
    """StarGraphics used to access the Star's 2D graphics."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_color_method_offset = 1
    _set_color_method_offset = 2
    _get_inherit_method_offset = 3
    _set_inherit_method_offset = 4
    _get_marker_style_method_offset = 5
    _set_marker_style_method_offset = 6
    _get_show_label_method_offset = 7
    _set_show_label_method_offset = 8
    _get_show_graphics_method_offset = 9
    _set_show_graphics_method_offset = 10
    _metadata = {
        "iid_data" : (4850359424832192268, 16006286864947517603),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, StarGraphics)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Color in which the star's marker and label are displayed in the 2D Graphics window."""
        return self._intf.get_property(StarGraphics._metadata, StarGraphics._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(StarGraphics._metadata, StarGraphics._set_color_metadata, color)

    _get_inherit_metadata = { "offset" : _get_inherit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit(self) -> bool:
        """Specify whether display of label is inherited from the Scenario-level setting."""
        return self._intf.get_property(StarGraphics._metadata, StarGraphics._get_inherit_metadata)

    _set_inherit_metadata = { "offset" : _set_inherit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit.setter
    def inherit(self, inherit:bool) -> None:
        return self._intf.set_property(StarGraphics._metadata, StarGraphics._set_inherit_metadata, inherit)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """The style of the star's marker."""
        return self._intf.get_property(StarGraphics._metadata, StarGraphics._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, marker_style:str) -> None:
        return self._intf.set_property(StarGraphics._metadata, StarGraphics._set_marker_style_metadata, marker_style)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Specify whether the star's label is displayed."""
        return self._intf.get_property(StarGraphics._metadata, StarGraphics._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, show_label:bool) -> None:
        return self._intf.set_property(StarGraphics._metadata, StarGraphics._set_show_label_metadata, show_label)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the star are visible."""
        return self._intf.get_property(StarGraphics._metadata, StarGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(StarGraphics._metadata, StarGraphics._set_show_graphics_metadata, is_visible)

    _property_names[color] = "color"
    _property_names[inherit] = "inherit"
    _property_names[marker_style] = "marker_style"
    _property_names[show_label] = "show_label"
    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type StarGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, StarGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, StarGraphics, [StarGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((4688100078979004041, 8199024493839125900), StarGraphics)
agcls.AgTypeNameMap["StarGraphics"] = StarGraphics

class PlanetGraphics3D(SupportsDeleteCallback):
    """PlanetGraphics3D interface. Used to access the 3D graphics of the planet."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_from_2d_graphics_2d_method_offset = 1
    _set_inherit_from_2d_graphics_2d_method_offset = 2
    _get_show_inertial_position_method_offset = 3
    _set_show_inertial_position_method_offset = 4
    _get_show_sub_planet_point_method_offset = 5
    _set_show_sub_planet_point_method_offset = 6
    _get_show_position_label_method_offset = 7
    _set_show_position_label_method_offset = 8
    _get_show_sub_planet_label_method_offset = 9
    _set_show_sub_planet_label_method_offset = 10
    _get_show_orbit_method_offset = 11
    _set_show_orbit_method_offset = 12
    _metadata = {
        "iid_data" : (4678547618005524001, 4706148649023278484),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PlanetGraphics3D)

    _get_inherit_from_2d_graphics_2d_metadata = { "offset" : _get_inherit_from_2d_graphics_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_from_2d_graphics_2d(self) -> bool:
        """Specify whether planet properties set for 2D Graphics are used in the 3D Graphics window."""
        return self._intf.get_property(PlanetGraphics3D._metadata, PlanetGraphics3D._get_inherit_from_2d_graphics_2d_metadata)

    _set_inherit_from_2d_graphics_2d_metadata = { "offset" : _set_inherit_from_2d_graphics_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_from_2d_graphics_2d.setter
    def inherit_from_2d_graphics_2d(self, inherit:bool) -> None:
        return self._intf.set_property(PlanetGraphics3D._metadata, PlanetGraphics3D._set_inherit_from_2d_graphics_2d_metadata, inherit)

    _get_show_inertial_position_metadata = { "offset" : _get_show_inertial_position_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_inertial_position(self) -> bool:
        """Display the position of the planet as a point."""
        return self._intf.get_property(PlanetGraphics3D._metadata, PlanetGraphics3D._get_show_inertial_position_metadata)

    _set_show_inertial_position_metadata = { "offset" : _set_show_inertial_position_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_inertial_position.setter
    def show_inertial_position(self, show:bool) -> None:
        return self._intf.set_property(PlanetGraphics3D._metadata, PlanetGraphics3D._set_show_inertial_position_metadata, show)

    _get_show_sub_planet_point_metadata = { "offset" : _get_show_sub_planet_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sub_planet_point(self) -> bool:
        """Display the location at which the planet is overhead on the globe."""
        return self._intf.get_property(PlanetGraphics3D._metadata, PlanetGraphics3D._get_show_sub_planet_point_metadata)

    _set_show_sub_planet_point_metadata = { "offset" : _set_show_sub_planet_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sub_planet_point.setter
    def show_sub_planet_point(self, show:bool) -> None:
        return self._intf.set_property(PlanetGraphics3D._metadata, PlanetGraphics3D._set_show_sub_planet_point_metadata, show)

    _get_show_position_label_metadata = { "offset" : _get_show_position_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_position_label(self) -> bool:
        """Display a label at the inertial position of the planet."""
        return self._intf.get_property(PlanetGraphics3D._metadata, PlanetGraphics3D._get_show_position_label_metadata)

    _set_show_position_label_metadata = { "offset" : _set_show_position_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_position_label.setter
    def show_position_label(self, show:bool) -> None:
        return self._intf.set_property(PlanetGraphics3D._metadata, PlanetGraphics3D._set_show_position_label_metadata, show)

    _get_show_sub_planet_label_metadata = { "offset" : _get_show_sub_planet_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sub_planet_label(self) -> bool:
        """Display a label on the globe at the location at which the planet is overhead."""
        return self._intf.get_property(PlanetGraphics3D._metadata, PlanetGraphics3D._get_show_sub_planet_label_metadata)

    _set_show_sub_planet_label_metadata = { "offset" : _set_show_sub_planet_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sub_planet_label.setter
    def show_sub_planet_label(self, show:bool) -> None:
        return self._intf.set_property(PlanetGraphics3D._metadata, PlanetGraphics3D._set_show_sub_planet_label_metadata, show)

    _get_show_orbit_metadata = { "offset" : _get_show_orbit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_orbit(self) -> bool:
        """Display the planet's orbit around its parent object in the 3D graphics window as defined in 2D Graphics for that planet. For instance, the Moon orbits around the Sun."""
        return self._intf.get_property(PlanetGraphics3D._metadata, PlanetGraphics3D._get_show_orbit_metadata)

    _set_show_orbit_metadata = { "offset" : _set_show_orbit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_orbit.setter
    def show_orbit(self, show:bool) -> None:
        return self._intf.set_property(PlanetGraphics3D._metadata, PlanetGraphics3D._set_show_orbit_metadata, show)

    _property_names[inherit_from_2d_graphics_2d] = "inherit_from_2d_graphics_2d"
    _property_names[show_inertial_position] = "show_inertial_position"
    _property_names[show_sub_planet_point] = "show_sub_planet_point"
    _property_names[show_position_label] = "show_position_label"
    _property_names[show_sub_planet_label] = "show_sub_planet_label"
    _property_names[show_orbit] = "show_orbit"

    def __init__(self, source_object=None):
        """Construct an object of type PlanetGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PlanetGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PlanetGraphics3D, [PlanetGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((4882034628078201888, 12735493591989419937), PlanetGraphics3D)
agcls.AgTypeNameMap["PlanetGraphics3D"] = PlanetGraphics3D

class PlanetGraphics(SupportsDeleteCallback):
    """PlanetGraphics used to access the 2D graphics of the planet."""

    _num_methods = 25
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_method_offset = 1
    _set_inherit_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_show_sub_planet_label_method_offset = 5
    _set_show_sub_planet_label_method_offset = 6
    _get_show_position_label_method_offset = 7
    _set_show_position_label_method_offset = 8
    _get_marker_style_method_offset = 9
    _set_marker_style_method_offset = 10
    _get_show_inertial_position_method_offset = 11
    _set_show_inertial_position_method_offset = 12
    _get_show_sub_planet_point_method_offset = 13
    _set_show_sub_planet_point_method_offset = 14
    _get_show_orbit_method_offset = 15
    _set_show_orbit_method_offset = 16
    _get_orbit_display_method_offset = 17
    _set_orbit_display_method_offset = 18
    _get_orbit_display_data_method_offset = 19
    _get_line_style_method_offset = 20
    _set_line_style_method_offset = 21
    _get_line_width_method_offset = 22
    _set_line_width_method_offset = 23
    _get_show_graphics_method_offset = 24
    _set_show_graphics_method_offset = 25
    _metadata = {
        "iid_data" : (5234206029267043941, 3445555683446210696),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PlanetGraphics)

    _get_inherit_metadata = { "offset" : _get_inherit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit(self) -> bool:
        """Specify whether inheritable 2D Graphics attributes are inherited from Scenario-level settings."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_inherit_metadata)

    _set_inherit_metadata = { "offset" : _set_inherit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit.setter
    def inherit(self, inherit:bool) -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_inherit_metadata, inherit)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """The color in which the planet's marker, label and orbit path (if any) are displayed."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_color_metadata, color)

    _get_show_sub_planet_label_metadata = { "offset" : _get_show_sub_planet_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sub_planet_label(self) -> bool:
        """Specify whether a label displays for the point on the Earth directly below the planet."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_show_sub_planet_label_metadata)

    _set_show_sub_planet_label_metadata = { "offset" : _set_show_sub_planet_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sub_planet_label.setter
    def show_sub_planet_label(self, sub_planet_label_visible:bool) -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_show_sub_planet_label_metadata, sub_planet_label_visible)

    _get_show_position_label_metadata = { "offset" : _get_show_position_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_position_label(self) -> bool:
        """Specify whether a label displays for the inertial position of the planet. This option affects only the perspective and orthographic map projections."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_show_position_label_metadata)

    _set_show_position_label_metadata = { "offset" : _set_show_position_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_position_label.setter
    def show_position_label(self, position_label_visible:bool) -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_show_position_label_metadata, position_label_visible)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """The style of the marker representing the planet."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, style:str) -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_marker_style_metadata, style)

    _get_show_inertial_position_metadata = { "offset" : _get_show_inertial_position_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_inertial_position(self) -> bool:
        """Specify whether the position of the planet displays in the 2D Graphics window in the Central-Body Inertial (CBI) coordinate frame. This option affects only the perspective and orthographic map projections."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_show_inertial_position_metadata)

    _set_show_inertial_position_metadata = { "offset" : _set_show_inertial_position_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_inertial_position.setter
    def show_inertial_position(self, inertial_position_visible:bool) -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_show_inertial_position_metadata, inertial_position_visible)

    _get_show_sub_planet_point_metadata = { "offset" : _get_show_sub_planet_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sub_planet_point(self) -> bool:
        """Specify whether the point on the Earth directly below the planet displays in the 2D Graphics window."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_show_sub_planet_point_metadata)

    _set_show_sub_planet_point_metadata = { "offset" : _set_show_sub_planet_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sub_planet_point.setter
    def show_sub_planet_point(self, sub_planet_point_visible:bool) -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_show_sub_planet_point_metadata, sub_planet_point_visible)

    _get_show_orbit_metadata = { "offset" : _get_show_orbit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_orbit(self) -> bool:
        """Specify whether the planet's orbit path displays. This option affects only the perspective and orthographic map projections."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_show_orbit_metadata)

    _set_show_orbit_metadata = { "offset" : _set_show_orbit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_orbit.setter
    def show_orbit(self, orbit_visible:bool) -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_show_orbit_metadata, orbit_visible)

    _get_orbit_display_metadata = { "offset" : _get_orbit_display_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PlanetOrbitDisplayType),) }
    @property
    def orbit_display(self) -> "PlanetOrbitDisplayType":
        """The factor used in determining how much of the orbit displays. A member of the PlanetOrbitDisplayType enumeration."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_orbit_display_metadata)

    _set_orbit_display_metadata = { "offset" : _set_orbit_display_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PlanetOrbitDisplayType),) }
    @orbit_display.setter
    def orbit_display(self, value:"PlanetOrbitDisplayType") -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_orbit_display_metadata, value)

    _get_orbit_display_data_metadata = { "offset" : _get_orbit_display_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orbit_display_data(self) -> "IOrbitDisplayData":
        """If time is used to determine how much of the orbit displays, specify a time value."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_orbit_display_data_metadata)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """The type of line to represent the object's pattern or tracks."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, line_style:"LineStyle") -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_line_style_metadata, line_style)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """The width of the line to represent the object's pattern or tracks."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_line_width_metadata, line_width)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the planet are visible."""
        return self._intf.get_property(PlanetGraphics._metadata, PlanetGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(PlanetGraphics._metadata, PlanetGraphics._set_show_graphics_metadata, is_visible)

    _property_names[inherit] = "inherit"
    _property_names[color] = "color"
    _property_names[show_sub_planet_label] = "show_sub_planet_label"
    _property_names[show_position_label] = "show_position_label"
    _property_names[marker_style] = "marker_style"
    _property_names[show_inertial_position] = "show_inertial_position"
    _property_names[show_sub_planet_point] = "show_sub_planet_point"
    _property_names[show_orbit] = "show_orbit"
    _property_names[orbit_display] = "orbit_display"
    _property_names[orbit_display_data] = "orbit_display_data"
    _property_names[line_style] = "line_style"
    _property_names[line_width] = "line_width"
    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type PlanetGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PlanetGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PlanetGraphics, [PlanetGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5646158316191271908, 13470394413475963559), PlanetGraphics)
agcls.AgTypeNameMap["PlanetGraphics"] = PlanetGraphics

class AreaTypePattern(SupportsDeleteCallback):
    """AreaTypePattern used to access the List of coordinates of the AreaTarget AreaType interface."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_latitude_method_offset = 1
    _set_latitude_method_offset = 2
    _get_longitude_method_offset = 3
    _set_longitude_method_offset = 4
    _metadata = {
        "iid_data" : (4877451246352132306, 7610321863438577301),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AreaTypePattern)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def latitude(self) -> typing.Any:
        """Latitude of a point used in defining an area target as a pattern. Uses Latitude Dimension."""
        return self._intf.get_property(AreaTypePattern._metadata, AreaTypePattern._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @latitude.setter
    def latitude(self, lat:typing.Any) -> None:
        return self._intf.set_property(AreaTypePattern._metadata, AreaTypePattern._set_latitude_metadata, lat)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def longitude(self) -> typing.Any:
        """Longitude of a point used in defining an area target as a pattern. Uses Longitude Dimension."""
        return self._intf.get_property(AreaTypePattern._metadata, AreaTypePattern._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @longitude.setter
    def longitude(self, lon:typing.Any) -> None:
        return self._intf.set_property(AreaTypePattern._metadata, AreaTypePattern._set_longitude_metadata, lon)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"

    def __init__(self, source_object=None):
        """Construct an object of type AreaTypePattern."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AreaTypePattern)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AreaTypePattern, [AreaTypePattern, ])

agcls.AgClassCatalog.add_catalog_entry((5413853447138753159, 6065850697736086692), AreaTypePattern)
agcls.AgTypeNameMap["AreaTypePattern"] = AreaTypePattern

class AreaTypePatternCollection(IAreaTypeData, SupportsDeleteCallback):
    """
    AreaTypePatternCollection used to access the List of coords of the AreaTarget AreaType.

    Examples
    --------
    Define an area target boundary and position from a list of lat/lon/alt:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> # AreaTarget areaTarget: AreaTarget object
    >>>
    >>> # By using the fine grained interfaces,
    >>> # BeginUpdate/EndUpdate prevent intermediate redraws
    >>> root.begin_update()
    >>> areaTarget.area_type = AreaType.PATTERN
    >>> patterns = areaTarget.area_type_data
    >>> patterns.add(48.897, 18.637)
    >>> patterns.add(46.534, 13.919)
    >>> patterns.add(44.173, 21.476)
    >>> root.end_update()
    >>> areaTarget.automatic_computation_of_centroid = True
    """

    _num_methods = 8
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get__new_enum_method_offset = 1
    _get_count_method_offset = 2
    _item_method_offset = 3
    _add_method_offset = 4
    _remove_method_offset = 5
    _remove_all_method_offset = 6
    _insert_method_offset = 7
    _to_array_method_offset = 8
    _metadata = {
        "iid_data" : (4783632398011123039, 9873158171618266770),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AreaTypePatternCollection)
    def __iter__(self):
        """Create an iterator for the AreaTypePatternCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "AreaTypePattern":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through patterns collection."""
        return self._intf.get_property(AreaTypePatternCollection._metadata, AreaTypePatternCollection._get__new_enum_metadata)

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of lat lons."""
        return self._intf.get_property(AreaTypePatternCollection._metadata, AreaTypePatternCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "AreaTypePattern":
        """Return the lat lon with the Index."""
        return self._intf.invoke(AreaTypePatternCollection._metadata, AreaTypePatternCollection._item_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def add(self, lat:typing.Any, lon:typing.Any) -> "AreaTypePattern":
        """Add a lat lon value. Lat parameter uses Latitude Dimension. Lon parameter uses Longitude Dimension."""
        return self._intf.invoke(AreaTypePatternCollection._metadata, AreaTypePatternCollection._add_metadata, lat, lon, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove(self, item_index:int) -> None:
        """Remove an Item using a given index."""
        return self._intf.invoke(AreaTypePatternCollection._metadata, AreaTypePatternCollection._remove_metadata, item_index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all the elements of the collection."""
        return self._intf.invoke(AreaTypePatternCollection._metadata, AreaTypePatternCollection._remove_all_metadata, )

    _insert_metadata = { "offset" : _insert_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def insert(self, lat:typing.Any, lon:typing.Any, index:int) -> "AreaTypePattern":
        """Insert a lat lon value (the value is inserted into the specified index without having to remove all elements) Lat parameter uses Latitude Dimension. Lon parameter uses Longitude Dimension."""
        return self._intf.invoke(AreaTypePatternCollection._metadata, AreaTypePatternCollection._insert_metadata, lat, lon, index, OutArg())

    _to_array_metadata = { "offset" : _to_array_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def to_array(self) -> list:
        """Return the lat lons as a two dimensional array."""
        return self._intf.invoke(AreaTypePatternCollection._metadata, AreaTypePatternCollection._to_array_metadata, OutArg())

    __getitem__ = item


    _property_names[_new_enum] = "_new_enum"
    _property_names[count] = "count"

    def __init__(self, source_object=None):
        """Construct an object of type AreaTypePatternCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AreaTypePatternCollection)
        IAreaTypeData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAreaTypeData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AreaTypePatternCollection, [AreaTypePatternCollection, IAreaTypeData])

agcls.AgClassCatalog.add_catalog_entry((4675615508382048233, 16145490037205104037), AreaTypePatternCollection)
agcls.AgTypeNameMap["AreaTypePatternCollection"] = AreaTypePatternCollection

class AreaTypeEllipse(IAreaTypeData, SupportsDeleteCallback):
    """AreaTypeEllipse used to access the MajorAxis MinorAxis and Bearing of the AreaTarget AreaType."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_semi_major_axis_method_offset = 1
    _set_semi_major_axis_method_offset = 2
    _get_semi_minor_axis_method_offset = 3
    _set_semi_minor_axis_method_offset = 4
    _get_bearing_method_offset = 5
    _set_bearing_method_offset = 6
    _metadata = {
        "iid_data" : (5109670376929275471, 17352419220664627879),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AreaTypeEllipse)

    _get_semi_major_axis_metadata = { "offset" : _get_semi_major_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def semi_major_axis(self) -> float:
        """Semimajor axis, i.e. half the length of the ellipse's long axis. Uses Distance Dimension."""
        return self._intf.get_property(AreaTypeEllipse._metadata, AreaTypeEllipse._get_semi_major_axis_metadata)

    _set_semi_major_axis_metadata = { "offset" : _set_semi_major_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @semi_major_axis.setter
    def semi_major_axis(self, major:float) -> None:
        return self._intf.set_property(AreaTypeEllipse._metadata, AreaTypeEllipse._set_semi_major_axis_metadata, major)

    _get_semi_minor_axis_metadata = { "offset" : _get_semi_minor_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def semi_minor_axis(self) -> float:
        """Semiminor axis, i.e. half the length of the ellipse's short axis. Uses Distance Dimension."""
        return self._intf.get_property(AreaTypeEllipse._metadata, AreaTypeEllipse._get_semi_minor_axis_metadata)

    _set_semi_minor_axis_metadata = { "offset" : _set_semi_minor_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @semi_minor_axis.setter
    def semi_minor_axis(self, minor:float) -> None:
        return self._intf.set_property(AreaTypeEllipse._metadata, AreaTypeEllipse._set_semi_minor_axis_metadata, minor)

    _get_bearing_metadata = { "offset" : _get_bearing_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def bearing(self) -> typing.Any:
        """The angle, measured in an easterly direction, between the major axis of the ellipse and the local North direction. Uses Angle Dimension."""
        return self._intf.get_property(AreaTypeEllipse._metadata, AreaTypeEllipse._get_bearing_metadata)

    _set_bearing_metadata = { "offset" : _set_bearing_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @bearing.setter
    def bearing(self, bearing:typing.Any) -> None:
        return self._intf.set_property(AreaTypeEllipse._metadata, AreaTypeEllipse._set_bearing_metadata, bearing)

    _property_names[semi_major_axis] = "semi_major_axis"
    _property_names[semi_minor_axis] = "semi_minor_axis"
    _property_names[bearing] = "bearing"

    def __init__(self, source_object=None):
        """Construct an object of type AreaTypeEllipse."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AreaTypeEllipse)
        IAreaTypeData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAreaTypeData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AreaTypeEllipse, [AreaTypeEllipse, IAreaTypeData])

agcls.AgClassCatalog.add_catalog_entry((5260996465417546763, 6351616133503700409), AreaTypeEllipse)
agcls.AgTypeNameMap["AreaTypeEllipse"] = AreaTypeEllipse

class AreaTargetGraphics3D(SupportsDeleteCallback):
    """AreaTargetGraphics3D used to access the 3D attributes of an AreaTarget interface."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_label_max_viewing_dist_method_offset = 1
    _set_enable_label_max_viewing_dist_method_offset = 2
    _get_label_maximum_viewing_dist_method_offset = 3
    _set_label_maximum_viewing_dist_method_offset = 4
    _get_fill_interior_method_offset = 5
    _set_fill_interior_method_offset = 6
    _get_percent_translucency_interior_method_offset = 7
    _set_percent_translucency_interior_method_offset = 8
    _get_border_wall_method_offset = 9
    _get_vector_method_offset = 10
    _get_fill_granularity_method_offset = 11
    _set_fill_granularity_method_offset = 12
    _metadata = {
        "iid_data" : (5043152038186742246, 5067727365557546413),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AreaTargetGraphics3D)

    _get_enable_label_max_viewing_dist_metadata = { "offset" : _get_enable_label_max_viewing_dist_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_label_max_viewing_dist(self) -> bool:
        """Use the maximum viewing distance for displaying the area target label."""
        return self._intf.get_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._get_enable_label_max_viewing_dist_metadata)

    _set_enable_label_max_viewing_dist_metadata = { "offset" : _set_enable_label_max_viewing_dist_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_label_max_viewing_dist.setter
    def enable_label_max_viewing_dist(self, use:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._set_enable_label_max_viewing_dist_metadata, use)

    _get_label_maximum_viewing_dist_metadata = { "offset" : _get_label_maximum_viewing_dist_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def label_maximum_viewing_dist(self) -> float:
        """Specify the maximum distance (distance from the viewer's eye position in 3D to the centroid) at which the area target label is displayed. Uses Distance Dimension."""
        return self._intf.get_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._get_label_maximum_viewing_dist_metadata)

    _set_label_maximum_viewing_dist_metadata = { "offset" : _set_label_maximum_viewing_dist_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @label_maximum_viewing_dist.setter
    def label_maximum_viewing_dist(self, label_max_viewing_dist:float) -> None:
        return self._intf.set_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._set_label_maximum_viewing_dist_metadata, label_max_viewing_dist)

    _get_fill_interior_metadata = { "offset" : _get_fill_interior_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def fill_interior(self) -> bool:
        """Display the area target as a filled polygon indicating the portion of the globe that the area target covers."""
        return self._intf.get_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._get_fill_interior_metadata)

    _set_fill_interior_metadata = { "offset" : _set_fill_interior_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @fill_interior.setter
    def fill_interior(self, fill_interior:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._set_fill_interior_metadata, fill_interior)

    _get_percent_translucency_interior_metadata = { "offset" : _get_percent_translucency_interior_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def percent_translucency_interior(self) -> float:
        """The translucency percent of the filled area, where 100 percent is invisible."""
        return self._intf.get_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._get_percent_translucency_interior_metadata)

    _set_percent_translucency_interior_metadata = { "offset" : _set_percent_translucency_interior_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @percent_translucency_interior.setter
    def percent_translucency_interior(self, perc_trans:float) -> None:
        return self._intf.set_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._set_percent_translucency_interior_metadata, perc_trans)

    _get_border_wall_metadata = { "offset" : _get_border_wall_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def border_wall(self) -> "Graphics3DBorderWall":
        """Retrieve the border wall properties."""
        return self._intf.get_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._get_border_wall_metadata)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get Vector."""
        return self._intf.get_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._get_vector_metadata)

    _get_fill_granularity_metadata = { "offset" : _get_fill_granularity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fill_granularity(self) -> float:
        """Allow the user to control the speed vs. visual quality of a filled area target. Uses Angle Dimension."""
        return self._intf.get_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._get_fill_granularity_metadata)

    _set_fill_granularity_metadata = { "offset" : _set_fill_granularity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fill_granularity.setter
    def fill_granularity(self, fill_granularity:float) -> None:
        return self._intf.set_property(AreaTargetGraphics3D._metadata, AreaTargetGraphics3D._set_fill_granularity_metadata, fill_granularity)

    _property_names[enable_label_max_viewing_dist] = "enable_label_max_viewing_dist"
    _property_names[label_maximum_viewing_dist] = "label_maximum_viewing_dist"
    _property_names[fill_interior] = "fill_interior"
    _property_names[percent_translucency_interior] = "percent_translucency_interior"
    _property_names[border_wall] = "border_wall"
    _property_names[vector] = "vector"
    _property_names[fill_granularity] = "fill_granularity"

    def __init__(self, source_object=None):
        """Construct an object of type AreaTargetGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AreaTargetGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AreaTargetGraphics3D, [AreaTargetGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((4828554741755929318, 8667086430725658285), AreaTargetGraphics3D)
agcls.AgTypeNameMap["AreaTargetGraphics3D"] = AreaTargetGraphics3D

class AreaTargetGraphics(SupportsDeleteCallback):
    """AreaTargetGraphics used to access the 2D Graphics attributes of an AreaTarget interface."""

    _num_methods = 37
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_method_offset = 1
    _set_inherit_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_marker_style_method_offset = 5
    _set_marker_style_method_offset = 6
    _get_show_centroid_method_offset = 7
    _set_show_centroid_method_offset = 8
    _get_show_label_method_offset = 9
    _set_show_label_method_offset = 10
    _get_use_instance_name_label_method_offset = 11
    _set_use_instance_name_label_method_offset = 12
    _get_show_boundary_points_method_offset = 13
    _set_show_boundary_points_method_offset = 14
    _get_boundary_style_method_offset = 15
    _set_boundary_style_method_offset = 16
    _get_boundary_width_method_offset = 17
    _set_boundary_width_method_offset = 18
    _get_boundary_fill_method_offset = 19
    _set_boundary_fill_method_offset = 20
    _get_show_boundary_method_offset = 21
    _set_show_boundary_method_offset = 22
    _get_show_bounding_rectangle_method_offset = 23
    _set_show_bounding_rectangle_method_offset = 24
    _get_label_name_method_offset = 25
    _set_label_name_method_offset = 26
    _get_label_notes_method_offset = 27
    _get_boundary_color_method_offset = 28
    _set_boundary_color_method_offset = 29
    _get_label_color_method_offset = 30
    _set_label_color_method_offset = 31
    _get_centroid_color_method_offset = 32
    _set_centroid_color_method_offset = 33
    _get_boundary_fill_percent_translucency_method_offset = 34
    _set_boundary_fill_percent_translucency_method_offset = 35
    _get_show_graphics_method_offset = 36
    _set_show_graphics_method_offset = 37
    _metadata = {
        "iid_data" : (5708913537652428004, 5351105948656925583),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AreaTargetGraphics)

    _get_inherit_metadata = { "offset" : _get_inherit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit(self) -> bool:
        """Specify whether inheritable 2D Graphics attributes of the area target are inherited from Scenario-level settings."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_inherit_metadata)

    _set_inherit_metadata = { "offset" : _set_inherit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit.setter
    def inherit(self, inherit:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_inherit_metadata, inherit)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """The color in which the area target's boundary, centroid and label are displayed in the 2D Graphics window."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_color_metadata, color)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """The style of the marker for the area target's centroid."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, marker_style:str) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_marker_style_metadata, marker_style)

    _get_show_centroid_metadata = { "offset" : _get_show_centroid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_centroid(self) -> bool:
        """Specify whether to display the centroid of the area target."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_show_centroid_metadata)

    _set_show_centroid_metadata = { "offset" : _set_show_centroid_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_centroid.setter
    def show_centroid(self, show_centroid:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_show_centroid_metadata, show_centroid)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Specify whether to display the label of the area target."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, show_label:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_show_label_metadata, show_label)

    _get_use_instance_name_label_metadata = { "offset" : _get_use_instance_name_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_instance_name_label(self) -> bool:
        """Specify whether to use the name of the area target (as shown in the Object Browser) as its label."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_use_instance_name_label_metadata)

    _set_use_instance_name_label_metadata = { "offset" : _set_use_instance_name_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_instance_name_label.setter
    def use_instance_name_label(self, use_inst_name:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_use_instance_name_label_metadata, use_inst_name)

    _get_show_boundary_points_metadata = { "offset" : _get_show_boundary_points_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boundary_points(self) -> bool:
        """Specify whether the individual perimeter points used to define the boundary of an area target are marked along the area target's boundary."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_show_boundary_points_metadata)

    _set_show_boundary_points_metadata = { "offset" : _set_show_boundary_points_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boundary_points.setter
    def show_boundary_points(self, show_boundary_pts:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_show_boundary_points_metadata, show_boundary_pts)

    _get_boundary_style_metadata = { "offset" : _get_boundary_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def boundary_style(self) -> "LineStyle":
        """The style in which the area target's boundary displays."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_boundary_style_metadata)

    _set_boundary_style_metadata = { "offset" : _set_boundary_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @boundary_style.setter
    def boundary_style(self, boundary_style:"LineStyle") -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_boundary_style_metadata, boundary_style)

    _get_boundary_width_metadata = { "offset" : _get_boundary_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def boundary_width(self) -> int:
        """The width of the line with which the area target's boundary displays."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_boundary_width_metadata)

    _set_boundary_width_metadata = { "offset" : _set_boundary_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @boundary_width.setter
    def boundary_width(self, boundary_width:int) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_boundary_width_metadata, boundary_width)

    _get_boundary_fill_metadata = { "offset" : _get_boundary_fill_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def boundary_fill(self) -> bool:
        """Specify whether to display the region covered by the area target as a filled area."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_boundary_fill_metadata)

    _set_boundary_fill_metadata = { "offset" : _set_boundary_fill_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @boundary_fill.setter
    def boundary_fill(self, boundary_fill:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_boundary_fill_metadata, boundary_fill)

    _get_show_boundary_metadata = { "offset" : _get_show_boundary_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boundary(self) -> bool:
        """Specify whether to display the area target's boundary."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_show_boundary_metadata)

    _set_show_boundary_metadata = { "offset" : _set_show_boundary_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boundary.setter
    def show_boundary(self, show_boundary:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_show_boundary_metadata, show_boundary)

    _get_show_bounding_rectangle_metadata = { "offset" : _get_show_bounding_rectangle_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_bounding_rectangle(self) -> bool:
        """Specify whether to construct a rectangle using the outermost boundaries defined for the area target and display it around the actual region covered by the area target."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_show_bounding_rectangle_metadata)

    _set_show_bounding_rectangle_metadata = { "offset" : _set_show_bounding_rectangle_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_bounding_rectangle.setter
    def show_bounding_rectangle(self, show_bounding_rect:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_show_bounding_rectangle_metadata, show_bounding_rect)

    _get_label_name_metadata = { "offset" : _get_label_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label_name(self) -> str:
        """The user-specified name to use as a label for the area target."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_label_name_metadata)

    _set_label_name_metadata = { "offset" : _set_label_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label_name.setter
    def label_name(self, value:str) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_label_name_metadata, value)

    _get_label_notes_metadata = { "offset" : _get_label_notes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_notes(self) -> "LabelNoteCollection":
        """Notes attached to the object and displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_label_notes_metadata)

    _get_boundary_color_metadata = { "offset" : _get_boundary_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def boundary_color(self) -> agcolor.Color:
        """Color in which the area target boundary is displayed."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_boundary_color_metadata)

    _set_boundary_color_metadata = { "offset" : _set_boundary_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @boundary_color.setter
    def boundary_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_boundary_color_metadata, color)

    _get_label_color_metadata = { "offset" : _get_label_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def label_color(self) -> agcolor.Color:
        """Color in which the area target label is displayed."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_label_color_metadata)

    _set_label_color_metadata = { "offset" : _set_label_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @label_color.setter
    def label_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_label_color_metadata, color)

    _get_centroid_color_metadata = { "offset" : _get_centroid_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def centroid_color(self) -> agcolor.Color:
        """Color in which the area target centroid is displayed."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_centroid_color_metadata)

    _set_centroid_color_metadata = { "offset" : _set_centroid_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @centroid_color.setter
    def centroid_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_centroid_color_metadata, color)

    _get_boundary_fill_percent_translucency_metadata = { "offset" : _get_boundary_fill_percent_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def boundary_fill_percent_translucency(self) -> float:
        """Specify the percent translucency of the region covered by the area target. Translucency ranges from 0 to 100 percent, where 100 percent is invisible. Dimensionless."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_boundary_fill_percent_translucency_metadata)

    _set_boundary_fill_percent_translucency_metadata = { "offset" : _set_boundary_fill_percent_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @boundary_fill_percent_translucency.setter
    def boundary_fill_percent_translucency(self, value:float) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_boundary_fill_percent_translucency_metadata, value)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the area target are visible."""
        return self._intf.get_property(AreaTargetGraphics._metadata, AreaTargetGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(AreaTargetGraphics._metadata, AreaTargetGraphics._set_show_graphics_metadata, is_visible)

    _property_names[inherit] = "inherit"
    _property_names[color] = "color"
    _property_names[marker_style] = "marker_style"
    _property_names[show_centroid] = "show_centroid"
    _property_names[show_label] = "show_label"
    _property_names[use_instance_name_label] = "use_instance_name_label"
    _property_names[show_boundary_points] = "show_boundary_points"
    _property_names[boundary_style] = "boundary_style"
    _property_names[boundary_width] = "boundary_width"
    _property_names[boundary_fill] = "boundary_fill"
    _property_names[show_boundary] = "show_boundary"
    _property_names[show_bounding_rectangle] = "show_bounding_rectangle"
    _property_names[label_name] = "label_name"
    _property_names[label_notes] = "label_notes"
    _property_names[boundary_color] = "boundary_color"
    _property_names[label_color] = "label_color"
    _property_names[centroid_color] = "centroid_color"
    _property_names[boundary_fill_percent_translucency] = "boundary_fill_percent_translucency"
    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type AreaTargetGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AreaTargetGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AreaTargetGraphics, [AreaTargetGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5313389235702930315, 2865704460315618491), AreaTargetGraphics)
agcls.AgTypeNameMap["AreaTargetGraphics"] = AreaTargetGraphics

class Graphics3DAzElMask(SupportsDeleteCallback):
    """Use to display labels and adjust the translucency of the azimuth-elevation mask for a facility, place or target."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_compass_directions_method_offset = 1
    _set_show_compass_directions_method_offset = 2
    _get_altitude_labels_visible_method_offset = 3
    _set_altitude_labels_visible_method_offset = 4
    _get_number_of_altitude_labels_method_offset = 5
    _set_number_of_altitude_labels_method_offset = 6
    _get_interior_translucency_method_offset = 7
    _set_interior_translucency_method_offset = 8
    _get_line_translucency_method_offset = 9
    _set_line_translucency_method_offset = 10
    _get_label_swap_distance_method_offset = 11
    _metadata = {
        "iid_data" : (5544112499082226693, 13860493955996888488),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DAzElMask)

    _get_show_compass_directions_metadata = { "offset" : _get_show_compass_directions_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_compass_directions(self) -> bool:
        """Display of compass directions on the outline of the mask."""
        return self._intf.get_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._get_show_compass_directions_metadata)

    _set_show_compass_directions_metadata = { "offset" : _set_show_compass_directions_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_compass_directions.setter
    def show_compass_directions(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._set_show_compass_directions_metadata, value)

    _get_altitude_labels_visible_metadata = { "offset" : _get_altitude_labels_visible_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def altitude_labels_visible(self) -> bool:
        """Display of altitude labels."""
        return self._intf.get_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._get_altitude_labels_visible_metadata)

    _set_altitude_labels_visible_metadata = { "offset" : _set_altitude_labels_visible_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @altitude_labels_visible.setter
    def altitude_labels_visible(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._set_altitude_labels_visible_metadata, value)

    _get_number_of_altitude_labels_metadata = { "offset" : _get_number_of_altitude_labels_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_altitude_labels(self) -> int:
        """The number of altitude labels to display on the outline of the mask."""
        return self._intf.get_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._get_number_of_altitude_labels_metadata)

    _set_number_of_altitude_labels_metadata = { "offset" : _set_number_of_altitude_labels_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_altitude_labels.setter
    def number_of_altitude_labels(self, value:int) -> None:
        return self._intf.set_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._set_number_of_altitude_labels_metadata, value)

    _get_interior_translucency_metadata = { "offset" : _get_interior_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def interior_translucency(self) -> float:
        """The translucency of the mask, where 1 = completely invisible."""
        return self._intf.get_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._get_interior_translucency_metadata)

    _set_interior_translucency_metadata = { "offset" : _set_interior_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @interior_translucency.setter
    def interior_translucency(self, value:float) -> None:
        return self._intf.set_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._set_interior_translucency_metadata, value)

    _get_line_translucency_metadata = { "offset" : _get_line_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def line_translucency(self) -> float:
        """The translucency of the outline of the mask, where 1 = completely invisible."""
        return self._intf.get_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._get_line_translucency_metadata)

    _set_line_translucency_metadata = { "offset" : _set_line_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @line_translucency.setter
    def line_translucency(self, value:float) -> None:
        return self._intf.set_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._set_line_translucency_metadata, value)

    _get_label_swap_distance_metadata = { "offset" : _get_label_swap_distance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_swap_distance(self) -> "Graphics3DLabelSwapDistance":
        """Interface to control the level of detail in labels and other screen objects at specified distances."""
        return self._intf.get_property(Graphics3DAzElMask._metadata, Graphics3DAzElMask._get_label_swap_distance_metadata)

    _property_names[show_compass_directions] = "show_compass_directions"
    _property_names[altitude_labels_visible] = "altitude_labels_visible"
    _property_names[number_of_altitude_labels] = "number_of_altitude_labels"
    _property_names[interior_translucency] = "interior_translucency"
    _property_names[line_translucency] = "line_translucency"
    _property_names[label_swap_distance] = "label_swap_distance"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DAzElMask."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DAzElMask)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DAzElMask, [Graphics3DAzElMask, ])

agcls.AgClassCatalog.add_catalog_entry((5142201632370206804, 349657608197739442), Graphics3DAzElMask)
agcls.AgTypeNameMap["Graphics3DAzElMask"] = Graphics3DAzElMask

class Graphics3DModelArticulation(SupportsDeleteCallback):
    """ModelArticulation Interface."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_default_save_method_offset = 1
    _set_enable_default_save_method_offset = 2
    _get_transformation_value_method_offset = 3
    _set_transformation_value_method_offset = 4
    _get_available_articulations_method_offset = 5
    _get_available_transformations_method_offset = 6
    _get_level_of_detail_count_method_offset = 7
    _get_use_object_color_for_model_method_offset = 8
    _set_use_object_color_for_model_method_offset = 9
    _get_save_articulation_file_on_save_method_offset = 10
    _set_save_articulation_file_on_save_method_offset = 11
    _get_use_articulation_file_method_offset = 12
    _set_use_articulation_file_method_offset = 13
    _get_graphics_3d_articulation_file_method_offset = 14
    _metadata = {
        "iid_data" : (5476460976653576396, 1523029085541293496),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DModelArticulation)

    _get_enable_default_save_metadata = { "offset" : _get_enable_default_save_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_default_save(self) -> bool:
        """Save the articulation value as the default for all future sessions using this model. The articulation value is saved with the object and not with the model or articulation files."""
        return self._intf.get_property(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._get_enable_default_save_metadata)

    _set_enable_default_save_metadata = { "offset" : _set_enable_default_save_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_default_save.setter
    def enable_default_save(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._set_enable_default_save_metadata, value)

    _get_transformation_value_metadata = { "offset" : _get_transformation_value_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, agcom.BSTR, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.DoubleArg,) }
    def get_transformation_value(self, level_of_detail:int, articulation:str, trans:str) -> float:
        """Get the Transformation Value given the LOD (level of detail), articulation name and the transformation name."""
        return self._intf.invoke(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._get_transformation_value_metadata, level_of_detail, articulation, trans, OutArg())

    _set_transformation_value_metadata = { "offset" : _set_transformation_value_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, agcom.BSTR, agcom.DOUBLE,),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.DoubleArg,) }
    def set_transformation_value(self, level_of_detail:int, articulation:str, trans:str, transformation_value:float) -> None:
        """Set the Transformation Value given the LOD and articulation name."""
        return self._intf.invoke(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._set_transformation_value_metadata, level_of_detail, articulation, trans, transformation_value)

    _get_available_articulations_metadata = { "offset" : _get_available_articulations_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LongArg, agmarshall.LPSafearrayArg,) }
    def get_available_articulations(self, level_of_detail:int) -> list:
        """Get the available articulations."""
        return self._intf.invoke(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._get_available_articulations_metadata, level_of_detail, OutArg())

    _get_available_transformations_metadata = { "offset" : _get_available_transformations_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_available_transformations(self, level_of_detail:int, artic_name:str) -> "Graphics3DModelTransformationCollection":
        """Get the available transformations."""
        return self._intf.invoke(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._get_available_transformations_metadata, level_of_detail, artic_name, OutArg())

    _get_level_of_detail_count_metadata = { "offset" : _get_level_of_detail_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def level_of_detail_count(self) -> int:
        """Specify the level of detail (LOD) for defining articulations, where 0 is the finest level of detail and 1 is the coarsest model."""
        return self._intf.get_property(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._get_level_of_detail_count_metadata)

    _get_use_object_color_for_model_metadata = { "offset" : _get_use_object_color_for_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_object_color_for_model(self) -> bool:
        """Set Model Color to facility color if color articulation exists."""
        return self._intf.get_property(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._get_use_object_color_for_model_metadata)

    _set_use_object_color_for_model_metadata = { "offset" : _set_use_object_color_for_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_object_color_for_model.setter
    def use_object_color_for_model(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._set_use_object_color_for_model_metadata, value)

    _get_save_articulation_file_on_save_metadata = { "offset" : _get_save_articulation_file_on_save_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_articulation_file_on_save(self) -> bool:
        """Save articulation file associated with the model when the object is saved."""
        return self._intf.get_property(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._get_save_articulation_file_on_save_metadata)

    _set_save_articulation_file_on_save_metadata = { "offset" : _set_save_articulation_file_on_save_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @save_articulation_file_on_save.setter
    def save_articulation_file_on_save(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._set_save_articulation_file_on_save_metadata, value)

    _get_use_articulation_file_metadata = { "offset" : _get_use_articulation_file_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_articulation_file(self) -> bool:
        """Use the articulation from the specified file."""
        return self._intf.get_property(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._get_use_articulation_file_metadata)

    _set_use_articulation_file_metadata = { "offset" : _set_use_articulation_file_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_articulation_file.setter
    def use_articulation_file(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._set_use_articulation_file_metadata, value)

    _get_graphics_3d_articulation_file_metadata = { "offset" : _get_graphics_3d_articulation_file_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d_articulation_file(self) -> "Graphics3DArticulationFile":
        """Interface to specify articulation file."""
        return self._intf.get_property(Graphics3DModelArticulation._metadata, Graphics3DModelArticulation._get_graphics_3d_articulation_file_metadata)

    _property_names[enable_default_save] = "enable_default_save"
    _property_names[level_of_detail_count] = "level_of_detail_count"
    _property_names[use_object_color_for_model] = "use_object_color_for_model"
    _property_names[save_articulation_file_on_save] = "save_articulation_file_on_save"
    _property_names[use_articulation_file] = "use_articulation_file"
    _property_names[graphics_3d_articulation_file] = "graphics_3d_articulation_file"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DModelArticulation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DModelArticulation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DModelArticulation, [Graphics3DModelArticulation, ])

agcls.AgClassCatalog.add_catalog_entry((4685853867803777090, 16830026689111081859), Graphics3DModelArticulation)
agcls.AgTypeNameMap["Graphics3DModelArticulation"] = Graphics3DModelArticulation

class Graphics3DModelTransformationCollection(SupportsDeleteCallback):
    """Graphics3DModelTransformationCollection Interface. A collection of available transformations in the model."""

    _num_methods = 4
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _get_name_method_offset = 4
    _metadata = {
        "iid_data" : (5596729261048885969, 1633000595973079187),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DModelTransformationCollection)
    def __iter__(self):
        """Create an iterator for the Graphics3DModelTransformationCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "Graphics3DModelTransformation":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return a number of elements in the collection."""
        return self._intf.get_property(Graphics3DModelTransformationCollection._metadata, Graphics3DModelTransformationCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "Graphics3DModelTransformation":
        """Return a model transformation by name or at a specified position."""
        return self._intf.invoke(Graphics3DModelTransformationCollection._metadata, Graphics3DModelTransformationCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates the elements in the collection."""
        return self._intf.get_property(Graphics3DModelTransformationCollection._metadata, Graphics3DModelTransformationCollection._get__new_enum_metadata)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Name of the Model Transformation."""
        return self._intf.get_property(Graphics3DModelTransformationCollection._metadata, Graphics3DModelTransformationCollection._get_name_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[name] = "name"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DModelTransformationCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DModelTransformationCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DModelTransformationCollection, [Graphics3DModelTransformationCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5658567764933145391, 3218258138895758229), Graphics3DModelTransformationCollection)
agcls.AgTypeNameMap["Graphics3DModelTransformationCollection"] = Graphics3DModelTransformationCollection

class Graphics3DModelTransformation(SupportsDeleteCallback):
    """Graphics3DModelTransformation Interface. Used to modify the transformation value."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_value_method_offset = 2
    _set_value_method_offset = 3
    _get_minimum_method_offset = 4
    _get_maximum_method_offset = 5
    _metadata = {
        "iid_data" : (5746846030145899324, 1207812493192200085),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DModelTransformation)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """The Name property."""
        return self._intf.get_property(Graphics3DModelTransformation._metadata, Graphics3DModelTransformation._get_name_metadata)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """The Value property. Dimensionless."""
        return self._intf.get_property(Graphics3DModelTransformation._metadata, Graphics3DModelTransformation._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(Graphics3DModelTransformation._metadata, Graphics3DModelTransformation._set_value_metadata, value)

    _get_minimum_metadata = { "offset" : _get_minimum_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum(self) -> float:
        """The Min property. Dimensionless."""
        return self._intf.get_property(Graphics3DModelTransformation._metadata, Graphics3DModelTransformation._get_minimum_metadata)

    _get_maximum_metadata = { "offset" : _get_maximum_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum(self) -> float:
        """The Max property. Dimensionless."""
        return self._intf.get_property(Graphics3DModelTransformation._metadata, Graphics3DModelTransformation._get_maximum_metadata)

    _property_names[name] = "name"
    _property_names[value] = "value"
    _property_names[minimum] = "minimum"
    _property_names[maximum] = "maximum"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DModelTransformation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DModelTransformation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DModelTransformation, [Graphics3DModelTransformation, ])

agcls.AgClassCatalog.add_catalog_entry((5544683225956103655, 16548955897419407005), Graphics3DModelTransformation)
agcls.AgTypeNameMap["Graphics3DModelTransformation"] = Graphics3DModelTransformation

class Graphics3DModelFile(IGraphics3DModelData, SupportsDeleteCallback):
    """Graphics3DModelFile Interface. Used to specify the model's file."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_file_path_method_offset = 3
    _metadata = {
        "iid_data" : (5382636840706349020, 17692418492617566135),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DModelFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Path and filename of the model file."""
        return self._intf.get_property(Graphics3DModelFile._metadata, Graphics3DModelFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(Graphics3DModelFile._metadata, Graphics3DModelFile._set_filename_metadata, value)

    _get_file_path_metadata = { "offset" : _get_file_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file_path(self) -> str:
        """Absolute path and filename of the model file."""
        return self._intf.get_property(Graphics3DModelFile._metadata, Graphics3DModelFile._get_file_path_metadata)

    _property_names[filename] = "filename"
    _property_names[file_path] = "file_path"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DModelFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DModelFile)
        IGraphics3DModelData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DModelData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DModelFile, [Graphics3DModelFile, IGraphics3DModelData])

agcls.AgClassCatalog.add_catalog_entry((4985422231573478481, 4190419520449289857), Graphics3DModelFile)
agcls.AgTypeNameMap["Graphics3DModelFile"] = Graphics3DModelFile

class PlanetPositionFile(IPositionSourceData, SupportsDeleteCallback):
    """PlanetPositionFile Interface."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_file_path_method_offset = 3
    _metadata = {
        "iid_data" : (5119889550569412619, 15754123023342996670),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PlanetPositionFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Path and filename of the planetary ephemeris file."""
        return self._intf.get_property(PlanetPositionFile._metadata, PlanetPositionFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(PlanetPositionFile._metadata, PlanetPositionFile._set_filename_metadata, value)

    _get_file_path_metadata = { "offset" : _get_file_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file_path(self) -> str:
        """Full Path and filename of the planetary ephemeris file."""
        return self._intf.get_property(PlanetPositionFile._metadata, PlanetPositionFile._get_file_path_metadata)

    _property_names[filename] = "filename"
    _property_names[file_path] = "file_path"

    def __init__(self, source_object=None):
        """Construct an object of type PlanetPositionFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PlanetPositionFile)
        IPositionSourceData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPositionSourceData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PlanetPositionFile, [PlanetPositionFile, IPositionSourceData])

agcls.AgClassCatalog.add_catalog_entry((4923796857619520801, 4510239034430259591), PlanetPositionFile)
agcls.AgTypeNameMap["PlanetPositionFile"] = PlanetPositionFile

class PlanetPositionCentralBody(IPositionSourceData, SupportsDeleteCallback):
    """PlanetPositionCentralBody Interface."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_central_body_method_offset = 1
    _set_central_body_method_offset = 2
    _get_rename_automatically_method_offset = 3
    _set_rename_automatically_method_offset = 4
    _get_radius_method_offset = 5
    _get_ephemeris_source_method_offset = 6
    _set_ephemeris_source_method_offset = 7
    _get_available_central_bodies_method_offset = 8
    _get_available_ephemeris_source_types_method_offset = 9
    _get_jplde_version_method_offset = 10
    _metadata = {
        "iid_data" : (5354332882924930835, 218719114892087424),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PlanetPositionCentralBody)

    _get_central_body_metadata = { "offset" : _get_central_body_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body(self) -> str:
        """The central body used in defining the planet object."""
        return self._intf.get_property(PlanetPositionCentralBody._metadata, PlanetPositionCentralBody._get_central_body_metadata)

    _set_central_body_metadata = { "offset" : _set_central_body_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @central_body.setter
    def central_body(self, value:str) -> None:
        return self._intf.set_property(PlanetPositionCentralBody._metadata, PlanetPositionCentralBody._set_central_body_metadata, value)

    _get_rename_automatically_metadata = { "offset" : _get_rename_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def rename_automatically(self) -> bool:
        """Specify whether the object should automatically be renamed to have the same name as the selected central body."""
        return self._intf.get_property(PlanetPositionCentralBody._metadata, PlanetPositionCentralBody._get_rename_automatically_metadata)

    _set_rename_automatically_metadata = { "offset" : _set_rename_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @rename_automatically.setter
    def rename_automatically(self, value:bool) -> None:
        return self._intf.set_property(PlanetPositionCentralBody._metadata, PlanetPositionCentralBody._set_rename_automatically_metadata, value)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """The radius of the selected central body. Uses Distance Dimension."""
        return self._intf.get_property(PlanetPositionCentralBody._metadata, PlanetPositionCentralBody._get_radius_metadata)

    _get_ephemeris_source_metadata = { "offset" : _get_ephemeris_source_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EphemSourceType),) }
    @property
    def ephemeris_source(self) -> "EphemSourceType":
        """The ephemeris source for the selected central body. A member of the EphemSourceType enumeration."""
        return self._intf.get_property(PlanetPositionCentralBody._metadata, PlanetPositionCentralBody._get_ephemeris_source_metadata)

    _set_ephemeris_source_metadata = { "offset" : _set_ephemeris_source_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EphemSourceType),) }
    @ephemeris_source.setter
    def ephemeris_source(self, value:"EphemSourceType") -> None:
        return self._intf.set_property(PlanetPositionCentralBody._metadata, PlanetPositionCentralBody._set_ephemeris_source_metadata, value)

    _get_available_central_bodies_metadata = { "offset" : _get_available_central_bodies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_central_bodies(self) -> list:
        """Return an array of all available Central Bodies."""
        return self._intf.get_property(PlanetPositionCentralBody._metadata, PlanetPositionCentralBody._get_available_central_bodies_metadata)

    _get_available_ephemeris_source_types_metadata = { "offset" : _get_available_ephemeris_source_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_ephemeris_source_types(self) -> list:
        """Return an array of all available Ephemeris Source Types."""
        return self._intf.get_property(PlanetPositionCentralBody._metadata, PlanetPositionCentralBody._get_available_ephemeris_source_types_metadata)

    _get_jplde_version_metadata = { "offset" : _get_jplde_version_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def jplde_version(self) -> str:
        """Return a JPL DE Version."""
        return self._intf.get_property(PlanetPositionCentralBody._metadata, PlanetPositionCentralBody._get_jplde_version_metadata)

    _property_names[central_body] = "central_body"
    _property_names[rename_automatically] = "rename_automatically"
    _property_names[radius] = "radius"
    _property_names[ephemeris_source] = "ephemeris_source"
    _property_names[available_central_bodies] = "available_central_bodies"
    _property_names[available_ephemeris_source_types] = "available_ephemeris_source_types"
    _property_names[jplde_version] = "jplde_version"

    def __init__(self, source_object=None):
        """Construct an object of type PlanetPositionCentralBody."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PlanetPositionCentralBody)
        IPositionSourceData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPositionSourceData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PlanetPositionCentralBody, [PlanetPositionCentralBody, IPositionSourceData])

agcls.AgClassCatalog.add_catalog_entry((5752034707279593156, 8313307131451599235), PlanetPositionCentralBody)
agcls.AgTypeNameMap["PlanetPositionCentralBody"] = PlanetPositionCentralBody

class PlanetOrbitDisplayTime(IOrbitDisplayData, SupportsDeleteCallback):
    """PlanetOrbitDisplayTime Interface."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_method_offset = 1
    _set_time_method_offset = 2
    _metadata = {
        "iid_data" : (4636739166117768277, 13001045051739687301),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PlanetOrbitDisplayTime)

    _get_time_metadata = { "offset" : _get_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time(self) -> float:
        """Display time of the planet's orbit. Uses Time Dimension."""
        return self._intf.get_property(PlanetOrbitDisplayTime._metadata, PlanetOrbitDisplayTime._get_time_metadata)

    _set_time_metadata = { "offset" : _set_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time.setter
    def time(self, value:float) -> None:
        return self._intf.set_property(PlanetOrbitDisplayTime._metadata, PlanetOrbitDisplayTime._set_time_metadata, value)

    _property_names[time] = "time"

    def __init__(self, source_object=None):
        """Construct an object of type PlanetOrbitDisplayTime."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PlanetOrbitDisplayTime)
        IOrbitDisplayData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrbitDisplayData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PlanetOrbitDisplayTime, [PlanetOrbitDisplayTime, IOrbitDisplayData])

agcls.AgClassCatalog.add_catalog_entry((5157299259496775144, 710712331664079768), PlanetOrbitDisplayTime)
agcls.AgTypeNameMap["PlanetOrbitDisplayTime"] = PlanetOrbitDisplayTime

class Scenario(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """
    Scenario Interface for Scenario-level properties.

    Examples
    --------
    Set the current scenario's time period:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> scenario = root.current_scenario
    >>> scenario.set_time_period(start_time="1 Jan 2012 12:00:00.000", stop_time="2 Jan 2012 12:00:00.000")
    """

    _num_methods = 38
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_time_method_offset = 1
    _set_start_time_method_offset = 2
    _get_stop_time_method_offset = 3
    _set_stop_time_method_offset = 4
    _set_time_period_method_offset = 5
    _get_epoch_method_offset = 6
    _set_epoch_method_offset = 7
    _get_animation_settings_method_offset = 8
    _get_earth_data_method_offset = 9
    _get_graphics_method_offset = 10
    _get_database_settings_method_offset = 11
    _get_display_warning_if_orbit_impacts_ground_method_offset = 12
    _set_display_warning_if_orbit_impacts_ground_method_offset = 13
    _get_show_warning_if_missile_fails_to_impact_method_offset = 14
    _set_show_warning_if_missile_fails_to_impact_method_offset = 15
    _get_graphics_3d_method_offset = 16
    _get_aircraft_wgs84_warning_method_offset = 17
    _set_aircraft_wgs84_warning_method_offset = 18
    _get_show_warning_whether_missile_achieves_orbit_or_not_method_offset = 19
    _set_show_warning_whether_missile_achieves_orbit_or_not_method_offset = 20
    _get_terrain_method_offset = 21
    _get_component_directory_method_offset = 22
    _get_scenario_files_method_offset = 23
    _get_is_dirty_method_offset = 24
    _get_use_analysis_start_time_for_epoch_method_offset = 25
    _set_use_analysis_start_time_for_epoch_method_offset = 26
    _set_dirty_method_offset = 27
    _get_space_environment_method_offset = 28
    _get_scene_manager_method_offset = 29
    _get_analysis_interval_method_offset = 30
    _get_analysis_epoch_method_offset = 31
    _get_existing_accesses_method_offset = 32
    _get_access_between_objects_by_path_method_offset = 33
    _get_radar_clutter_map_method_offset = 34
    _get_radar_cross_section_method_offset = 35
    _get_rf_environment_method_offset = 36
    _get_tilesets_method_offset = 37
    _get_laser_environment_method_offset = 38
    _metadata = {
        "iid_data" : (4718517201026647430, 18167409525942546827),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Scenario)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Scenario start time. Uses DateFormat Dimension."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_start_time_metadata)

    _set_start_time_metadata = { "offset" : _set_start_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_time.setter
    def start_time(self, value:typing.Any) -> None:
        return self._intf.set_property(Scenario._metadata, Scenario._set_start_time_metadata, value)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Scenario stop time. Uses DateFormat Dimension."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_stop_time_metadata)

    _set_stop_time_metadata = { "offset" : _set_stop_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop_time.setter
    def stop_time(self, value:typing.Any) -> None:
        return self._intf.set_property(Scenario._metadata, Scenario._set_stop_time_metadata, value)

    _set_time_period_metadata = { "offset" : _set_time_period_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def set_time_period(self, start_time:typing.Any, stop_time:typing.Any) -> None:
        """
        Set the Scenario time period. startTime/stopTime use DateFormat Dimension.

        Examples
        --------
        Set the current scenario's time period:
        >>> # STKObjectRoot root: STK Object Model Root
        >>> scenario = root.current_scenario
        >>> scenario.set_time_period(start_time="1 Jan 2012 12:00:00.000", stop_time="2 Jan 2012 12:00:00.000")
        """
        return self._intf.invoke(Scenario._metadata, Scenario._set_time_period_metadata, start_time, stop_time)

    _get_epoch_metadata = { "offset" : _get_epoch_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def epoch(self) -> typing.Any:
        """Scenario epoch. Uses DateFormat Dimension."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_epoch_metadata)

    _set_epoch_metadata = { "offset" : _set_epoch_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @epoch.setter
    def epoch(self, value:typing.Any) -> None:
        return self._intf.set_property(Scenario._metadata, Scenario._set_epoch_metadata, value)

    _get_animation_settings_metadata = { "offset" : _get_animation_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def animation_settings(self) -> "ScenarioAnimation":
        """Scenario animation settings."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_animation_settings_metadata)

    _get_earth_data_metadata = { "offset" : _get_earth_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def earth_data(self) -> "ScenarioEarthData":
        """Scenario Earth Data settings."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_earth_data_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "ScenarioGraphics":
        """Scenario 2D Graphics settings."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_graphics_metadata)

    _get_database_settings_metadata = { "offset" : _get_database_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def database_settings(self) -> "ScenarioDatabaseCollection":
        """Scenario database settings."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_database_settings_metadata)

    _get_display_warning_if_orbit_impacts_ground_metadata = { "offset" : _get_display_warning_if_orbit_impacts_ground_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def display_warning_if_orbit_impacts_ground(self) -> bool:
        """Specify whether to display a warning when a satellite orbit intersects the central body."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_display_warning_if_orbit_impacts_ground_metadata)

    _set_display_warning_if_orbit_impacts_ground_metadata = { "offset" : _set_display_warning_if_orbit_impacts_ground_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @display_warning_if_orbit_impacts_ground.setter
    def display_warning_if_orbit_impacts_ground(self, sat_no_orbit_warning:bool) -> None:
        return self._intf.set_property(Scenario._metadata, Scenario._set_display_warning_if_orbit_impacts_ground_metadata, sat_no_orbit_warning)

    _get_show_warning_if_missile_fails_to_impact_metadata = { "offset" : _get_show_warning_if_missile_fails_to_impact_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_warning_if_missile_fails_to_impact(self) -> bool:
        """Specify whether to display a warning when a missile trajectory does not impact the central body."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_show_warning_if_missile_fails_to_impact_metadata)

    _set_show_warning_if_missile_fails_to_impact_metadata = { "offset" : _set_show_warning_if_missile_fails_to_impact_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_warning_if_missile_fails_to_impact.setter
    def show_warning_if_missile_fails_to_impact(self, msl_no_orbit_warning:bool) -> None:
        return self._intf.set_property(Scenario._metadata, Scenario._set_show_warning_if_missile_fails_to_impact_metadata, msl_no_orbit_warning)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "ScenarioGraphics3D":
        """Scenario 3D Graphics settings."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_graphics_3d_metadata)

    _get_aircraft_wgs84_warning_metadata = { "offset" : _get_aircraft_wgs84_warning_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AircraftWGS84WarningType),) }
    @property
    def aircraft_wgs84_warning(self) -> "AircraftWGS84WarningType":
        """Specify when to display the aircraft mission modeler WGS84 warning."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_aircraft_wgs84_warning_metadata)

    _set_aircraft_wgs84_warning_metadata = { "offset" : _set_aircraft_wgs84_warning_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AircraftWGS84WarningType),) }
    @aircraft_wgs84_warning.setter
    def aircraft_wgs84_warning(self, type:"AircraftWGS84WarningType") -> None:
        return self._intf.set_property(Scenario._metadata, Scenario._set_aircraft_wgs84_warning_metadata, type)

    _get_show_warning_whether_missile_achieves_orbit_or_not_metadata = { "offset" : _get_show_warning_whether_missile_achieves_orbit_or_not_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_warning_whether_missile_achieves_orbit_or_not(self) -> bool:
        """Generate a message that warns the user if the missile achieves orbit (and give the perigee) or impacts the surface (and give the interval after missile's stop time)."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_show_warning_whether_missile_achieves_orbit_or_not_metadata)

    _set_show_warning_whether_missile_achieves_orbit_or_not_metadata = { "offset" : _set_show_warning_whether_missile_achieves_orbit_or_not_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_warning_whether_missile_achieves_orbit_or_not.setter
    def show_warning_whether_missile_achieves_orbit_or_not(self, msl_stop_time_warning:bool) -> None:
        return self._intf.set_property(Scenario._metadata, Scenario._set_show_warning_whether_missile_achieves_orbit_or_not_metadata, msl_stop_time_warning)

    _get_terrain_metadata = { "offset" : _get_terrain_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def terrain(self) -> "CentralBodyTerrainCollection":
        """Return a list of central bodies and their terrains."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_terrain_metadata)

    _get_component_directory_metadata = { "offset" : _get_component_directory_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def component_directory(self) -> "ComponentDirectory":
        """Get the component directory interface."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_component_directory_metadata)

    _get_scenario_files_metadata = { "offset" : _get_scenario_files_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def scenario_files(self) -> list:
        """Return list of scenario files."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_scenario_files_metadata)

    _get_is_dirty_metadata = { "offset" : _get_is_dirty_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_dirty(self) -> bool:
        """Specify whether scenario needs to be saved."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_is_dirty_metadata)

    _get_use_analysis_start_time_for_epoch_metadata = { "offset" : _get_use_analysis_start_time_for_epoch_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_analysis_start_time_for_epoch(self) -> bool:
        """Whether the scenario Epoch is the same as the scenario's StartTime."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_use_analysis_start_time_for_epoch_metadata)

    _set_use_analysis_start_time_for_epoch_metadata = { "offset" : _set_use_analysis_start_time_for_epoch_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_analysis_start_time_for_epoch.setter
    def use_analysis_start_time_for_epoch(self, use_analysis_start_time:bool) -> None:
        return self._intf.set_property(Scenario._metadata, Scenario._set_use_analysis_start_time_for_epoch_metadata, use_analysis_start_time)

    _set_dirty_metadata = { "offset" : _set_dirty_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def set_dirty(self) -> None:
        """Set the flag indicating the scenario has been modified."""
        return self._intf.invoke(Scenario._metadata, Scenario._set_dirty_metadata, )

    _get_space_environment_metadata = { "offset" : _get_space_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def space_environment(self) -> "ScenarioSpaceEnvironment":
        """Scenario SpaceEnvironment settings."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_space_environment_metadata)

    _get_scene_manager_metadata = { "offset" : _get_scene_manager_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def scene_manager(self) -> "ISceneManager":
        """A scene manager."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_scene_manager_metadata)

    _get_analysis_interval_metadata = { "offset" : _get_analysis_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Allow the user to configure the scenario's analysis time period."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_analysis_interval_metadata)

    _get_analysis_epoch_metadata = { "offset" : _get_analysis_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Allow the user to configure the scenario's analysis epoch."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_analysis_epoch_metadata)

    _get_existing_accesses_metadata = { "offset" : _get_existing_accesses_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_existing_accesses(self) -> list:
        """Return an array of existing accesses in the current scenario. The result is a two-dimensional array of triplets where each triplet contains the paths of two objects participating in the access and a flag indicating whether the access is computed."""
        return self._intf.invoke(Scenario._metadata, Scenario._get_existing_accesses_metadata, OutArg())

    _get_access_between_objects_by_path_metadata = { "offset" : _get_access_between_objects_by_path_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_access_between_objects_by_path(self, object_path1:str, object_path2:str) -> "Access":
        """Return an Access object associated with the two STK objects specified using their paths. The paths can be fully-qualified or truncated."""
        return self._intf.invoke(Scenario._metadata, Scenario._get_access_between_objects_by_path_metadata, object_path1, object_path2, OutArg())

    _get_radar_clutter_map_metadata = { "offset" : _get_radar_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_clutter_map(self) -> "IRadarClutterMap":
        """Return the global radar clutter map."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_radar_clutter_map_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSection":
        """Return the global radar cross section."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_radar_cross_section_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "RFEnvironment":
        """Return the RF environment."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_rf_environment_metadata)

    _get_tilesets_metadata = { "offset" : _get_tilesets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tilesets(self) -> "Tileset3DCollection":
        """Return a list of 3D Tilesets used for Analysis."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_tilesets_metadata)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "LaserEnvironment":
        """Return the laser environment."""
        return self._intf.get_property(Scenario._metadata, Scenario._get_laser_environment_metadata)

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[epoch] = "epoch"
    _property_names[animation_settings] = "animation_settings"
    _property_names[earth_data] = "earth_data"
    _property_names[graphics] = "graphics"
    _property_names[database_settings] = "database_settings"
    _property_names[display_warning_if_orbit_impacts_ground] = "display_warning_if_orbit_impacts_ground"
    _property_names[show_warning_if_missile_fails_to_impact] = "show_warning_if_missile_fails_to_impact"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[aircraft_wgs84_warning] = "aircraft_wgs84_warning"
    _property_names[show_warning_whether_missile_achieves_orbit_or_not] = "show_warning_whether_missile_achieves_orbit_or_not"
    _property_names[terrain] = "terrain"
    _property_names[component_directory] = "component_directory"
    _property_names[scenario_files] = "scenario_files"
    _property_names[is_dirty] = "is_dirty"
    _property_names[use_analysis_start_time_for_epoch] = "use_analysis_start_time_for_epoch"
    _property_names[space_environment] = "space_environment"
    _property_names[scene_manager] = "scene_manager"
    _property_names[analysis_interval] = "analysis_interval"
    _property_names[analysis_epoch] = "analysis_epoch"
    _property_names[radar_clutter_map] = "radar_clutter_map"
    _property_names[radar_cross_section] = "radar_cross_section"
    _property_names[rf_environment] = "rf_environment"
    _property_names[tilesets] = "tilesets"
    _property_names[laser_environment] = "laser_environment"

    def __init__(self, source_object=None):
        """Construct an object of type Scenario."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Scenario)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Scenario, [Scenario, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5717903642267803247, 3419633595515061152), Scenario)
agcls.AgTypeNameMap["Scenario"] = Scenario

class ScenarioAnimation(SupportsDeleteCallback):
    """ScenarioAnimation Interface for Scenario-level properties that control the animation cycle, animation step definition and the intervals between refresh updates in the 2D and 3D windows."""

    _num_methods = 26
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_time_method_offset = 1
    _set_start_time_method_offset = 2
    _get_enable_anim_cycle_time_method_offset = 3
    _set_enable_anim_cycle_time_method_offset = 4
    _get_animation_cycle_time_method_offset = 5
    _set_animation_cycle_time_method_offset = 6
    _get_animation_step_value_method_offset = 7
    _set_animation_step_value_method_offset = 8
    _get_refresh_delta_method_offset = 9
    _set_refresh_delta_method_offset = 10
    _get_animation_end_loop_type_method_offset = 11
    _set_animation_end_loop_type_method_offset = 12
    _get_refresh_delta_type_method_offset = 13
    _set_refresh_delta_type_method_offset = 14
    _get_animation_step_type_method_offset = 15
    _set_animation_step_type_method_offset = 16
    _get_continue_x_real_time_from_pause_method_offset = 17
    _set_continue_x_real_time_from_pause_method_offset = 18
    _get_time_period_method_offset = 19
    _get_time_array_increment_method_offset = 20
    _set_time_array_increment_method_offset = 21
    _set_time_array_component_method_offset = 22
    _set_time_array_qualified_path_method_offset = 23
    _get_time_array_component_method_offset = 24
    _get_time_array_qualified_path_method_offset = 25
    _reset_time_array_component_method_offset = 26
    _metadata = {
        "iid_data" : (5214489461169494180, 2202198574196166589),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScenarioAnimation)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Animation start time. Uses DateFormat Dimension."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_start_time_metadata)

    _set_start_time_metadata = { "offset" : _set_start_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_time.setter
    def start_time(self, value:typing.Any) -> None:
        return self._intf.set_property(ScenarioAnimation._metadata, ScenarioAnimation._set_start_time_metadata, value)

    _get_enable_anim_cycle_time_metadata = { "offset" : _get_enable_anim_cycle_time_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_anim_cycle_time(self) -> bool:
        """Enable a selection between end time and loop-at time."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_enable_anim_cycle_time_metadata)

    _set_enable_anim_cycle_time_metadata = { "offset" : _set_enable_anim_cycle_time_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_anim_cycle_time.setter
    def enable_anim_cycle_time(self, value:bool) -> None:
        return self._intf.set_property(ScenarioAnimation._metadata, ScenarioAnimation._set_enable_anim_cycle_time_metadata, value)

    _get_animation_cycle_time_metadata = { "offset" : _get_animation_cycle_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def animation_cycle_time(self) -> typing.Any:
        """Animation end time. Uses DateFormat Dimension."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_animation_cycle_time_metadata)

    _set_animation_cycle_time_metadata = { "offset" : _set_animation_cycle_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @animation_cycle_time.setter
    def animation_cycle_time(self, value:typing.Any) -> None:
        return self._intf.set_property(ScenarioAnimation._metadata, ScenarioAnimation._set_animation_cycle_time_metadata, value)

    _get_animation_step_value_metadata = { "offset" : _get_animation_step_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def animation_step_value(self) -> float:
        """Animation time step. Dimension depends on context."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_animation_step_value_metadata)

    _set_animation_step_value_metadata = { "offset" : _set_animation_step_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @animation_step_value.setter
    def animation_step_value(self, value:float) -> None:
        return self._intf.set_property(ScenarioAnimation._metadata, ScenarioAnimation._set_animation_step_value_metadata, value)

    _get_refresh_delta_metadata = { "offset" : _get_refresh_delta_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def refresh_delta(self) -> float:
        """Amount of time between refresh updates. The actual refresh delta is limited by the minimum time necessary to draw the scenario. The refresh time varies with processor performance, graphics hardware and scenario complexity. Uses Time Dimension."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_refresh_delta_metadata)

    _set_refresh_delta_metadata = { "offset" : _set_refresh_delta_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @refresh_delta.setter
    def refresh_delta(self, value:float) -> None:
        return self._intf.set_property(ScenarioAnimation._metadata, ScenarioAnimation._set_refresh_delta_metadata, value)

    _get_animation_end_loop_type_metadata = { "offset" : _get_animation_end_loop_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ScenarioEndLoopType),) }
    @property
    def animation_end_loop_type(self) -> "ScenarioEndLoopType":
        """Animation end time or loop-at time. A member of the ScenarioEndLoopType enumeration."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_animation_end_loop_type_metadata)

    _set_animation_end_loop_type_metadata = { "offset" : _set_animation_end_loop_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ScenarioEndLoopType),) }
    @animation_end_loop_type.setter
    def animation_end_loop_type(self, value:"ScenarioEndLoopType") -> None:
        return self._intf.set_property(ScenarioAnimation._metadata, ScenarioAnimation._set_animation_end_loop_type_metadata, value)

    _get_refresh_delta_type_metadata = { "offset" : _get_refresh_delta_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ScenarioRefreshDeltaType),) }
    @property
    def refresh_delta_type(self) -> "ScenarioRefreshDeltaType":
        """Refresh Delta or high speed. A member of the ScenarioRefreshDeltaType enumeration."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_refresh_delta_type_metadata)

    _set_refresh_delta_type_metadata = { "offset" : _set_refresh_delta_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ScenarioRefreshDeltaType),) }
    @refresh_delta_type.setter
    def refresh_delta_type(self, value:"ScenarioRefreshDeltaType") -> None:
        return self._intf.set_property(ScenarioAnimation._metadata, ScenarioAnimation._set_refresh_delta_type_metadata, value)

    _get_animation_step_type_metadata = { "offset" : _get_animation_step_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ScenarioTimeStepType),) }
    @property
    def animation_step_type(self) -> "ScenarioTimeStepType":
        """Time step, real time (with offset) or a multiple of real time. A member of the ScenarioTimeStepType enumeration."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_animation_step_type_metadata)

    _set_animation_step_type_metadata = { "offset" : _set_animation_step_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ScenarioTimeStepType),) }
    @animation_step_type.setter
    def animation_step_type(self, value:"ScenarioTimeStepType") -> None:
        return self._intf.set_property(ScenarioAnimation._metadata, ScenarioAnimation._set_animation_step_type_metadata, value)

    _get_continue_x_real_time_from_pause_metadata = { "offset" : _get_continue_x_real_time_from_pause_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def continue_x_real_time_from_pause(self) -> bool:
        """Animation XRealtime Continue from Paused Time."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_continue_x_real_time_from_pause_metadata)

    _set_continue_x_real_time_from_pause_metadata = { "offset" : _set_continue_x_real_time_from_pause_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @continue_x_real_time_from_pause.setter
    def continue_x_real_time_from_pause(self, value:bool) -> None:
        return self._intf.set_property(ScenarioAnimation._metadata, ScenarioAnimation._set_continue_x_real_time_from_pause_metadata, value)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "ScenarioAnimationTimePeriod":
        """Allow the user to configure the scenario's animation time period."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_time_period_metadata)

    _get_time_array_increment_metadata = { "offset" : _get_time_array_increment_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def time_array_increment(self) -> int:
        """Animation Time Array Increment."""
        return self._intf.get_property(ScenarioAnimation._metadata, ScenarioAnimation._get_time_array_increment_metadata)

    _set_time_array_increment_metadata = { "offset" : _set_time_array_increment_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @time_array_increment.setter
    def time_array_increment(self, value:int) -> None:
        return self._intf.set_property(ScenarioAnimation._metadata, ScenarioAnimation._set_time_array_increment_metadata, value)

    _set_time_array_component_metadata = { "offset" : _set_time_array_component_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("IAnalysisWorkbenchComponent"),) }
    def set_time_array_component(self, component:"IAnalysisWorkbenchComponent") -> None:
        """Configure the time array using the specified time component. Allowed are only event arrays."""
        return self._intf.invoke(ScenarioAnimation._metadata, ScenarioAnimation._set_time_array_component_metadata, component)

    _set_time_array_qualified_path_metadata = { "offset" : _set_time_array_qualified_path_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_time_array_qualified_path(self, qualified_path:str) -> None:
        """Configure the time array using the specified time component. Allowed are only event arrays. QualifiedPath format adheres to the format used throughout VGT API (i.e. ``Scenario/Scenario1 OneMinuteSampleTimes EventArray``)."""
        return self._intf.invoke(ScenarioAnimation._metadata, ScenarioAnimation._set_time_array_qualified_path_metadata, qualified_path)

    _get_time_array_component_metadata = { "offset" : _get_time_array_component_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_time_array_component(self) -> "IAnalysisWorkbenchComponent":
        """Return a time array component used to configure the time array or null if component has not been configured yet."""
        return self._intf.invoke(ScenarioAnimation._metadata, ScenarioAnimation._get_time_array_component_metadata, OutArg())

    _get_time_array_qualified_path_metadata = { "offset" : _get_time_array_qualified_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    def get_time_array_qualified_path(self) -> str:
        """Return the time array component's qualified path or null if no component has been configured yet."""
        return self._intf.invoke(ScenarioAnimation._metadata, ScenarioAnimation._get_time_array_qualified_path_metadata, OutArg())

    _reset_time_array_component_metadata = { "offset" : _reset_time_array_component_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reset_time_array_component(self) -> None:
        """Remove and resets the display configuration by unsetting currently set time array component (if any)."""
        return self._intf.invoke(ScenarioAnimation._metadata, ScenarioAnimation._reset_time_array_component_metadata, )

    _property_names[start_time] = "start_time"
    _property_names[enable_anim_cycle_time] = "enable_anim_cycle_time"
    _property_names[animation_cycle_time] = "animation_cycle_time"
    _property_names[animation_step_value] = "animation_step_value"
    _property_names[refresh_delta] = "refresh_delta"
    _property_names[animation_end_loop_type] = "animation_end_loop_type"
    _property_names[refresh_delta_type] = "refresh_delta_type"
    _property_names[animation_step_type] = "animation_step_type"
    _property_names[continue_x_real_time_from_pause] = "continue_x_real_time_from_pause"
    _property_names[time_period] = "time_period"
    _property_names[time_array_increment] = "time_array_increment"

    def __init__(self, source_object=None):
        """Construct an object of type ScenarioAnimation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScenarioAnimation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScenarioAnimation, [ScenarioAnimation, ])

agcls.AgClassCatalog.add_catalog_entry((5154334488224517643, 5612413963943126656), ScenarioAnimation)
agcls.AgTypeNameMap["ScenarioAnimation"] = ScenarioAnimation

class ScenarioEarthData(SupportsDeleteCallback):
    """ScenarioEarthData Interface for Earth Orientation Parameters."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_eop_filename_method_offset = 1
    _set_eop_filename_method_offset = 2
    _get_eop_start_time_method_offset = 3
    _get_eop_stop_time_method_offset = 4
    _reload_eop_method_offset = 5
    _metadata = {
        "iid_data" : (4914028457241956580, 7820557051766291078),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScenarioEarthData)

    _get_eop_filename_metadata = { "offset" : _get_eop_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def eop_filename(self) -> str:
        """Filename of an EOP file (.dat) located in the DynamicEarthData directory or an EOP file (.txt) provided by CelesTrak, which can be downloaded from http://celestrak.org/SpaceData/."""
        return self._intf.get_property(ScenarioEarthData._metadata, ScenarioEarthData._get_eop_filename_metadata)

    _set_eop_filename_metadata = { "offset" : _set_eop_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @eop_filename.setter
    def eop_filename(self, value:str) -> None:
        return self._intf.set_property(ScenarioEarthData._metadata, ScenarioEarthData._set_eop_filename_metadata, value)

    _get_eop_start_time_metadata = { "offset" : _get_eop_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def eop_start_time(self) -> typing.Any:
        """Start time of the EOP data. Uses DateFormat Dimension."""
        return self._intf.get_property(ScenarioEarthData._metadata, ScenarioEarthData._get_eop_start_time_metadata)

    _get_eop_stop_time_metadata = { "offset" : _get_eop_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def eop_stop_time(self) -> typing.Any:
        """Stop time of the EOP data. Uses DateFormat Dimension."""
        return self._intf.get_property(ScenarioEarthData._metadata, ScenarioEarthData._get_eop_stop_time_metadata)

    _reload_eop_metadata = { "offset" : _reload_eop_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reload_eop(self) -> None:
        """Reload the EOP file."""
        return self._intf.invoke(ScenarioEarthData._metadata, ScenarioEarthData._reload_eop_metadata, )

    _property_names[eop_filename] = "eop_filename"
    _property_names[eop_start_time] = "eop_start_time"
    _property_names[eop_stop_time] = "eop_stop_time"

    def __init__(self, source_object=None):
        """Construct an object of type ScenarioEarthData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScenarioEarthData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScenarioEarthData, [ScenarioEarthData, ])

agcls.AgClassCatalog.add_catalog_entry((5694259344082467474, 11937819757723821460), ScenarioEarthData)
agcls.AgTypeNameMap["ScenarioEarthData"] = ScenarioEarthData

class ScenarioGraphics(SupportsDeleteCallback):
    """ScenarioGraphics Interface for Scenario-level 2D Graphics attributes."""

    _num_methods = 46
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_label_method_offset = 1
    _set_show_label_method_offset = 2
    _get_show_sensors_method_offset = 3
    _set_show_sensors_method_offset = 4
    _get_access_lines_are_visible_method_offset = 5
    _set_access_lines_are_visible_method_offset = 6
    _get_access_animation_highlights_method_offset = 7
    _set_access_animation_highlights_method_offset = 8
    _get_access_static_highlights_method_offset = 9
    _set_access_static_highlights_method_offset = 10
    _get_show_ground_tracks_method_offset = 11
    _set_show_ground_tracks_method_offset = 12
    _get_show_ground_markers_method_offset = 13
    _set_show_ground_markers_method_offset = 14
    _get_show_orbits_method_offset = 15
    _set_show_orbits_method_offset = 16
    _get_show_orbit_markers_method_offset = 17
    _set_show_orbit_markers_method_offset = 18
    _get_show_element_set_number_method_offset = 19
    _set_show_element_set_number_method_offset = 20
    _get_show_area_target_centroids_method_offset = 21
    _set_show_area_target_centroids_method_offset = 22
    _get_show_planet_orbits_method_offset = 23
    _set_show_planet_orbits_method_offset = 24
    _get_show_inertial_position_method_offset = 25
    _set_show_inertial_position_method_offset = 26
    _get_show_inertial_position_labels_method_offset = 27
    _set_show_inertial_position_labels_method_offset = 28
    _get_show_sub_planet_points_method_offset = 29
    _set_show_sub_planet_points_method_offset = 30
    _get_show_sub_planet_labels_method_offset = 31
    _set_show_sub_planet_labels_method_offset = 32
    _get_allow_animation_update_method_offset = 33
    _set_allow_animation_update_method_offset = 34
    _get_text_outline_style_method_offset = 35
    _set_text_outline_style_method_offset = 36
    _get_text_outline_color_method_offset = 37
    _set_text_outline_color_method_offset = 38
    _show_object_method_offset = 39
    _show_objects_method_offset = 40
    _hide_object_method_offset = 41
    _hide_objects_method_offset = 42
    _get_access_lines_width_method_offset = 43
    _set_access_lines_width_method_offset = 44
    _get_access_line_style_method_offset = 45
    _set_access_line_style_method_offset = 46
    _metadata = {
        "iid_data" : (5253694955302692391, 18133985439497819016),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScenarioGraphics)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Specify whether to show labels of objects on the 2D map (general)."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_label_metadata, value)

    _get_show_sensors_metadata = { "offset" : _get_show_sensors_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sensors(self) -> bool:
        """Specify whether to show sensors on the 2D map."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_sensors_metadata)

    _set_show_sensors_metadata = { "offset" : _set_show_sensors_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sensors.setter
    def show_sensors(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_sensors_metadata, value)

    _get_access_lines_are_visible_metadata = { "offset" : _get_access_lines_are_visible_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def access_lines_are_visible(self) -> bool:
        """Specify whether to display lines during animation between objects participating in an access."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_access_lines_are_visible_metadata)

    _set_access_lines_are_visible_metadata = { "offset" : _set_access_lines_are_visible_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @access_lines_are_visible.setter
    def access_lines_are_visible(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_access_lines_are_visible_metadata, value)

    _get_access_animation_highlights_metadata = { "offset" : _get_access_animation_highlights_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def access_animation_highlights(self) -> bool:
        """Specify whether to display access animation highlights, i.e. boxes around objects participating in an access."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_access_animation_highlights_metadata)

    _set_access_animation_highlights_metadata = { "offset" : _set_access_animation_highlights_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @access_animation_highlights.setter
    def access_animation_highlights(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_access_animation_highlights_metadata, value)

    _get_access_static_highlights_metadata = { "offset" : _get_access_static_highlights_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def access_static_highlights(self) -> bool:
        """Specify whether to display access static highlights, i.e. thick lines overlying the ground track of a vehicle during access periods."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_access_static_highlights_metadata)

    _set_access_static_highlights_metadata = { "offset" : _set_access_static_highlights_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @access_static_highlights.setter
    def access_static_highlights(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_access_static_highlights_metadata, value)

    _get_show_ground_tracks_metadata = { "offset" : _get_show_ground_tracks_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_ground_tracks(self) -> bool:
        """Specify whether to display vehicle ground tracks."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_ground_tracks_metadata)

    _set_show_ground_tracks_metadata = { "offset" : _set_show_ground_tracks_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_ground_tracks.setter
    def show_ground_tracks(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_ground_tracks_metadata, value)

    _get_show_ground_markers_metadata = { "offset" : _get_show_ground_markers_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_ground_markers(self) -> bool:
        """Specify whether to display vehicle ground markers."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_ground_markers_metadata)

    _set_show_ground_markers_metadata = { "offset" : _set_show_ground_markers_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_ground_markers.setter
    def show_ground_markers(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_ground_markers_metadata, value)

    _get_show_orbits_metadata = { "offset" : _get_show_orbits_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_orbits(self) -> bool:
        """Specify whether to display satellite orbits and trajectories of missiles and launch vehicles."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_orbits_metadata)

    _set_show_orbits_metadata = { "offset" : _set_show_orbits_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_orbits.setter
    def show_orbits(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_orbits_metadata, value)

    _get_show_orbit_markers_metadata = { "offset" : _get_show_orbit_markers_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_orbit_markers(self) -> bool:
        """Specify whether to display satellite orbit markers and missile and launch vehicle trajectory markers."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_orbit_markers_metadata)

    _set_show_orbit_markers_metadata = { "offset" : _set_show_orbit_markers_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_orbit_markers.setter
    def show_orbit_markers(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_orbit_markers_metadata, value)

    _get_show_element_set_number_metadata = { "offset" : _get_show_element_set_number_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_element_set_number(self) -> bool:
        """Specify whether to display satellite elset numbers."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_element_set_number_metadata)

    _set_show_element_set_number_metadata = { "offset" : _set_show_element_set_number_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_element_set_number.setter
    def show_element_set_number(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_element_set_number_metadata, value)

    _get_show_area_target_centroids_metadata = { "offset" : _get_show_area_target_centroids_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_area_target_centroids(self) -> bool:
        """Specify whether to display area target centroids."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_area_target_centroids_metadata)

    _set_show_area_target_centroids_metadata = { "offset" : _set_show_area_target_centroids_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_area_target_centroids.setter
    def show_area_target_centroids(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_area_target_centroids_metadata, value)

    _get_show_planet_orbits_metadata = { "offset" : _get_show_planet_orbits_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_planet_orbits(self) -> bool:
        """Specify whether to display planetary orbits."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_planet_orbits_metadata)

    _set_show_planet_orbits_metadata = { "offset" : _set_show_planet_orbits_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_planet_orbits.setter
    def show_planet_orbits(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_planet_orbits_metadata, value)

    _get_show_inertial_position_metadata = { "offset" : _get_show_inertial_position_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_inertial_position(self) -> bool:
        """Specify whether to display the inertial positions of planets."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_inertial_position_metadata)

    _set_show_inertial_position_metadata = { "offset" : _set_show_inertial_position_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_inertial_position.setter
    def show_inertial_position(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_inertial_position_metadata, value)

    _get_show_inertial_position_labels_metadata = { "offset" : _get_show_inertial_position_labels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_inertial_position_labels(self) -> bool:
        """Specify whether to display labels at the inertial positions of planets."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_inertial_position_labels_metadata)

    _set_show_inertial_position_labels_metadata = { "offset" : _set_show_inertial_position_labels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_inertial_position_labels.setter
    def show_inertial_position_labels(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_inertial_position_labels_metadata, value)

    _get_show_sub_planet_points_metadata = { "offset" : _get_show_sub_planet_points_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sub_planet_points(self) -> bool:
        """Specify whether to display sub-planet points."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_sub_planet_points_metadata)

    _set_show_sub_planet_points_metadata = { "offset" : _set_show_sub_planet_points_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sub_planet_points.setter
    def show_sub_planet_points(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_sub_planet_points_metadata, value)

    _get_show_sub_planet_labels_metadata = { "offset" : _get_show_sub_planet_labels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sub_planet_labels(self) -> bool:
        """Specify whether to display labels for sub-planet points."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_show_sub_planet_labels_metadata)

    _set_show_sub_planet_labels_metadata = { "offset" : _set_show_sub_planet_labels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sub_planet_labels.setter
    def show_sub_planet_labels(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_show_sub_planet_labels_metadata, value)

    _get_allow_animation_update_metadata = { "offset" : _get_allow_animation_update_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_animation_update(self) -> bool:
        """Specify whether to allow animation updates."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_allow_animation_update_metadata)

    _set_allow_animation_update_metadata = { "offset" : _set_allow_animation_update_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_animation_update.setter
    def allow_animation_update(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_allow_animation_update_metadata, value)

    _get_text_outline_style_metadata = { "offset" : _get_text_outline_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TextOutlineStyle),) }
    @property
    def text_outline_style(self) -> "TextOutlineStyle":
        """Default text outline style."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_text_outline_style_metadata)

    _set_text_outline_style_metadata = { "offset" : _set_text_outline_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TextOutlineStyle),) }
    @text_outline_style.setter
    def text_outline_style(self, text_outline_style:"TextOutlineStyle") -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_text_outline_style_metadata, text_outline_style)

    _get_text_outline_color_metadata = { "offset" : _get_text_outline_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def text_outline_color(self) -> agcolor.Color:
        """Default text outline color."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_text_outline_color_metadata)

    _set_text_outline_color_metadata = { "offset" : _set_text_outline_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @text_outline_color.setter
    def text_outline_color(self, text_outline_color:agcolor.Color) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_text_outline_color_metadata, text_outline_color)

    _show_object_metadata = { "offset" : _show_object_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def show_object(self, trunc_path:str, window_id:str) -> None:
        """Show the object identified by its path in a specified 2D window. Users can specify either a window identifier or a window title or 'all' to show the object in all 2d windows."""
        return self._intf.invoke(ScenarioGraphics._metadata, ScenarioGraphics._show_object_metadata, trunc_path, window_id)

    _show_objects_metadata = { "offset" : _show_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), agcom.BSTR,),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.BStrArg,) }
    def show_objects(self, trunc_object_paths:list, window_id_or_title:str) -> None:
        """Show multiple objects in a specified 2D window. Users can specify either a window identifier or a window title or 'all' to show the objects in all 2d windows."""
        return self._intf.invoke(ScenarioGraphics._metadata, ScenarioGraphics._show_objects_metadata, trunc_object_paths, window_id_or_title)

    _hide_object_metadata = { "offset" : _hide_object_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def hide_object(self, trunc_path:str, window_id:str) -> None:
        """Hides the object identified by its path in a specified 2D window. Users can specify either a window identifier or a window title or 'all' to hide the object in all 2d windows."""
        return self._intf.invoke(ScenarioGraphics._metadata, ScenarioGraphics._hide_object_metadata, trunc_path, window_id)

    _hide_objects_metadata = { "offset" : _hide_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), agcom.BSTR,),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.BStrArg,) }
    def hide_objects(self, trunc_object_paths:list, window_id_or_title:str) -> None:
        """Hides multiple objects in a specified 2D window. Users can specify either a window identifier or a window title or 'all' to hide objects in all 2d windows."""
        return self._intf.invoke(ScenarioGraphics._metadata, ScenarioGraphics._hide_objects_metadata, trunc_object_paths, window_id_or_title)

    _get_access_lines_width_metadata = { "offset" : _get_access_lines_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def access_lines_width(self) -> int:
        """Line width of lines between objects participating in an access."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_access_lines_width_metadata)

    _set_access_lines_width_metadata = { "offset" : _set_access_lines_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @access_lines_width.setter
    def access_lines_width(self, value:int) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_access_lines_width_metadata, value)

    _get_access_line_style_metadata = { "offset" : _get_access_line_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def access_line_style(self) -> str:
        """Line style of lines between objects participating in an access."""
        return self._intf.get_property(ScenarioGraphics._metadata, ScenarioGraphics._get_access_line_style_metadata)

    _set_access_line_style_metadata = { "offset" : _set_access_line_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @access_line_style.setter
    def access_line_style(self, value:str) -> None:
        return self._intf.set_property(ScenarioGraphics._metadata, ScenarioGraphics._set_access_line_style_metadata, value)

    _property_names[show_label] = "show_label"
    _property_names[show_sensors] = "show_sensors"
    _property_names[access_lines_are_visible] = "access_lines_are_visible"
    _property_names[access_animation_highlights] = "access_animation_highlights"
    _property_names[access_static_highlights] = "access_static_highlights"
    _property_names[show_ground_tracks] = "show_ground_tracks"
    _property_names[show_ground_markers] = "show_ground_markers"
    _property_names[show_orbits] = "show_orbits"
    _property_names[show_orbit_markers] = "show_orbit_markers"
    _property_names[show_element_set_number] = "show_element_set_number"
    _property_names[show_area_target_centroids] = "show_area_target_centroids"
    _property_names[show_planet_orbits] = "show_planet_orbits"
    _property_names[show_inertial_position] = "show_inertial_position"
    _property_names[show_inertial_position_labels] = "show_inertial_position_labels"
    _property_names[show_sub_planet_points] = "show_sub_planet_points"
    _property_names[show_sub_planet_labels] = "show_sub_planet_labels"
    _property_names[allow_animation_update] = "allow_animation_update"
    _property_names[text_outline_style] = "text_outline_style"
    _property_names[text_outline_color] = "text_outline_color"
    _property_names[access_lines_width] = "access_lines_width"
    _property_names[access_line_style] = "access_line_style"

    def __init__(self, source_object=None):
        """Construct an object of type ScenarioGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScenarioGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScenarioGraphics, [ScenarioGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((4810457788618205825, 11630455301409015967), ScenarioGraphics)
agcls.AgTypeNameMap["ScenarioGraphics"] = ScenarioGraphics

class TerrainCollection(SupportsDeleteCallback):
    """TerrainCollection lists all the terrain data files available in this scenario for visualization and analysis."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _get__new_enum_method_offset = 2
    _item_method_offset = 3
    _add_method_offset = 4
    _remove_method_offset = 5
    _remove_all_method_offset = 6
    _metadata = {
        "iid_data" : (5192093322975366697, 3083317941595602862),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TerrainCollection)
    def __iter__(self):
        """Create an iterator for the TerrainCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "Terrain":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """The number of items in the collection."""
        return self._intf.get_property(TerrainCollection._metadata, TerrainCollection._get_count_metadata)

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the collection."""
        return self._intf.get_property(TerrainCollection._metadata, TerrainCollection._get__new_enum_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "Terrain":
        """Given an index, returns an Terrain interface."""
        return self._intf.invoke(TerrainCollection._metadata, TerrainCollection._item_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.EnumArg(TerrainFileType), agmarshall.InterfaceOutArg,) }
    def add(self, location:str, terrain_file_type:"TerrainFileType") -> "Terrain":
        """Add a terrain item to the collection."""
        return self._intf.invoke(TerrainCollection._metadata, TerrainCollection._add_metadata, location, terrain_file_type, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove(self, index:int) -> None:
        """Remove a given index from the collection."""
        return self._intf.invoke(TerrainCollection._metadata, TerrainCollection._remove_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all items from the collections."""
        return self._intf.invoke(TerrainCollection._metadata, TerrainCollection._remove_all_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type TerrainCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TerrainCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TerrainCollection, [TerrainCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5203989955593762280, 5231741367379318702), TerrainCollection)
agcls.AgTypeNameMap["TerrainCollection"] = TerrainCollection

class Terrain(SupportsDeleteCallback):
    """Terrain Interface."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_location_method_offset = 1
    _set_location_method_offset = 2
    _get_file_type_method_offset = 3
    _get_southwest_latitude_method_offset = 4
    _get_southwest_longitude_method_offset = 5
    _get_northeast_latitude_method_offset = 6
    _get_northeast_longitude_method_offset = 7
    _get_resolution_method_offset = 8
    _get_use_terrain_method_offset = 9
    _set_use_terrain_method_offset = 10
    _metadata = {
        "iid_data" : (4675476867818799717, 4336635340734435000),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Terrain)

    _get_location_metadata = { "offset" : _get_location_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def location(self) -> str:
        """Location of the terrain contained in the terrain data file."""
        return self._intf.get_property(Terrain._metadata, Terrain._get_location_metadata)

    _set_location_metadata = { "offset" : _set_location_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @location.setter
    def location(self, value:str) -> None:
        return self._intf.set_property(Terrain._metadata, Terrain._set_location_metadata, value)

    _get_file_type_metadata = { "offset" : _get_file_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TerrainFileType),) }
    @property
    def file_type(self) -> "TerrainFileType":
        """Type of terrain data file. A member of the TerrainFileType enumeration."""
        return self._intf.get_property(Terrain._metadata, Terrain._get_file_type_metadata)

    _get_southwest_latitude_metadata = { "offset" : _get_southwest_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def southwest_latitude(self) -> typing.Any:
        """Latitude of the southwest corner of the terrain contained in the terrain data file. Uses Angle Dimension."""
        return self._intf.get_property(Terrain._metadata, Terrain._get_southwest_latitude_metadata)

    _get_southwest_longitude_metadata = { "offset" : _get_southwest_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def southwest_longitude(self) -> typing.Any:
        """Longitude of the southwest corner of the terrain contained in the terrain data file. Uses Angle Dimension."""
        return self._intf.get_property(Terrain._metadata, Terrain._get_southwest_longitude_metadata)

    _get_northeast_latitude_metadata = { "offset" : _get_northeast_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def northeast_latitude(self) -> typing.Any:
        """Latitude of the northeast corner of the terrain contained in the terrain data file. Uses Angle Dimension."""
        return self._intf.get_property(Terrain._metadata, Terrain._get_northeast_latitude_metadata)

    _get_northeast_longitude_metadata = { "offset" : _get_northeast_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def northeast_longitude(self) -> typing.Any:
        """Latitude of the northeast corner of the terrain contained in the terrain data file. Uses Angle Dimension."""
        return self._intf.get_property(Terrain._metadata, Terrain._get_northeast_longitude_metadata)

    _get_resolution_metadata = { "offset" : _get_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def resolution(self) -> typing.Any:
        """Resolution of the terrain data. Uses Angle Dimension."""
        return self._intf.get_property(Terrain._metadata, Terrain._get_resolution_metadata)

    _get_use_terrain_metadata = { "offset" : _get_use_terrain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain(self) -> bool:
        """Whether to use the terrain."""
        return self._intf.get_property(Terrain._metadata, Terrain._get_use_terrain_metadata)

    _set_use_terrain_metadata = { "offset" : _set_use_terrain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain.setter
    def use_terrain(self, use:bool) -> None:
        return self._intf.set_property(Terrain._metadata, Terrain._set_use_terrain_metadata, use)

    _property_names[location] = "location"
    _property_names[file_type] = "file_type"
    _property_names[southwest_latitude] = "southwest_latitude"
    _property_names[southwest_longitude] = "southwest_longitude"
    _property_names[northeast_latitude] = "northeast_latitude"
    _property_names[northeast_longitude] = "northeast_longitude"
    _property_names[resolution] = "resolution"
    _property_names[use_terrain] = "use_terrain"

    def __init__(self, source_object=None):
        """Construct an object of type Terrain."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Terrain)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Terrain, [Terrain, ])

agcls.AgClassCatalog.add_catalog_entry((4740275445935473076, 8700316583734645162), Terrain)
agcls.AgTypeNameMap["Terrain"] = Terrain

class Tileset3DCollection(SupportsDeleteCallback):
    """Tileset3DCollection lists all the terrain data files available in this scenario for visualization and analysis."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _get__new_enum_method_offset = 2
    _item_method_offset = 3
    _add_method_offset = 4
    _remove_method_offset = 5
    _remove_all_method_offset = 6
    _metadata = {
        "iid_data" : (5202234159614707852, 791077437488277689),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Tileset3DCollection)
    def __iter__(self):
        """Create an iterator for the Tileset3DCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "Tileset3D":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Get the number of items in the collection."""
        return self._intf.get_property(Tileset3DCollection._metadata, Tileset3DCollection._get_count_metadata)

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the collection."""
        return self._intf.get_property(Tileset3DCollection._metadata, Tileset3DCollection._get__new_enum_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "Tileset3D":
        """Given an index, returns an Tileset3D interface."""
        return self._intf.invoke(Tileset3DCollection._metadata, Tileset3DCollection._item_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR, agcom.LONG, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.EnumArg(Tileset3DSourceType), agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, name:str, uri:str, source_type:"Tileset3DSourceType", reference_frame:str) -> "Tileset3D":
        """Add a 3DTileset item to the collection."""
        return self._intf.invoke(Tileset3DCollection._metadata, Tileset3DCollection._add_metadata, name, uri, source_type, reference_frame, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove(self, index:int) -> None:
        """Remove a given index from the collection."""
        return self._intf.invoke(Tileset3DCollection._metadata, Tileset3DCollection._remove_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all items from the collections."""
        return self._intf.invoke(Tileset3DCollection._metadata, Tileset3DCollection._remove_all_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type Tileset3DCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Tileset3DCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Tileset3DCollection, [Tileset3DCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5714052653997082118, 3380711271918672570), Tileset3DCollection)
agcls.AgTypeNameMap["Tileset3DCollection"] = Tileset3DCollection

class Tileset3D(SupportsDeleteCallback):
    """Tileset3D Interface."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_source_type_method_offset = 2
    _get_uri_method_offset = 3
    _get_reference_frame_method_offset = 4
    _metadata = {
        "iid_data" : (4813299669746568080, 957608419453439622),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Tileset3D)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Name of the 3DTileset."""
        return self._intf.get_property(Tileset3D._metadata, Tileset3D._get_name_metadata)

    _get_source_type_metadata = { "offset" : _get_source_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Tileset3DSourceType),) }
    @property
    def source_type(self) -> "Tileset3DSourceType":
        """Source type of the 3DTileset. A member of the Tileset3DSourceType enumeration."""
        return self._intf.get_property(Tileset3D._metadata, Tileset3D._get_source_type_metadata)

    _get_uri_metadata = { "offset" : _get_uri_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def uri(self) -> str:
        """URI of the 3DTileset asset."""
        return self._intf.get_property(Tileset3D._metadata, Tileset3D._get_uri_metadata)

    _get_reference_frame_metadata = { "offset" : _get_reference_frame_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reference_frame(self) -> str:
        """Reference Frame (VGT System) of the 3DTileset."""
        return self._intf.get_property(Tileset3D._metadata, Tileset3D._get_reference_frame_metadata)

    _property_names[name] = "name"
    _property_names[source_type] = "source_type"
    _property_names[uri] = "uri"
    _property_names[reference_frame] = "reference_frame"

    def __init__(self, source_object=None):
        """Construct an object of type Tileset3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Tileset3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Tileset3D, [Tileset3D, ])

agcls.AgClassCatalog.add_catalog_entry((4735437201483939658, 6454651832660307094), Tileset3D)
agcls.AgTypeNameMap["Tileset3D"] = Tileset3D

class ScenarioDatabaseCollection(SupportsDeleteCallback):
    """Represents a collection of the scenario's databases."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _get__new_enum_method_offset = 2
    _item_method_offset = 3
    _metadata = {
        "iid_data" : (4916764011436429084, 7123221991685404350),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScenarioDatabaseCollection)
    def __iter__(self):
        """Create an iterator for the ScenarioDatabaseCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "ScenarioDatabase":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return a number of elements in the collection."""
        return self._intf.get_property(ScenarioDatabaseCollection._metadata, ScenarioDatabaseCollection._get_count_metadata)

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates the elements in the collection."""
        return self._intf.get_property(ScenarioDatabaseCollection._metadata, ScenarioDatabaseCollection._get__new_enum_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "ScenarioDatabase":
        """Return scenario database settings at a specified position."""
        return self._intf.invoke(ScenarioDatabaseCollection._metadata, ScenarioDatabaseCollection._item_metadata, index, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type ScenarioDatabaseCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScenarioDatabaseCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScenarioDatabaseCollection, [ScenarioDatabaseCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5124317609840633953, 17743050031725128850), ScenarioDatabaseCollection)
agcls.AgTypeNameMap["ScenarioDatabaseCollection"] = ScenarioDatabaseCollection

class ScenarioDatabase(SupportsDeleteCallback):
    """Represents a scenario database."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _get_default_database_method_offset = 2
    _set_default_database_method_offset = 3
    _get_default_direction_method_offset = 4
    _set_default_direction_method_offset = 5
    _get_enable_auxiliary_database_method_offset = 6
    _set_enable_auxiliary_database_method_offset = 7
    _get_auxiliary_database_method_offset = 8
    _set_auxiliary_database_method_offset = 9
    _metadata = {
        "iid_data" : (5745856774802782021, 1385603642778069122),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScenarioDatabase)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def type(self) -> str:
        """The type of objects in the database."""
        return self._intf.get_property(ScenarioDatabase._metadata, ScenarioDatabase._get_type_metadata)

    _get_default_database_metadata = { "offset" : _get_default_database_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def default_database(self) -> str:
        """The default database file."""
        return self._intf.get_property(ScenarioDatabase._metadata, ScenarioDatabase._get_default_database_metadata)

    _set_default_database_metadata = { "offset" : _set_default_database_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @default_database.setter
    def default_database(self, value:str) -> None:
        return self._intf.set_property(ScenarioDatabase._metadata, ScenarioDatabase._set_default_database_metadata, value)

    _get_default_direction_metadata = { "offset" : _get_default_direction_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def default_direction(self) -> str:
        """The default directory of the database file."""
        return self._intf.get_property(ScenarioDatabase._metadata, ScenarioDatabase._get_default_direction_metadata)

    _set_default_direction_metadata = { "offset" : _set_default_direction_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @default_direction.setter
    def default_direction(self, value:str) -> None:
        return self._intf.set_property(ScenarioDatabase._metadata, ScenarioDatabase._set_default_direction_metadata, value)

    _get_enable_auxiliary_database_metadata = { "offset" : _get_enable_auxiliary_database_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_auxiliary_database(self) -> bool:
        """Enable the auxiliary database."""
        return self._intf.get_property(ScenarioDatabase._metadata, ScenarioDatabase._get_enable_auxiliary_database_metadata)

    _set_enable_auxiliary_database_metadata = { "offset" : _set_enable_auxiliary_database_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_auxiliary_database.setter
    def enable_auxiliary_database(self, value:bool) -> None:
        return self._intf.set_property(ScenarioDatabase._metadata, ScenarioDatabase._set_enable_auxiliary_database_metadata, value)

    _get_auxiliary_database_metadata = { "offset" : _get_auxiliary_database_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def auxiliary_database(self) -> str:
        """The auxiliary database file."""
        return self._intf.get_property(ScenarioDatabase._metadata, ScenarioDatabase._get_auxiliary_database_metadata)

    _set_auxiliary_database_metadata = { "offset" : _set_auxiliary_database_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @auxiliary_database.setter
    def auxiliary_database(self, value:str) -> None:
        return self._intf.set_property(ScenarioDatabase._metadata, ScenarioDatabase._set_auxiliary_database_metadata, value)

    _property_names[type] = "type"
    _property_names[default_database] = "default_database"
    _property_names[default_direction] = "default_direction"
    _property_names[enable_auxiliary_database] = "enable_auxiliary_database"
    _property_names[auxiliary_database] = "auxiliary_database"

    def __init__(self, source_object=None):
        """Construct an object of type ScenarioDatabase."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScenarioDatabase)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScenarioDatabase, [ScenarioDatabase, ])

agcls.AgClassCatalog.add_catalog_entry((4756863673622867081, 3285640988915904411), ScenarioDatabase)
agcls.AgTypeNameMap["ScenarioDatabase"] = ScenarioDatabase

class ScenarioGraphics3D(SupportsDeleteCallback):
    """
    Scenario 3D Graphics Attributes.

    Examples
    --------
    Change the scenario font:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> scenario = root.current_scenario
    >>> scenario.graphics_3d.medium_font.name = "Arial"
    >>> scenario.graphics_3d.medium_font.point_size = 18
    >>> scenario.graphics_3d.medium_font.bold = True
    >>> scenario.graphics_3d.medium_font.italic = False
    """

    _num_methods = 24
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_chunk_image_cache_size_method_offset = 1
    _set_chunk_image_cache_size_method_offset = 2
    _get_is_negative_altitude_allowed_method_offset = 3
    _set_is_negative_altitude_allowed_method_offset = 4
    _get_small_font_method_offset = 5
    _get_medium_font_method_offset = 6
    _get_large_font_method_offset = 7
    _get_surface_reference_method_offset = 8
    _set_surface_reference_method_offset = 9
    _get_draw_on_terrain_method_offset = 10
    _set_draw_on_terrain_method_offset = 11
    _get_chunk_terrain_cache_size_method_offset = 12
    _set_chunk_terrain_cache_size_method_offset = 13
    _get_text_outline_style_method_offset = 14
    _set_text_outline_style_method_offset = 15
    _get_text_outline_color_method_offset = 16
    _set_text_outline_color_method_offset = 17
    _get_text_anti_aliasing_enabled_method_offset = 18
    _set_text_anti_aliasing_enabled_method_offset = 19
    _available_marker_types_method_offset = 20
    _show_object_method_offset = 21
    _show_objects_method_offset = 22
    _hide_object_method_offset = 23
    _hide_objects_method_offset = 24
    _metadata = {
        "iid_data" : (5046253949198082210, 3954563668359180430),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScenarioGraphics3D)

    _get_chunk_image_cache_size_metadata = { "offset" : _get_chunk_image_cache_size_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def chunk_image_cache_size(self) -> int:
        """Chunk image cache size (MB). The texture cache temporarily stores chunk imagery for the globe. You may need to increase the size of the cache if all specified terrain cannot be loaded at the same time or the terrain is blurry."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_chunk_image_cache_size_metadata)

    _set_chunk_image_cache_size_metadata = { "offset" : _set_chunk_image_cache_size_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @chunk_image_cache_size.setter
    def chunk_image_cache_size(self, chunk_image_cache_size:int) -> None:
        return self._intf.set_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._set_chunk_image_cache_size_metadata, chunk_image_cache_size)

    _get_is_negative_altitude_allowed_metadata = { "offset" : _get_is_negative_altitude_allowed_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_negative_altitude_allowed(self) -> bool:
        """Specify whether to allow negative altitudes for great arc vehicles and for facilities, places and targets."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_is_negative_altitude_allowed_metadata)

    _set_is_negative_altitude_allowed_metadata = { "offset" : _set_is_negative_altitude_allowed_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @is_negative_altitude_allowed.setter
    def is_negative_altitude_allowed(self, is_negative_altitude_allowed:bool) -> None:
        return self._intf.set_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._set_is_negative_altitude_allowed_metadata, is_negative_altitude_allowed)

    _get_small_font_metadata = { "offset" : _get_small_font_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def small_font(self) -> "Scenario3dFont":
        """Retrieve small font metrics."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_small_font_metadata)

    _get_medium_font_metadata = { "offset" : _get_medium_font_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def medium_font(self) -> "Scenario3dFont":
        """Retrieve medium font metrics."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_medium_font_metadata)

    _get_large_font_metadata = { "offset" : _get_large_font_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def large_font(self) -> "Scenario3dFont":
        """Retrieve large font metrics."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_large_font_metadata)

    _get_surface_reference_metadata = { "offset" : _get_surface_reference_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SurfaceReference),) }
    @property
    def surface_reference(self) -> "SurfaceReference":
        """Opt to display the globe's surface at the mean sea level (MSL) or at the central body's reference ellipsoid (WGS84)."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_surface_reference_metadata)

    _set_surface_reference_metadata = { "offset" : _set_surface_reference_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SurfaceReference),) }
    @surface_reference.setter
    def surface_reference(self, type:"SurfaceReference") -> None:
        return self._intf.set_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._set_surface_reference_metadata, type)

    _get_draw_on_terrain_metadata = { "offset" : _get_draw_on_terrain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def draw_on_terrain(self) -> bool:
        """If true, lines drawn on the globe such as those that define area and line targets, range rings, vehicle paths, map details, etc. will conform to the terrain on the globe. Otherwise, if terrain is present, the lines may go under or float over the terrain."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_draw_on_terrain_metadata)

    _set_draw_on_terrain_metadata = { "offset" : _set_draw_on_terrain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @draw_on_terrain.setter
    def draw_on_terrain(self, value:bool) -> None:
        return self._intf.set_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._set_draw_on_terrain_metadata, value)

    _get_chunk_terrain_cache_size_metadata = { "offset" : _get_chunk_terrain_cache_size_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def chunk_terrain_cache_size(self) -> int:
        """Chunk terrain cache size (MB)."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_chunk_terrain_cache_size_metadata)

    _set_chunk_terrain_cache_size_metadata = { "offset" : _set_chunk_terrain_cache_size_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @chunk_terrain_cache_size.setter
    def chunk_terrain_cache_size(self, chunk_terrain_cache_size:int) -> None:
        return self._intf.set_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._set_chunk_terrain_cache_size_metadata, chunk_terrain_cache_size)

    _get_text_outline_style_metadata = { "offset" : _get_text_outline_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TextOutlineStyle),) }
    @property
    def text_outline_style(self) -> "TextOutlineStyle":
        """Default text outline style."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_text_outline_style_metadata)

    _set_text_outline_style_metadata = { "offset" : _set_text_outline_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TextOutlineStyle),) }
    @text_outline_style.setter
    def text_outline_style(self, text_outline_style:"TextOutlineStyle") -> None:
        return self._intf.set_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._set_text_outline_style_metadata, text_outline_style)

    _get_text_outline_color_metadata = { "offset" : _get_text_outline_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def text_outline_color(self) -> agcolor.Color:
        """Default text outline color."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_text_outline_color_metadata)

    _set_text_outline_color_metadata = { "offset" : _set_text_outline_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @text_outline_color.setter
    def text_outline_color(self, text_outline_color:agcolor.Color) -> None:
        return self._intf.set_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._set_text_outline_color_metadata, text_outline_color)

    _get_text_anti_aliasing_enabled_metadata = { "offset" : _get_text_anti_aliasing_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def text_anti_aliasing_enabled(self) -> bool:
        """True if the text anti-aliasing is turned on."""
        return self._intf.get_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._get_text_anti_aliasing_enabled_metadata)

    _set_text_anti_aliasing_enabled_metadata = { "offset" : _set_text_anti_aliasing_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @text_anti_aliasing_enabled.setter
    def text_anti_aliasing_enabled(self, text_antialiasing_enabled:bool) -> None:
        return self._intf.set_property(ScenarioGraphics3D._metadata, ScenarioGraphics3D._set_text_anti_aliasing_enabled_metadata, text_antialiasing_enabled)

    _available_marker_types_metadata = { "offset" : _available_marker_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def available_marker_types(self) -> list:
        """Retrieve the list of available MarkerTypes."""
        return self._intf.invoke(ScenarioGraphics3D._metadata, ScenarioGraphics3D._available_marker_types_metadata, OutArg())

    _show_object_metadata = { "offset" : _show_object_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def show_object(self, trunc_path:str, window_id:str) -> None:
        """Show the object identified by its path in a specified 3D window. Users can specify either a window identifier or a window title or 'all' to show the object in all 3d windows."""
        return self._intf.invoke(ScenarioGraphics3D._metadata, ScenarioGraphics3D._show_object_metadata, trunc_path, window_id)

    _show_objects_metadata = { "offset" : _show_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), agcom.BSTR,),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.BStrArg,) }
    def show_objects(self, trunc_object_paths:list, window_id_or_title:str) -> None:
        """Show multiple objects in a specified 3D window. Users can specify either a window identifier or a window title or 'all' to show the objects in all 3d windows."""
        return self._intf.invoke(ScenarioGraphics3D._metadata, ScenarioGraphics3D._show_objects_metadata, trunc_object_paths, window_id_or_title)

    _hide_object_metadata = { "offset" : _hide_object_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def hide_object(self, trunc_path:str, window_id:str) -> None:
        """Hides the object identified by its path in a specified 3D window. Users can specify either a window identifier or a window title or 'all' to hide the object in all 3d windows."""
        return self._intf.invoke(ScenarioGraphics3D._metadata, ScenarioGraphics3D._hide_object_metadata, trunc_path, window_id)

    _hide_objects_metadata = { "offset" : _hide_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), agcom.BSTR,),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.BStrArg,) }
    def hide_objects(self, trunc_object_paths:list, window_id_or_title:str) -> None:
        """Hides multiple objects in a specified 3D window. Users can specify either a window identifier or a window title or 'all' to hide objects in all 3d windows."""
        return self._intf.invoke(ScenarioGraphics3D._metadata, ScenarioGraphics3D._hide_objects_metadata, trunc_object_paths, window_id_or_title)

    _property_names[chunk_image_cache_size] = "chunk_image_cache_size"
    _property_names[is_negative_altitude_allowed] = "is_negative_altitude_allowed"
    _property_names[small_font] = "small_font"
    _property_names[medium_font] = "medium_font"
    _property_names[large_font] = "large_font"
    _property_names[surface_reference] = "surface_reference"
    _property_names[draw_on_terrain] = "draw_on_terrain"
    _property_names[chunk_terrain_cache_size] = "chunk_terrain_cache_size"
    _property_names[text_outline_style] = "text_outline_style"
    _property_names[text_outline_color] = "text_outline_color"
    _property_names[text_anti_aliasing_enabled] = "text_anti_aliasing_enabled"

    def __init__(self, source_object=None):
        """Construct an object of type ScenarioGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScenarioGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScenarioGraphics3D, [ScenarioGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5350970836646056637, 6224798786993114042), ScenarioGraphics3D)
agcls.AgTypeNameMap["ScenarioGraphics3D"] = ScenarioGraphics3D

class SensorComplexConicPattern(ISensorPattern, SupportsDeleteCallback):
    """SensorComplexConicPattern Interface for defining sensor patterns by the inner and outer half angles and minimum and maximum clock angles of the sensor's cone."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inner_cone_half_angle_method_offset = 1
    _set_inner_cone_half_angle_method_offset = 2
    _get_outer_cone_half_angle_method_offset = 3
    _set_outer_cone_half_angle_method_offset = 4
    _get_minimum_clock_angle_method_offset = 5
    _set_minimum_clock_angle_method_offset = 6
    _get_maximum_clock_angle_method_offset = 7
    _set_maximum_clock_angle_method_offset = 8
    _set_clock_angles_method_offset = 9
    _get_angular_resolution_method_offset = 10
    _set_angular_resolution_method_offset = 11
    _set_cone_half_angles_method_offset = 12
    _metadata = {
        "iid_data" : (5093113350369293406, 16203175417484372363),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorComplexConicPattern)

    _get_inner_cone_half_angle_metadata = { "offset" : _get_inner_cone_half_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def inner_cone_half_angle(self) -> typing.Any:
        """Inner half angle to define the angular radius of the cone measured from the boresight. When an inner cone is specified, the inner region is considered to be a region of exclusion. Uses Angle Dimension."""
        return self._intf.get_property(SensorComplexConicPattern._metadata, SensorComplexConicPattern._get_inner_cone_half_angle_metadata)

    _set_inner_cone_half_angle_metadata = { "offset" : _set_inner_cone_half_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @inner_cone_half_angle.setter
    def inner_cone_half_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorComplexConicPattern._metadata, SensorComplexConicPattern._set_inner_cone_half_angle_metadata, value)

    _get_outer_cone_half_angle_metadata = { "offset" : _get_outer_cone_half_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def outer_cone_half_angle(self) -> typing.Any:
        """Outer half angle to define the angular radius of the cone measured from the boresight. Uses Angle Dimension."""
        return self._intf.get_property(SensorComplexConicPattern._metadata, SensorComplexConicPattern._get_outer_cone_half_angle_metadata)

    _set_outer_cone_half_angle_metadata = { "offset" : _set_outer_cone_half_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @outer_cone_half_angle.setter
    def outer_cone_half_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorComplexConicPattern._metadata, SensorComplexConicPattern._set_outer_cone_half_angle_metadata, value)

    _get_minimum_clock_angle_metadata = { "offset" : _get_minimum_clock_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum_clock_angle(self) -> typing.Any:
        """Minimum clock angle to define the range of rotation about the boresight relative to the up vector. Clock angles correspond to azimuth angles, which are defined in the sensor pointing direction. Uses Angle Dimension."""
        return self._intf.get_property(SensorComplexConicPattern._metadata, SensorComplexConicPattern._get_minimum_clock_angle_metadata)

    _set_minimum_clock_angle_metadata = { "offset" : _set_minimum_clock_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum_clock_angle.setter
    def minimum_clock_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorComplexConicPattern._metadata, SensorComplexConicPattern._set_minimum_clock_angle_metadata, value)

    _get_maximum_clock_angle_metadata = { "offset" : _get_maximum_clock_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_clock_angle(self) -> typing.Any:
        """Maximum clock angle to define the range of rotation about the boresight relative to the up vector. Clock angles correspond to azimuth angles, which are defined in the sensor pointing direction. Uses Angle Dimension."""
        return self._intf.get_property(SensorComplexConicPattern._metadata, SensorComplexConicPattern._get_maximum_clock_angle_metadata)

    _set_maximum_clock_angle_metadata = { "offset" : _set_maximum_clock_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum_clock_angle.setter
    def maximum_clock_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorComplexConicPattern._metadata, SensorComplexConicPattern._set_maximum_clock_angle_metadata, value)

    _set_clock_angles_metadata = { "offset" : _set_clock_angles_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def set_clock_angles(self, min:typing.Any, max:typing.Any) -> None:
        """Set both the min and max clock angle."""
        return self._intf.invoke(SensorComplexConicPattern._metadata, SensorComplexConicPattern._set_clock_angles_metadata, min, max)

    _get_angular_resolution_metadata = { "offset" : _get_angular_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def angular_resolution(self) -> typing.Any:
        """Allow a user to set the angular separation between the pattern data points. This is an advanced user field, available only through STK's object model interface. The default value for the number of pattern samples is..."""
        return self._intf.get_property(SensorComplexConicPattern._metadata, SensorComplexConicPattern._get_angular_resolution_metadata)

    _set_angular_resolution_metadata = { "offset" : _set_angular_resolution_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @angular_resolution.setter
    def angular_resolution(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorComplexConicPattern._metadata, SensorComplexConicPattern._set_angular_resolution_metadata, value)

    _set_cone_half_angles_metadata = { "offset" : _set_cone_half_angles_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def set_cone_half_angles(self, inner:typing.Any, outer:typing.Any) -> None:
        """Set both the inner and outer cone half angles."""
        return self._intf.invoke(SensorComplexConicPattern._metadata, SensorComplexConicPattern._set_cone_half_angles_metadata, inner, outer)

    _property_names[inner_cone_half_angle] = "inner_cone_half_angle"
    _property_names[outer_cone_half_angle] = "outer_cone_half_angle"
    _property_names[minimum_clock_angle] = "minimum_clock_angle"
    _property_names[maximum_clock_angle] = "maximum_clock_angle"
    _property_names[angular_resolution] = "angular_resolution"

    def __init__(self, source_object=None):
        """Construct an object of type SensorComplexConicPattern."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorComplexConicPattern)
        ISensorPattern.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPattern._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorComplexConicPattern, [SensorComplexConicPattern, ISensorPattern])

agcls.AgClassCatalog.add_catalog_entry((5211885239758602908, 15501953703855234465), SensorComplexConicPattern)
agcls.AgTypeNameMap["SensorComplexConicPattern"] = SensorComplexConicPattern

class SensorEOIRPattern(ISensorPattern, SupportsDeleteCallback):
    """SensorEOIRPattern Interface for a sensor pattern."""

    _num_methods = 21
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_line_of_site_jitter_method_offset = 1
    _set_line_of_site_jitter_method_offset = 2
    _get_processing_level_method_offset = 3
    _set_processing_level_method_offset = 4
    _get_use_motion_blur_method_offset = 5
    _set_use_motion_blur_method_offset = 6
    _get_bands_method_offset = 7
    _get_jitter_type_method_offset = 8
    _set_jitter_type_method_offset = 9
    _get_jitter_data_filename_method_offset = 10
    _set_jitter_data_filename_method_offset = 11
    _get_jitter_data_file_spatial_sampling_method_offset = 12
    _set_jitter_data_file_spatial_sampling_method_offset = 13
    _get_jitter_data_file_frequency_sampling_method_offset = 14
    _set_jitter_data_file_frequency_sampling_method_offset = 15
    _get_along_scan_smear_rate_method_offset = 16
    _set_along_scan_smear_rate_method_offset = 17
    _get_across_scan_smear_rate_method_offset = 18
    _set_across_scan_smear_rate_method_offset = 19
    _get_scan_mode_method_offset = 20
    _set_scan_mode_method_offset = 21
    _metadata = {
        "iid_data" : (5428009744251429285, 15574425588705983641),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorEOIRPattern)

    _get_line_of_site_jitter_metadata = { "offset" : _get_line_of_site_jitter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def line_of_site_jitter(self) -> float:
        """The standard deviation of the Gaussian model LineOfSiteJitter for the sensor in angular space for the specified integration time."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_line_of_site_jitter_metadata)

    _set_line_of_site_jitter_metadata = { "offset" : _set_line_of_site_jitter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @line_of_site_jitter.setter
    def line_of_site_jitter(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRPattern._metadata, SensorEOIRPattern._set_line_of_site_jitter_metadata, value)

    _get_processing_level_metadata = { "offset" : _get_processing_level_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRProcessingLevelType),) }
    @property
    def processing_level(self) -> "SensorEOIRProcessingLevelType":
        """The tap point output ProcessingLevel for the sensor specifying the stage in the imaging pipeline to produce simulated images and output files."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_processing_level_metadata)

    _set_processing_level_metadata = { "offset" : _set_processing_level_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRProcessingLevelType),) }
    @processing_level.setter
    def processing_level(self, value:"SensorEOIRProcessingLevelType") -> None:
        return self._intf.set_property(SensorEOIRPattern._metadata, SensorEOIRPattern._set_processing_level_metadata, value)

    _get_use_motion_blur_metadata = { "offset" : _get_use_motion_blur_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_motion_blur(self) -> bool:
        """The status flag for determining if the sensor should apply coarse motion blur to the simulated images or not."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_use_motion_blur_metadata)

    _set_use_motion_blur_metadata = { "offset" : _set_use_motion_blur_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_motion_blur.setter
    def use_motion_blur(self, value:bool) -> None:
        return self._intf.set_property(SensorEOIRPattern._metadata, SensorEOIRPattern._set_use_motion_blur_metadata, value)

    _get_bands_metadata = { "offset" : _get_bands_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def bands(self) -> "SensorEOIRBandCollection":
        """Get the collection of Bands for the sensor."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_bands_metadata)

    _get_jitter_type_metadata = { "offset" : _get_jitter_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRJitterType),) }
    @property
    def jitter_type(self) -> "SensorEOIRJitterType":
        """Type of jitter specification."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_jitter_type_metadata)

    _set_jitter_type_metadata = { "offset" : _set_jitter_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRJitterType),) }
    @jitter_type.setter
    def jitter_type(self, value:"SensorEOIRJitterType") -> None:
        return self._intf.set_property(SensorEOIRPattern._metadata, SensorEOIRPattern._set_jitter_type_metadata, value)

    _get_jitter_data_filename_metadata = { "offset" : _get_jitter_data_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def jitter_data_filename(self) -> str:
        """Jitter description data file."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_jitter_data_filename_metadata)

    _set_jitter_data_filename_metadata = { "offset" : _set_jitter_data_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @jitter_data_filename.setter
    def jitter_data_filename(self, value:str) -> None:
        return self._intf.set_property(SensorEOIRPattern._metadata, SensorEOIRPattern._set_jitter_data_filename_metadata, value)

    _get_jitter_data_file_spatial_sampling_metadata = { "offset" : _get_jitter_data_file_spatial_sampling_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def jitter_data_file_spatial_sampling(self) -> float:
        """Jitter data file spatial sampling."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_jitter_data_file_spatial_sampling_metadata)

    _set_jitter_data_file_spatial_sampling_metadata = { "offset" : _set_jitter_data_file_spatial_sampling_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @jitter_data_file_spatial_sampling.setter
    def jitter_data_file_spatial_sampling(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRPattern._metadata, SensorEOIRPattern._set_jitter_data_file_spatial_sampling_metadata, value)

    _get_jitter_data_file_frequency_sampling_metadata = { "offset" : _get_jitter_data_file_frequency_sampling_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def jitter_data_file_frequency_sampling(self) -> float:
        """Jitter data file frequency sampling."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_jitter_data_file_frequency_sampling_metadata)

    _set_jitter_data_file_frequency_sampling_metadata = { "offset" : _set_jitter_data_file_frequency_sampling_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @jitter_data_file_frequency_sampling.setter
    def jitter_data_file_frequency_sampling(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRPattern._metadata, SensorEOIRPattern._set_jitter_data_file_frequency_sampling_metadata, value)

    _get_along_scan_smear_rate_metadata = { "offset" : _get_along_scan_smear_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def along_scan_smear_rate(self) -> float:
        """Get or set the along-scan smear rate of the EOIR sensor."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_along_scan_smear_rate_metadata)

    _set_along_scan_smear_rate_metadata = { "offset" : _set_along_scan_smear_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @along_scan_smear_rate.setter
    def along_scan_smear_rate(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRPattern._metadata, SensorEOIRPattern._set_along_scan_smear_rate_metadata, value)

    _get_across_scan_smear_rate_metadata = { "offset" : _get_across_scan_smear_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def across_scan_smear_rate(self) -> float:
        """Get or set the across-scan smear rate of the EOIR sensor."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_across_scan_smear_rate_metadata)

    _set_across_scan_smear_rate_metadata = { "offset" : _set_across_scan_smear_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @across_scan_smear_rate.setter
    def across_scan_smear_rate(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRPattern._metadata, SensorEOIRPattern._set_across_scan_smear_rate_metadata, value)

    _get_scan_mode_metadata = { "offset" : _get_scan_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRScanMode),) }
    @property
    def scan_mode(self) -> "SensorEOIRScanMode":
        """Type of scan mode specification."""
        return self._intf.get_property(SensorEOIRPattern._metadata, SensorEOIRPattern._get_scan_mode_metadata)

    _set_scan_mode_metadata = { "offset" : _set_scan_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRScanMode),) }
    @scan_mode.setter
    def scan_mode(self, value:"SensorEOIRScanMode") -> None:
        return self._intf.set_property(SensorEOIRPattern._metadata, SensorEOIRPattern._set_scan_mode_metadata, value)

    _property_names[line_of_site_jitter] = "line_of_site_jitter"
    _property_names[processing_level] = "processing_level"
    _property_names[use_motion_blur] = "use_motion_blur"
    _property_names[bands] = "bands"
    _property_names[jitter_type] = "jitter_type"
    _property_names[jitter_data_filename] = "jitter_data_filename"
    _property_names[jitter_data_file_spatial_sampling] = "jitter_data_file_spatial_sampling"
    _property_names[jitter_data_file_frequency_sampling] = "jitter_data_file_frequency_sampling"
    _property_names[along_scan_smear_rate] = "along_scan_smear_rate"
    _property_names[across_scan_smear_rate] = "across_scan_smear_rate"
    _property_names[scan_mode] = "scan_mode"

    def __init__(self, source_object=None):
        """Construct an object of type SensorEOIRPattern."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorEOIRPattern)
        ISensorPattern.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPattern._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorEOIRPattern, [SensorEOIRPattern, ISensorPattern])

agcls.AgClassCatalog.add_catalog_entry((5372440760781385978, 974393422271983242), SensorEOIRPattern)
agcls.AgTypeNameMap["SensorEOIRPattern"] = SensorEOIRPattern

class SensorUnknownPattern(ISensorPattern, SupportsDeleteCallback):
    """Unsupported/unknown sensor pattern."""
    def __init__(self, source_object=None):
        """Construct an object of type SensorUnknownPattern."""
        SupportsDeleteCallback.__init__(self)
        ISensorPattern.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPattern._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorUnknownPattern, [ISensorPattern])

agcls.AgClassCatalog.add_catalog_entry((4654708800457314830, 7001262951039864732), SensorUnknownPattern)
agcls.AgTypeNameMap["SensorUnknownPattern"] = SensorUnknownPattern

class SensorEOIRBandCollection(SupportsDeleteCallback):
    """SensorEOIRBandCollection Interface. A collection of EOIR bands."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _add_method_offset = 4
    _remove_at_method_offset = 5
    _get_item_by_name_method_offset = 6
    _metadata = {
        "iid_data" : (4628048546370262403, 5889056366705530011),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorEOIRBandCollection)
    def __iter__(self):
        """Create an iterator for the SensorEOIRBandCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "SensorEOIRBand":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """The number of items in the collection."""
        return self._intf.get_property(SensorEOIRBandCollection._metadata, SensorEOIRBandCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "SensorEOIRBand":
        """Given an index, returns an SensorEOIRBand interface."""
        return self._intf.invoke(SensorEOIRBandCollection._metadata, SensorEOIRBandCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the collection."""
        return self._intf.get_property(SensorEOIRBandCollection._metadata, SensorEOIRBandCollection._get__new_enum_metadata)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "SensorEOIRBand":
        """Add a target."""
        return self._intf.invoke(SensorEOIRBandCollection._metadata, SensorEOIRBandCollection._add_metadata, OutArg())

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove a target given an index."""
        return self._intf.invoke(SensorEOIRBandCollection._metadata, SensorEOIRBandCollection._remove_at_metadata, index)

    _get_item_by_name_metadata = { "offset" : _get_item_by_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_name(self, name:str) -> "SensorEOIRBand":
        """Retrieve an item from the collection by name."""
        return self._intf.invoke(SensorEOIRBandCollection._metadata, SensorEOIRBandCollection._get_item_by_name_metadata, name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type SensorEOIRBandCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorEOIRBandCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorEOIRBandCollection, [SensorEOIRBandCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5475883920383243942, 7049129139988270744), SensorEOIRBandCollection)
agcls.AgTypeNameMap["SensorEOIRBandCollection"] = SensorEOIRBandCollection

class SensorEOIRBand(SupportsDeleteCallback):
    """SensorEOIRBand Interface for defining the individual band properties."""

    _num_methods = 103
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_band_name_method_offset = 1
    _set_band_name_method_offset = 2
    _get_render_band_method_offset = 3
    _set_render_band_method_offset = 4
    _get_calculating_parameters_method_offset = 5
    _set_calculating_parameters_method_offset = 6
    _get_horizontal_half_angle_method_offset = 7
    _set_horizontal_half_angle_method_offset = 8
    _get_vertical_half_angle_method_offset = 9
    _set_vertical_half_angle_method_offset = 10
    _get_horizontal_pixels_method_offset = 11
    _set_horizontal_pixels_method_offset = 12
    _get_number_of_vertical_pixels_method_offset = 13
    _set_number_of_vertical_pixels_method_offset = 14
    _get_horizontal_pixel_spacing_method_offset = 15
    _set_horizontal_pixel_spacing_method_offset = 16
    _get_vertical_pixel_spacing_method_offset = 17
    _set_vertical_pixel_spacing_method_offset = 18
    _get_horizontal_individual_field_of_view_method_offset = 19
    _get_vertical_extent_of_individual_pixel_field_of_view_method_offset = 20
    _get_low_band_edge_wavelength_method_offset = 21
    _set_low_band_edge_wavelength_method_offset = 22
    _get_high_band_edge_wavelength_method_offset = 23
    _set_high_band_edge_wavelength_method_offset = 24
    _get_number_of_intervals_method_offset = 25
    _set_number_of_intervals_method_offset = 26
    _get_f_number_method_offset = 27
    _set_f_number_method_offset = 28
    _get_long_d_focus_method_offset = 29
    _set_long_d_focus_method_offset = 30
    _get_effective_focal_length_method_offset = 31
    _set_effective_focal_length_method_offset = 32
    _get_image_quality_method_offset = 33
    _set_image_quality_method_offset = 34
    _get_entrance_prescription_diameter_method_offset = 35
    _set_entrance_prescription_diameter_method_offset = 36
    _get_wavelength_method_offset = 37
    _set_wavelength_method_offset = 38
    _get_wavelength_type_method_offset = 39
    _set_wavelength_type_method_offset = 40
    _get_integration_time_method_offset = 41
    _set_integration_time_method_offset = 42
    _get_saturation_mode_method_offset = 43
    _set_saturation_mode_method_offset = 44
    _get_dynamic_range_method_offset = 45
    _get_dynamic_range_mode_method_offset = 46
    _set_dynamic_range_mode_method_offset = 47
    _get_noise_equivalent_irradiance_method_offset = 48
    _get_saturation_equivalent_irradiance_method_offset = 49
    _get_sensitivities_method_offset = 50
    _get_saturations_method_offset = 51
    _get_spatial_input_mode_method_offset = 52
    _set_spatial_input_mode_method_offset = 53
    _get_spectral_shape_method_offset = 54
    _set_spectral_shape_method_offset = 55
    _get_system_relative_spectral_response_filename_method_offset = 56
    _set_system_relative_spectral_response_filename_method_offset = 57
    _get_rsr_units_method_offset = 58
    _set_rsr_units_method_offset = 59
    _get_optical_input_mode_method_offset = 60
    _set_optical_input_mode_method_offset = 61
    _get_root_mean_squared_wavefront_error_method_offset = 62
    _set_root_mean_squared_wavefront_error_method_offset = 63
    _get_optical_quality_data_filename_method_offset = 64
    _set_optical_quality_data_filename_method_offset = 65
    _get_optical_transmission_mode_method_offset = 66
    _set_optical_transmission_mode_method_offset = 67
    _get_optical_transmission_method_offset = 68
    _set_optical_transmission_method_offset = 69
    _get_optical_transmission_spectral_response_filename_method_offset = 70
    _set_optical_transmission_spectral_response_filename_method_offset = 71
    _get_optical_quality_data_file_spatial_sampling_method_offset = 72
    _set_optical_quality_data_file_spatial_sampling_method_offset = 73
    _get_optical_quality_data_file_frequency_sampling_method_offset = 74
    _set_optical_quality_data_file_frequency_sampling_method_offset = 75
    _get_radiometric_parameter_level_method_offset = 76
    _set_radiometric_parameter_level_method_offset = 77
    _get_simulate_quantization_method_offset = 78
    _set_simulate_quantization_method_offset = 79
    _get_quantum_efficiency_mode_method_offset = 80
    _set_quantum_efficiency_mode_method_offset = 81
    _get_quantization_mode_method_offset = 82
    _set_quantization_mode_method_offset = 83
    _get_quantum_efficiency_value_method_offset = 84
    _set_quantum_efficiency_value_method_offset = 85
    _get_detector_fill_factor_method_offset = 86
    _set_detector_fill_factor_method_offset = 87
    _get_read_noise_method_offset = 88
    _set_read_noise_method_offset = 89
    _get_dark_current_method_offset = 90
    _set_dark_current_method_offset = 91
    _get_detector_full_well_capacity_method_offset = 92
    _set_detector_full_well_capacity_method_offset = 93
    _get_bit_depth_method_offset = 94
    _set_bit_depth_method_offset = 95
    _get_quantization_step_size_method_offset = 96
    _set_quantization_step_size_method_offset = 97
    _get_quantum_efficiency_filename_method_offset = 98
    _set_quantum_efficiency_filename_method_offset = 99
    _get_spatial_auto_rebalance_method_offset = 100
    _set_spatial_auto_rebalance_method_offset = 101
    _get_optical_automatic_rebalance_method_offset = 102
    _set_optical_automatic_rebalance_method_offset = 103
    _metadata = {
        "iid_data" : (5672661365802925329, 17879086222040662672),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorEOIRBand)

    _get_band_name_metadata = { "offset" : _get_band_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def band_name(self) -> str:
        """Get or set the name of the band."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_band_name_metadata)

    _set_band_name_metadata = { "offset" : _set_band_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @band_name.setter
    def band_name(self, value:str) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_band_name_metadata, value)

    _get_render_band_metadata = { "offset" : _get_render_band_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def render_band(self) -> bool:
        """Band render flag."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_render_band_metadata)

    _set_render_band_metadata = { "offset" : _set_render_band_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @render_band.setter
    def render_band(self, value:bool) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_render_band_metadata, value)

    _get_calculating_parameters_metadata = { "offset" : _get_calculating_parameters_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def calculating_parameters(self) -> bool:
        """Flag to set if input parameters are currently being calculated and entered into the object model."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_calculating_parameters_metadata)

    _set_calculating_parameters_metadata = { "offset" : _set_calculating_parameters_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @calculating_parameters.setter
    def calculating_parameters(self, value:bool) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_calculating_parameters_metadata, value)

    _get_horizontal_half_angle_metadata = { "offset" : _get_horizontal_half_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def horizontal_half_angle(self) -> typing.Any:
        """Half the horizontal angular extent of the rectangular EOIR sensor bands field-of-view."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_horizontal_half_angle_metadata)

    _set_horizontal_half_angle_metadata = { "offset" : _set_horizontal_half_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @horizontal_half_angle.setter
    def horizontal_half_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_horizontal_half_angle_metadata, value)

    _get_vertical_half_angle_metadata = { "offset" : _get_vertical_half_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def vertical_half_angle(self) -> typing.Any:
        """Half the vertical angular extent of the rectangular EOIR sensor bands field-of-view."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_vertical_half_angle_metadata)

    _set_vertical_half_angle_metadata = { "offset" : _set_vertical_half_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @vertical_half_angle.setter
    def vertical_half_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_vertical_half_angle_metadata, value)

    _get_horizontal_pixels_metadata = { "offset" : _get_horizontal_pixels_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def horizontal_pixels(self) -> float:
        """Get or set the number of pixels or samples distributed evenly across the horizontal dimension of the rectangular EOIR sensor bands focal plane."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_horizontal_pixels_metadata)

    _set_horizontal_pixels_metadata = { "offset" : _set_horizontal_pixels_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @horizontal_pixels.setter
    def horizontal_pixels(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_horizontal_pixels_metadata, value)

    _get_number_of_vertical_pixels_metadata = { "offset" : _get_number_of_vertical_pixels_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def number_of_vertical_pixels(self) -> float:
        """Get or set the number of pixels or samples distributed evenly across the vertical dimension of the rectangular EOIR sensor bands focal plane."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_number_of_vertical_pixels_metadata)

    _set_number_of_vertical_pixels_metadata = { "offset" : _set_number_of_vertical_pixels_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @number_of_vertical_pixels.setter
    def number_of_vertical_pixels(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_number_of_vertical_pixels_metadata, value)

    _get_horizontal_pixel_spacing_metadata = { "offset" : _get_horizontal_pixel_spacing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def horizontal_pixel_spacing(self) -> float:
        """Get or set the spacing between pixels or samples along the horizontal dimension of the rectangular EOIR sensor bands focal plane."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_horizontal_pixel_spacing_metadata)

    _set_horizontal_pixel_spacing_metadata = { "offset" : _set_horizontal_pixel_spacing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @horizontal_pixel_spacing.setter
    def horizontal_pixel_spacing(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_horizontal_pixel_spacing_metadata, value)

    _get_vertical_pixel_spacing_metadata = { "offset" : _get_vertical_pixel_spacing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def vertical_pixel_spacing(self) -> float:
        """Get or set the spacing between pixels or samples along the vertical dimension of the rectangular EOIR sensor bands focal plane."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_vertical_pixel_spacing_metadata)

    _set_vertical_pixel_spacing_metadata = { "offset" : _set_vertical_pixel_spacing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @vertical_pixel_spacing.setter
    def vertical_pixel_spacing(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_vertical_pixel_spacing_metadata, value)

    _get_horizontal_individual_field_of_view_metadata = { "offset" : _get_horizontal_individual_field_of_view_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def horizontal_individual_field_of_view(self) -> float:
        """Get the horizontal angular extent of a single individual pixels field-of-view for this sensor band."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_horizontal_individual_field_of_view_metadata)

    _get_vertical_extent_of_individual_pixel_field_of_view_metadata = { "offset" : _get_vertical_extent_of_individual_pixel_field_of_view_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def vertical_extent_of_individual_pixel_field_of_view(self) -> float:
        """Get the vertical angular extent of a single individual pixels field-of-view for this sensor band."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_vertical_extent_of_individual_pixel_field_of_view_metadata)

    _get_low_band_edge_wavelength_metadata = { "offset" : _get_low_band_edge_wavelength_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def low_band_edge_wavelength(self) -> float:
        """Get or set the cut-on spectral wavelength of the current sensor band at least one nanometer less than the cut-off value."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_low_band_edge_wavelength_metadata)

    _set_low_band_edge_wavelength_metadata = { "offset" : _set_low_band_edge_wavelength_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @low_band_edge_wavelength.setter
    def low_band_edge_wavelength(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_low_band_edge_wavelength_metadata, value)

    _get_high_band_edge_wavelength_metadata = { "offset" : _get_high_band_edge_wavelength_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def high_band_edge_wavelength(self) -> float:
        """Get or set the cut-off spectral wavelength of the current sensor band at least one nanometer greater than the cut-on value."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_high_band_edge_wavelength_metadata)

    _set_high_band_edge_wavelength_metadata = { "offset" : _set_high_band_edge_wavelength_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @high_band_edge_wavelength.setter
    def high_band_edge_wavelength(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_high_band_edge_wavelength_metadata, value)

    _get_number_of_intervals_metadata = { "offset" : _get_number_of_intervals_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_intervals(self) -> int:
        """Get or set the number of oversampled spectral intervals to discretely simulate for this sensor band."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_number_of_intervals_metadata)

    _set_number_of_intervals_metadata = { "offset" : _set_number_of_intervals_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_intervals.setter
    def number_of_intervals(self, value:int) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_number_of_intervals_metadata, value)

    _get_f_number_metadata = { "offset" : _get_f_number_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def f_number(self) -> float:
        """Get or set the F-Number ratio of the system, the effective focal length divided by the clear aperture diameter for this sensor band."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_f_number_metadata)

    _set_f_number_metadata = { "offset" : _set_f_number_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @f_number.setter
    def f_number(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_f_number_metadata, value)

    _get_long_d_focus_metadata = { "offset" : _get_long_d_focus_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def long_d_focus(self) -> float:
        """Get or set the amount of defocus along the optical axis between the ideal image focal plane and the actual detector focal plane for the current sensor band."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_long_d_focus_metadata)

    _set_long_d_focus_metadata = { "offset" : _set_long_d_focus_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @long_d_focus.setter
    def long_d_focus(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_long_d_focus_metadata, value)

    _get_effective_focal_length_metadata = { "offset" : _get_effective_focal_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def effective_focal_length(self) -> float:
        """Get or set the effective focal length of the current sensor band."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_effective_focal_length_metadata)

    _set_effective_focal_length_metadata = { "offset" : _set_effective_focal_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @effective_focal_length.setter
    def effective_focal_length(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_effective_focal_length_metadata, value)

    _get_image_quality_metadata = { "offset" : _get_image_quality_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandImageQuality),) }
    @property
    def image_quality(self) -> "SensorEOIRBandImageQuality":
        """Discrete level of optical image quality. Aberrations are modeled based on a RMS wavefront error."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_image_quality_metadata)

    _set_image_quality_metadata = { "offset" : _set_image_quality_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandImageQuality),) }
    @image_quality.setter
    def image_quality(self, value:"SensorEOIRBandImageQuality") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_image_quality_metadata, value)

    _get_entrance_prescription_diameter_metadata = { "offset" : _get_entrance_prescription_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def entrance_prescription_diameter(self) -> float:
        """Diameter of the single lens equivalent optical prescription."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_entrance_prescription_diameter_metadata)

    _set_entrance_prescription_diameter_metadata = { "offset" : _set_entrance_prescription_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @entrance_prescription_diameter.setter
    def entrance_prescription_diameter(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_entrance_prescription_diameter_metadata, value)

    _get_wavelength_metadata = { "offset" : _get_wavelength_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def wavelength(self) -> float:
        """Get or set the wavelength in the sensors spectral band to use for diffraction modeling calculations."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_wavelength_metadata)

    _set_wavelength_metadata = { "offset" : _set_wavelength_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @wavelength.setter
    def wavelength(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_wavelength_metadata, value)

    _get_wavelength_type_metadata = { "offset" : _get_wavelength_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandWavelengthType),) }
    @property
    def wavelength_type(self) -> "SensorEOIRBandWavelengthType":
        """Get or set the relative position within the sensors spectral band to use as the reference wavelength for diffraction modeling calculations."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_wavelength_type_metadata)

    _set_wavelength_type_metadata = { "offset" : _set_wavelength_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandWavelengthType),) }
    @wavelength_type.setter
    def wavelength_type(self, value:"SensorEOIRBandWavelengthType") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_wavelength_type_metadata, value)

    _get_integration_time_metadata = { "offset" : _get_integration_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def integration_time(self) -> float:
        """Get or set the time interval over which radiant signal is collected before generating an image."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_integration_time_metadata)

    _set_integration_time_metadata = { "offset" : _set_integration_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @integration_time.setter
    def integration_time(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_integration_time_metadata, value)

    _get_saturation_mode_metadata = { "offset" : _get_saturation_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandSaturationMode),) }
    @property
    def saturation_mode(self) -> "SensorEOIRBandSaturationMode":
        """Get or set the radiant energy units for saturation and sensitivity, Irradiance better suited for observing point sources or Radiance better suited for resolved images."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_saturation_mode_metadata)

    _set_saturation_mode_metadata = { "offset" : _set_saturation_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandSaturationMode),) }
    @saturation_mode.setter
    def saturation_mode(self, value:"SensorEOIRBandSaturationMode") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_saturation_mode_metadata, value)

    _get_dynamic_range_metadata = { "offset" : _get_dynamic_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def dynamic_range(self) -> float:
        """Get the ratio of the brightest signal to the noise floor."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_dynamic_range_metadata)

    _get_dynamic_range_mode_metadata = { "offset" : _get_dynamic_range_mode_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def dynamic_range_mode(self) -> bool:
        """Unlimited allowing pixels to measure any amount of radiant signal without limit or Simulate Saturation where pixels can only measure up to the specified saturation level of radiant signal."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_dynamic_range_mode_metadata)

    _set_dynamic_range_mode_metadata = { "offset" : _set_dynamic_range_mode_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @dynamic_range_mode.setter
    def dynamic_range_mode(self, value:bool) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_dynamic_range_mode_metadata, value)

    _get_noise_equivalent_irradiance_metadata = { "offset" : _get_noise_equivalent_irradiance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def noise_equivalent_irradiance(self) -> float:
        """Noise equivalent irradiance or radiance for the current sensor band."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_noise_equivalent_irradiance_metadata)

    _get_saturation_equivalent_irradiance_metadata = { "offset" : _get_saturation_equivalent_irradiance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def saturation_equivalent_irradiance(self) -> float:
        """Saturation equivalent irradiance or radiance for the current sensor band."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_saturation_equivalent_irradiance_metadata)

    _get_sensitivities_metadata = { "offset" : _get_sensitivities_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sensitivities(self) -> "SensorEOIRSensitivityCollection":
        """Get the collection of Sensitivity time-value pairs."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_sensitivities_metadata)

    _get_saturations_metadata = { "offset" : _get_saturations_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def saturations(self) -> "SensorEOIRSaturationCollection":
        """Get the collection of Saturation time-value pairs."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_saturations_metadata)

    _get_spatial_input_mode_metadata = { "offset" : _get_spatial_input_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandSpatialInputMode),) }
    @property
    def spatial_input_mode(self) -> "SensorEOIRBandSpatialInputMode":
        """Spatial parameter input mode."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_spatial_input_mode_metadata)

    _set_spatial_input_mode_metadata = { "offset" : _set_spatial_input_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandSpatialInputMode),) }
    @spatial_input_mode.setter
    def spatial_input_mode(self, value:"SensorEOIRBandSpatialInputMode") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_spatial_input_mode_metadata, value)

    _get_spectral_shape_metadata = { "offset" : _get_spectral_shape_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandSpectralShape),) }
    @property
    def spectral_shape(self) -> "SensorEOIRBandSpectralShape":
        """Overall system spectral shape designation."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_spectral_shape_metadata)

    _set_spectral_shape_metadata = { "offset" : _set_spectral_shape_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandSpectralShape),) }
    @spectral_shape.setter
    def spectral_shape(self, value:"SensorEOIRBandSpectralShape") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_spectral_shape_metadata, value)

    _get_system_relative_spectral_response_filename_metadata = { "offset" : _get_system_relative_spectral_response_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def system_relative_spectral_response_filename(self) -> str:
        """System relative spectral response file."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_system_relative_spectral_response_filename_metadata)

    _set_system_relative_spectral_response_filename_metadata = { "offset" : _set_system_relative_spectral_response_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @system_relative_spectral_response_filename.setter
    def system_relative_spectral_response_filename(self, value:str) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_system_relative_spectral_response_filename_metadata, value)

    _get_rsr_units_metadata = { "offset" : _get_rsr_units_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandSpectralRelativeSystemResponseUnitsType),) }
    @property
    def rsr_units(self) -> "SensorEOIRBandSpectralRelativeSystemResponseUnitsType":
        """System custom RSR units."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_rsr_units_metadata)

    _set_rsr_units_metadata = { "offset" : _set_rsr_units_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandSpectralRelativeSystemResponseUnitsType),) }
    @rsr_units.setter
    def rsr_units(self, value:"SensorEOIRBandSpectralRelativeSystemResponseUnitsType") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_rsr_units_metadata, value)

    _get_optical_input_mode_metadata = { "offset" : _get_optical_input_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandOpticalInputMode),) }
    @property
    def optical_input_mode(self) -> "SensorEOIRBandOpticalInputMode":
        """Optical parameter input mode."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_optical_input_mode_metadata)

    _set_optical_input_mode_metadata = { "offset" : _set_optical_input_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandOpticalInputMode),) }
    @optical_input_mode.setter
    def optical_input_mode(self, value:"SensorEOIRBandOpticalInputMode") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_optical_input_mode_metadata, value)

    _get_root_mean_squared_wavefront_error_metadata = { "offset" : _get_root_mean_squared_wavefront_error_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def root_mean_squared_wavefront_error(self) -> float:
        """Get or set the RMS wavefront error of the optical system."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_root_mean_squared_wavefront_error_metadata)

    _set_root_mean_squared_wavefront_error_metadata = { "offset" : _set_root_mean_squared_wavefront_error_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @root_mean_squared_wavefront_error.setter
    def root_mean_squared_wavefront_error(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_root_mean_squared_wavefront_error_metadata, value)

    _get_optical_quality_data_filename_metadata = { "offset" : _get_optical_quality_data_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def optical_quality_data_filename(self) -> str:
        """Optical quality describing data file."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_optical_quality_data_filename_metadata)

    _set_optical_quality_data_filename_metadata = { "offset" : _set_optical_quality_data_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @optical_quality_data_filename.setter
    def optical_quality_data_filename(self, value:str) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_optical_quality_data_filename_metadata, value)

    _get_optical_transmission_mode_metadata = { "offset" : _get_optical_transmission_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandOpticalTransmissionMode),) }
    @property
    def optical_transmission_mode(self) -> "SensorEOIRBandOpticalTransmissionMode":
        """Optical transmission input mode."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_optical_transmission_mode_metadata)

    _set_optical_transmission_mode_metadata = { "offset" : _set_optical_transmission_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandOpticalTransmissionMode),) }
    @optical_transmission_mode.setter
    def optical_transmission_mode(self, value:"SensorEOIRBandOpticalTransmissionMode") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_optical_transmission_mode_metadata, value)

    _get_optical_transmission_metadata = { "offset" : _get_optical_transmission_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def optical_transmission(self) -> float:
        """Band effective optical transmission."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_optical_transmission_metadata)

    _set_optical_transmission_metadata = { "offset" : _set_optical_transmission_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @optical_transmission.setter
    def optical_transmission(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_optical_transmission_metadata, value)

    _get_optical_transmission_spectral_response_filename_metadata = { "offset" : _get_optical_transmission_spectral_response_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def optical_transmission_spectral_response_filename(self) -> str:
        """Optical spectral transmission data file."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_optical_transmission_spectral_response_filename_metadata)

    _set_optical_transmission_spectral_response_filename_metadata = { "offset" : _set_optical_transmission_spectral_response_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @optical_transmission_spectral_response_filename.setter
    def optical_transmission_spectral_response_filename(self, value:str) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_optical_transmission_spectral_response_filename_metadata, value)

    _get_optical_quality_data_file_spatial_sampling_metadata = { "offset" : _get_optical_quality_data_file_spatial_sampling_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def optical_quality_data_file_spatial_sampling(self) -> float:
        """Optical quality data file spatial sampling."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_optical_quality_data_file_spatial_sampling_metadata)

    _set_optical_quality_data_file_spatial_sampling_metadata = { "offset" : _set_optical_quality_data_file_spatial_sampling_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @optical_quality_data_file_spatial_sampling.setter
    def optical_quality_data_file_spatial_sampling(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_optical_quality_data_file_spatial_sampling_metadata, value)

    _get_optical_quality_data_file_frequency_sampling_metadata = { "offset" : _get_optical_quality_data_file_frequency_sampling_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def optical_quality_data_file_frequency_sampling(self) -> float:
        """Optical quality data file frequency sampling."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_optical_quality_data_file_frequency_sampling_metadata)

    _set_optical_quality_data_file_frequency_sampling_metadata = { "offset" : _set_optical_quality_data_file_frequency_sampling_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @optical_quality_data_file_frequency_sampling.setter
    def optical_quality_data_file_frequency_sampling(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_optical_quality_data_file_frequency_sampling_metadata, value)

    _get_radiometric_parameter_level_metadata = { "offset" : _get_radiometric_parameter_level_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandRadiometricParameterLevelType),) }
    @property
    def radiometric_parameter_level(self) -> "SensorEOIRBandRadiometricParameterLevelType":
        """Radiometric parameter input level."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_radiometric_parameter_level_metadata)

    _set_radiometric_parameter_level_metadata = { "offset" : _set_radiometric_parameter_level_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandRadiometricParameterLevelType),) }
    @radiometric_parameter_level.setter
    def radiometric_parameter_level(self, value:"SensorEOIRBandRadiometricParameterLevelType") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_radiometric_parameter_level_metadata, value)

    _get_simulate_quantization_metadata = { "offset" : _get_simulate_quantization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def simulate_quantization(self) -> bool:
        """Simulate quantization effects of the sensor."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_simulate_quantization_metadata)

    _set_simulate_quantization_metadata = { "offset" : _set_simulate_quantization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @simulate_quantization.setter
    def simulate_quantization(self, value:bool) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_simulate_quantization_metadata, value)

    _get_quantum_efficiency_mode_metadata = { "offset" : _get_quantum_efficiency_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandQuantumEfficiencyMode),) }
    @property
    def quantum_efficiency_mode(self) -> "SensorEOIRBandQuantumEfficiencyMode":
        """Quantum efficiency input mode."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_quantum_efficiency_mode_metadata)

    _set_quantum_efficiency_mode_metadata = { "offset" : _set_quantum_efficiency_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandQuantumEfficiencyMode),) }
    @quantum_efficiency_mode.setter
    def quantum_efficiency_mode(self, value:"SensorEOIRBandQuantumEfficiencyMode") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_quantum_efficiency_mode_metadata, value)

    _get_quantization_mode_metadata = { "offset" : _get_quantization_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandQuantizationMode),) }
    @property
    def quantization_mode(self) -> "SensorEOIRBandQuantizationMode":
        """Quantization input mode."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_quantization_mode_metadata)

    _set_quantization_mode_metadata = { "offset" : _set_quantization_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorEOIRBandQuantizationMode),) }
    @quantization_mode.setter
    def quantization_mode(self, value:"SensorEOIRBandQuantizationMode") -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_quantization_mode_metadata, value)

    _get_quantum_efficiency_value_metadata = { "offset" : _get_quantum_efficiency_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def quantum_efficiency_value(self) -> float:
        """Band effective detector quantum efficiency."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_quantum_efficiency_value_metadata)

    _set_quantum_efficiency_value_metadata = { "offset" : _set_quantum_efficiency_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @quantum_efficiency_value.setter
    def quantum_efficiency_value(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_quantum_efficiency_value_metadata, value)

    _get_detector_fill_factor_metadata = { "offset" : _get_detector_fill_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def detector_fill_factor(self) -> float:
        """Get or set the effective fill factor of photosensitive surface area to the total detector surface area."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_detector_fill_factor_metadata)

    _set_detector_fill_factor_metadata = { "offset" : _set_detector_fill_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @detector_fill_factor.setter
    def detector_fill_factor(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_detector_fill_factor_metadata, value)

    _get_read_noise_metadata = { "offset" : _get_read_noise_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def read_noise(self) -> float:
        """Get or set the read noise from the detectors in electrons."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_read_noise_metadata)

    _set_read_noise_metadata = { "offset" : _set_read_noise_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @read_noise.setter
    def read_noise(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_read_noise_metadata, value)

    _get_dark_current_metadata = { "offset" : _get_dark_current_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def dark_current(self) -> float:
        """Get or set the dark current noise rate from the detectors in electrons-per-second-per-detector."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_dark_current_metadata)

    _set_dark_current_metadata = { "offset" : _set_dark_current_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @dark_current.setter
    def dark_current(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_dark_current_metadata, value)

    _get_detector_full_well_capacity_metadata = { "offset" : _get_detector_full_well_capacity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def detector_full_well_capacity(self) -> float:
        """Get or set the full-well capacity of the detectors in electrons-per-detector."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_detector_full_well_capacity_metadata)

    _set_detector_full_well_capacity_metadata = { "offset" : _set_detector_full_well_capacity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @detector_full_well_capacity.setter
    def detector_full_well_capacity(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_detector_full_well_capacity_metadata, value)

    _get_bit_depth_metadata = { "offset" : _get_bit_depth_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def bit_depth(self) -> int:
        """Get or set the number of bits to encode the digital signal with."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_bit_depth_metadata)

    _set_bit_depth_metadata = { "offset" : _set_bit_depth_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @bit_depth.setter
    def bit_depth(self, value:int) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_bit_depth_metadata, value)

    _get_quantization_step_size_metadata = { "offset" : _get_quantization_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def quantization_step_size(self) -> float:
        """Get or set the quantization step size of the digital output signal."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_quantization_step_size_metadata)

    _set_quantization_step_size_metadata = { "offset" : _set_quantization_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @quantization_step_size.setter
    def quantization_step_size(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_quantization_step_size_metadata, value)

    _get_quantum_efficiency_filename_metadata = { "offset" : _get_quantum_efficiency_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def quantum_efficiency_filename(self) -> str:
        """Spectral quantum efficiency data file for the detectors."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_quantum_efficiency_filename_metadata)

    _set_quantum_efficiency_filename_metadata = { "offset" : _set_quantum_efficiency_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @quantum_efficiency_filename.setter
    def quantum_efficiency_filename(self, value:str) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_quantum_efficiency_filename_metadata, value)

    _get_spatial_auto_rebalance_metadata = { "offset" : _get_spatial_auto_rebalance_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def spatial_auto_rebalance(self) -> bool:
        """Spatial parameter auto rebalance."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_spatial_auto_rebalance_metadata)

    _set_spatial_auto_rebalance_metadata = { "offset" : _set_spatial_auto_rebalance_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @spatial_auto_rebalance.setter
    def spatial_auto_rebalance(self, value:bool) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_spatial_auto_rebalance_metadata, value)

    _get_optical_automatic_rebalance_metadata = { "offset" : _get_optical_automatic_rebalance_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def optical_automatic_rebalance(self) -> bool:
        """Spatial parameter auto rebalance."""
        return self._intf.get_property(SensorEOIRBand._metadata, SensorEOIRBand._get_optical_automatic_rebalance_metadata)

    _set_optical_automatic_rebalance_metadata = { "offset" : _set_optical_automatic_rebalance_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @optical_automatic_rebalance.setter
    def optical_automatic_rebalance(self, value:bool) -> None:
        return self._intf.set_property(SensorEOIRBand._metadata, SensorEOIRBand._set_optical_automatic_rebalance_metadata, value)

    _property_names[band_name] = "band_name"
    _property_names[render_band] = "render_band"
    _property_names[calculating_parameters] = "calculating_parameters"
    _property_names[horizontal_half_angle] = "horizontal_half_angle"
    _property_names[vertical_half_angle] = "vertical_half_angle"
    _property_names[horizontal_pixels] = "horizontal_pixels"
    _property_names[number_of_vertical_pixels] = "number_of_vertical_pixels"
    _property_names[horizontal_pixel_spacing] = "horizontal_pixel_spacing"
    _property_names[vertical_pixel_spacing] = "vertical_pixel_spacing"
    _property_names[horizontal_individual_field_of_view] = "horizontal_individual_field_of_view"
    _property_names[vertical_extent_of_individual_pixel_field_of_view] = "vertical_extent_of_individual_pixel_field_of_view"
    _property_names[low_band_edge_wavelength] = "low_band_edge_wavelength"
    _property_names[high_band_edge_wavelength] = "high_band_edge_wavelength"
    _property_names[number_of_intervals] = "number_of_intervals"
    _property_names[f_number] = "f_number"
    _property_names[long_d_focus] = "long_d_focus"
    _property_names[effective_focal_length] = "effective_focal_length"
    _property_names[image_quality] = "image_quality"
    _property_names[entrance_prescription_diameter] = "entrance_prescription_diameter"
    _property_names[wavelength] = "wavelength"
    _property_names[wavelength_type] = "wavelength_type"
    _property_names[integration_time] = "integration_time"
    _property_names[saturation_mode] = "saturation_mode"
    _property_names[dynamic_range] = "dynamic_range"
    _property_names[dynamic_range_mode] = "dynamic_range_mode"
    _property_names[noise_equivalent_irradiance] = "noise_equivalent_irradiance"
    _property_names[saturation_equivalent_irradiance] = "saturation_equivalent_irradiance"
    _property_names[sensitivities] = "sensitivities"
    _property_names[saturations] = "saturations"
    _property_names[spatial_input_mode] = "spatial_input_mode"
    _property_names[spectral_shape] = "spectral_shape"
    _property_names[system_relative_spectral_response_filename] = "system_relative_spectral_response_filename"
    _property_names[rsr_units] = "rsr_units"
    _property_names[optical_input_mode] = "optical_input_mode"
    _property_names[root_mean_squared_wavefront_error] = "root_mean_squared_wavefront_error"
    _property_names[optical_quality_data_filename] = "optical_quality_data_filename"
    _property_names[optical_transmission_mode] = "optical_transmission_mode"
    _property_names[optical_transmission] = "optical_transmission"
    _property_names[optical_transmission_spectral_response_filename] = "optical_transmission_spectral_response_filename"
    _property_names[optical_quality_data_file_spatial_sampling] = "optical_quality_data_file_spatial_sampling"
    _property_names[optical_quality_data_file_frequency_sampling] = "optical_quality_data_file_frequency_sampling"
    _property_names[radiometric_parameter_level] = "radiometric_parameter_level"
    _property_names[simulate_quantization] = "simulate_quantization"
    _property_names[quantum_efficiency_mode] = "quantum_efficiency_mode"
    _property_names[quantization_mode] = "quantization_mode"
    _property_names[quantum_efficiency_value] = "quantum_efficiency_value"
    _property_names[detector_fill_factor] = "detector_fill_factor"
    _property_names[read_noise] = "read_noise"
    _property_names[dark_current] = "dark_current"
    _property_names[detector_full_well_capacity] = "detector_full_well_capacity"
    _property_names[bit_depth] = "bit_depth"
    _property_names[quantization_step_size] = "quantization_step_size"
    _property_names[quantum_efficiency_filename] = "quantum_efficiency_filename"
    _property_names[spatial_auto_rebalance] = "spatial_auto_rebalance"
    _property_names[optical_automatic_rebalance] = "optical_automatic_rebalance"

    def __init__(self, source_object=None):
        """Construct an object of type SensorEOIRBand."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorEOIRBand)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorEOIRBand, [SensorEOIRBand, ])

agcls.AgClassCatalog.add_catalog_entry((5194930565824413809, 15648349628553244069), SensorEOIRBand)
agcls.AgTypeNameMap["SensorEOIRBand"] = SensorEOIRBand

class SensorEOIRRadiometricPair(SupportsDeleteCallback):
    """SensorEOIRRadiometricPair Interface for defining the individual band properties."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_integration_time_method_offset = 1
    _set_integration_time_method_offset = 2
    _get_equivalent_value_method_offset = 3
    _set_equivalent_value_method_offset = 4
    _metadata = {
        "iid_data" : (5469509255905070164, 18178330370343687092),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorEOIRRadiometricPair)

    _get_integration_time_metadata = { "offset" : _get_integration_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def integration_time(self) -> float:
        """Integration Time."""
        return self._intf.get_property(SensorEOIRRadiometricPair._metadata, SensorEOIRRadiometricPair._get_integration_time_metadata)

    _set_integration_time_metadata = { "offset" : _set_integration_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @integration_time.setter
    def integration_time(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRRadiometricPair._metadata, SensorEOIRRadiometricPair._set_integration_time_metadata, value)

    _get_equivalent_value_metadata = { "offset" : _get_equivalent_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def equivalent_value(self) -> float:
        """Sensitivity or Saturation Equivalent value."""
        return self._intf.get_property(SensorEOIRRadiometricPair._metadata, SensorEOIRRadiometricPair._get_equivalent_value_metadata)

    _set_equivalent_value_metadata = { "offset" : _set_equivalent_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @equivalent_value.setter
    def equivalent_value(self, value:float) -> None:
        return self._intf.set_property(SensorEOIRRadiometricPair._metadata, SensorEOIRRadiometricPair._set_equivalent_value_metadata, value)

    _property_names[integration_time] = "integration_time"
    _property_names[equivalent_value] = "equivalent_value"

    def __init__(self, source_object=None):
        """Construct an object of type SensorEOIRRadiometricPair."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorEOIRRadiometricPair)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorEOIRRadiometricPair, [SensorEOIRRadiometricPair, ])

agcls.AgClassCatalog.add_catalog_entry((5532386801801999653, 18369165646883467697), SensorEOIRRadiometricPair)
agcls.AgTypeNameMap["SensorEOIRRadiometricPair"] = SensorEOIRRadiometricPair

class SensorEOIRSensitivityCollection(SupportsDeleteCallback):
    """IAgSnEOIRFCollection Interface. A collection of Radiometric pairs defining the Sensitivities."""

    _num_methods = 5
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _get__new_enum_method_offset = 2
    _item_method_offset = 3
    _add_method_offset = 4
    _remove_at_method_offset = 5
    _metadata = {
        "iid_data" : (5206043482604828588, 10782961676804347828),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorEOIRSensitivityCollection)
    def __iter__(self):
        """Create an iterator for the SensorEOIRSensitivityCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "SensorEOIRRadiometricPair":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """The number of items in the collection."""
        return self._intf.get_property(SensorEOIRSensitivityCollection._metadata, SensorEOIRSensitivityCollection._get_count_metadata)

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the collection."""
        return self._intf.get_property(SensorEOIRSensitivityCollection._metadata, SensorEOIRSensitivityCollection._get__new_enum_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "SensorEOIRRadiometricPair":
        """Given an index, returns an SensorEOIRRadiometricPair interface."""
        return self._intf.invoke(SensorEOIRSensitivityCollection._metadata, SensorEOIRSensitivityCollection._item_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "SensorEOIRRadiometricPair":
        """Add a radiometric pair."""
        return self._intf.invoke(SensorEOIRSensitivityCollection._metadata, SensorEOIRSensitivityCollection._add_metadata, OutArg())

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove a radiometric pair given an index."""
        return self._intf.invoke(SensorEOIRSensitivityCollection._metadata, SensorEOIRSensitivityCollection._remove_at_metadata, index)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type SensorEOIRSensitivityCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorEOIRSensitivityCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorEOIRSensitivityCollection, [SensorEOIRSensitivityCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5559233953141911508, 10127063690653688730), SensorEOIRSensitivityCollection)
agcls.AgTypeNameMap["SensorEOIRSensitivityCollection"] = SensorEOIRSensitivityCollection

class SensorEOIRSaturationCollection(SupportsDeleteCallback):
    """SensorEOIRSaturationCollection Interface. A collection of Radiometric pairs defining the saturations."""

    _num_methods = 5
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _get__new_enum_method_offset = 2
    _item_method_offset = 3
    _add_method_offset = 4
    _remove_at_method_offset = 5
    _metadata = {
        "iid_data" : (5528944043632736472, 3339815265767879086),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorEOIRSaturationCollection)
    def __iter__(self):
        """Create an iterator for the SensorEOIRSaturationCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "SensorEOIRRadiometricPair":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """The number of items in the collection."""
        return self._intf.get_property(SensorEOIRSaturationCollection._metadata, SensorEOIRSaturationCollection._get_count_metadata)

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the collection."""
        return self._intf.get_property(SensorEOIRSaturationCollection._metadata, SensorEOIRSaturationCollection._get__new_enum_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "SensorEOIRRadiometricPair":
        """Given an index, returns an SensorEOIRRadiometricPair interface."""
        return self._intf.invoke(SensorEOIRSaturationCollection._metadata, SensorEOIRSaturationCollection._item_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "SensorEOIRRadiometricPair":
        """Add a radiometric pair."""
        return self._intf.invoke(SensorEOIRSaturationCollection._metadata, SensorEOIRSaturationCollection._add_metadata, OutArg())

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove a radiometric pair given an index."""
        return self._intf.invoke(SensorEOIRSaturationCollection._metadata, SensorEOIRSaturationCollection._remove_at_metadata, index)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type SensorEOIRSaturationCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorEOIRSaturationCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorEOIRSaturationCollection, [SensorEOIRSaturationCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5688916827651051330, 1390312005368311964), SensorEOIRSaturationCollection)
agcls.AgTypeNameMap["SensorEOIRSaturationCollection"] = SensorEOIRSaturationCollection

class SensorCustomPattern(ISensorPattern, SupportsDeleteCallback):
    """SensorCustomPattern Interface for custom sensor patterns."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_angular_resolution_method_offset = 3
    _set_angular_resolution_method_offset = 4
    _get_use_native_resolution_method_offset = 5
    _set_use_native_resolution_method_offset = 6
    _metadata = {
        "iid_data" : (4851854345128260196, 9849129627709118378),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorCustomPattern)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Path and file name of the custom sensor pattern file."""
        return self._intf.get_property(SensorCustomPattern._metadata, SensorCustomPattern._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(SensorCustomPattern._metadata, SensorCustomPattern._set_filename_metadata, value)

    _get_angular_resolution_metadata = { "offset" : _get_angular_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def angular_resolution(self) -> typing.Any:
        """Allow a user to set the angular separation between the pattern data points. This is an advanced user field, available only through STK's object model interface. The default value for the number of pattern samples is..."""
        return self._intf.get_property(SensorCustomPattern._metadata, SensorCustomPattern._get_angular_resolution_metadata)

    _set_angular_resolution_metadata = { "offset" : _set_angular_resolution_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @angular_resolution.setter
    def angular_resolution(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorCustomPattern._metadata, SensorCustomPattern._set_angular_resolution_metadata, value)

    _get_use_native_resolution_metadata = { "offset" : _get_use_native_resolution_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_native_resolution(self) -> bool:
        """Control pattern subsampling."""
        return self._intf.get_property(SensorCustomPattern._metadata, SensorCustomPattern._get_use_native_resolution_metadata)

    _set_use_native_resolution_metadata = { "offset" : _set_use_native_resolution_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_native_resolution.setter
    def use_native_resolution(self, value:bool) -> None:
        return self._intf.set_property(SensorCustomPattern._metadata, SensorCustomPattern._set_use_native_resolution_metadata, value)

    _property_names[filename] = "filename"
    _property_names[angular_resolution] = "angular_resolution"
    _property_names[use_native_resolution] = "use_native_resolution"

    def __init__(self, source_object=None):
        """Construct an object of type SensorCustomPattern."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorCustomPattern)
        ISensorPattern.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPattern._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorCustomPattern, [SensorCustomPattern, ISensorPattern])

agcls.AgClassCatalog.add_catalog_entry((5417150913818030148, 4629934996335305606), SensorCustomPattern)
agcls.AgTypeNameMap["SensorCustomPattern"] = SensorCustomPattern

class SensorHalfPowerPattern(ISensorPattern, SupportsDeleteCallback):
    """SensorHalfPowerPattern Interface for half power sensors designed to model parabolic antennas."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_frequency_method_offset = 1
    _set_frequency_method_offset = 2
    _get_antenna_diameter_method_offset = 3
    _set_antenna_diameter_method_offset = 4
    _get_half_angle_method_offset = 5
    _get_angular_resolution_method_offset = 6
    _set_angular_resolution_method_offset = 7
    _metadata = {
        "iid_data" : (4815025780853327463, 329441295506776716),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorHalfPowerPattern)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """The antenna's frequency in GHz. Uses Frequency Dimension."""
        return self._intf.get_property(SensorHalfPowerPattern._metadata, SensorHalfPowerPattern._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(SensorHalfPowerPattern._metadata, SensorHalfPowerPattern._set_frequency_metadata, value)

    _get_antenna_diameter_metadata = { "offset" : _get_antenna_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def antenna_diameter(self) -> float:
        """The diameter of the antenna dish. Uses SmallDistanceUnit Dimension."""
        return self._intf.get_property(SensorHalfPowerPattern._metadata, SensorHalfPowerPattern._get_antenna_diameter_metadata)

    _set_antenna_diameter_metadata = { "offset" : _set_antenna_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @antenna_diameter.setter
    def antenna_diameter(self, value:float) -> None:
        return self._intf.set_property(SensorHalfPowerPattern._metadata, SensorHalfPowerPattern._set_antenna_diameter_metadata, value)

    _get_half_angle_metadata = { "offset" : _get_half_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def half_angle(self) -> typing.Any:
        """Get the half angle of the cone for, calculated on the basis of the Frequency and AntennaDiameter properties. Uses Angle Dimension."""
        return self._intf.get_property(SensorHalfPowerPattern._metadata, SensorHalfPowerPattern._get_half_angle_metadata)

    _get_angular_resolution_metadata = { "offset" : _get_angular_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def angular_resolution(self) -> typing.Any:
        """Allow a user to set the angular separation between the pattern data points. This is an advanced user field, available only through STK's object model interface. The default value for the number of pattern samples is..."""
        return self._intf.get_property(SensorHalfPowerPattern._metadata, SensorHalfPowerPattern._get_angular_resolution_metadata)

    _set_angular_resolution_metadata = { "offset" : _set_angular_resolution_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @angular_resolution.setter
    def angular_resolution(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorHalfPowerPattern._metadata, SensorHalfPowerPattern._set_angular_resolution_metadata, value)

    _property_names[frequency] = "frequency"
    _property_names[antenna_diameter] = "antenna_diameter"
    _property_names[half_angle] = "half_angle"
    _property_names[angular_resolution] = "angular_resolution"

    def __init__(self, source_object=None):
        """Construct an object of type SensorHalfPowerPattern."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorHalfPowerPattern)
        ISensorPattern.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPattern._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorHalfPowerPattern, [SensorHalfPowerPattern, ISensorPattern])

agcls.AgClassCatalog.add_catalog_entry((4916102445343448196, 11140099435027559340), SensorHalfPowerPattern)
agcls.AgTypeNameMap["SensorHalfPowerPattern"] = SensorHalfPowerPattern

class SensorRectangularPattern(ISensorPattern, SupportsDeleteCallback):
    """SensorRectangularPattern Interface for rectangular sensor types typically used with satellites or aircraft for modeling the field of view of instruments such as push broom sensors and star trackers."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_vertical_half_angle_method_offset = 1
    _set_vertical_half_angle_method_offset = 2
    _get_horizontal_half_angle_method_offset = 3
    _set_horizontal_half_angle_method_offset = 4
    _get_angular_resolution_method_offset = 5
    _set_angular_resolution_method_offset = 6
    _metadata = {
        "iid_data" : (5755036998539162967, 17228314028905763744),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorRectangularPattern)

    _get_vertical_half_angle_metadata = { "offset" : _get_vertical_half_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def vertical_half_angle(self) -> typing.Any:
        """The angle from the boresight (Z) direction to the edge of the sensor in the YZ plane of the sensor's coordinate system. Uses Angle Dimension."""
        return self._intf.get_property(SensorRectangularPattern._metadata, SensorRectangularPattern._get_vertical_half_angle_metadata)

    _set_vertical_half_angle_metadata = { "offset" : _set_vertical_half_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @vertical_half_angle.setter
    def vertical_half_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorRectangularPattern._metadata, SensorRectangularPattern._set_vertical_half_angle_metadata, value)

    _get_horizontal_half_angle_metadata = { "offset" : _get_horizontal_half_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def horizontal_half_angle(self) -> typing.Any:
        """The angle from the boresight (Z) direction to the edge of the sensor in the XZ plane of the sensor's coordinate system. Uses Angle Dimension."""
        return self._intf.get_property(SensorRectangularPattern._metadata, SensorRectangularPattern._get_horizontal_half_angle_metadata)

    _set_horizontal_half_angle_metadata = { "offset" : _set_horizontal_half_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @horizontal_half_angle.setter
    def horizontal_half_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorRectangularPattern._metadata, SensorRectangularPattern._set_horizontal_half_angle_metadata, value)

    _get_angular_resolution_metadata = { "offset" : _get_angular_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def angular_resolution(self) -> typing.Any:
        """Allow a user to set the angular separation between the pattern data points. This is an advanced user field, available only through STK's object model interface. The default value for the number of pattern samples is..."""
        return self._intf.get_property(SensorRectangularPattern._metadata, SensorRectangularPattern._get_angular_resolution_metadata)

    _set_angular_resolution_metadata = { "offset" : _set_angular_resolution_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @angular_resolution.setter
    def angular_resolution(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorRectangularPattern._metadata, SensorRectangularPattern._set_angular_resolution_metadata, value)

    _property_names[vertical_half_angle] = "vertical_half_angle"
    _property_names[horizontal_half_angle] = "horizontal_half_angle"
    _property_names[angular_resolution] = "angular_resolution"

    def __init__(self, source_object=None):
        """Construct an object of type SensorRectangularPattern."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorRectangularPattern)
        ISensorPattern.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPattern._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorRectangularPattern, [SensorRectangularPattern, ISensorPattern])

agcls.AgClassCatalog.add_catalog_entry((4893263814054702681, 14290974526423550113), SensorRectangularPattern)
agcls.AgTypeNameMap["SensorRectangularPattern"] = SensorRectangularPattern

class SensorSARPattern(ISensorPattern, SupportsDeleteCallback):
    """SensorSARPattern Interface for the Synthetic Aperture Radar (SAR) sensor type, designed to model the field of regard of a SAR sensor with respect to the surface of the Earth."""

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_parent_altitude_method_offset = 1
    _set_parent_altitude_method_offset = 2
    _get_minimum_elevation_angle_method_offset = 3
    _set_minimum_elevation_angle_method_offset = 4
    _get_maximum_elevation_angle_method_offset = 5
    _set_maximum_elevation_angle_method_offset = 6
    _get_fore_exclusion_angle_method_offset = 7
    _set_fore_exclusion_angle_method_offset = 8
    _get_aft_exclusion_angle_method_offset = 9
    _set_aft_exclusion_angle_method_offset = 10
    _set_elevation_angles_method_offset = 11
    _get_angular_resolution_method_offset = 12
    _set_angular_resolution_method_offset = 13
    _get_track_parent_altitude_method_offset = 14
    _set_track_parent_altitude_method_offset = 15
    _metadata = {
        "iid_data" : (5225779352194720964, 1907019203253341837),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorSARPattern)

    _get_parent_altitude_metadata = { "offset" : _get_parent_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def parent_altitude(self) -> float:
        """The altitude of the sensor's parent object (assumed to be constant). Uses Distance Dimension."""
        return self._intf.get_property(SensorSARPattern._metadata, SensorSARPattern._get_parent_altitude_metadata)

    _set_parent_altitude_metadata = { "offset" : _set_parent_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @parent_altitude.setter
    def parent_altitude(self, value:float) -> None:
        return self._intf.set_property(SensorSARPattern._metadata, SensorSARPattern._set_parent_altitude_metadata, value)

    _get_minimum_elevation_angle_metadata = { "offset" : _get_minimum_elevation_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum_elevation_angle(self) -> typing.Any:
        """Minimum ground elevation angle to which the SAR sensor can provide coverage. Uses Angle Dimension."""
        return self._intf.get_property(SensorSARPattern._metadata, SensorSARPattern._get_minimum_elevation_angle_metadata)

    _set_minimum_elevation_angle_metadata = { "offset" : _set_minimum_elevation_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum_elevation_angle.setter
    def minimum_elevation_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorSARPattern._metadata, SensorSARPattern._set_minimum_elevation_angle_metadata, value)

    _get_maximum_elevation_angle_metadata = { "offset" : _get_maximum_elevation_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_elevation_angle(self) -> typing.Any:
        """Maximum ground elevation angle to which the SAR sensor can provide coverage. Uses Angle Dimension."""
        return self._intf.get_property(SensorSARPattern._metadata, SensorSARPattern._get_maximum_elevation_angle_metadata)

    _set_maximum_elevation_angle_metadata = { "offset" : _set_maximum_elevation_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum_elevation_angle.setter
    def maximum_elevation_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorSARPattern._metadata, SensorSARPattern._set_maximum_elevation_angle_metadata, value)

    _get_fore_exclusion_angle_metadata = { "offset" : _get_fore_exclusion_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def fore_exclusion_angle(self) -> typing.Any:
        """The minimum angle between the forward projection of the velocity vector and the vector to the target. Uses Angle Dimension."""
        return self._intf.get_property(SensorSARPattern._metadata, SensorSARPattern._get_fore_exclusion_angle_metadata)

    _set_fore_exclusion_angle_metadata = { "offset" : _set_fore_exclusion_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @fore_exclusion_angle.setter
    def fore_exclusion_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorSARPattern._metadata, SensorSARPattern._set_fore_exclusion_angle_metadata, value)

    _get_aft_exclusion_angle_metadata = { "offset" : _get_aft_exclusion_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def aft_exclusion_angle(self) -> typing.Any:
        """The minimum angle between the aft projection of the velocity vector and the vector to the target. Uses Angle Dimension."""
        return self._intf.get_property(SensorSARPattern._metadata, SensorSARPattern._get_aft_exclusion_angle_metadata)

    _set_aft_exclusion_angle_metadata = { "offset" : _set_aft_exclusion_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @aft_exclusion_angle.setter
    def aft_exclusion_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorSARPattern._metadata, SensorSARPattern._set_aft_exclusion_angle_metadata, value)

    _set_elevation_angles_metadata = { "offset" : _set_elevation_angles_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def set_elevation_angles(self, min:typing.Any, max:typing.Any) -> None:
        """Set both the min and max elevation angle. Min/Max use Angle Dimension."""
        return self._intf.invoke(SensorSARPattern._metadata, SensorSARPattern._set_elevation_angles_metadata, min, max)

    _get_angular_resolution_metadata = { "offset" : _get_angular_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def angular_resolution(self) -> typing.Any:
        """Allow a user to set the angular separation between the pattern data points. This is an advanced user field, available only through STK's object model interface. The default value for the number of pattern samples is..."""
        return self._intf.get_property(SensorSARPattern._metadata, SensorSARPattern._get_angular_resolution_metadata)

    _set_angular_resolution_metadata = { "offset" : _set_angular_resolution_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @angular_resolution.setter
    def angular_resolution(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorSARPattern._metadata, SensorSARPattern._set_angular_resolution_metadata, value)

    _get_track_parent_altitude_metadata = { "offset" : _get_track_parent_altitude_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def track_parent_altitude(self) -> bool:
        """Whether or not the SAR sensor tracks the altitude of the sensor's parent object."""
        return self._intf.get_property(SensorSARPattern._metadata, SensorSARPattern._get_track_parent_altitude_metadata)

    _set_track_parent_altitude_metadata = { "offset" : _set_track_parent_altitude_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @track_parent_altitude.setter
    def track_parent_altitude(self, value:bool) -> None:
        return self._intf.set_property(SensorSARPattern._metadata, SensorSARPattern._set_track_parent_altitude_metadata, value)

    _property_names[parent_altitude] = "parent_altitude"
    _property_names[minimum_elevation_angle] = "minimum_elevation_angle"
    _property_names[maximum_elevation_angle] = "maximum_elevation_angle"
    _property_names[fore_exclusion_angle] = "fore_exclusion_angle"
    _property_names[aft_exclusion_angle] = "aft_exclusion_angle"
    _property_names[angular_resolution] = "angular_resolution"
    _property_names[track_parent_altitude] = "track_parent_altitude"

    def __init__(self, source_object=None):
        """Construct an object of type SensorSARPattern."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorSARPattern)
        ISensorPattern.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPattern._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorSARPattern, [SensorSARPattern, ISensorPattern])

agcls.AgClassCatalog.add_catalog_entry((5592225247472363091, 16347529951711275915), SensorSARPattern)
agcls.AgTypeNameMap["SensorSARPattern"] = SensorSARPattern

class SensorSimpleConicPattern(ISensorPattern, SupportsDeleteCallback):
    """SensorSimpleConicPattern Interface for a sensor pattern defined by a simple cone angle."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_cone_angle_method_offset = 1
    _set_cone_angle_method_offset = 2
    _get_angular_resolution_method_offset = 3
    _set_angular_resolution_method_offset = 4
    _metadata = {
        "iid_data" : (5683824172701272023, 17046495119580626565),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorSimpleConicPattern)

    _get_cone_angle_metadata = { "offset" : _get_cone_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def cone_angle(self) -> typing.Any:
        """Simple cone angle defining the sensor pattern. Uses Angle Dimension."""
        return self._intf.get_property(SensorSimpleConicPattern._metadata, SensorSimpleConicPattern._get_cone_angle_metadata)

    _set_cone_angle_metadata = { "offset" : _set_cone_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @cone_angle.setter
    def cone_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorSimpleConicPattern._metadata, SensorSimpleConicPattern._set_cone_angle_metadata, value)

    _get_angular_resolution_metadata = { "offset" : _get_angular_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def angular_resolution(self) -> typing.Any:
        """Allow a user to set the angular separation between the pattern data points. This is an advanced user field, available only through STK's object model interface. The default value for the number of pattern samples is..."""
        return self._intf.get_property(SensorSimpleConicPattern._metadata, SensorSimpleConicPattern._get_angular_resolution_metadata)

    _set_angular_resolution_metadata = { "offset" : _set_angular_resolution_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @angular_resolution.setter
    def angular_resolution(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorSimpleConicPattern._metadata, SensorSimpleConicPattern._set_angular_resolution_metadata, value)

    _property_names[cone_angle] = "cone_angle"
    _property_names[angular_resolution] = "angular_resolution"

    def __init__(self, source_object=None):
        """Construct an object of type SensorSimpleConicPattern."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorSimpleConicPattern)
        ISensorPattern.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPattern._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorSimpleConicPattern, [SensorSimpleConicPattern, ISensorPattern])

agcls.AgClassCatalog.add_catalog_entry((5302015256336370090, 750968349655622058), SensorSimpleConicPattern)
agcls.AgTypeNameMap["SensorSimpleConicPattern"] = SensorSimpleConicPattern

class SensorPointingFixed(ISensorPointing, SupportsDeleteCallback):
    """
    SensorPointingFixed Interface for sensors that are fixed in the parent object's body coordinate frame, so that they always point in the same direction relative to the parent.

    Examples
    --------
    Define sensor pointing fixed YPR:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_ypr(YPRAnglesSequence.RPY, 12, 24, 36)

    Define sensor pointing fixed Quaternion:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_quaternion(0.1, 0.2, 0.3, 0.4)

    Define sensor pointing fixed Euler:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_euler(EulerOrientationSequenceType.SEQUENCE_132, 30, 40, 50)

    Define sensor pointing fixed AzEl:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_az_el(4.5, -45.0, AzElAboutBoresight.ROTATE)
    """

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_orientation_method_offset = 1
    _metadata = {
        "iid_data" : (5154635548792985027, 7666972309555355802),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointingFixed)

    _get_orientation_metadata = { "offset" : _get_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orientation(self) -> "IOrientation":
        """Get the sensor's orientation properties."""
        return self._intf.get_property(SensorPointingFixed._metadata, SensorPointingFixed._get_orientation_metadata)

    _property_names[orientation] = "orientation"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointingFixed."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointingFixed)
        ISensorPointing.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointing._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointingFixed, [SensorPointingFixed, ISensorPointing])

agcls.AgClassCatalog.add_catalog_entry((4721664570561591182, 3961529714836696751), SensorPointingFixed)
agcls.AgTypeNameMap["SensorPointingFixed"] = SensorPointingFixed

class SensorPointingFixedInAxes(ISensorPointing, SupportsDeleteCallback):
    """
    SensorPointingFixedInAxes Interface for sensors pointed with reference to a set of reference axes.

    Examples
    --------
    Define sensor pointing fixed axes YPR:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_axes_ypr("CentralBody/Sun J2000 Axes", YPRAnglesSequence.RYP, 11, 22, 33)

    Define sensor pointing fixed axes Quaternion:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_axes_quaternion("CentralBody/Sun J2000 Axes", 0.1, 0.2, 0.3, 0.4)

    Define sensor pointing fixed axes Euler:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_axes_euler(
    >>>     "CentralBody/Sun J2000 Axes", EulerOrientationSequenceType.SEQUENCE_132, 30, 40, 50
    >>> )

    Define sensor pointing fixed axes AzEl:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_axes_az_el("CentralBody/Sun J2000 Axes", 11, 22, AzElAboutBoresight.HOLD)
    """

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_reference_axes_method_offset = 1
    _set_reference_axes_method_offset = 2
    _get_orientation_method_offset = 3
    _get_available_axes_method_offset = 4
    _get_use_reference_axes_flipped_about_x_method_offset = 5
    _set_use_reference_axes_flipped_about_x_method_offset = 6
    _metadata = {
        "iid_data" : (4684378115510856607, 17119868351063919015),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointingFixedInAxes)

    _get_reference_axes_metadata = { "offset" : _get_reference_axes_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reference_axes(self) -> str:
        """The reference axes with respect to which the sensor is pointed. The sensor's body axes or any axes dependent upon the sensor's body axes are invalid; all other axes are valid choices for the reference axes."""
        return self._intf.get_property(SensorPointingFixedInAxes._metadata, SensorPointingFixedInAxes._get_reference_axes_metadata)

    _set_reference_axes_metadata = { "offset" : _set_reference_axes_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @reference_axes.setter
    def reference_axes(self, value:str) -> None:
        return self._intf.set_property(SensorPointingFixedInAxes._metadata, SensorPointingFixedInAxes._set_reference_axes_metadata, value)

    _get_orientation_metadata = { "offset" : _get_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orientation(self) -> "IOrientation":
        """Get the sensor's orientation properties."""
        return self._intf.get_property(SensorPointingFixedInAxes._metadata, SensorPointingFixedInAxes._get_orientation_metadata)

    _get_available_axes_metadata = { "offset" : _get_available_axes_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_axes(self) -> list:
        """Get the available Reference Axes."""
        return self._intf.get_property(SensorPointingFixedInAxes._metadata, SensorPointingFixedInAxes._get_available_axes_metadata)

    _get_use_reference_axes_flipped_about_x_metadata = { "offset" : _get_use_reference_axes_flipped_about_x_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_reference_axes_flipped_about_x(self) -> bool:
        """Use the specified ReferenceAxes, after flipping it 180 deg about its x-axis, as the sensor's body axes. Setting is only available for Facility, Target, Place objects and defaults to true for such objects."""
        return self._intf.get_property(SensorPointingFixedInAxes._metadata, SensorPointingFixedInAxes._get_use_reference_axes_flipped_about_x_metadata)

    _set_use_reference_axes_flipped_about_x_metadata = { "offset" : _set_use_reference_axes_flipped_about_x_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_reference_axes_flipped_about_x.setter
    def use_reference_axes_flipped_about_x(self, value:bool) -> None:
        return self._intf.set_property(SensorPointingFixedInAxes._metadata, SensorPointingFixedInAxes._set_use_reference_axes_flipped_about_x_metadata, value)

    _property_names[reference_axes] = "reference_axes"
    _property_names[orientation] = "orientation"
    _property_names[available_axes] = "available_axes"
    _property_names[use_reference_axes_flipped_about_x] = "use_reference_axes_flipped_about_x"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointingFixedInAxes."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointingFixedInAxes)
        ISensorPointing.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointing._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointingFixedInAxes, [SensorPointingFixedInAxes, ISensorPointing])

agcls.AgClassCatalog.add_catalog_entry((5193210194567426737, 13290768799752663470), SensorPointingFixedInAxes)
agcls.AgTypeNameMap["SensorPointingFixedInAxes"] = SensorPointingFixedInAxes

class SensorPointing3DModel(ISensorPointing, SupportsDeleteCallback):
    """SensorPointing3DModel Interface for a sensor with pointing along one of the available elements of a 3D model."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_attachment_name_method_offset = 1
    _set_attachment_name_method_offset = 2
    _get_available_elements_method_offset = 3
    _metadata = {
        "iid_data" : (4829421326128214655, 1690699959271740320),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointing3DModel)

    _get_attachment_name_metadata = { "offset" : _get_attachment_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def attachment_name(self) -> str:
        """Name of the element of the 3D model along which the sensor points."""
        return self._intf.get_property(SensorPointing3DModel._metadata, SensorPointing3DModel._get_attachment_name_metadata)

    _set_attachment_name_metadata = { "offset" : _set_attachment_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @attachment_name.setter
    def attachment_name(self, value:str) -> None:
        return self._intf.set_property(SensorPointing3DModel._metadata, SensorPointing3DModel._set_attachment_name_metadata, value)

    _get_available_elements_metadata = { "offset" : _get_available_elements_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_elements(self) -> list:
        """Get the available elements of the 3D model."""
        return self._intf.get_property(SensorPointing3DModel._metadata, SensorPointing3DModel._get_available_elements_metadata)

    _property_names[attachment_name] = "attachment_name"
    _property_names[available_elements] = "available_elements"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointing3DModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointing3DModel)
        ISensorPointing.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointing._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointing3DModel, [SensorPointing3DModel, ISensorPointing])

agcls.AgClassCatalog.add_catalog_entry((5380257573604608667, 8289745248674535855), SensorPointing3DModel)
agcls.AgTypeNameMap["SensorPointing3DModel"] = SensorPointing3DModel

class SensorPointingSpinning(ISensorPointing, SupportsDeleteCallback):
    """SensorPointingSpinning Interface for defining the pointing properties of a spinning sensor."""

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_spin_axis_azimuth_method_offset = 1
    _set_spin_axis_azimuth_method_offset = 2
    _get_spin_axis_elevation_method_offset = 3
    _set_spin_axis_elevation_method_offset = 4
    _get_spin_axis_cone_angle_method_offset = 5
    _set_spin_axis_cone_angle_method_offset = 6
    _get_scan_mode_method_offset = 7
    _set_scan_mode_method_offset = 8
    _get_clock_angle_start_method_offset = 9
    _set_clock_angle_start_method_offset = 10
    _get_clock_angle_stop_method_offset = 11
    _set_clock_angle_stop_method_offset = 12
    _get_spin_rate_method_offset = 13
    _set_spin_rate_method_offset = 14
    _get_offset_angle_method_offset = 15
    _set_offset_angle_method_offset = 16
    _set_clock_angles_method_offset = 17
    _metadata = {
        "iid_data" : (5033488772340793473, 17430686365320571032),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointingSpinning)

    _get_spin_axis_azimuth_metadata = { "offset" : _get_spin_axis_azimuth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def spin_axis_azimuth(self) -> typing.Any:
        """The azimuth of the spin axis, i.e. the angle from the parent object's +X axis about the +Z axis in a right-handed sense. Uses Angle Dimension."""
        return self._intf.get_property(SensorPointingSpinning._metadata, SensorPointingSpinning._get_spin_axis_azimuth_metadata)

    _set_spin_axis_azimuth_metadata = { "offset" : _set_spin_axis_azimuth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @spin_axis_azimuth.setter
    def spin_axis_azimuth(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorPointingSpinning._metadata, SensorPointingSpinning._set_spin_axis_azimuth_metadata, value)

    _get_spin_axis_elevation_metadata = { "offset" : _get_spin_axis_elevation_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def spin_axis_elevation(self) -> typing.Any:
        """The elevation of the spin axis, i.e. the angle between the spin axis and the parent object's body-fixed XY plane, measured as positive in the direction of the parent object's body-fixed +Z axis. Uses Angle Dimension."""
        return self._intf.get_property(SensorPointingSpinning._metadata, SensorPointingSpinning._get_spin_axis_elevation_metadata)

    _set_spin_axis_elevation_metadata = { "offset" : _set_spin_axis_elevation_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @spin_axis_elevation.setter
    def spin_axis_elevation(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorPointingSpinning._metadata, SensorPointingSpinning._set_spin_axis_elevation_metadata, value)

    _get_spin_axis_cone_angle_metadata = { "offset" : _get_spin_axis_cone_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def spin_axis_cone_angle(self) -> typing.Any:
        """The cone angle used in defining the spin axis, i.e. the angle between the spin axis and the sensor boresight. As the boresight spins about the spin axis, it maintains this angular distance away from the spin axis. Uses Angle Dimension."""
        return self._intf.get_property(SensorPointingSpinning._metadata, SensorPointingSpinning._get_spin_axis_cone_angle_metadata)

    _set_spin_axis_cone_angle_metadata = { "offset" : _set_spin_axis_cone_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @spin_axis_cone_angle.setter
    def spin_axis_cone_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorPointingSpinning._metadata, SensorPointingSpinning._set_spin_axis_cone_angle_metadata, value)

    _get_scan_mode_metadata = { "offset" : _get_scan_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorScanMode),) }
    @property
    def scan_mode(self) -> "SensorScanMode":
        """The scan mode of the sensor, a member of the SensorScanMode enumeration."""
        return self._intf.get_property(SensorPointingSpinning._metadata, SensorPointingSpinning._get_scan_mode_metadata)

    _set_scan_mode_metadata = { "offset" : _set_scan_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorScanMode),) }
    @scan_mode.setter
    def scan_mode(self, value:"SensorScanMode") -> None:
        return self._intf.set_property(SensorPointingSpinning._metadata, SensorPointingSpinning._set_scan_mode_metadata, value)

    _get_clock_angle_start_metadata = { "offset" : _get_clock_angle_start_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def clock_angle_start(self) -> typing.Any:
        """The start angle, i.e. the angle about the sensor's spin axis at which scanning begins. Zero is relative to the X axis in the spin axis coordinate frame. Uses Angle Dimension."""
        return self._intf.get_property(SensorPointingSpinning._metadata, SensorPointingSpinning._get_clock_angle_start_metadata)

    _set_clock_angle_start_metadata = { "offset" : _set_clock_angle_start_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @clock_angle_start.setter
    def clock_angle_start(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorPointingSpinning._metadata, SensorPointingSpinning._set_clock_angle_start_metadata, value)

    _get_clock_angle_stop_metadata = { "offset" : _get_clock_angle_stop_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def clock_angle_stop(self) -> typing.Any:
        """The stop angle, i.e. the angle about the sensor's spin axis at which scanning ends and/or reverses direction. Uses Angle Dimension."""
        return self._intf.get_property(SensorPointingSpinning._metadata, SensorPointingSpinning._get_clock_angle_stop_metadata)

    _set_clock_angle_stop_metadata = { "offset" : _set_clock_angle_stop_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @clock_angle_stop.setter
    def clock_angle_stop(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorPointingSpinning._metadata, SensorPointingSpinning._set_clock_angle_stop_metadata, value)

    _get_spin_rate_metadata = { "offset" : _get_spin_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def spin_rate(self) -> float:
        """Rate at which the boresight spins about the spin axis, measured in revolutions per minute. The spin is positive in a right-handed sense about the spin axis. Negative rate can be used to create a spin in the opposite direction. Uses AngleRate Dimension."""
        return self._intf.get_property(SensorPointingSpinning._metadata, SensorPointingSpinning._get_spin_rate_metadata)

    _set_spin_rate_metadata = { "offset" : _set_spin_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @spin_rate.setter
    def spin_rate(self, value:float) -> None:
        return self._intf.set_property(SensorPointingSpinning._metadata, SensorPointingSpinning._set_spin_rate_metadata, value)

    _get_offset_angle_metadata = { "offset" : _get_offset_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def offset_angle(self) -> typing.Any:
        """The initial offset angle, i.e. the angle about the spin axis where the sensor boresight is at time zero. Uses Angle Dimension."""
        return self._intf.get_property(SensorPointingSpinning._metadata, SensorPointingSpinning._get_offset_angle_metadata)

    _set_offset_angle_metadata = { "offset" : _set_offset_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @offset_angle.setter
    def offset_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorPointingSpinning._metadata, SensorPointingSpinning._set_offset_angle_metadata, value)

    _set_clock_angles_metadata = { "offset" : _set_clock_angles_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def set_clock_angles(self, start:typing.Any, stop:typing.Any) -> None:
        """Set both the start and stop clock angles. Start/Stop use Angle Dimension."""
        return self._intf.invoke(SensorPointingSpinning._metadata, SensorPointingSpinning._set_clock_angles_metadata, start, stop)

    _property_names[spin_axis_azimuth] = "spin_axis_azimuth"
    _property_names[spin_axis_elevation] = "spin_axis_elevation"
    _property_names[spin_axis_cone_angle] = "spin_axis_cone_angle"
    _property_names[scan_mode] = "scan_mode"
    _property_names[clock_angle_start] = "clock_angle_start"
    _property_names[clock_angle_stop] = "clock_angle_stop"
    _property_names[spin_rate] = "spin_rate"
    _property_names[offset_angle] = "offset_angle"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointingSpinning."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointingSpinning)
        ISensorPointing.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointing._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointingSpinning, [SensorPointingSpinning, ISensorPointing])

agcls.AgClassCatalog.add_catalog_entry((4903742922486391892, 16007702410347222697), SensorPointingSpinning)
agcls.AgTypeNameMap["SensorPointingSpinning"] = SensorPointingSpinning

class SensorPointingTargeted(ISensorPointing, SupportsDeleteCallback):
    """SensorPointingTargeted Interface for targeted sensors."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_boresight_method_offset = 1
    _set_boresight_method_offset = 2
    _get_boresight_data_method_offset = 3
    _get_enable_access_times_method_offset = 4
    _set_enable_access_times_method_offset = 5
    _get_access_times_method_offset = 6
    _get_schedule_times_method_offset = 7
    _get_targets_method_offset = 8
    _get_available_targets_method_offset = 9
    _get_advanced_method_offset = 10
    _get_save_target_access_method_offset = 11
    _set_save_target_access_method_offset = 12
    _metadata = {
        "iid_data" : (5308820555220534195, 11463833107551801531),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointingTargeted)

    _get_boresight_metadata = { "offset" : _get_boresight_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorPointingTargetedBoresightType),) }
    @property
    def boresight(self) -> "SensorPointingTargetedBoresightType":
        """The targeted sensor's boresight type, a member of the SensorPointingTargetedBoresightType enumeration."""
        return self._intf.get_property(SensorPointingTargeted._metadata, SensorPointingTargeted._get_boresight_metadata)

    _set_boresight_metadata = { "offset" : _set_boresight_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorPointingTargetedBoresightType),) }
    @boresight.setter
    def boresight(self, value:"SensorPointingTargetedBoresightType") -> None:
        return self._intf.set_property(SensorPointingTargeted._metadata, SensorPointingTargeted._set_boresight_metadata, value)

    _get_boresight_data_metadata = { "offset" : _get_boresight_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def boresight_data(self) -> "ISensorPointingTargetedBoresight":
        """Get orientation data for the selected boresight type."""
        return self._intf.get_property(SensorPointingTargeted._metadata, SensorPointingTargeted._get_boresight_data_metadata)

    _get_enable_access_times_metadata = { "offset" : _get_enable_access_times_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_access_times(self) -> bool:
        """Opt whether to use periods of access between the sensor and its target(s) as target times."""
        return self._intf.get_property(SensorPointingTargeted._metadata, SensorPointingTargeted._get_enable_access_times_metadata)

    _set_enable_access_times_metadata = { "offset" : _set_enable_access_times_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_access_times.setter
    def enable_access_times(self, value:bool) -> None:
        return self._intf.set_property(SensorPointingTargeted._metadata, SensorPointingTargeted._set_enable_access_times_metadata, value)

    _get_access_times_metadata = { "offset" : _get_access_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_times(self) -> "AccessTargetTimesCollection":
        """Get the access periods between the sensor and its target(s)."""
        return self._intf.get_property(SensorPointingTargeted._metadata, SensorPointingTargeted._get_access_times_metadata)

    _get_schedule_times_metadata = { "offset" : _get_schedule_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def schedule_times(self) -> "ScheduleTimeCollection":
        """Get the user-scheduled target times."""
        return self._intf.get_property(SensorPointingTargeted._metadata, SensorPointingTargeted._get_schedule_times_metadata)

    _get_targets_metadata = { "offset" : _get_targets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def targets(self) -> "SensorTargetCollection":
        """Get the collection of objects assigned as targets for the sensor."""
        return self._intf.get_property(SensorPointingTargeted._metadata, SensorPointingTargeted._get_targets_metadata)

    _get_available_targets_metadata = { "offset" : _get_available_targets_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_targets(self) -> list:
        """Get the collection of objects available as targets for the sensor."""
        return self._intf.get_property(SensorPointingTargeted._metadata, SensorPointingTargeted._get_available_targets_metadata)

    _get_advanced_metadata = { "offset" : _get_advanced_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def advanced(self) -> "SensorAccessAdvancedSettings":
        """Get advanced targeting properties used for access computations."""
        return self._intf.get_property(SensorPointingTargeted._metadata, SensorPointingTargeted._get_advanced_metadata)

    _get_save_target_access_metadata = { "offset" : _get_save_target_access_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_target_access(self) -> bool:
        """Whether to Save Target Access."""
        return self._intf.get_property(SensorPointingTargeted._metadata, SensorPointingTargeted._get_save_target_access_metadata)

    _set_save_target_access_metadata = { "offset" : _set_save_target_access_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @save_target_access.setter
    def save_target_access(self, value:bool) -> None:
        return self._intf.set_property(SensorPointingTargeted._metadata, SensorPointingTargeted._set_save_target_access_metadata, value)

    _property_names[boresight] = "boresight"
    _property_names[boresight_data] = "boresight_data"
    _property_names[enable_access_times] = "enable_access_times"
    _property_names[access_times] = "access_times"
    _property_names[schedule_times] = "schedule_times"
    _property_names[targets] = "targets"
    _property_names[available_targets] = "available_targets"
    _property_names[advanced] = "advanced"
    _property_names[save_target_access] = "save_target_access"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointingTargeted."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointingTargeted)
        ISensorPointing.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointing._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointingTargeted, [SensorPointingTargeted, ISensorPointing])

agcls.AgClassCatalog.add_catalog_entry((5746804525912262373, 4861032961697946012), SensorPointingTargeted)
agcls.AgTypeNameMap["SensorPointingTargeted"] = SensorPointingTargeted

class SensorPointingExternal(ISensorPointing, SupportsDeleteCallback):
    """SensorPointingExternal Interface for antennas oriented with a custom pointing file."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5075713486606133949, 15778031863735529864),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointingExternal)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Path and file name of the sensor pointing (.sp) file."""
        return self._intf.get_property(SensorPointingExternal._metadata, SensorPointingExternal._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(SensorPointingExternal._metadata, SensorPointingExternal._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointingExternal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointingExternal)
        ISensorPointing.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointing._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointingExternal, [SensorPointingExternal, ISensorPointing])

agcls.AgClassCatalog.add_catalog_entry((4676518461174839599, 7127964190099480500), SensorPointingExternal)
agcls.AgTypeNameMap["SensorPointingExternal"] = SensorPointingExternal

class SensorPointingTargetedBoresightTrack(ISensorPointingTargetedBoresight, SupportsDeleteCallback):
    """SensorPointingTargetedBoresightTrack Interface for targeted sensor with fixed boresight."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_about_boresight_method_offset = 1
    _set_about_boresight_method_offset = 2
    _get_track_mode_method_offset = 3
    _set_track_mode_method_offset = 4
    _get_constraint_vector_for_up_vector_boresight_method_offset = 5
    _set_constraint_vector_for_up_vector_boresight_method_offset = 6
    _get_available_constraint_vectors_method_offset = 7
    _get_clock_angle_offset_for_up_vector_boresight_method_offset = 8
    _set_clock_angle_offset_for_up_vector_boresight_method_offset = 9
    _metadata = {
        "iid_data" : (5396153334690629027, 12755296538182144173),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointingTargetedBoresightTrack)

    _get_about_boresight_metadata = { "offset" : _get_about_boresight_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(BoresightType),) }
    @property
    def about_boresight(self) -> "BoresightType":
        """The orientation of the antenna's X and Y axes with respect to the parent's reference frame. (The Z axis always coincides with its boresight direction and is unambiguously defined by the azimuth and elevation."""
        return self._intf.get_property(SensorPointingTargetedBoresightTrack._metadata, SensorPointingTargetedBoresightTrack._get_about_boresight_metadata)

    _set_about_boresight_metadata = { "offset" : _set_about_boresight_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(BoresightType),) }
    @about_boresight.setter
    def about_boresight(self, value:"BoresightType") -> None:
        return self._intf.set_property(SensorPointingTargetedBoresightTrack._metadata, SensorPointingTargetedBoresightTrack._set_about_boresight_metadata, value)

    _get_track_mode_metadata = { "offset" : _get_track_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TrackMode),) }
    @property
    def track_mode(self) -> "TrackMode":
        """The antenna orientation option for the sensor. A member of the TrackMode enumeration."""
        return self._intf.get_property(SensorPointingTargetedBoresightTrack._metadata, SensorPointingTargetedBoresightTrack._get_track_mode_metadata)

    _set_track_mode_metadata = { "offset" : _set_track_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TrackMode),) }
    @track_mode.setter
    def track_mode(self, value:"TrackMode") -> None:
        return self._intf.set_property(SensorPointingTargetedBoresightTrack._metadata, SensorPointingTargetedBoresightTrack._set_track_mode_metadata, value)

    _get_constraint_vector_for_up_vector_boresight_metadata = { "offset" : _get_constraint_vector_for_up_vector_boresight_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def constraint_vector_for_up_vector_boresight(self) -> str:
        """Get or set the constraint vector for UpVector boresight type."""
        return self._intf.get_property(SensorPointingTargetedBoresightTrack._metadata, SensorPointingTargetedBoresightTrack._get_constraint_vector_for_up_vector_boresight_metadata)

    _set_constraint_vector_for_up_vector_boresight_metadata = { "offset" : _set_constraint_vector_for_up_vector_boresight_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @constraint_vector_for_up_vector_boresight.setter
    def constraint_vector_for_up_vector_boresight(self, value:str) -> None:
        return self._intf.set_property(SensorPointingTargetedBoresightTrack._metadata, SensorPointingTargetedBoresightTrack._set_constraint_vector_for_up_vector_boresight_metadata, value)

    _get_available_constraint_vectors_metadata = { "offset" : _get_available_constraint_vectors_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_constraint_vectors(self) -> list:
        """Get the available constraint vectors."""
        return self._intf.get_property(SensorPointingTargetedBoresightTrack._metadata, SensorPointingTargetedBoresightTrack._get_available_constraint_vectors_metadata)

    _get_clock_angle_offset_for_up_vector_boresight_metadata = { "offset" : _get_clock_angle_offset_for_up_vector_boresight_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def clock_angle_offset_for_up_vector_boresight(self) -> typing.Any:
        """Get or set the clock angle offset for UpVector boresight type. It is an optional value measured in the Sensor Body axes xy-plane, positive about the boresight, locating the direction closest to the ConstraintVector from the Sensor Body x-axis."""
        return self._intf.get_property(SensorPointingTargetedBoresightTrack._metadata, SensorPointingTargetedBoresightTrack._get_clock_angle_offset_for_up_vector_boresight_metadata)

    _set_clock_angle_offset_for_up_vector_boresight_metadata = { "offset" : _set_clock_angle_offset_for_up_vector_boresight_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @clock_angle_offset_for_up_vector_boresight.setter
    def clock_angle_offset_for_up_vector_boresight(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorPointingTargetedBoresightTrack._metadata, SensorPointingTargetedBoresightTrack._set_clock_angle_offset_for_up_vector_boresight_metadata, value)

    _property_names[about_boresight] = "about_boresight"
    _property_names[track_mode] = "track_mode"
    _property_names[constraint_vector_for_up_vector_boresight] = "constraint_vector_for_up_vector_boresight"
    _property_names[available_constraint_vectors] = "available_constraint_vectors"
    _property_names[clock_angle_offset_for_up_vector_boresight] = "clock_angle_offset_for_up_vector_boresight"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointingTargetedBoresightTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointingTargetedBoresightTrack)
        ISensorPointingTargetedBoresight.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointingTargetedBoresight._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointingTargetedBoresightTrack, [SensorPointingTargetedBoresightTrack, ISensorPointingTargetedBoresight])

agcls.AgClassCatalog.add_catalog_entry((5373451273960400003, 18419985963910869927), SensorPointingTargetedBoresightTrack)
agcls.AgTypeNameMap["SensorPointingTargetedBoresightTrack"] = SensorPointingTargetedBoresightTrack

class SensorPointingTargetedBoresightFixed(ISensorPointingTargetedBoresight, SupportsDeleteCallback):
    """SensorPointingTargetedBoresightFixed Interface for targeted sensors with fixed boresight."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_orientation_method_offset = 1
    _metadata = {
        "iid_data" : (5129229246665554034, 11457145665458637188),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointingTargetedBoresightFixed)

    _get_orientation_metadata = { "offset" : _get_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orientation(self) -> "IOrientation":
        """Get the orientation of the sensor."""
        return self._intf.get_property(SensorPointingTargetedBoresightFixed._metadata, SensorPointingTargetedBoresightFixed._get_orientation_metadata)

    _property_names[orientation] = "orientation"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointingTargetedBoresightFixed."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointingTargetedBoresightFixed)
        ISensorPointingTargetedBoresight.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointingTargetedBoresight._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointingTargetedBoresightFixed, [SensorPointingTargetedBoresightFixed, ISensorPointingTargetedBoresight])

agcls.AgClassCatalog.add_catalog_entry((5395720683661544979, 13155679576268110235), SensorPointingTargetedBoresightFixed)
agcls.AgTypeNameMap["SensorPointingTargetedBoresightFixed"] = SensorPointingTargetedBoresightFixed

class SensorTargetCollection(SupportsDeleteCallback):
    """SensorTargetCollection Interface. A collection of targets."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _get__new_enum_method_offset = 2
    _item_method_offset = 3
    _add_method_offset = 4
    _remove_method_offset = 5
    _remove_target_method_offset = 6
    _remove_all_method_offset = 7
    _add_object_method_offset = 8
    _remove_object_method_offset = 9
    _metadata = {
        "iid_data" : (4613041348827481187, 4736408239113424055),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorTargetCollection)
    def __iter__(self):
        """Create an iterator for the SensorTargetCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "SensorTarget":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """The number of items in the collection."""
        return self._intf.get_property(SensorTargetCollection._metadata, SensorTargetCollection._get_count_metadata)

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the collection."""
        return self._intf.get_property(SensorTargetCollection._metadata, SensorTargetCollection._get__new_enum_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "SensorTarget":
        """Given an index, returns an SensorTarget interface."""
        return self._intf.invoke(SensorTargetCollection._metadata, SensorTargetCollection._item_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add(self, name:str) -> None:
        """Add a target."""
        return self._intf.invoke(SensorTargetCollection._metadata, SensorTargetCollection._add_metadata, name)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove(self, index:int) -> None:
        """Remove a target given an index."""
        return self._intf.invoke(SensorTargetCollection._metadata, SensorTargetCollection._remove_metadata, index)

    _remove_target_metadata = { "offset" : _remove_target_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_target(self, name:str) -> None:
        """Remove a target given the target's name."""
        return self._intf.invoke(SensorTargetCollection._metadata, SensorTargetCollection._remove_target_metadata, name)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all targets in the collection."""
        return self._intf.invoke(SensorTargetCollection._metadata, SensorTargetCollection._remove_all_metadata, )

    _add_object_metadata = { "offset" : _add_object_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"),) }
    def add_object(self, object:"ISTKObject") -> None:
        """Add a target to the collection."""
        return self._intf.invoke(SensorTargetCollection._metadata, SensorTargetCollection._add_object_metadata, object)

    _remove_object_metadata = { "offset" : _remove_object_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"),) }
    def remove_object(self, object:"ISTKObject") -> None:
        """Remove a target from the collection."""
        return self._intf.invoke(SensorTargetCollection._metadata, SensorTargetCollection._remove_object_metadata, object)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type SensorTargetCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorTargetCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorTargetCollection, [SensorTargetCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5431985170242409623, 8943182097098935473), SensorTargetCollection)
agcls.AgTypeNameMap["SensorTargetCollection"] = SensorTargetCollection

class SensorTarget(SupportsDeleteCallback):
    """SensorTarget Interface."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _metadata = {
        "iid_data" : (5416795027119391195, 8153287529099881375),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorTarget)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """The Name property."""
        return self._intf.get_property(SensorTarget._metadata, SensorTarget._get_name_metadata)

    _property_names[name] = "name"

    def __init__(self, source_object=None):
        """Construct an object of type SensorTarget."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorTarget)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorTarget, [SensorTarget, ])

agcls.AgClassCatalog.add_catalog_entry((5747780306652628496, 1355089140840769202), SensorTarget)
agcls.AgTypeNameMap["SensorTarget"] = SensorTarget

class AccessTargetTime(SupportsDeleteCallback):
    """AccessTargetTime Interface, part of the target times scheme for specifying when a satellite or sensor can access a given object."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_time_method_offset = 1
    _get_stop_time_method_offset = 2
    _get_target_method_offset = 3
    _metadata = {
        "iid_data" : (4744630658569180040, 7707266004668607892),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessTargetTime)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Start time for the access period. Uses DateFormat Dimension."""
        return self._intf.get_property(AccessTargetTime._metadata, AccessTargetTime._get_start_time_metadata)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Stop time for the access period. Uses DateFormat Dimension."""
        return self._intf.get_property(AccessTargetTime._metadata, AccessTargetTime._get_stop_time_metadata)

    _get_target_metadata = { "offset" : _get_target_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def target(self) -> str:
        """Object to which there is access."""
        return self._intf.get_property(AccessTargetTime._metadata, AccessTargetTime._get_target_metadata)

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[target] = "target"

    def __init__(self, source_object=None):
        """Construct an object of type AccessTargetTime."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessTargetTime)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessTargetTime, [AccessTargetTime, ])

agcls.AgClassCatalog.add_catalog_entry((5504084755700729921, 17905346347080448137), AccessTargetTime)
agcls.AgTypeNameMap["AccessTargetTime"] = AccessTargetTime

class ScheduleTime(SupportsDeleteCallback):
    """ScheduleTime Interface, part of the target times scheme for specifying when a satellite or sensor can access a given object."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_time_method_offset = 1
    _set_start_time_method_offset = 2
    _get_stop_time_method_offset = 3
    _set_stop_time_method_offset = 4
    _get_target_method_offset = 5
    _set_target_method_offset = 6
    _metadata = {
        "iid_data" : (5380262992686229762, 10397384116242800821),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScheduleTime)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Start time of the scheduled access period. Uses DateFormat Dimension."""
        return self._intf.get_property(ScheduleTime._metadata, ScheduleTime._get_start_time_metadata)

    _set_start_time_metadata = { "offset" : _set_start_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_time.setter
    def start_time(self, value:typing.Any) -> None:
        return self._intf.set_property(ScheduleTime._metadata, ScheduleTime._set_start_time_metadata, value)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Stop time of the scheduled access period. Uses DateFormat Dimension."""
        return self._intf.get_property(ScheduleTime._metadata, ScheduleTime._get_stop_time_metadata)

    _set_stop_time_metadata = { "offset" : _set_stop_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop_time.setter
    def stop_time(self, value:typing.Any) -> None:
        return self._intf.set_property(ScheduleTime._metadata, ScheduleTime._set_stop_time_metadata, value)

    _get_target_metadata = { "offset" : _get_target_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def target(self) -> str:
        """Object to which there is access during the scheduled period."""
        return self._intf.get_property(ScheduleTime._metadata, ScheduleTime._get_target_metadata)

    _set_target_metadata = { "offset" : _set_target_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @target.setter
    def target(self, value:str) -> None:
        return self._intf.set_property(ScheduleTime._metadata, ScheduleTime._set_target_metadata, value)

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[target] = "target"

    def __init__(self, source_object=None):
        """Construct an object of type ScheduleTime."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScheduleTime)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScheduleTime, [ScheduleTime, ])

agcls.AgClassCatalog.add_catalog_entry((5585475012345813845, 10192195995039122820), ScheduleTime)
agcls.AgTypeNameMap["ScheduleTime"] = ScheduleTime

class SensorAzElMaskFile(IAzElMaskData, SupportsDeleteCallback):
    """SensorAzElMaskFile Interface."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _get_boresight_axis_method_offset = 2
    _set_boresight_axis_method_offset = 3
    _metadata = {
        "iid_data" : (4707111952654270631, 3080023342825912225),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorAzElMaskFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Path and filename of Az-El mask file (.aem) or body mask file (.bmsk)."""
        return self._intf.get_property(SensorAzElMaskFile._metadata, SensorAzElMaskFile._get_filename_metadata)

    _get_boresight_axis_metadata = { "offset" : _get_boresight_axis_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorAzElBoresightAxisType),) }
    @property
    def boresight_axis(self) -> "SensorAzElBoresightAxisType":
        """Boresight Axis, calculated using the body-fixed coordinates of the sensor's parent object."""
        return self._intf.get_property(SensorAzElMaskFile._metadata, SensorAzElMaskFile._get_boresight_axis_metadata)

    _set_boresight_axis_metadata = { "offset" : _set_boresight_axis_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorAzElBoresightAxisType),) }
    @boresight_axis.setter
    def boresight_axis(self, value:"SensorAzElBoresightAxisType") -> None:
        return self._intf.set_property(SensorAzElMaskFile._metadata, SensorAzElMaskFile._set_boresight_axis_metadata, value)

    _property_names[filename] = "filename"
    _property_names[boresight_axis] = "boresight_axis"

    def __init__(self, source_object=None):
        """Construct an object of type SensorAzElMaskFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorAzElMaskFile)
        IAzElMaskData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAzElMaskData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorAzElMaskFile, [SensorAzElMaskFile, IAzElMaskData])

agcls.AgClassCatalog.add_catalog_entry((4841327667809913790, 7769773662056708756), SensorAzElMaskFile)
agcls.AgTypeNameMap["SensorAzElMaskFile"] = SensorAzElMaskFile

class SensorGraphics(SupportsDeleteCallback):
    """SensorGraphics Interface for a sensor's 2D Graphics properties."""

    _num_methods = 23
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_from_scenario_method_offset = 1
    _set_inherit_from_scenario_method_offset = 2
    _get_enable_method_offset = 3
    _set_enable_method_offset = 4
    _get_color_method_offset = 5
    _set_color_method_offset = 6
    _get_line_style_method_offset = 7
    _set_line_style_method_offset = 8
    _get_line_width_method_offset = 9
    _set_line_width_method_offset = 10
    _get_enable_boresight_graphics_2d_method_offset = 11
    _set_enable_boresight_graphics_2d_method_offset = 12
    _get_boresight_color_method_offset = 13
    _set_boresight_color_method_offset = 14
    _get_boresight_marker_style_method_offset = 15
    _set_boresight_marker_style_method_offset = 16
    _get_projection_method_offset = 17
    _get_show_fill_method_offset = 18
    _set_show_fill_method_offset = 19
    _get_percent_translucency_method_offset = 20
    _set_percent_translucency_method_offset = 21
    _get_show_graphics_method_offset = 22
    _set_show_graphics_method_offset = 23
    _metadata = {
        "iid_data" : (5140863931421007624, 3286498750493181613),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorGraphics)

    _get_inherit_from_scenario_metadata = { "offset" : _get_inherit_from_scenario_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_from_scenario(self) -> bool:
        """Opt whether sensor 2D graphics are to be inherited from Scenario-level settings."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_inherit_from_scenario_metadata)

    _set_inherit_from_scenario_metadata = { "offset" : _set_inherit_from_scenario_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_from_scenario.setter
    def inherit_from_scenario(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_inherit_from_scenario_metadata, value)

    _get_enable_metadata = { "offset" : _get_enable_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable(self) -> bool:
        """If not inherited from Scenario-level settings, opt whether to display sensor 2D graphics."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_enable_metadata)

    _set_enable_metadata = { "offset" : _set_enable_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable.setter
    def enable(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_enable_metadata, value)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """The color in which sensor graphics display."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_color_metadata, value)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Select the line style in which sensor 2D graphics display from the LineStyle enumeration."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_line_style_metadata, value)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Select the line width in which sensor 2D graphics display from the LineWidth enumeration."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_line_width_metadata, value)

    _get_enable_boresight_graphics_2d_metadata = { "offset" : _get_enable_boresight_graphics_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_boresight_graphics_2d(self) -> bool:
        """Opt whether to display boresight graphics for the sensor."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_enable_boresight_graphics_2d_metadata)

    _set_enable_boresight_graphics_2d_metadata = { "offset" : _set_enable_boresight_graphics_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_boresight_graphics_2d.setter
    def enable_boresight_graphics_2d(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_enable_boresight_graphics_2d_metadata, value)

    _get_boresight_color_metadata = { "offset" : _get_boresight_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def boresight_color(self) -> agcolor.Color:
        """The color in which boresight graphics display."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_boresight_color_metadata)

    _set_boresight_color_metadata = { "offset" : _set_boresight_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @boresight_color.setter
    def boresight_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_boresight_color_metadata, value)

    _get_boresight_marker_style_metadata = { "offset" : _get_boresight_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def boresight_marker_style(self) -> str:
        """The marker style used to represent the boresight graphically."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_boresight_marker_style_metadata)

    _set_boresight_marker_style_metadata = { "offset" : _set_boresight_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @boresight_marker_style.setter
    def boresight_marker_style(self, value:str) -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_boresight_marker_style_metadata, value)

    _get_projection_metadata = { "offset" : _get_projection_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def projection(self) -> "SensorProjection":
        """Get the 2D Projection properties of the sensor."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_projection_metadata)

    _get_show_fill_metadata = { "offset" : _get_show_fill_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_fill(self) -> bool:
        """Opt whether to display the region covered by the sensor footprint as a filled area."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_show_fill_metadata)

    _set_show_fill_metadata = { "offset" : _set_show_fill_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_fill.setter
    def show_fill(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_show_fill_metadata, value)

    _get_percent_translucency_metadata = { "offset" : _get_percent_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def percent_translucency(self) -> float:
        """Specify the percent translucency of the sensor projection. Translucency ranges from 0 to 100 percent, where 100 percent is invisible. Dimensionless."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_percent_translucency_metadata)

    _set_percent_translucency_metadata = { "offset" : _set_percent_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @percent_translucency.setter
    def percent_translucency(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_percent_translucency_metadata, value)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the sensor are visible."""
        return self._intf.get_property(SensorGraphics._metadata, SensorGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(SensorGraphics._metadata, SensorGraphics._set_show_graphics_metadata, is_visible)

    _property_names[inherit_from_scenario] = "inherit_from_scenario"
    _property_names[enable] = "enable"
    _property_names[color] = "color"
    _property_names[line_style] = "line_style"
    _property_names[line_width] = "line_width"
    _property_names[enable_boresight_graphics_2d] = "enable_boresight_graphics_2d"
    _property_names[boresight_color] = "boresight_color"
    _property_names[boresight_marker_style] = "boresight_marker_style"
    _property_names[projection] = "projection"
    _property_names[show_fill] = "show_fill"
    _property_names[percent_translucency] = "percent_translucency"
    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type SensorGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorGraphics, [SensorGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5135244214308090044, 17603827537751733637), SensorGraphics)
agcls.AgTypeNameMap["SensorGraphics"] = SensorGraphics

class SensorProjection(SupportsDeleteCallback):
    """
    SensorProjection Interface for setting and retrieving 2D Graphics Projection properties for a sensor.

    Examples
    --------
    Sensor Persistence:
    >>> # Sensor sensor: Sensor object
    >>> projection = sensor.graphics.projection
    >>> projection.persistence = 7200  # sec
    >>> projection.forward_persistence = True
    >>> projection.fill_persistence = True
    >>> sensor.graphics.show_fill = True
    >>> sensor.graphics.percent_translucency = 50
    """

    _num_methods = 26
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_persistence_method_offset = 1
    _set_persistence_method_offset = 2
    _get_forward_persistence_method_offset = 3
    _set_forward_persistence_method_offset = 4
    _get_project_at_altitude_object_method_offset = 5
    _set_project_at_altitude_object_method_offset = 6
    _get_intersection_type_method_offset = 7
    _set_intersection_type_method_offset = 8
    _get_distance_type_method_offset = 9
    _set_distance_type_method_offset = 10
    _get_distance_data_method_offset = 11
    _get_fill_persistence_method_offset = 12
    _set_fill_persistence_method_offset = 13
    _get_use_constraints_method_offset = 14
    _set_use_constraints_method_offset = 15
    _available_constraints_method_offset = 16
    _enabled_constraints_method_offset = 17
    _enable_constraint_method_offset = 18
    _disable_constraint_method_offset = 19
    _available_altitude_objects_method_offset = 20
    _get_show_on_2d_map_method_offset = 21
    _set_show_on_2d_map_method_offset = 22
    _get_use_distance_method_offset = 23
    _set_use_distance_method_offset = 24
    _get_display_times_hides_persistence_method_offset = 25
    _set_display_times_hides_persistence_method_offset = 26
    _metadata = {
        "iid_data" : (5650891312262164929, 12005530615009625472),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorProjection)

    _get_persistence_metadata = { "offset" : _get_persistence_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def persistence(self) -> float:
        """Length of time the sensor's footprint remains visible during animation. Used to display sensor footprints for a specified period of time so that you can determine quickly and easily whether coverage requirements are being met. Uses Time Dimension."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_persistence_metadata)

    _set_persistence_metadata = { "offset" : _set_persistence_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @persistence.setter
    def persistence(self, value:float) -> None:
        return self._intf.set_property(SensorProjection._metadata, SensorProjection._set_persistence_metadata, value)

    _get_forward_persistence_metadata = { "offset" : _get_forward_persistence_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def forward_persistence(self) -> bool:
        """Specify whether persistence is to apply in a forward animation direction only."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_forward_persistence_metadata)

    _set_forward_persistence_metadata = { "offset" : _set_forward_persistence_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @forward_persistence.setter
    def forward_persistence(self, value:bool) -> None:
        return self._intf.set_property(SensorProjection._metadata, SensorProjection._set_forward_persistence_metadata, value)

    _get_project_at_altitude_object_metadata = { "offset" : _get_project_at_altitude_object_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def project_at_altitude_object(self) -> str:
        """The altitude of the object to which the sensor is projected (if this option for setting projection distance is selected)."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_project_at_altitude_object_metadata)

    _set_project_at_altitude_object_metadata = { "offset" : _set_project_at_altitude_object_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @project_at_altitude_object.setter
    def project_at_altitude_object(self, value:str) -> None:
        return self._intf.set_property(SensorProjection._metadata, SensorProjection._set_project_at_altitude_object_metadata, value)

    _get_intersection_type_metadata = { "offset" : _get_intersection_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(IntersectionType),) }
    @property
    def intersection_type(self) -> "IntersectionType":
        """The type of intersections to be shown. A member of the IntersectionType enumeration."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_intersection_type_metadata)

    _set_intersection_type_metadata = { "offset" : _set_intersection_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(IntersectionType),) }
    @intersection_type.setter
    def intersection_type(self, value:"IntersectionType") -> None:
        return self._intf.set_property(SensorProjection._metadata, SensorProjection._set_intersection_type_metadata, value)

    _get_distance_type_metadata = { "offset" : _get_distance_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorProjectionDistanceType),) }
    @property
    def distance_type(self) -> "SensorProjectionDistanceType":
        """The criterion used for determining the projection distance. A member of the SensorProjectionDistanceType enumeration."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_distance_type_metadata)

    _set_distance_type_metadata = { "offset" : _set_distance_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorProjectionDistanceType),) }
    @distance_type.setter
    def distance_type(self, value:"SensorProjectionDistanceType") -> None:
        return self._intf.set_property(SensorProjection._metadata, SensorProjection._set_distance_type_metadata, value)

    _get_distance_data_metadata = { "offset" : _get_distance_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def distance_data(self) -> "IDisplayDistance":
        """Value of the criterion used for determining the projection distance."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_distance_data_metadata)

    _get_fill_persistence_metadata = { "offset" : _get_fill_persistence_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def fill_persistence(self) -> bool:
        """Specify whether to display the sensor's footprints as filled areas on the surface of the central body."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_fill_persistence_metadata)

    _set_fill_persistence_metadata = { "offset" : _set_fill_persistence_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @fill_persistence.setter
    def fill_persistence(self, value:bool) -> None:
        return self._intf.set_property(SensorProjection._metadata, SensorProjection._set_fill_persistence_metadata, value)

    _get_use_constraints_metadata = { "offset" : _get_use_constraints_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_constraints(self) -> bool:
        """Specify whether to evaluate the effect of various constraints on visibility along all possible lines of sight within the field of view."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_use_constraints_metadata)

    _set_use_constraints_metadata = { "offset" : _set_use_constraints_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_constraints.setter
    def use_constraints(self, value:bool) -> None:
        return self._intf.set_property(SensorProjection._metadata, SensorProjection._set_use_constraints_metadata, value)

    _available_constraints_metadata = { "offset" : _available_constraints_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def available_constraints(self) -> list:
        """Return the available constraints."""
        return self._intf.invoke(SensorProjection._metadata, SensorProjection._available_constraints_metadata, OutArg())

    _enabled_constraints_metadata = { "offset" : _enabled_constraints_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def enabled_constraints(self) -> list:
        """Return the enabled constraints."""
        return self._intf.invoke(SensorProjection._metadata, SensorProjection._enabled_constraints_metadata, OutArg())

    _enable_constraint_metadata = { "offset" : _enable_constraint_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def enable_constraint(self, constraint_name:str) -> None:
        """Enable the constraint with the name given."""
        return self._intf.invoke(SensorProjection._metadata, SensorProjection._enable_constraint_metadata, constraint_name)

    _disable_constraint_metadata = { "offset" : _disable_constraint_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def disable_constraint(self, constraint_name:str) -> None:
        """Disables the constraint with the name given."""
        return self._intf.invoke(SensorProjection._metadata, SensorProjection._disable_constraint_metadata, constraint_name)

    _available_altitude_objects_metadata = { "offset" : _available_altitude_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def available_altitude_objects(self) -> list:
        """Return the available altitude objects."""
        return self._intf.invoke(SensorProjection._metadata, SensorProjection._available_altitude_objects_metadata, OutArg())

    _get_show_on_2d_map_metadata = { "offset" : _get_show_on_2d_map_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_on_2d_map(self) -> bool:
        """Show Projection on 2D map."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_show_on_2d_map_metadata)

    _set_show_on_2d_map_metadata = { "offset" : _set_show_on_2d_map_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_on_2d_map.setter
    def show_on_2d_map(self, new_value:bool) -> None:
        return self._intf.set_property(SensorProjection._metadata, SensorProjection._set_show_on_2d_map_metadata, new_value)

    _get_use_distance_metadata = { "offset" : _get_use_distance_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_distance(self) -> bool:
        """Opt whether the sensor's field-of-view crossings at specified distances are to be computed and displayed in the 2D Graphics window."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_use_distance_metadata)

    _set_use_distance_metadata = { "offset" : _set_use_distance_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_distance.setter
    def use_distance(self, use_proj_radii:bool) -> None:
        return self._intf.set_property(SensorProjection._metadata, SensorProjection._set_use_distance_metadata, use_proj_radii)

    _get_display_times_hides_persistence_metadata = { "offset" : _get_display_times_hides_persistence_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def display_times_hides_persistence(self) -> bool:
        """Specify whether to allow display times to affect the sensor's persistence on/off state."""
        return self._intf.get_property(SensorProjection._metadata, SensorProjection._get_display_times_hides_persistence_metadata)

    _set_display_times_hides_persistence_metadata = { "offset" : _set_display_times_hides_persistence_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @display_times_hides_persistence.setter
    def display_times_hides_persistence(self, value:bool) -> None:
        return self._intf.set_property(SensorProjection._metadata, SensorProjection._set_display_times_hides_persistence_metadata, value)

    _property_names[persistence] = "persistence"
    _property_names[forward_persistence] = "forward_persistence"
    _property_names[project_at_altitude_object] = "project_at_altitude_object"
    _property_names[intersection_type] = "intersection_type"
    _property_names[distance_type] = "distance_type"
    _property_names[distance_data] = "distance_data"
    _property_names[fill_persistence] = "fill_persistence"
    _property_names[use_constraints] = "use_constraints"
    _property_names[show_on_2d_map] = "show_on_2d_map"
    _property_names[use_distance] = "use_distance"
    _property_names[display_times_hides_persistence] = "display_times_hides_persistence"

    def __init__(self, source_object=None):
        """Construct an object of type SensorProjection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorProjection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorProjection, [SensorProjection, ])

agcls.AgClassCatalog.add_catalog_entry((5202974880294871485, 4737477280838645919), SensorProjection)
agcls.AgTypeNameMap["SensorProjection"] = SensorProjection

class SensorProjectionDisplayDistance(IDisplayDistance, ISensorProjectionDisplayDistance, SupportsDeleteCallback):
    """Class defining projection altitude options for a sensor."""
    def __init__(self, source_object=None):
        """Construct an object of type SensorProjectionDisplayDistance."""
        SupportsDeleteCallback.__init__(self)
        IDisplayDistance.__init__(self, source_object)
        ISensorProjectionDisplayDistance.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDisplayDistance._private_init(self, intf)
        ISensorProjectionDisplayDistance._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorProjectionDisplayDistance, [IDisplayDistance, ISensorProjectionDisplayDistance])

agcls.AgClassCatalog.add_catalog_entry((5156374586132190510, 11384363165922837395), SensorProjectionDisplayDistance)
agcls.AgTypeNameMap["SensorProjectionDisplayDistance"] = SensorProjectionDisplayDistance

class SensorGraphics3D(SupportsDeleteCallback):
    """SensorGraphics3D Interface for a sensor's 3D Graphics properties."""

    _num_methods = 39
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_boresight_marker_method_offset = 1
    _set_show_boresight_marker_method_offset = 2
    _get_show_radial_lines_method_offset = 3
    _set_show_radial_lines_method_offset = 4
    _get_show_translucent_lines_method_offset = 5
    _set_show_translucent_lines_method_offset = 6
    _get_percent_translucency_method_offset = 7
    _set_percent_translucency_method_offset = 8
    _get_projection_type_method_offset = 9
    _set_projection_type_method_offset = 10
    _get_space_projection_method_offset = 11
    _set_space_projection_method_offset = 12
    _get_targeting_method_offset = 13
    _set_targeting_method_offset = 14
    _get_enable_constant_extension_length_method_offset = 15
    _set_enable_constant_extension_length_method_offset = 16
    _get_enable_range_constraint_method_offset = 17
    _set_enable_range_constraint_method_offset = 18
    _get_pulse_method_offset = 19
    _get_vertex_offset_method_offset = 20
    _get_data_displays_method_offset = 21
    _get_vector_method_offset = 22
    _get_show_fill_method_offset = 23
    _set_show_fill_method_offset = 24
    _get_fill_translucency_method_offset = 25
    _set_fill_translucency_method_offset = 26
    _get_inherit_from_2d_method_offset = 27
    _set_inherit_from_2d_method_offset = 28
    _get_is_targeted_method_offset = 29
    _get_space_projection_intervals_method_offset = 30
    _get_target_projection_intervals_method_offset = 31
    _get_fill_resolution_method_offset = 32
    _set_fill_resolution_method_offset = 33
    _get_persist_projected_lines_in_space_method_offset = 34
    _set_persist_projected_lines_in_space_method_offset = 35
    _get_persist_partial_central_body_intersection_lines_method_offset = 36
    _set_persist_partial_central_body_intersection_lines_method_offset = 37
    _get_projection_time_dependency_method_offset = 38
    _set_projection_time_dependency_method_offset = 39
    _metadata = {
        "iid_data" : (5306622405160361315, 1537831804935345835),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorGraphics3D)

    _get_show_boresight_marker_metadata = { "offset" : _get_show_boresight_marker_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boresight_marker(self) -> bool:
        """Opt whether to display the sensor's boresight marker."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_show_boresight_marker_metadata)

    _set_show_boresight_marker_metadata = { "offset" : _set_show_boresight_marker_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boresight_marker.setter
    def show_boresight_marker(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_show_boresight_marker_metadata, value)

    _get_show_radial_lines_metadata = { "offset" : _get_show_radial_lines_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_radial_lines(self) -> bool:
        """Opt whether to display radial lines, i.e. a series of solid lines extending from the vertex to the base of the sensor."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_show_radial_lines_metadata)

    _set_show_radial_lines_metadata = { "offset" : _set_show_radial_lines_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_radial_lines.setter
    def show_radial_lines(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_show_radial_lines_metadata, value)

    _get_show_translucent_lines_metadata = { "offset" : _get_show_translucent_lines_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_translucent_lines(self) -> bool:
        """Opt whether sensor lines are set to the translucency of the cone.Otherwise, the sensor and radial lines are solid."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_show_translucent_lines_metadata)

    _set_show_translucent_lines_metadata = { "offset" : _set_show_translucent_lines_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_translucent_lines.setter
    def show_translucent_lines(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_show_translucent_lines_metadata, value)

    _get_percent_translucency_metadata = { "offset" : _get_percent_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def percent_translucency(self) -> float:
        """Specify the percent translucency of the sensor projection. Translucency ranges from 0 to 100 percent, where 100 percent is invisible. Dimensionless."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_percent_translucency_metadata)

    _set_percent_translucency_metadata = { "offset" : _set_percent_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @percent_translucency.setter
    def percent_translucency(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_percent_translucency_metadata, value)

    _get_projection_type_metadata = { "offset" : _get_projection_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorGraphics3DProjectionType),) }
    @property
    def projection_type(self) -> "SensorGraphics3DProjectionType":
        """Select the projection type from the SensorGraphics3DProjectionType enumeration."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_projection_type_metadata)

    _set_projection_type_metadata = { "offset" : _set_projection_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorGraphics3DProjectionType),) }
    @projection_type.setter
    def projection_type(self, value:"SensorGraphics3DProjectionType") -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_projection_type_metadata, value)

    _get_space_projection_metadata = { "offset" : _get_space_projection_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def space_projection(self) -> float:
        """Length of the sensor's projection when it is not intersecting the Earth. In this case, distance is computed so that the projection of the outermost point on the contour along the boresight is equal to the specified distance. Uses Distance Dimension."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_space_projection_metadata)

    _set_space_projection_metadata = { "offset" : _set_space_projection_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @space_projection.setter
    def space_projection(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_space_projection_metadata, value)

    _get_targeting_metadata = { "offset" : _get_targeting_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def targeting(self) -> float:
        """For a targeted sensor, specify the targeting distance, or how far past the target a sensor is projected (typically zero). Uses Distance Dimension."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_targeting_metadata)

    _set_targeting_metadata = { "offset" : _set_targeting_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @targeting.setter
    def targeting(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_targeting_metadata, value)

    _get_enable_constant_extension_length_metadata = { "offset" : _get_enable_constant_extension_length_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_constant_extension_length(self) -> bool:
        """Opt whether to use the extension distance as the maximum, i.e. to scale the maximum distance drawn along the sensor boundary to the targeting extension distance for a targeting sensor or the space projection extension distance for a non-targeting sensor."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_enable_constant_extension_length_metadata)

    _set_enable_constant_extension_length_metadata = { "offset" : _set_enable_constant_extension_length_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_constant_extension_length.setter
    def enable_constant_extension_length(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_enable_constant_extension_length_metadata, value)

    _get_enable_range_constraint_metadata = { "offset" : _get_enable_range_constraint_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_range_constraint(self) -> bool:
        """If a range constraint has been imposed on the sensor, opt whether the sensor graphics display a dome-shaped cap on the end of the sensor projection."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_enable_range_constraint_metadata)

    _set_enable_range_constraint_metadata = { "offset" : _set_enable_range_constraint_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_range_constraint.setter
    def enable_range_constraint(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_enable_range_constraint_metadata, value)

    _get_pulse_metadata = { "offset" : _get_pulse_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse(self) -> "SensorGraphics3DPulse":
        """Get the sensor's Pulse properties."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_pulse_metadata)

    _get_vertex_offset_metadata = { "offset" : _get_vertex_offset_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vertex_offset(self) -> "SensorGraphics3DOffset":
        """Get the sensor's Vertex Offset properties."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_vertex_offset_metadata)

    _get_data_displays_metadata = { "offset" : _get_data_displays_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_displays(self) -> "Graphics3DDataDisplayCollection":
        """Get the sensor's Data Display properties."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_data_displays_metadata)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get the sensor's Vector properties."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_vector_metadata)

    _get_show_fill_metadata = { "offset" : _get_show_fill_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_fill(self) -> bool:
        """Opt whether to display fill for the sensor projection, i.e. to display the sensor's footprint as a filled area on the surface of the central body."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_show_fill_metadata)

    _set_show_fill_metadata = { "offset" : _set_show_fill_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_fill.setter
    def show_fill(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_show_fill_metadata, value)

    _get_fill_translucency_metadata = { "offset" : _get_fill_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fill_translucency(self) -> float:
        """Specify the fill translucency percentage for the sensor. Dimensionless."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_fill_translucency_metadata)

    _set_fill_translucency_metadata = { "offset" : _set_fill_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fill_translucency.setter
    def fill_translucency(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_fill_translucency_metadata, value)

    _get_inherit_from_2d_metadata = { "offset" : _get_inherit_from_2d_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorGraphics3DInheritFrom2D),) }
    @property
    def inherit_from_2d(self) -> "SensorGraphics3DInheritFrom2D":
        """Specify how projection distances that are computed based on 2D Graphics projection settings are displayed in the 3D Graphics window."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_inherit_from_2d_metadata)

    _set_inherit_from_2d_metadata = { "offset" : _set_inherit_from_2d_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorGraphics3DInheritFrom2D),) }
    @inherit_from_2d.setter
    def inherit_from_2d(self, value:"SensorGraphics3DInheritFrom2D") -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_inherit_from_2d_metadata, value)

    _get_is_targeted_metadata = { "offset" : _get_is_targeted_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_targeted(self) -> bool:
        """Is the sensor targeted?"""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_is_targeted_metadata)

    _get_space_projection_intervals_metadata = { "offset" : _get_space_projection_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def space_projection_intervals(self) -> "SensorGraphics3DSpaceProjectionCollection":
        """Return time dependent space projection list."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_space_projection_intervals_metadata)

    _get_target_projection_intervals_metadata = { "offset" : _get_target_projection_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def target_projection_intervals(self) -> "SensorGraphics3DTargetProjectionCollection":
        """Return time dependent target projection list."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_target_projection_intervals_metadata)

    _get_fill_resolution_metadata = { "offset" : _get_fill_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fill_resolution(self) -> float:
        """Specify the fill resolution angle for the sensor. Dimensionless."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_fill_resolution_metadata)

    _set_fill_resolution_metadata = { "offset" : _set_fill_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fill_resolution.setter
    def fill_resolution(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_fill_resolution_metadata, value)

    _get_persist_projected_lines_in_space_metadata = { "offset" : _get_persist_projected_lines_in_space_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def persist_projected_lines_in_space(self) -> bool:
        """Persist projected lines in space."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_persist_projected_lines_in_space_metadata)

    _set_persist_projected_lines_in_space_metadata = { "offset" : _set_persist_projected_lines_in_space_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @persist_projected_lines_in_space.setter
    def persist_projected_lines_in_space(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_persist_projected_lines_in_space_metadata, value)

    _get_persist_partial_central_body_intersection_lines_metadata = { "offset" : _get_persist_partial_central_body_intersection_lines_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def persist_partial_central_body_intersection_lines(self) -> bool:
        """Persist partial central body intersection lines."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_persist_partial_central_body_intersection_lines_metadata)

    _set_persist_partial_central_body_intersection_lines_metadata = { "offset" : _set_persist_partial_central_body_intersection_lines_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @persist_partial_central_body_intersection_lines.setter
    def persist_partial_central_body_intersection_lines(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_persist_partial_central_body_intersection_lines_metadata, value)

    _get_projection_time_dependency_metadata = { "offset" : _get_projection_time_dependency_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorGraphics3DProjectionTimeDependencyType),) }
    @property
    def projection_time_dependency(self) -> "SensorGraphics3DProjectionTimeDependencyType":
        """Specify how projection distances are determined in the 3D Graphics window. Either using a constant distance at all times or set of user defined intervals and distance values."""
        return self._intf.get_property(SensorGraphics3D._metadata, SensorGraphics3D._get_projection_time_dependency_metadata)

    _set_projection_time_dependency_metadata = { "offset" : _set_projection_time_dependency_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorGraphics3DProjectionTimeDependencyType),) }
    @projection_time_dependency.setter
    def projection_time_dependency(self, value:"SensorGraphics3DProjectionTimeDependencyType") -> None:
        return self._intf.set_property(SensorGraphics3D._metadata, SensorGraphics3D._set_projection_time_dependency_metadata, value)

    _property_names[show_boresight_marker] = "show_boresight_marker"
    _property_names[show_radial_lines] = "show_radial_lines"
    _property_names[show_translucent_lines] = "show_translucent_lines"
    _property_names[percent_translucency] = "percent_translucency"
    _property_names[projection_type] = "projection_type"
    _property_names[space_projection] = "space_projection"
    _property_names[targeting] = "targeting"
    _property_names[enable_constant_extension_length] = "enable_constant_extension_length"
    _property_names[enable_range_constraint] = "enable_range_constraint"
    _property_names[pulse] = "pulse"
    _property_names[vertex_offset] = "vertex_offset"
    _property_names[data_displays] = "data_displays"
    _property_names[vector] = "vector"
    _property_names[show_fill] = "show_fill"
    _property_names[fill_translucency] = "fill_translucency"
    _property_names[inherit_from_2d] = "inherit_from_2d"
    _property_names[is_targeted] = "is_targeted"
    _property_names[space_projection_intervals] = "space_projection_intervals"
    _property_names[target_projection_intervals] = "target_projection_intervals"
    _property_names[fill_resolution] = "fill_resolution"
    _property_names[persist_projected_lines_in_space] = "persist_projected_lines_in_space"
    _property_names[persist_partial_central_body_intersection_lines] = "persist_partial_central_body_intersection_lines"
    _property_names[projection_time_dependency] = "projection_time_dependency"

    def __init__(self, source_object=None):
        """Construct an object of type SensorGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorGraphics3D, [SensorGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((4755281292989989015, 17547419379759143337), SensorGraphics3D)
agcls.AgTypeNameMap["SensorGraphics3D"] = SensorGraphics3D

class SensorGraphics3DPulse(SupportsDeleteCallback):
    """SensorGraphics3DPulse Interface, for setting and retrieving 3D Graphics Pulse properties of a sensor."""

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_pulses_method_offset = 1
    _set_show_pulses_method_offset = 2
    _get_amplitude_method_offset = 3
    _set_amplitude_method_offset = 4
    _get_length_method_offset = 5
    _set_length_method_offset = 6
    _get_style_method_offset = 7
    _set_style_method_offset = 8
    _get_enable_smooth_method_offset = 9
    _set_enable_smooth_method_offset = 10
    _get_pulse_frequency_preset_method_offset = 11
    _set_pulse_frequency_preset_method_offset = 12
    _get_frequency_value_method_offset = 13
    _set_frequency_value_method_offset = 14
    _get_show_sensor_pulse_in_opposite_direction_method_offset = 15
    _set_show_sensor_pulse_in_opposite_direction_method_offset = 16
    _reset_to_defaults_method_offset = 17
    _metadata = {
        "iid_data" : (5147873928635702492, 475275048871824256),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorGraphics3DPulse)

    _get_show_pulses_metadata = { "offset" : _get_show_pulses_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_pulses(self) -> bool:
        """Enable display of pulses in the sensor's projection. If not enabled, the sensor projection is displayed as a transparent, homogeneous color."""
        return self._intf.get_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._get_show_pulses_metadata)

    _set_show_pulses_metadata = { "offset" : _set_show_pulses_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_pulses.setter
    def show_pulses(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._set_show_pulses_metadata, value)

    _get_amplitude_metadata = { "offset" : _get_amplitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def amplitude(self) -> float:
        """Amplitude, the transparent/opaque ratio of the pulses. Dimensionless."""
        return self._intf.get_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._get_amplitude_metadata)

    _set_amplitude_metadata = { "offset" : _set_amplitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @amplitude.setter
    def amplitude(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._set_amplitude_metadata, value)

    _get_length_metadata = { "offset" : _get_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def length(self) -> float:
        """Pulse length, how much physical space a given pulse occupies. Uses Distance Dimension."""
        return self._intf.get_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._get_length_metadata)

    _set_length_metadata = { "offset" : _set_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @length.setter
    def length(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._set_length_metadata, value)

    _get_style_metadata = { "offset" : _get_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorGraphics3DPulseStyle),) }
    @property
    def style(self) -> "SensorGraphics3DPulseStyle":
        """Select an available sine or box style from the SensorGraphics3DPulseStyle enumeration. Box styles display a very sharp transition from enabled to disabled for the sensor's modulation, while the Sine styles display a smooth transition."""
        return self._intf.get_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._get_style_metadata)

    _set_style_metadata = { "offset" : _set_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorGraphics3DPulseStyle),) }
    @style.setter
    def style(self, value:"SensorGraphics3DPulseStyle") -> None:
        return self._intf.set_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._set_style_metadata, value)

    _get_enable_smooth_metadata = { "offset" : _get_enable_smooth_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_smooth(self) -> bool:
        """Opt whether to enable averaging of pixels over the range of the pulse to achieve smoother, better viewing quality."""
        return self._intf.get_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._get_enable_smooth_metadata)

    _set_enable_smooth_metadata = { "offset" : _set_enable_smooth_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_smooth.setter
    def enable_smooth(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._set_enable_smooth_metadata, value)

    _get_pulse_frequency_preset_metadata = { "offset" : _get_pulse_frequency_preset_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorGraphics3DPulseFrequencyPreset),) }
    @property
    def pulse_frequency_preset(self) -> "SensorGraphics3DPulseFrequencyPreset":
        """Select a frequency option from the SensorGraphics3DPulseFrequencyPreset enumeration. Here, frequency refers to the rate at which pulses occur."""
        return self._intf.get_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._get_pulse_frequency_preset_metadata)

    _set_pulse_frequency_preset_metadata = { "offset" : _set_pulse_frequency_preset_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorGraphics3DPulseFrequencyPreset),) }
    @pulse_frequency_preset.setter
    def pulse_frequency_preset(self, value:"SensorGraphics3DPulseFrequencyPreset") -> None:
        return self._intf.set_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._set_pulse_frequency_preset_metadata, value)

    _get_frequency_value_metadata = { "offset" : _get_frequency_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency_value(self) -> float:
        """If ePulseFrequencyCustom is selected for the PreselFreq property, specify the custom frequency value. Uses Frequency Dimension."""
        return self._intf.get_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._get_frequency_value_metadata)

    _set_frequency_value_metadata = { "offset" : _set_frequency_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency_value.setter
    def frequency_value(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._set_frequency_value_metadata, value)

    _get_show_sensor_pulse_in_opposite_direction_metadata = { "offset" : _get_show_sensor_pulse_in_opposite_direction_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sensor_pulse_in_opposite_direction(self) -> bool:
        """Opt whether to have the sensor pulse in a direction opposite from that which is set. This is useful if you want pulsing to display in the same direction as usual but pulsing is faster than the animation step."""
        return self._intf.get_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._get_show_sensor_pulse_in_opposite_direction_metadata)

    _set_show_sensor_pulse_in_opposite_direction_metadata = { "offset" : _set_show_sensor_pulse_in_opposite_direction_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sensor_pulse_in_opposite_direction.setter
    def show_sensor_pulse_in_opposite_direction(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._set_show_sensor_pulse_in_opposite_direction_metadata, value)

    _reset_to_defaults_metadata = { "offset" : _reset_to_defaults_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reset_to_defaults(self) -> None:
        """Restore all default values for modulating a sensor's projection."""
        return self._intf.invoke(SensorGraphics3DPulse._metadata, SensorGraphics3DPulse._reset_to_defaults_metadata, )

    _property_names[show_pulses] = "show_pulses"
    _property_names[amplitude] = "amplitude"
    _property_names[length] = "length"
    _property_names[style] = "style"
    _property_names[enable_smooth] = "enable_smooth"
    _property_names[pulse_frequency_preset] = "pulse_frequency_preset"
    _property_names[frequency_value] = "frequency_value"
    _property_names[show_sensor_pulse_in_opposite_direction] = "show_sensor_pulse_in_opposite_direction"

    def __init__(self, source_object=None):
        """Construct an object of type SensorGraphics3DPulse."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorGraphics3DPulse)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorGraphics3DPulse, [SensorGraphics3DPulse, ])

agcls.AgClassCatalog.add_catalog_entry((5198747690515801435, 3039129233217055153), SensorGraphics3DPulse)
agcls.AgTypeNameMap["SensorGraphics3DPulse"] = SensorGraphics3DPulse

class SensorGraphics3DOffset(SupportsDeleteCallback):
    """SensorGraphics3DOffset Interface for setting and retrieving 3D Graphics Vertex Offset properties of a sensor."""

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_from_parent_obj_method_offset = 1
    _set_inherit_from_parent_obj_method_offset = 2
    _get_enable_translational_method_offset = 3
    _set_enable_translational_method_offset = 4
    _get_x_method_offset = 5
    _set_x_method_offset = 6
    _get_y_method_offset = 7
    _set_y_method_offset = 8
    _get_z_method_offset = 9
    _set_z_method_offset = 10
    _get_axis_offset_value_method_offset = 11
    _set_axis_offset_value_method_offset = 12
    _get_enable_attachment_point_method_offset = 13
    _set_enable_attachment_point_method_offset = 14
    _get_attachment_point_name_method_offset = 15
    _set_attachment_point_name_method_offset = 16
    _get_available_attachment_points_method_offset = 17
    _metadata = {
        "iid_data" : (5215987978796603468, 14434331664416506815),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorGraphics3DOffset)

    _get_inherit_from_parent_obj_metadata = { "offset" : _get_inherit_from_parent_obj_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_from_parent_obj(self) -> bool:
        """Opt whether to use the position offset from the parent object."""
        return self._intf.get_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._get_inherit_from_parent_obj_metadata)

    _set_inherit_from_parent_obj_metadata = { "offset" : _set_inherit_from_parent_obj_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_from_parent_obj.setter
    def inherit_from_parent_obj(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._set_inherit_from_parent_obj_metadata, value)

    _get_enable_translational_metadata = { "offset" : _get_enable_translational_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_translational(self) -> bool:
        """Opt whether to specify the sensor projection starting point position offset in the parent object's body frame in the X, Y and Z directions."""
        return self._intf.get_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._get_enable_translational_metadata)

    _set_enable_translational_metadata = { "offset" : _set_enable_translational_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_translational.setter
    def enable_translational(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._set_enable_translational_metadata, value)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x(self) -> float:
        """Offset in the X direction. Uses Distance Dimension."""
        return self._intf.get_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._get_x_metadata)

    _set_x_metadata = { "offset" : _set_x_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x.setter
    def x(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._set_x_metadata, value)

    _get_y_metadata = { "offset" : _get_y_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y(self) -> float:
        """Offset in the Y direction. Uses Distance Dimension."""
        return self._intf.get_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._get_y_metadata)

    _set_y_metadata = { "offset" : _set_y_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y.setter
    def y(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._set_y_metadata, value)

    _get_z_metadata = { "offset" : _get_z_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z(self) -> float:
        """Offset in the Z direction. Uses Distance Dimension."""
        return self._intf.get_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._get_z_metadata)

    _set_z_metadata = { "offset" : _set_z_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z.setter
    def z(self, value:float) -> None:
        return self._intf.set_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._set_z_metadata, value)

    _get_axis_offset_value_metadata = { "offset" : _get_axis_offset_value_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.EnumArg(AxisOffset), agmarshall.DoubleArg,) }
    def get_axis_offset_value(self, offset_type:"AxisOffset") -> float:
        """Get the selected axis offset type."""
        return self._intf.invoke(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._get_axis_offset_value_metadata, offset_type, OutArg())

    _set_axis_offset_value_metadata = { "offset" : _set_axis_offset_value_method_offset,
            "arg_types" : (agcom.LONG, agcom.DOUBLE,),
            "marshallers" : (agmarshall.EnumArg(AxisOffset), agmarshall.DoubleArg,) }
    def set_axis_offset_value(self, offset_type:"AxisOffset", axis_offset_value:float) -> None:
        """Select the axis offset type."""
        return self._intf.invoke(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._set_axis_offset_value_metadata, offset_type, axis_offset_value)

    _get_enable_attachment_point_metadata = { "offset" : _get_enable_attachment_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_attachment_point(self) -> bool:
        """Enable the use of an attach point, i.e. the place from which the sensor cone emits. If this feature is not used, the sensor cone origin is the center of the parent model."""
        return self._intf.get_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._get_enable_attachment_point_metadata)

    _set_enable_attachment_point_metadata = { "offset" : _set_enable_attachment_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_attachment_point.setter
    def enable_attachment_point(self, value:bool) -> None:
        return self._intf.set_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._set_enable_attachment_point_metadata, value)

    _get_attachment_point_name_metadata = { "offset" : _get_attachment_point_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def attachment_point_name(self) -> str:
        """Name of the attach point."""
        return self._intf.get_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._get_attachment_point_name_metadata)

    _set_attachment_point_name_metadata = { "offset" : _set_attachment_point_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @attachment_point_name.setter
    def attachment_point_name(self, value:str) -> None:
        return self._intf.set_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._set_attachment_point_name_metadata, value)

    _get_available_attachment_points_metadata = { "offset" : _get_available_attachment_points_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_attachment_points(self) -> list:
        """Return available attach points."""
        return self._intf.get_property(SensorGraphics3DOffset._metadata, SensorGraphics3DOffset._get_available_attachment_points_metadata)

    _property_names[inherit_from_parent_obj] = "inherit_from_parent_obj"
    _property_names[enable_translational] = "enable_translational"
    _property_names[x] = "x"
    _property_names[y] = "y"
    _property_names[z] = "z"
    _property_names[enable_attachment_point] = "enable_attachment_point"
    _property_names[attachment_point_name] = "attachment_point_name"
    _property_names[available_attachment_points] = "available_attachment_points"

    def __init__(self, source_object=None):
        """Construct an object of type SensorGraphics3DOffset."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorGraphics3DOffset)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorGraphics3DOffset, [SensorGraphics3DOffset, ])

agcls.AgClassCatalog.add_catalog_entry((5649503400177063630, 3322470596793586584), SensorGraphics3DOffset)
agcls.AgTypeNameMap["SensorGraphics3DOffset"] = SensorGraphics3DOffset

class AccessConstraintTimeSlipRange(IAccessConstraint, SupportsDeleteCallback):
    """AccessConstraintTimeSlipRange used to access the Time Slip Range."""

    _num_methods = 3
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_launch_window_start_method_offset = 1
    _get_launch_window_end_method_offset = 2
    _get_range_method_offset = 3
    _metadata = {
        "iid_data" : (4785020438285531827, 17555749775986558881),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintTimeSlipRange)

    _get_launch_window_start_metadata = { "offset" : _get_launch_window_start_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def launch_window_start(self) -> typing.Any:
        """Launch Window Start time. Uses DateFormat Dimension."""
        return self._intf.get_property(AccessConstraintTimeSlipRange._metadata, AccessConstraintTimeSlipRange._get_launch_window_start_metadata)

    _get_launch_window_end_metadata = { "offset" : _get_launch_window_end_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def launch_window_end(self) -> typing.Any:
        """Launch Window End time. Uses DateFormat Dimension."""
        return self._intf.get_property(AccessConstraintTimeSlipRange._metadata, AccessConstraintTimeSlipRange._get_launch_window_end_metadata)

    _get_range_metadata = { "offset" : _get_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def range(self) -> float:
        """Range of the launch window. When available, uses Distance Dimension."""
        return self._intf.get_property(AccessConstraintTimeSlipRange._metadata, AccessConstraintTimeSlipRange._get_range_metadata)

    _property_names[launch_window_start] = "launch_window_start"
    _property_names[launch_window_end] = "launch_window_end"
    _property_names[range] = "range"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintTimeSlipRange."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintTimeSlipRange)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintTimeSlipRange, [AccessConstraintTimeSlipRange, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((4753001347913200999, 3964537746379987386), AccessConstraintTimeSlipRange)
agcls.AgTypeNameMap["AccessConstraintTimeSlipRange"] = AccessConstraintTimeSlipRange

class AccessConstraintBackground(IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for Background Constraints."""

    _num_methods = 2
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_background_method_offset = 1
    _set_background_method_offset = 2
    _metadata = {
        "iid_data" : (5363104484463008179, 16647950587362826626),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintBackground)

    _get_background_metadata = { "offset" : _get_background_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ConstraintBackground),) }
    @property
    def background(self) -> "ConstraintBackground":
        """Background for the access constraint."""
        return self._intf.get_property(AccessConstraintBackground._metadata, AccessConstraintBackground._get_background_metadata)

    _set_background_metadata = { "offset" : _set_background_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ConstraintBackground),) }
    @background.setter
    def background(self, value:"ConstraintBackground") -> None:
        return self._intf.set_property(AccessConstraintBackground._metadata, AccessConstraintBackground._set_background_metadata, value)

    _property_names[background] = "background"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintBackground."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintBackground)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintBackground, [AccessConstraintBackground, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((4670682699490436326, 15943801912748065692), AccessConstraintBackground)
agcls.AgTypeNameMap["AccessConstraintBackground"] = AccessConstraintBackground

class AccessConstraintGroundTrack(IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for GroundTrack Constraints."""

    _num_methods = 2
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_direction_method_offset = 1
    _set_direction_method_offset = 2
    _metadata = {
        "iid_data" : (4726865027477816460, 9507562284032859793),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintGroundTrack)

    _get_direction_metadata = { "offset" : _get_direction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ConstraintGroundTrack),) }
    @property
    def direction(self) -> "ConstraintGroundTrack":
        """Ground track direction."""
        return self._intf.get_property(AccessConstraintGroundTrack._metadata, AccessConstraintGroundTrack._get_direction_metadata)

    _set_direction_metadata = { "offset" : _set_direction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ConstraintGroundTrack),) }
    @direction.setter
    def direction(self, value:"ConstraintGroundTrack") -> None:
        return self._intf.set_property(AccessConstraintGroundTrack._metadata, AccessConstraintGroundTrack._set_direction_metadata, value)

    _property_names[direction] = "direction"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintGroundTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintGroundTrack)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintGroundTrack, [AccessConstraintGroundTrack, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((5756748195235844083, 4808570719834156686), AccessConstraintGroundTrack)
agcls.AgTypeNameMap["AccessConstraintGroundTrack"] = AccessConstraintGroundTrack

class AccessConstraintMinMaxBase(IAccessConstraintMinMaxBase, IAccessConstraint, SupportsDeleteCallback):
    """Class related to defining constraints in terms of minimum and/or maximum values."""
    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintMinMaxBase."""
        SupportsDeleteCallback.__init__(self)
        IAccessConstraintMinMaxBase.__init__(self, source_object)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraintMinMaxBase._private_init(self, intf)
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintMinMaxBase, [IAccessConstraintMinMaxBase, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((4865959399340651702, 16550892515532101303), AccessConstraintMinMaxBase)
agcls.AgTypeNameMap["AccessConstraintMinMaxBase"] = AccessConstraintMinMaxBase

class AccessConstraintAnalysisWorkbenchComponent(IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for Vector Constraints."""

    _num_methods = 11
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_enable_minimum_method_offset = 1
    _set_enable_minimum_method_offset = 2
    _get_enable_maximum_method_offset = 3
    _set_enable_maximum_method_offset = 4
    _get_minimum_method_offset = 5
    _set_minimum_method_offset = 6
    _get_maximum_method_offset = 7
    _set_maximum_method_offset = 8
    _get_reference_method_offset = 9
    _set_reference_method_offset = 10
    _get_available_references_method_offset = 11
    _metadata = {
        "iid_data" : (4868000019041901507, 4261821426714259859),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintAnalysisWorkbenchComponent)

    _get_enable_minimum_metadata = { "offset" : _get_enable_minimum_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_minimum(self) -> bool:
        """Enable the Min property."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._get_enable_minimum_metadata)

    _set_enable_minimum_metadata = { "offset" : _set_enable_minimum_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_minimum.setter
    def enable_minimum(self, value:bool) -> None:
        return self._intf.set_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._set_enable_minimum_metadata, value)

    _get_enable_maximum_metadata = { "offset" : _get_enable_maximum_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_maximum(self) -> bool:
        """Enable the Max property."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._get_enable_maximum_metadata)

    _set_enable_maximum_metadata = { "offset" : _set_enable_maximum_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_maximum.setter
    def enable_maximum(self, value:bool) -> None:
        return self._intf.set_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._set_enable_maximum_metadata, value)

    _get_minimum_metadata = { "offset" : _get_minimum_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum(self) -> typing.Any:
        """Min value for the access constraint."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._get_minimum_metadata)

    _set_minimum_metadata = { "offset" : _set_minimum_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum.setter
    def minimum(self, value:typing.Any) -> None:
        return self._intf.set_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._set_minimum_metadata, value)

    _get_maximum_metadata = { "offset" : _get_maximum_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum(self) -> typing.Any:
        """Max value for the access constraint."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._get_maximum_metadata)

    _set_maximum_metadata = { "offset" : _set_maximum_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum.setter
    def maximum(self, value:typing.Any) -> None:
        return self._intf.set_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._set_maximum_metadata, value)

    _get_reference_metadata = { "offset" : _get_reference_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reference(self) -> str:
        """Reference value for the access constraint."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._get_reference_metadata)

    _set_reference_metadata = { "offset" : _set_reference_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @reference.setter
    def reference(self, value:str) -> None:
        return self._intf.set_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._set_reference_metadata, value)

    _get_available_references_metadata = { "offset" : _get_available_references_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_references(self) -> list:
        """Return an array of available References."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbenchComponent._metadata, AccessConstraintAnalysisWorkbenchComponent._get_available_references_metadata)

    _property_names[enable_minimum] = "enable_minimum"
    _property_names[enable_maximum] = "enable_maximum"
    _property_names[minimum] = "minimum"
    _property_names[maximum] = "maximum"
    _property_names[reference] = "reference"
    _property_names[available_references] = "available_references"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintAnalysisWorkbenchComponent."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintAnalysisWorkbenchComponent)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintAnalysisWorkbenchComponent, [AccessConstraintAnalysisWorkbenchComponent, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((5021007199773218347, 16997667820441893783), AccessConstraintAnalysisWorkbenchComponent)
agcls.AgTypeNameMap["AccessConstraintAnalysisWorkbenchComponent"] = AccessConstraintAnalysisWorkbenchComponent

class AccessConstraintCentralBodyObstruction(IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for Central Body Obstruction."""

    _num_methods = 5
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_assigned_obstructions_method_offset = 1
    _is_obstruction_assigned_method_offset = 2
    _add_obstruction_method_offset = 3
    _remove_obstruction_method_offset = 4
    _get_available_obstructions_method_offset = 5
    _metadata = {
        "iid_data" : (5739282020798341408, 8920266768476420759),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintCentralBodyObstruction)

    _get_assigned_obstructions_metadata = { "offset" : _get_assigned_obstructions_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def assigned_obstructions(self) -> list:
        """Get the Assigned Obstructions."""
        return self._intf.get_property(AccessConstraintCentralBodyObstruction._metadata, AccessConstraintCentralBodyObstruction._get_assigned_obstructions_metadata)

    _is_obstruction_assigned_metadata = { "offset" : _is_obstruction_assigned_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_obstruction_assigned(self, obstruction:str) -> bool:
        """Check whether a central body is already assigned."""
        return self._intf.invoke(AccessConstraintCentralBodyObstruction._metadata, AccessConstraintCentralBodyObstruction._is_obstruction_assigned_metadata, obstruction, OutArg())

    _add_obstruction_metadata = { "offset" : _add_obstruction_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add_obstruction(self, obstruction:str) -> None:
        """Add a Central Body Obstruction by Name."""
        return self._intf.invoke(AccessConstraintCentralBodyObstruction._metadata, AccessConstraintCentralBodyObstruction._add_obstruction_metadata, obstruction)

    _remove_obstruction_metadata = { "offset" : _remove_obstruction_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_obstruction(self, obstruction:str) -> None:
        """Remove a Central Body Obstruction by Name."""
        return self._intf.invoke(AccessConstraintCentralBodyObstruction._metadata, AccessConstraintCentralBodyObstruction._remove_obstruction_metadata, obstruction)

    _get_available_obstructions_metadata = { "offset" : _get_available_obstructions_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_obstructions(self) -> list:
        """Get the Available Obstructions."""
        return self._intf.get_property(AccessConstraintCentralBodyObstruction._metadata, AccessConstraintCentralBodyObstruction._get_available_obstructions_metadata)

    _property_names[assigned_obstructions] = "assigned_obstructions"
    _property_names[available_obstructions] = "available_obstructions"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintCentralBodyObstruction."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintCentralBodyObstruction)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintCentralBodyObstruction, [AccessConstraintCentralBodyObstruction, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((4994152143371000559, 17779601690549936556), AccessConstraintCentralBodyObstruction)
agcls.AgTypeNameMap["AccessConstraintCentralBodyObstruction"] = AccessConstraintCentralBodyObstruction

class AccessConstraintAngle(IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for angle constraints."""

    _num_methods = 2
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_angle_method_offset = 1
    _set_angle_method_offset = 2
    _metadata = {
        "iid_data" : (5579913629261727861, 12479685429670498720),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintAngle)

    _get_angle_metadata = { "offset" : _get_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def angle(self) -> typing.Any:
        """Angle value for the constraint."""
        return self._intf.get_property(AccessConstraintAngle._metadata, AccessConstraintAngle._get_angle_metadata)

    _set_angle_metadata = { "offset" : _set_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @angle.setter
    def angle(self, value:typing.Any) -> None:
        return self._intf.set_property(AccessConstraintAngle._metadata, AccessConstraintAngle._set_angle_metadata, value)

    _property_names[angle] = "angle"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintAngle."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintAngle)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintAngle, [AccessConstraintAngle, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((5755159788965616766, 18263645778869672091), AccessConstraintAngle)
agcls.AgTypeNameMap["AccessConstraintAngle"] = AccessConstraintAngle

class AccessConstraintCondition(IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for lighting conditions."""

    _num_methods = 2
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_condition_method_offset = 1
    _set_condition_method_offset = 2
    _metadata = {
        "iid_data" : (4630201431889075737, 3126247593121568128),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintCondition)

    _get_condition_metadata = { "offset" : _get_condition_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ConstraintLighting),) }
    @property
    def condition(self) -> "ConstraintLighting":
        """Condition uses the ConstraintLighting enum."""
        return self._intf.get_property(AccessConstraintCondition._metadata, AccessConstraintCondition._get_condition_metadata)

    _set_condition_metadata = { "offset" : _set_condition_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ConstraintLighting),) }
    @condition.setter
    def condition(self, value:"ConstraintLighting") -> None:
        return self._intf.set_property(AccessConstraintCondition._metadata, AccessConstraintCondition._set_condition_metadata, value)

    _property_names[condition] = "condition"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintCondition."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintCondition)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintCondition, [AccessConstraintCondition, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((5429265589225977621, 1866460749982057636), AccessConstraintCondition)
agcls.AgTypeNameMap["AccessConstraintCondition"] = AccessConstraintCondition

class AccessTargetTimesCollection(SupportsDeleteCallback):
    """AccessTargetTimesCollection Interface."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5723174744041624745, 13993004916732251045),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessTargetTimesCollection)
    def __iter__(self):
        """Create an iterator for the AccessTargetTimesCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "AccessTargetTime":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return a number of elements in the collection."""
        return self._intf.get_property(AccessTargetTimesCollection._metadata, AccessTargetTimesCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "AccessTargetTime":
        """Return target times scheme by name or at a specified position."""
        return self._intf.invoke(AccessTargetTimesCollection._metadata, AccessTargetTimesCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates the elements in the collection."""
        return self._intf.get_property(AccessTargetTimesCollection._metadata, AccessTargetTimesCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type AccessTargetTimesCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessTargetTimesCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessTargetTimesCollection, [AccessTargetTimesCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5109936758255912942, 8339528079593813125), AccessTargetTimesCollection)
agcls.AgTypeNameMap["AccessTargetTimesCollection"] = AccessTargetTimesCollection

class ScheduleTimeCollection(SupportsDeleteCallback):
    """You can modify the scheduled times by disabling Use Access Times."""

    _num_methods = 8
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _add_method_offset = 2
    _remove_index_method_offset = 3
    _remove_all_method_offset = 4
    _remove_schedule_method_offset = 5
    _item_method_offset = 6
    _get__new_enum_method_offset = 7
    _deconflict_method_offset = 8
    _metadata = {
        "iid_data" : (5566532318106191677, 7047810400783846806),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScheduleTimeCollection)
    def __iter__(self):
        """Create an iterator for the ScheduleTimeCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "ScheduleTime":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """The number of items in the collection."""
        return self._intf.get_property(ScheduleTimeCollection._metadata, ScheduleTimeCollection._get_count_metadata)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, start:typing.Any, stop:typing.Any, name:str) -> "ScheduleTime":
        """Add a schedule time item to the collection. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(ScheduleTimeCollection._metadata, ScheduleTimeCollection._add_metadata, start, stop, name, OutArg())

    _remove_index_metadata = { "offset" : _remove_index_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_index(self, index:int) -> None:
        """Remove an item given an index."""
        return self._intf.invoke(ScheduleTimeCollection._metadata, ScheduleTimeCollection._remove_index_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all items in the collection."""
        return self._intf.invoke(ScheduleTimeCollection._metadata, ScheduleTimeCollection._remove_all_metadata, )

    _remove_schedule_metadata = { "offset" : _remove_schedule_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.BSTR,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.BStrArg,) }
    def remove_schedule(self, start:typing.Any, stop:typing.Any, name:str) -> None:
        """Remove an interval using the interval interface. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(ScheduleTimeCollection._metadata, ScheduleTimeCollection._remove_schedule_metadata, start, stop, name)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "ScheduleTime":
        """Retrieve and ScheduleTime interface given an index."""
        return self._intf.invoke(ScheduleTimeCollection._metadata, ScheduleTimeCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the collection."""
        return self._intf.get_property(ScheduleTimeCollection._metadata, ScheduleTimeCollection._get__new_enum_metadata)

    _deconflict_metadata = { "offset" : _deconflict_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def deconflict(self) -> None:
        """Deconflicts the schedule time intervals."""
        return self._intf.invoke(ScheduleTimeCollection._metadata, ScheduleTimeCollection._deconflict_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type ScheduleTimeCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScheduleTimeCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScheduleTimeCollection, [ScheduleTimeCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5345778444711663586, 17705460596847851929), ScheduleTimeCollection)
agcls.AgTypeNameMap["ScheduleTimeCollection"] = ScheduleTimeCollection

class AccessConstraintIntervals(IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for time intervals."""

    _num_methods = 6
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_action_type_method_offset = 3
    _set_action_type_method_offset = 4
    _get_intervals_method_offset = 5
    _get_file_path_method_offset = 6
    _metadata = {
        "iid_data" : (5643054507703777739, 18148169654294994596),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintIntervals)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Name of file containing the intervals data."""
        return self._intf.get_property(AccessConstraintIntervals._metadata, AccessConstraintIntervals._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AccessConstraintIntervals._metadata, AccessConstraintIntervals._set_filename_metadata, value)

    _get_action_type_metadata = { "offset" : _get_action_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ActionType),) }
    @property
    def action_type(self) -> "ActionType":
        """Do not use this property, as it is deprecated. Use ExclIntvl instead to determine whether intervals are to be excluded or not. The action type (include or exclude)."""
        return self._intf.get_property(AccessConstraintIntervals._metadata, AccessConstraintIntervals._get_action_type_metadata)

    _set_action_type_metadata = { "offset" : _set_action_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ActionType),) }
    @action_type.setter
    def action_type(self, value:"ActionType") -> None:
        return self._intf.set_property(AccessConstraintIntervals._metadata, AccessConstraintIntervals._set_action_type_metadata, value)

    _get_intervals_metadata = { "offset" : _get_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def intervals(self) -> "TimeIntervalCollection":
        """Get the collection of intervals."""
        return self._intf.get_property(AccessConstraintIntervals._metadata, AccessConstraintIntervals._get_intervals_metadata)

    _get_file_path_metadata = { "offset" : _get_file_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file_path(self) -> str:
        """Full path and name of file containing the intervals data."""
        return self._intf.get_property(AccessConstraintIntervals._metadata, AccessConstraintIntervals._get_file_path_metadata)

    _property_names[filename] = "filename"
    _property_names[action_type] = "action_type"
    _property_names[intervals] = "intervals"
    _property_names[file_path] = "file_path"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintIntervals."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintIntervals)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintIntervals, [AccessConstraintIntervals, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((5618466926229445635, 1940187991106981006), AccessConstraintIntervals)
agcls.AgTypeNameMap["AccessConstraintIntervals"] = AccessConstraintIntervals

class AccessConstraintObjExAngle(IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for Object Exclusion Angles."""

    _num_methods = 7
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_exclusion_angle_method_offset = 1
    _set_exclusion_angle_method_offset = 2
    _get_assigned_objects_method_offset = 3
    _get_available_objects_method_offset = 4
    _add_exclusion_object_method_offset = 5
    _is_object_assigned_method_offset = 6
    _remove_exclusion_object_method_offset = 7
    _metadata = {
        "iid_data" : (4753363117452324438, 1243550511112069546),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintObjExAngle)

    _get_exclusion_angle_metadata = { "offset" : _get_exclusion_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def exclusion_angle(self) -> typing.Any:
        """Exclusion Angle value. Uses Angle Dimension."""
        return self._intf.get_property(AccessConstraintObjExAngle._metadata, AccessConstraintObjExAngle._get_exclusion_angle_metadata)

    _set_exclusion_angle_metadata = { "offset" : _set_exclusion_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @exclusion_angle.setter
    def exclusion_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(AccessConstraintObjExAngle._metadata, AccessConstraintObjExAngle._set_exclusion_angle_metadata, value)

    _get_assigned_objects_metadata = { "offset" : _get_assigned_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def assigned_objects(self) -> list:
        """Return a safearray of assigned objects."""
        return self._intf.get_property(AccessConstraintObjExAngle._metadata, AccessConstraintObjExAngle._get_assigned_objects_metadata)

    _get_available_objects_metadata = { "offset" : _get_available_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_objects(self) -> list:
        """Return a safearray of available objects."""
        return self._intf.get_property(AccessConstraintObjExAngle._metadata, AccessConstraintObjExAngle._get_available_objects_metadata)

    _add_exclusion_object_metadata = { "offset" : _add_exclusion_object_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add_exclusion_object(self, object_name:str) -> None:
        """Add an exclusion object."""
        return self._intf.invoke(AccessConstraintObjExAngle._metadata, AccessConstraintObjExAngle._add_exclusion_object_metadata, object_name)

    _is_object_assigned_metadata = { "offset" : _is_object_assigned_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_object_assigned(self, object_name:str) -> bool:
        """Return true if an exclusion object is assigned."""
        return self._intf.invoke(AccessConstraintObjExAngle._metadata, AccessConstraintObjExAngle._is_object_assigned_metadata, object_name, OutArg())

    _remove_exclusion_object_metadata = { "offset" : _remove_exclusion_object_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_exclusion_object(self, object_name:str) -> None:
        """Remove an exclusion object."""
        return self._intf.invoke(AccessConstraintObjExAngle._metadata, AccessConstraintObjExAngle._remove_exclusion_object_metadata, object_name)

    _property_names[exclusion_angle] = "exclusion_angle"
    _property_names[assigned_objects] = "assigned_objects"
    _property_names[available_objects] = "available_objects"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintObjExAngle."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintObjExAngle)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintObjExAngle, [AccessConstraintObjExAngle, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((4774032919533112212, 14457219203319068297), AccessConstraintObjExAngle)
agcls.AgTypeNameMap["AccessConstraintObjExAngle"] = AccessConstraintObjExAngle

class AccessConstraintLatitudeLongitudeZone(IAccessConstraint, SupportsDeleteCallback):
    """AccessConstraintLatitudeLongitudeZone used to access the Zone access constraints."""

    _num_methods = 8
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_minimum_longitude_method_offset = 1
    _set_minimum_longitude_method_offset = 2
    _get_minimum_latitude_method_offset = 3
    _set_minimum_latitude_method_offset = 4
    _get_maximum_longitude_method_offset = 5
    _set_maximum_longitude_method_offset = 6
    _get_maximum_latitude_method_offset = 7
    _set_maximum_latitude_method_offset = 8
    _metadata = {
        "iid_data" : (4919201741961367326, 1915808163561507212),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintLatitudeLongitudeZone)

    _get_minimum_longitude_metadata = { "offset" : _get_minimum_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum_longitude(self) -> typing.Any:
        """Minimum Longitude value. Uses Longitude Dimension."""
        return self._intf.get_property(AccessConstraintLatitudeLongitudeZone._metadata, AccessConstraintLatitudeLongitudeZone._get_minimum_longitude_metadata)

    _set_minimum_longitude_metadata = { "offset" : _set_minimum_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum_longitude.setter
    def minimum_longitude(self, value:typing.Any) -> None:
        return self._intf.set_property(AccessConstraintLatitudeLongitudeZone._metadata, AccessConstraintLatitudeLongitudeZone._set_minimum_longitude_metadata, value)

    _get_minimum_latitude_metadata = { "offset" : _get_minimum_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum_latitude(self) -> typing.Any:
        """Minimum Latitude value. Uses Latitude Dimension."""
        return self._intf.get_property(AccessConstraintLatitudeLongitudeZone._metadata, AccessConstraintLatitudeLongitudeZone._get_minimum_latitude_metadata)

    _set_minimum_latitude_metadata = { "offset" : _set_minimum_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum_latitude.setter
    def minimum_latitude(self, value:typing.Any) -> None:
        return self._intf.set_property(AccessConstraintLatitudeLongitudeZone._metadata, AccessConstraintLatitudeLongitudeZone._set_minimum_latitude_metadata, value)

    _get_maximum_longitude_metadata = { "offset" : _get_maximum_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_longitude(self) -> typing.Any:
        """Maximum Longitude value. Uses Longitude Dimension."""
        return self._intf.get_property(AccessConstraintLatitudeLongitudeZone._metadata, AccessConstraintLatitudeLongitudeZone._get_maximum_longitude_metadata)

    _set_maximum_longitude_metadata = { "offset" : _set_maximum_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum_longitude.setter
    def maximum_longitude(self, value:typing.Any) -> None:
        return self._intf.set_property(AccessConstraintLatitudeLongitudeZone._metadata, AccessConstraintLatitudeLongitudeZone._set_maximum_longitude_metadata, value)

    _get_maximum_latitude_metadata = { "offset" : _get_maximum_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_latitude(self) -> typing.Any:
        """Maximum Latitude. Uses Latitude Dimension."""
        return self._intf.get_property(AccessConstraintLatitudeLongitudeZone._metadata, AccessConstraintLatitudeLongitudeZone._get_maximum_latitude_metadata)

    _set_maximum_latitude_metadata = { "offset" : _set_maximum_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum_latitude.setter
    def maximum_latitude(self, value:typing.Any) -> None:
        return self._intf.set_property(AccessConstraintLatitudeLongitudeZone._metadata, AccessConstraintLatitudeLongitudeZone._set_maximum_latitude_metadata, value)

    _property_names[minimum_longitude] = "minimum_longitude"
    _property_names[minimum_latitude] = "minimum_latitude"
    _property_names[maximum_longitude] = "maximum_longitude"
    _property_names[maximum_latitude] = "maximum_latitude"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintLatitudeLongitudeZone."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintLatitudeLongitudeZone)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintLatitudeLongitudeZone, [AccessConstraintLatitudeLongitudeZone, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((4704182950734471316, 16395455411551009154), AccessConstraintLatitudeLongitudeZone)
agcls.AgTypeNameMap["AccessConstraintLatitudeLongitudeZone"] = AccessConstraintLatitudeLongitudeZone

class AccessConstraintThirdBody(IAccessConstraint, SupportsDeleteCallback):
    """Do not use this interface, as it is deprecated. Use AccessConstraintCentralBodyObstruction instead. Access Constraint Used for Third Body Obstructions."""

    _num_methods = 5
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_assigned_obstructions_method_offset = 1
    _is_obstruction_assigned_method_offset = 2
    _add_obstruction_method_offset = 3
    _remove_obstruction_method_offset = 4
    _get_available_obstructions_method_offset = 5
    _metadata = {
        "iid_data" : (5645225963488893882, 17731046116288251565),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintThirdBody)

    _get_assigned_obstructions_metadata = { "offset" : _get_assigned_obstructions_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def assigned_obstructions(self) -> list:
        """Do not use this property, as it is deprecated. Use AssignedObstructions on AccessConstraintCentralBodyObstruction instead. Gets the Assigned Obstructions."""
        return self._intf.get_property(AccessConstraintThirdBody._metadata, AccessConstraintThirdBody._get_assigned_obstructions_metadata)

    _is_obstruction_assigned_metadata = { "offset" : _is_obstruction_assigned_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_obstruction_assigned(self, obstruction:str) -> bool:
        """Do not use this method, as it is deprecated. Use IsObstructionAssigned on AccessConstraintCentralBodyObstruction instead. Check whether a third body is already assigned."""
        return self._intf.invoke(AccessConstraintThirdBody._metadata, AccessConstraintThirdBody._is_obstruction_assigned_metadata, obstruction, OutArg())

    _add_obstruction_metadata = { "offset" : _add_obstruction_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add_obstruction(self, obstruction:str) -> None:
        """Do not use this method, as it is deprecated. Use AddObstruction on AccessConstraintCentralBodyObstruction instead. Adds an Obstruction by Name."""
        return self._intf.invoke(AccessConstraintThirdBody._metadata, AccessConstraintThirdBody._add_obstruction_metadata, obstruction)

    _remove_obstruction_metadata = { "offset" : _remove_obstruction_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_obstruction(self, obstruction:str) -> None:
        """Do not use this method, as it is deprecated. Use RemoveObstruction on AccessConstraintCentralBodyObstruction instead. Remove an Obstruction by Name."""
        return self._intf.invoke(AccessConstraintThirdBody._metadata, AccessConstraintThirdBody._remove_obstruction_metadata, obstruction)

    _get_available_obstructions_metadata = { "offset" : _get_available_obstructions_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_obstructions(self) -> list:
        """Do not use this property, as it is deprecated. Use AvailableObstructions on AccessConstraintCentralBodyObstruction instead. Gets the Available Obstructions."""
        return self._intf.get_property(AccessConstraintThirdBody._metadata, AccessConstraintThirdBody._get_available_obstructions_metadata)

    _property_names[assigned_obstructions] = "assigned_obstructions"
    _property_names[available_obstructions] = "available_obstructions"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintThirdBody."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintThirdBody)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintThirdBody, [AccessConstraintThirdBody, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((5425534971261407986, 9149097314463659163), AccessConstraintThirdBody)
agcls.AgTypeNameMap["AccessConstraintThirdBody"] = AccessConstraintThirdBody

class AccessConstraintExclZonesCollection(IAccessConstraint, SupportsDeleteCallback):
    """AccessConstraintExclZonesCollection used to access the Exclusion Zones List interface."""

    _num_methods = 18
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _remove_index_method_offset = 2
    _remove_all_method_offset = 3
    _remove_exclusion_zone_method_offset = 4
    _change_exclusion_zone_method_offset = 5
    _get_exclusion_zone_method_offset = 6
    _to_array_method_offset = 7
    _get_constraint_name_method_offset = 8
    _get_is_plugin_method_offset = 9
    _get_exclusion_interval_method_offset = 10
    _set_exclusion_interval_method_offset = 11
    _get_constraint_type_method_offset = 12
    _item_method_offset = 13
    _get__new_enum_method_offset = 14
    _get_maximum_time_step_method_offset = 15
    _set_maximum_time_step_method_offset = 16
    _get_maximum_relative_motion_method_offset = 17
    _set_maximum_relative_motion_method_offset = 18
    _metadata = {
        "iid_data" : (5206553759552968255, 13516906559301195185),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintExclZonesCollection)
    def __iter__(self):
        """Create an iterator for the AccessConstraintExclZonesCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "AccessConstraintLatitudeLongitudeZone":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Number of items in the collection."""
        return self._intf.get_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._get_count_metadata)

    _remove_index_metadata = { "offset" : _remove_index_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_index(self, index:int) -> None:
        """Remove an item given an index."""
        return self._intf.invoke(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._remove_index_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all items from the collection."""
        return self._intf.invoke(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._remove_all_metadata, )

    _remove_exclusion_zone_metadata = { "offset" : _remove_exclusion_zone_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def remove_exclusion_zone(self, min_lat:typing.Any, min_lon:typing.Any, max_lat:typing.Any, max_lon:typing.Any) -> None:
        """Remove an Exclusion Zone using the min and max lat/lon values. Lat/Lon Values use Latitude and Longitude Dimensions respectively."""
        return self._intf.invoke(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._remove_exclusion_zone_metadata, min_lat, min_lon, max_lat, max_lon)

    _change_exclusion_zone_metadata = { "offset" : _change_exclusion_zone_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant, agcom.Variant, agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.LongArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def change_exclusion_zone(self, index:int, min_lat:typing.Any, min_lon:typing.Any, max_lat:typing.Any, max_lon:typing.Any) -> None:
        """Update Exclusion Zone data at a given index. Lat/Lon Values use Latitude and Longitude Dimensions respectively."""
        return self._intf.invoke(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._change_exclusion_zone_metadata, index, min_lat, min_lon, max_lat, max_lon)

    _get_exclusion_zone_metadata = { "offset" : _get_exclusion_zone_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.Variant), POINTER(agcom.Variant), POINTER(agcom.Variant), POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.LongArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def get_exclusion_zone(self, index:int) -> typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]:
        """Return min and max lat/lon values at a given index. Lat/Lon Values use Latitude and Longitude Dimensions respectively."""
        return self._intf.invoke(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._get_exclusion_zone_metadata, index, OutArg(), OutArg(), OutArg(), OutArg())

    _to_array_metadata = { "offset" : _to_array_method_offset,
            "arg_types" : (agcom.LONG, agcom.LONG, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LongArg, agmarshall.LongArg, agmarshall.LPSafearrayArg,) }
    def to_array(self, index:int, length:int) -> list:
        """Return a four-dimensional array of min/max lat/lon values beginning at a given position and having specified number of rows."""
        return self._intf.invoke(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._to_array_metadata, index, length, OutArg())

    _get_constraint_name_metadata = { "offset" : _get_constraint_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def constraint_name(self) -> str:
        """Get the constraint name."""
        return self._intf.get_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._get_constraint_name_metadata)

    _get_is_plugin_metadata = { "offset" : _get_is_plugin_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_plugin(self) -> bool:
        """Return true if the access constraint is a plugin."""
        return self._intf.get_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._get_is_plugin_metadata)

    _get_exclusion_interval_metadata = { "offset" : _get_exclusion_interval_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def exclusion_interval(self) -> bool:
        """Get or set the ExclInterval."""
        return self._intf.get_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._get_exclusion_interval_metadata)

    _set_exclusion_interval_metadata = { "offset" : _set_exclusion_interval_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @exclusion_interval.setter
    def exclusion_interval(self, excl:bool) -> None:
        return self._intf.set_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._set_exclusion_interval_metadata, excl)

    _get_constraint_type_metadata = { "offset" : _get_constraint_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AccessConstraintType),) }
    @property
    def constraint_type(self) -> "AccessConstraintType":
        """Get the constraint type."""
        return self._intf.get_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._get_constraint_type_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "AccessConstraintLatitudeLongitudeZone":
        """Get an AccessConstraintLatitudeLongitudeZone interface using an index."""
        return self._intf.invoke(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerate the AccessConstraintLatitudeLongitudeZone interfaces."""
        return self._intf.get_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._get__new_enum_metadata)

    _get_maximum_time_step_metadata = { "offset" : _get_maximum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_time_step(self) -> float:
        """Maximum time step used in adaptive sampling."""
        return self._intf.get_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._get_maximum_time_step_metadata)

    _set_maximum_time_step_metadata = { "offset" : _set_maximum_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_time_step.setter
    def maximum_time_step(self, value:float) -> None:
        return self._intf.set_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._set_maximum_time_step_metadata, value)

    _get_maximum_relative_motion_metadata = { "offset" : _get_maximum_relative_motion_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_relative_motion(self) -> float:
        """Maximum relative motion used in adaptive sampling."""
        return self._intf.get_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._get_maximum_relative_motion_metadata)

    _set_maximum_relative_motion_metadata = { "offset" : _set_maximum_relative_motion_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_relative_motion.setter
    def maximum_relative_motion(self, value:float) -> None:
        return self._intf.set_property(AccessConstraintExclZonesCollection._metadata, AccessConstraintExclZonesCollection._set_maximum_relative_motion_metadata, value)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[constraint_name] = "constraint_name"
    _property_names[is_plugin] = "is_plugin"
    _property_names[exclusion_interval] = "exclusion_interval"
    _property_names[constraint_type] = "constraint_type"
    _property_names[_new_enum] = "_new_enum"
    _property_names[maximum_time_step] = "maximum_time_step"
    _property_names[maximum_relative_motion] = "maximum_relative_motion"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintExclZonesCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintExclZonesCollection)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintExclZonesCollection, [AccessConstraintExclZonesCollection, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((5439856627298985769, 9324667324148092588), AccessConstraintExclZonesCollection)
agcls.AgTypeNameMap["AccessConstraintExclZonesCollection"] = AccessConstraintExclZonesCollection

class AccessConstraintGrazingAltitude(IAccessConstraintMinMaxBase, IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for Grazing Altitude Constraint."""

    _num_methods = 2
    _vtable_offset = IAccessConstraintMinMaxBase._vtable_offset + IAccessConstraintMinMaxBase._num_methods
    _get_compute_beyond_target_method_offset = 1
    _set_compute_beyond_target_method_offset = 2
    _metadata = {
        "iid_data" : (5360150843805388094, 6005232884038705321),
        "vtable_reference" : IAccessConstraintMinMaxBase._vtable_offset + IAccessConstraintMinMaxBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintGrazingAltitude)

    _get_compute_beyond_target_metadata = { "offset" : _get_compute_beyond_target_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_beyond_target(self) -> bool:
        """Determine if positions beyond target object are considered in grazing altitude calculation."""
        return self._intf.get_property(AccessConstraintGrazingAltitude._metadata, AccessConstraintGrazingAltitude._get_compute_beyond_target_metadata)

    _set_compute_beyond_target_metadata = { "offset" : _set_compute_beyond_target_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_beyond_target.setter
    def compute_beyond_target(self, value:bool) -> None:
        return self._intf.set_property(AccessConstraintGrazingAltitude._metadata, AccessConstraintGrazingAltitude._set_compute_beyond_target_metadata, value)

    _property_names[compute_beyond_target] = "compute_beyond_target"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintGrazingAltitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintGrazingAltitude)
        IAccessConstraintMinMaxBase.__init__(self, source_object)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraintMinMaxBase._private_init(self, intf)
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintGrazingAltitude, [AccessConstraintGrazingAltitude, IAccessConstraintMinMaxBase, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((5080437654664496197, 16818091890808935322), AccessConstraintGrazingAltitude)
agcls.AgTypeNameMap["AccessConstraintGrazingAltitude"] = AccessConstraintGrazingAltitude

class SensorPointingGrazingAltitude(ISensorPointing, SupportsDeleteCallback):
    """SensorPointingGrazingAltitude Interface for a sensor pointed in such a way that the boresight vector will graze the central body at a specified altitude."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_azimuth_offset_method_offset = 1
    _set_azimuth_offset_method_offset = 2
    _get_grazing_altitude_method_offset = 3
    _set_grazing_altitude_method_offset = 4
    _metadata = {
        "iid_data" : (5221329572517997523, 3813808897284207765),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointingGrazingAltitude)

    _get_azimuth_offset_metadata = { "offset" : _get_azimuth_offset_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def azimuth_offset(self) -> typing.Any:
        """The azimuth offset, defining the plane in the parent object's body-fixed frame in which the sensor boresight lies. It is the angle between the X axis and the azimuth vector in the XY plane. Uses Angle Dimension."""
        return self._intf.get_property(SensorPointingGrazingAltitude._metadata, SensorPointingGrazingAltitude._get_azimuth_offset_metadata)

    _set_azimuth_offset_metadata = { "offset" : _set_azimuth_offset_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @azimuth_offset.setter
    def azimuth_offset(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorPointingGrazingAltitude._metadata, SensorPointingGrazingAltitude._set_azimuth_offset_metadata, value)

    _get_grazing_altitude_metadata = { "offset" : _get_grazing_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def grazing_altitude(self) -> float:
        """The altitude at which the boresight vector grazes the central body. Uses Distance Dimension."""
        return self._intf.get_property(SensorPointingGrazingAltitude._metadata, SensorPointingGrazingAltitude._get_grazing_altitude_metadata)

    _set_grazing_altitude_metadata = { "offset" : _set_grazing_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @grazing_altitude.setter
    def grazing_altitude(self, value:float) -> None:
        return self._intf.set_property(SensorPointingGrazingAltitude._metadata, SensorPointingGrazingAltitude._set_grazing_altitude_metadata, value)

    _property_names[azimuth_offset] = "azimuth_offset"
    _property_names[grazing_altitude] = "grazing_altitude"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointingGrazingAltitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointingGrazingAltitude)
        ISensorPointing.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointing._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointingGrazingAltitude, [SensorPointingGrazingAltitude, ISensorPointing])

agcls.AgClassCatalog.add_catalog_entry((4753139891164764300, 17354521187142643087), SensorPointingGrazingAltitude)
agcls.AgTypeNameMap["SensorPointingGrazingAltitude"] = SensorPointingGrazingAltitude

class AreaTarget(ISTKObject, ILifetimeInformation, IDisplayTime, SupportsDeleteCallback):
    """
    Provide access to the properties and methods defining an AreaTarget object.

    Examples
    --------
    List all points in an area target:
    >>> # AreaTarget areaTarget: AreaTarget object
    >>> if areaTarget.area_type == AreaType.PATTERN:
    >>>     # Get IAgAreaTypePatternCollection interface from AreaTypeData
    >>>     patternPoints = areaTarget.area_type_data
    >>>
    >>>     # ToArray returns a two dimensional array of latitude and longitude points
    >>>     areaTargetPoints = patternPoints.to_array()
    >>>
    >>>     print("All points in Area Target")
    >>>     for i in range(0, len(areaTargetPoints)):
    >>>         print("Latitude: %s Longitude: %s" % (str(areaTargetPoints[i][0]), str(areaTargetPoints[i][1])))

    Define an area target boundary and position from a list of lat/lon/alt (using common tasks):
    >>> # AreaTarget areaTarget: AreaTarget object
    >>> # Remove all points in the area target
    >>> areaTarget.area_type_data.remove_all()
    >>>
    >>> # By using the CommonTasks interface,
    >>> # make an array of latitude and longitude boundary points
    >>> boundary = [[29, -12], [29, 34], [6, 34], [6, -12]]
    >>>
    >>> # SetAreaTypePattern expects a two dimensional array of latitude and longitude values
    >>> areaTarget.common_tasks.set_area_type_pattern(boundary)

    Define an area target boundary and position from a list of lat/lon/alt:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> # AreaTarget areaTarget: AreaTarget object
    >>>
    >>> # By using the fine grained interfaces,
    >>> # BeginUpdate/EndUpdate prevent intermediate redraws
    >>> root.begin_update()
    >>> areaTarget.area_type = AreaType.PATTERN
    >>> patterns = areaTarget.area_type_data
    >>> patterns.add(48.897, 18.637)
    >>> patterns.add(46.534, 13.919)
    >>> patterns.add(44.173, 21.476)
    >>> root.end_update()
    >>> areaTarget.automatic_computation_of_centroid = True

    Set an elliptical area target (using common tasks):
    >>> # STKObjectRoot root: STK Object Model Root
    >>> # AreaTarget areaTarget: AreaTarget object
    >>>
    >>> # By using the CommonTasks interface
    >>> areaTarget.common_tasks.set_area_type_ellipse(85.25, 80.75, 44)

    Set an elliptical area target:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> # AreaTarget areaTarget: AreaTarget object
    >>>
    >>> # By using the fine grained interfaces,
    >>> # BeginUpdate/EndUpdate prevent intermediate redraws
    >>> root.begin_update()
    >>> areaTarget.area_type = AreaType.ELLIPSE
    >>> ellipse = areaTarget.area_type_data
    >>> ellipse.semi_major_axis = 85.25  # in km (distance dimension)
    >>> ellipse.semi_minor_axis = 80.75  # in km (distance dimension)
    >>> ellipse.bearing = 44  # in deg (angle dimension)
    >>> root.end_update()

    Create an area target (on the current scenario central body):
    >>> # STKObjectRoot root: STK Object Model Root
    >>>
    >>> # Create the AreaTarget on the current scenario central body (use
    >>> # NewOnCentralBody to specify explicitly the central body)
    >>> areaTarget = root.current_scenario.children.new(STKObjectType.AREA_TARGET, "MyAreaTarget")
    """

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_local_time_offset_method_offset = 1
    _set_use_local_time_offset_method_offset = 2
    _get_local_time_offset_method_offset = 3
    _set_local_time_offset_method_offset = 4
    _get_automatic_computation_of_centroid_method_offset = 5
    _set_automatic_computation_of_centroid_method_offset = 6
    _get_position_method_offset = 7
    _get_access_constraints_method_offset = 8
    _get_graphics_method_offset = 9
    _get_graphics_3d_method_offset = 10
    _get_area_type_method_offset = 11
    _set_area_type_method_offset = 12
    _get_area_type_data_method_offset = 13
    _get_use_terrain_data_method_offset = 14
    _set_use_terrain_data_method_offset = 15
    _get_allow_object_access_method_offset = 16
    _set_allow_object_access_method_offset = 17
    _get_common_tasks_method_offset = 18
    _metadata = {
        "iid_data" : (5459580526170158646, 4617882384390412427),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AreaTarget)

    _get_use_local_time_offset_metadata = { "offset" : _get_use_local_time_offset_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_local_time_offset(self) -> bool:
        """Opt whether to use a local time offset from GMT."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_use_local_time_offset_metadata)

    _set_use_local_time_offset_metadata = { "offset" : _set_use_local_time_offset_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_local_time_offset.setter
    def use_local_time_offset(self, use_local_time_offset:bool) -> None:
        return self._intf.set_property(AreaTarget._metadata, AreaTarget._set_use_local_time_offset_metadata, use_local_time_offset)

    _get_local_time_offset_metadata = { "offset" : _get_local_time_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_time_offset(self) -> float:
        """The amount of the time offset from GMT, if this option is used. Uses Time Dimension."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_local_time_offset_metadata)

    _set_local_time_offset_metadata = { "offset" : _set_local_time_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_time_offset.setter
    def local_time_offset(self, local_time_offset:float) -> None:
        return self._intf.set_property(AreaTarget._metadata, AreaTarget._set_local_time_offset_metadata, local_time_offset)

    _get_automatic_computation_of_centroid_metadata = { "offset" : _get_automatic_computation_of_centroid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def automatic_computation_of_centroid(self) -> bool:
        """Opt whether to have the centroid automatically computed."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_automatic_computation_of_centroid_metadata)

    _set_automatic_computation_of_centroid_metadata = { "offset" : _set_automatic_computation_of_centroid_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @automatic_computation_of_centroid.setter
    def automatic_computation_of_centroid(self, auto_centroid:bool) -> None:
        return self._intf.set_property(AreaTarget._metadata, AreaTarget._set_automatic_computation_of_centroid_metadata, auto_centroid)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "IPosition":
        """Get the position of the area target centroid."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_position_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the area target. Basic constraints for area targets apply to all points within or along the area target. If the constraint is satisfied for at least one point, access to the area target is considered valid."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_access_constraints_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "AreaTargetGraphics":
        """Get the area target's 2D Graphics properties."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "AreaTargetGraphics3D":
        """Get the area target's 3D Graphics properties."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_graphics_3d_metadata)

    _get_area_type_metadata = { "offset" : _get_area_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AreaType),) }
    @property
    def area_type(self) -> "AreaType":
        """The method for defining the area target boundary. A member of the AreaType enumeration."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_area_type_metadata)

    _set_area_type_metadata = { "offset" : _set_area_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AreaType),) }
    @area_type.setter
    def area_type(self, type:"AreaType") -> None:
        return self._intf.set_property(AreaTarget._metadata, AreaTarget._set_area_type_metadata, type)

    _get_area_type_data_metadata = { "offset" : _get_area_type_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def area_type_data(self) -> "IAreaTypeData":
        """Get the data defining the boundary with the selected method."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_area_type_data_metadata)

    _get_use_terrain_data_metadata = { "offset" : _get_use_terrain_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain_data(self) -> bool:
        """Opt whether to use terrain data for altitude updates."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_use_terrain_data_metadata)

    _set_use_terrain_data_metadata = { "offset" : _set_use_terrain_data_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain_data.setter
    def use_terrain_data(self, value:bool) -> None:
        return self._intf.set_property(AreaTarget._metadata, AreaTarget._set_use_terrain_data_metadata, value)

    _get_allow_object_access_metadata = { "offset" : _get_allow_object_access_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_object_access(self) -> bool:
        """Opt whether access to the object is constrained with respect to the entire object, as opposed to any part of it."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_allow_object_access_metadata)

    _set_allow_object_access_metadata = { "offset" : _set_allow_object_access_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_object_access.setter
    def allow_object_access(self, value:bool) -> None:
        return self._intf.set_property(AreaTarget._metadata, AreaTarget._set_allow_object_access_metadata, value)

    _get_common_tasks_metadata = { "offset" : _get_common_tasks_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def common_tasks(self) -> "AreaTargetCommonTasks":
        """Common tasks associated with AreaTargets."""
        return self._intf.get_property(AreaTarget._metadata, AreaTarget._get_common_tasks_metadata)

    _property_names[use_local_time_offset] = "use_local_time_offset"
    _property_names[local_time_offset] = "local_time_offset"
    _property_names[automatic_computation_of_centroid] = "automatic_computation_of_centroid"
    _property_names[position] = "position"
    _property_names[access_constraints] = "access_constraints"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[area_type] = "area_type"
    _property_names[area_type_data] = "area_type_data"
    _property_names[use_terrain_data] = "use_terrain_data"
    _property_names[allow_object_access] = "allow_object_access"
    _property_names[common_tasks] = "common_tasks"

    def __init__(self, source_object=None):
        """Construct an object of type AreaTarget."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AreaTarget)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AreaTarget, [AreaTarget, ISTKObject, ILifetimeInformation, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((5444663313834108516, 962392495836953255), AreaTarget)
agcls.AgTypeNameMap["AreaTarget"] = AreaTarget

class Facility(ISTKObject, ILifetimeInformation, IDisplayTime, SupportsDeleteCallback):
    """
    Provide access to the properties and methods used in defining a facility object.

    Examples
    --------
    Add an AzEl Mask to a Facility:
    >>> # Facility facility: Facility Object
    >>> facility.set_az_el_mask(AzElMaskType.TERRAIN_DATA, 0)

    Get the cartesian position of a facility:
    >>> # Facility facility: Facility Object
    >>> (x, y, z) = facility.position.query_cartesian()

    Set the geodetic position of a facility:
    >>> # Facility facility: Facility Object
    >>> facility.position.assign_geodetic(41.9849, 21.4039, 0)  # Latitude, Longitude, Altitude
    >>>
    >>> # Set altitude to height of terrain
    >>> facility.use_terrain = True
    >>>
    >>> # Set altitude to a distance above the ground
    >>> facility.height_above_ground = 0.05  # km

    Create a facility and set its height relative to ground level:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> from ansys.stk.core.stkobjects import Facility, STKObjectType
    >>>
    >>> facility = Facility(root.current_scenario.children.new(STKObjectType.FACILITY, "facility1"))
    >>> facility.height_above_ground = 123.4

    Create a facility (on the current scenario central body):
    >>> # STKObjectRoot root: STK Object Model Root
    >>> facility = root.current_scenario.children.new(STKObjectType.FACILITY, "MyFacility")
    """

    _num_methods = 34
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_local_time_offset_method_offset = 1
    _set_use_local_time_offset_method_offset = 2
    _get_local_time_offset_method_offset = 3
    _set_local_time_offset_method_offset = 4
    _get_use_terrain_method_offset = 5
    _set_use_terrain_method_offset = 6
    _set_az_el_mask_method_offset = 7
    _get_graphics_method_offset = 8
    _get_position_method_offset = 9
    _set_terrain_normal_method_offset = 10
    _get_terrain_normal_data_method_offset = 11
    _get_graphics_3d_method_offset = 12
    _get_access_constraints_method_offset = 13
    _reset_az_el_mask_method_offset = 14
    _get_az_el_mask_method_offset = 15
    _get_az_el_mask_data_method_offset = 16
    _get_terrain_normal_method_offset = 17
    _set_height_above_ground_method_offset = 18
    _get_height_above_ground_method_offset = 19
    _set_altitude_reference_method_offset = 20
    _get_altitude_reference_method_offset = 21
    _get_atmosphere_method_offset = 22
    _get_radar_clutter_map_method_offset = 23
    _get_radar_cross_section_method_offset = 24
    _get_save_terrain_mask_data_in_binary_method_offset = 25
    _set_save_terrain_mask_data_in_binary_method_offset = 26
    _get_lighting_obstruction_model_method_offset = 27
    _set_lighting_obstruction_model_method_offset = 28
    _get_lighting_maximum_step_method_offset = 29
    _set_lighting_maximum_step_method_offset = 30
    _get_laser_environment_method_offset = 31
    _get_rf_environment_method_offset = 32
    _get_maximum_range_when_computing_az_el_mask_method_offset = 33
    _set_maximum_range_when_computing_az_el_mask_method_offset = 34
    _metadata = {
        "iid_data" : (5226651650415984682, 7584500239490552736),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Facility)

    _get_use_local_time_offset_metadata = { "offset" : _get_use_local_time_offset_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_local_time_offset(self) -> bool:
        """Opt whether to use a local time offset from GMT."""
        return self._intf.get_property(Facility._metadata, Facility._get_use_local_time_offset_metadata)

    _set_use_local_time_offset_metadata = { "offset" : _set_use_local_time_offset_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_local_time_offset.setter
    def use_local_time_offset(self, use_local_time_offset:bool) -> None:
        return self._intf.set_property(Facility._metadata, Facility._set_use_local_time_offset_metadata, use_local_time_offset)

    _get_local_time_offset_metadata = { "offset" : _get_local_time_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_time_offset(self) -> float:
        """The amount of the time offset from GMT, if this option is used. Uses Time Dimension."""
        return self._intf.get_property(Facility._metadata, Facility._get_local_time_offset_metadata)

    _set_local_time_offset_metadata = { "offset" : _set_local_time_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_time_offset.setter
    def local_time_offset(self, local_time_offset:float) -> None:
        return self._intf.set_property(Facility._metadata, Facility._set_local_time_offset_metadata, local_time_offset)

    _get_use_terrain_metadata = { "offset" : _get_use_terrain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain(self) -> bool:
        """Opt whether to set altitude automatically by using terrain data."""
        return self._intf.get_property(Facility._metadata, Facility._get_use_terrain_metadata)

    _set_use_terrain_metadata = { "offset" : _set_use_terrain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain.setter
    def use_terrain(self, enable_terrain:bool) -> None:
        return self._intf.set_property(Facility._metadata, Facility._set_use_terrain_metadata, enable_terrain)

    _set_az_el_mask_metadata = { "offset" : _set_az_el_mask_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant,),
            "marshallers" : (agmarshall.EnumArg(AzElMaskType), agmarshall.VariantArg,) }
    def set_az_el_mask(self, type:"AzElMaskType", data:typing.Any) -> None:
        """Set an az-el mask. A member of the AzElMaskType enumeration."""
        return self._intf.invoke(Facility._metadata, Facility._set_az_el_mask_metadata, type, data)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "FacilityGraphics":
        """Get the 2D Graphics properties of the facility."""
        return self._intf.get_property(Facility._metadata, Facility._get_graphics_metadata)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "IPosition":
        """Get the position of the facility."""
        return self._intf.get_property(Facility._metadata, Facility._get_position_metadata)

    _get_terrain_normal_metadata = { "offset" : _get_terrain_normal_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TerrainNormalType),) }
    @property
    def terrain_normal(self) -> "TerrainNormalType":
        """Get the normal to the local terrain."""
        return self._intf.get_property(Facility._metadata, Facility._get_terrain_normal_metadata)

    _set_terrain_normal_metadata = { "offset" : _set_terrain_normal_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TerrainNormalType),) }
    @terrain_normal.setter
    def terrain_normal(self, type:"TerrainNormalType") -> None:
        """Set the normal to the local terrain."""
        return self._intf.set_property(Facility._metadata, Facility._set_terrain_normal_metadata, type)

    _get_terrain_normal_data_metadata = { "offset" : _get_terrain_normal_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def terrain_normal_data(self) -> "ITerrainNormData":
        """Data used in specifying terrain slope."""
        return self._intf.get_property(Facility._metadata, Facility._get_terrain_normal_data_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "FacilityGraphics3D":
        """Get the 3D Graphics properties of the facility."""
        return self._intf.get_property(Facility._metadata, Facility._get_graphics_3d_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the facility."""
        return self._intf.get_property(Facility._metadata, Facility._get_access_constraints_metadata)

    _reset_az_el_mask_metadata = { "offset" : _reset_az_el_mask_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reset_az_el_mask(self) -> None:
        """Reset the az-el mask."""
        return self._intf.invoke(Facility._metadata, Facility._reset_az_el_mask_metadata, )

    _get_az_el_mask_metadata = { "offset" : _get_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AzElMaskType),) }
    def get_az_el_mask(self) -> "AzElMaskType":
        """Get the az-el mask. A member of the AzElMaskType enumeration."""
        return self._intf.invoke(Facility._metadata, Facility._get_az_el_mask_metadata, OutArg())

    _get_az_el_mask_data_metadata = { "offset" : _get_az_el_mask_data_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    def get_az_el_mask_data(self) -> typing.Any:
        """Get az-el mask data."""
        return self._intf.invoke(Facility._metadata, Facility._get_az_el_mask_data_metadata, OutArg())

    _get_height_above_ground_metadata = { "offset" : _get_height_above_ground_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height_above_ground(self) -> float:
        """Height of facility above its model of the ground. Height is measured along the normal to surface defined by reference ellipsoid of the central body. Facility models the ground as an ellipsoid passing through the ground position. Uses Distance Dimension."""
        return self._intf.get_property(Facility._metadata, Facility._get_height_above_ground_metadata)

    _set_height_above_ground_metadata = { "offset" : _set_height_above_ground_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @height_above_ground.setter
    def height_above_ground(self, value:float) -> None:
        """Height of facility above its model of the ground. Height is measured along the normal to surface defined by reference ellipsoid of the central body. Facility models the ground as an ellipsoid passing through the ground position. Uses Distance Dimension."""
        return self._intf.set_property(Facility._metadata, Facility._set_height_above_ground_metadata, value)

    _get_altitude_reference_metadata = { "offset" : _get_altitude_reference_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AltitudeReferenceType),) }
    @property
    def altitude_reference(self) -> "AltitudeReferenceType":
        """Get or set the altitude reference of the object."""
        return self._intf.get_property(Facility._metadata, Facility._get_altitude_reference_metadata)

    _set_altitude_reference_metadata = { "offset" : _set_altitude_reference_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AltitudeReferenceType),) }
    @altitude_reference.setter
    def altitude_reference(self, value:"AltitudeReferenceType") -> None:
        """Get or set the altitude reference of the object."""
        return self._intf.set_property(Facility._metadata, Facility._set_altitude_reference_metadata, value)

    _get_atmosphere_metadata = { "offset" : _get_atmosphere_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmosphere(self) -> "Atmosphere":
        """Do not use this property, as it is deprecated. The new RFEnvironment property can be used to configure atmospheric models."""
        return self._intf.get_property(Facility._metadata, Facility._get_atmosphere_metadata)

    _get_radar_clutter_map_metadata = { "offset" : _get_radar_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_clutter_map(self) -> "IRadarClutterMapInheritable":
        """Return the radar clutter map."""
        return self._intf.get_property(Facility._metadata, Facility._get_radar_clutter_map_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionInheritable":
        """Return the radar cross sectoin."""
        return self._intf.get_property(Facility._metadata, Facility._get_radar_cross_section_metadata)

    _get_save_terrain_mask_data_in_binary_metadata = { "offset" : _get_save_terrain_mask_data_in_binary_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_terrain_mask_data_in_binary(self) -> bool:
        """Save terrain az-el mask data in binary."""
        return self._intf.get_property(Facility._metadata, Facility._get_save_terrain_mask_data_in_binary_metadata)

    _set_save_terrain_mask_data_in_binary_metadata = { "offset" : _set_save_terrain_mask_data_in_binary_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @save_terrain_mask_data_in_binary.setter
    def save_terrain_mask_data_in_binary(self, save_terrain_mask_data_in_binary:bool) -> None:
        return self._intf.set_property(Facility._metadata, Facility._set_save_terrain_mask_data_in_binary_metadata, save_terrain_mask_data_in_binary)

    _get_lighting_obstruction_model_metadata = { "offset" : _get_lighting_obstruction_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LightingObstructionModelType),) }
    @property
    def lighting_obstruction_model(self) -> "LightingObstructionModelType":
        """Get or set the obstruction model used in lighting computations."""
        return self._intf.get_property(Facility._metadata, Facility._get_lighting_obstruction_model_metadata)

    _set_lighting_obstruction_model_metadata = { "offset" : _set_lighting_obstruction_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LightingObstructionModelType),) }
    @lighting_obstruction_model.setter
    def lighting_obstruction_model(self, type:"LightingObstructionModelType") -> None:
        return self._intf.set_property(Facility._metadata, Facility._set_lighting_obstruction_model_metadata, type)

    _get_lighting_maximum_step_metadata = { "offset" : _get_lighting_maximum_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step(self) -> float:
        """Get or set the maximum step size to use when computing lighting. Only applies (and only can be set) when LightingObstructionModel is eLightingObstructionAzElMask or eLightingObstructionTerrain. Uses Time Dimension."""
        return self._intf.get_property(Facility._metadata, Facility._get_lighting_maximum_step_metadata)

    _set_lighting_maximum_step_metadata = { "offset" : _set_lighting_maximum_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step.setter
    def lighting_maximum_step(self, max_step:float) -> None:
        return self._intf.set_property(Facility._metadata, Facility._set_lighting_maximum_step_metadata, max_step)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "PlatformLaserEnvironment":
        """Get the laser environment."""
        return self._intf.get_property(Facility._metadata, Facility._get_laser_environment_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "IPlatformRFEnvironment":
        """Get the RF environment."""
        return self._intf.get_property(Facility._metadata, Facility._get_rf_environment_metadata)

    _get_maximum_range_when_computing_az_el_mask_metadata = { "offset" : _get_maximum_range_when_computing_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_range_when_computing_az_el_mask(self) -> float:
        """Get or set the maximum range to use when computing the az el mask using terrain data. Zero indicates to use algorithm default. Only applies when GetAzElMask returns eTerrainData (cannot be set if eMaskFile). Uses Distance Dimension."""
        return self._intf.get_property(Facility._metadata, Facility._get_maximum_range_when_computing_az_el_mask_metadata)

    _set_maximum_range_when_computing_az_el_mask_metadata = { "offset" : _set_maximum_range_when_computing_az_el_mask_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_range_when_computing_az_el_mask.setter
    def maximum_range_when_computing_az_el_mask(self, max_range:float) -> None:
        return self._intf.set_property(Facility._metadata, Facility._set_maximum_range_when_computing_az_el_mask_metadata, max_range)

    _property_names[use_local_time_offset] = "use_local_time_offset"
    _property_names[local_time_offset] = "local_time_offset"
    _property_names[use_terrain] = "use_terrain"
    _property_names[graphics] = "graphics"
    _property_names[position] = "position"
    _property_names[terrain_normal] = "terrain_normal"
    _property_names[terrain_normal_data] = "terrain_normal_data"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[access_constraints] = "access_constraints"
    _property_names[height_above_ground] = "height_above_ground"
    _property_names[altitude_reference] = "altitude_reference"
    _property_names[atmosphere] = "atmosphere"
    _property_names[radar_clutter_map] = "radar_clutter_map"
    _property_names[radar_cross_section] = "radar_cross_section"
    _property_names[save_terrain_mask_data_in_binary] = "save_terrain_mask_data_in_binary"
    _property_names[lighting_obstruction_model] = "lighting_obstruction_model"
    _property_names[lighting_maximum_step] = "lighting_maximum_step"
    _property_names[laser_environment] = "laser_environment"
    _property_names[rf_environment] = "rf_environment"
    _property_names[maximum_range_when_computing_az_el_mask] = "maximum_range_when_computing_az_el_mask"

    def __init__(self, source_object=None):
        """Construct an object of type Facility."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Facility)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Facility, [Facility, ISTKObject, ILifetimeInformation, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((5603048958870938289, 10257063247646200200), Facility)
agcls.AgTypeNameMap["Facility"] = Facility

class Target(ISTKObject, ILifetimeInformation, IDisplayTime, SupportsDeleteCallback):
    """Provide access to the properties and methods used in defining a target object."""

    _num_methods = 34
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_local_time_offset_method_offset = 1
    _set_use_local_time_offset_method_offset = 2
    _get_local_time_offset_method_offset = 3
    _set_local_time_offset_method_offset = 4
    _get_use_terrain_method_offset = 5
    _set_use_terrain_method_offset = 6
    _set_az_el_mask_method_offset = 7
    _get_graphics_method_offset = 8
    _get_position_method_offset = 9
    _set_terrain_normal_method_offset = 10
    _get_terrain_normal_data_method_offset = 11
    _get_graphics_3d_method_offset = 12
    _get_access_constraints_method_offset = 13
    _reset_az_el_mask_method_offset = 14
    _get_az_el_mask_method_offset = 15
    _get_az_el_mask_data_method_offset = 16
    _get_terrain_normal_method_offset = 17
    _set_height_above_ground_method_offset = 18
    _get_height_above_ground_method_offset = 19
    _set_altitude_reference_method_offset = 20
    _get_altitude_reference_method_offset = 21
    _get_atmosphere_method_offset = 22
    _get_radar_clutter_map_method_offset = 23
    _get_radar_cross_section_method_offset = 24
    _get_save_terrain_mask_data_in_binary_method_offset = 25
    _set_save_terrain_mask_data_in_binary_method_offset = 26
    _get_lighting_obstruction_model_method_offset = 27
    _set_lighting_obstruction_model_method_offset = 28
    _get_lighting_maximum_step_method_offset = 29
    _set_lighting_maximum_step_method_offset = 30
    _get_laser_environment_method_offset = 31
    _get_rf_environment_method_offset = 32
    _get_maximum_range_when_computing_az_el_mask_method_offset = 33
    _set_maximum_range_when_computing_az_el_mask_method_offset = 34
    _metadata = {
        "iid_data" : (4957801150460521322, 3965407383766557858),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Target)

    _get_use_local_time_offset_metadata = { "offset" : _get_use_local_time_offset_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_local_time_offset(self) -> bool:
        """Opt whether to use a local time offset from GMT."""
        return self._intf.get_property(Target._metadata, Target._get_use_local_time_offset_metadata)

    _set_use_local_time_offset_metadata = { "offset" : _set_use_local_time_offset_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_local_time_offset.setter
    def use_local_time_offset(self, use_local_time_offset:bool) -> None:
        return self._intf.set_property(Target._metadata, Target._set_use_local_time_offset_metadata, use_local_time_offset)

    _get_local_time_offset_metadata = { "offset" : _get_local_time_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_time_offset(self) -> float:
        """The amount of the time offset from GMT, if this option is used. Uses Time Dimension."""
        return self._intf.get_property(Target._metadata, Target._get_local_time_offset_metadata)

    _set_local_time_offset_metadata = { "offset" : _set_local_time_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_time_offset.setter
    def local_time_offset(self, local_time_offset:float) -> None:
        return self._intf.set_property(Target._metadata, Target._set_local_time_offset_metadata, local_time_offset)

    _get_use_terrain_metadata = { "offset" : _get_use_terrain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain(self) -> bool:
        """Opt whether to set altitude automatically by using terrain data."""
        return self._intf.get_property(Target._metadata, Target._get_use_terrain_metadata)

    _set_use_terrain_metadata = { "offset" : _set_use_terrain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain.setter
    def use_terrain(self, enable_terrain:bool) -> None:
        return self._intf.set_property(Target._metadata, Target._set_use_terrain_metadata, enable_terrain)

    _set_az_el_mask_metadata = { "offset" : _set_az_el_mask_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant,),
            "marshallers" : (agmarshall.EnumArg(AzElMaskType), agmarshall.VariantArg,) }
    def set_az_el_mask(self, type:"AzElMaskType", data:typing.Any) -> None:
        """Set an az-el mask. A member of the AzElMaskType enumeration."""
        return self._intf.invoke(Target._metadata, Target._set_az_el_mask_metadata, type, data)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "TargetGraphics":
        """Get the 2D Graphics properties of the target."""
        return self._intf.get_property(Target._metadata, Target._get_graphics_metadata)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "IPosition":
        """Get the position of the target."""
        return self._intf.get_property(Target._metadata, Target._get_position_metadata)

    _get_terrain_normal_metadata = { "offset" : _get_terrain_normal_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TerrainNormalType),) }
    @property
    def terrain_normal(self) -> "TerrainNormalType":
        """Get the normal to the local terrain."""
        return self._intf.get_property(Target._metadata, Target._get_terrain_normal_metadata)

    _set_terrain_normal_metadata = { "offset" : _set_terrain_normal_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TerrainNormalType),) }
    @terrain_normal.setter
    def terrain_normal(self, type:"TerrainNormalType") -> None:
        """Set the normal to the local terrain."""
        return self._intf.set_property(Target._metadata, Target._set_terrain_normal_metadata, type)

    _get_terrain_normal_data_metadata = { "offset" : _get_terrain_normal_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def terrain_normal_data(self) -> "ITerrainNormData":
        """Data used in specifying terrain slope."""
        return self._intf.get_property(Target._metadata, Target._get_terrain_normal_data_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "TargetGraphics3D":
        """Get the 3D Graphics properties of the target."""
        return self._intf.get_property(Target._metadata, Target._get_graphics_3d_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the target."""
        return self._intf.get_property(Target._metadata, Target._get_access_constraints_metadata)

    _reset_az_el_mask_metadata = { "offset" : _reset_az_el_mask_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reset_az_el_mask(self) -> None:
        """Reset the az-el mask."""
        return self._intf.invoke(Target._metadata, Target._reset_az_el_mask_metadata, )

    _get_az_el_mask_metadata = { "offset" : _get_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AzElMaskType),) }
    def get_az_el_mask(self) -> "AzElMaskType":
        """Get the az-el mask. A member of the AzElMaskType enumeration."""
        return self._intf.invoke(Target._metadata, Target._get_az_el_mask_metadata, OutArg())

    _get_az_el_mask_data_metadata = { "offset" : _get_az_el_mask_data_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    def get_az_el_mask_data(self) -> typing.Any:
        """Get az-el mask data."""
        return self._intf.invoke(Target._metadata, Target._get_az_el_mask_data_metadata, OutArg())

    _get_height_above_ground_metadata = { "offset" : _get_height_above_ground_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height_above_ground(self) -> float:
        """Height of target above its model of the ground. Height is measured along the normal to surface defined by reference ellipsoid of the central body. Target models the ground as an ellipsoid passing through the ground position. Uses Distance Dimension."""
        return self._intf.get_property(Target._metadata, Target._get_height_above_ground_metadata)

    _set_height_above_ground_metadata = { "offset" : _set_height_above_ground_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @height_above_ground.setter
    def height_above_ground(self, value:float) -> None:
        """Height of target above its model of the ground. Height is measured along the normal to surface defined by reference ellipsoid of the central body. Target models the ground as an ellipsoid passing through the ground position. Uses Distance Dimension."""
        return self._intf.set_property(Target._metadata, Target._set_height_above_ground_metadata, value)

    _get_altitude_reference_metadata = { "offset" : _get_altitude_reference_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AltitudeReferenceType),) }
    @property
    def altitude_reference(self) -> "AltitudeReferenceType":
        """Get or set the altitude reference of the object."""
        return self._intf.get_property(Target._metadata, Target._get_altitude_reference_metadata)

    _set_altitude_reference_metadata = { "offset" : _set_altitude_reference_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AltitudeReferenceType),) }
    @altitude_reference.setter
    def altitude_reference(self, value:"AltitudeReferenceType") -> None:
        """Get or set the altitude reference of the object."""
        return self._intf.set_property(Target._metadata, Target._set_altitude_reference_metadata, value)

    _get_atmosphere_metadata = { "offset" : _get_atmosphere_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmosphere(self) -> "Atmosphere":
        """Do not use this property, as it is deprecated. The new RFEnvironment property can be used to configure atmospheric models."""
        return self._intf.get_property(Target._metadata, Target._get_atmosphere_metadata)

    _get_radar_clutter_map_metadata = { "offset" : _get_radar_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_clutter_map(self) -> "IRadarClutterMapInheritable":
        """Return the radar clutter map."""
        return self._intf.get_property(Target._metadata, Target._get_radar_clutter_map_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionInheritable":
        """Return the radar cross sectoin."""
        return self._intf.get_property(Target._metadata, Target._get_radar_cross_section_metadata)

    _get_save_terrain_mask_data_in_binary_metadata = { "offset" : _get_save_terrain_mask_data_in_binary_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_terrain_mask_data_in_binary(self) -> bool:
        """Save terrain az-el mask data in binary."""
        return self._intf.get_property(Target._metadata, Target._get_save_terrain_mask_data_in_binary_metadata)

    _set_save_terrain_mask_data_in_binary_metadata = { "offset" : _set_save_terrain_mask_data_in_binary_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @save_terrain_mask_data_in_binary.setter
    def save_terrain_mask_data_in_binary(self, save_terrain_mask_data_in_binary:bool) -> None:
        return self._intf.set_property(Target._metadata, Target._set_save_terrain_mask_data_in_binary_metadata, save_terrain_mask_data_in_binary)

    _get_lighting_obstruction_model_metadata = { "offset" : _get_lighting_obstruction_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LightingObstructionModelType),) }
    @property
    def lighting_obstruction_model(self) -> "LightingObstructionModelType":
        """Get or set the obstruction model used in lighting computations."""
        return self._intf.get_property(Target._metadata, Target._get_lighting_obstruction_model_metadata)

    _set_lighting_obstruction_model_metadata = { "offset" : _set_lighting_obstruction_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LightingObstructionModelType),) }
    @lighting_obstruction_model.setter
    def lighting_obstruction_model(self, type:"LightingObstructionModelType") -> None:
        return self._intf.set_property(Target._metadata, Target._set_lighting_obstruction_model_metadata, type)

    _get_lighting_maximum_step_metadata = { "offset" : _get_lighting_maximum_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step(self) -> float:
        """Get or set the maximum step size to use when computing lighting. Only applies (and only can be set) when LightingObstructionModel is eLightingObstructionAzElMask or eLightingObstructionTerrain. Uses Time Dimension."""
        return self._intf.get_property(Target._metadata, Target._get_lighting_maximum_step_metadata)

    _set_lighting_maximum_step_metadata = { "offset" : _set_lighting_maximum_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step.setter
    def lighting_maximum_step(self, max_step:float) -> None:
        return self._intf.set_property(Target._metadata, Target._set_lighting_maximum_step_metadata, max_step)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "PlatformLaserEnvironment":
        """Get the laser environment."""
        return self._intf.get_property(Target._metadata, Target._get_laser_environment_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "IPlatformRFEnvironment":
        """Get the RF environment."""
        return self._intf.get_property(Target._metadata, Target._get_rf_environment_metadata)

    _get_maximum_range_when_computing_az_el_mask_metadata = { "offset" : _get_maximum_range_when_computing_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_range_when_computing_az_el_mask(self) -> float:
        """Get or set the maximum range to use when computing the az el mask using terrain data. Zero indicates to use algorithm default. Only applies when GetAzElMask returns eTerrainData (cannot be set if eMaskFile). Uses Distance Dimension."""
        return self._intf.get_property(Target._metadata, Target._get_maximum_range_when_computing_az_el_mask_metadata)

    _set_maximum_range_when_computing_az_el_mask_metadata = { "offset" : _set_maximum_range_when_computing_az_el_mask_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_range_when_computing_az_el_mask.setter
    def maximum_range_when_computing_az_el_mask(self, max_range:float) -> None:
        return self._intf.set_property(Target._metadata, Target._set_maximum_range_when_computing_az_el_mask_metadata, max_range)

    _property_names[use_local_time_offset] = "use_local_time_offset"
    _property_names[local_time_offset] = "local_time_offset"
    _property_names[use_terrain] = "use_terrain"
    _property_names[graphics] = "graphics"
    _property_names[position] = "position"
    _property_names[terrain_normal] = "terrain_normal"
    _property_names[terrain_normal_data] = "terrain_normal_data"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[access_constraints] = "access_constraints"
    _property_names[height_above_ground] = "height_above_ground"
    _property_names[altitude_reference] = "altitude_reference"
    _property_names[atmosphere] = "atmosphere"
    _property_names[radar_clutter_map] = "radar_clutter_map"
    _property_names[radar_cross_section] = "radar_cross_section"
    _property_names[save_terrain_mask_data_in_binary] = "save_terrain_mask_data_in_binary"
    _property_names[lighting_obstruction_model] = "lighting_obstruction_model"
    _property_names[lighting_maximum_step] = "lighting_maximum_step"
    _property_names[laser_environment] = "laser_environment"
    _property_names[rf_environment] = "rf_environment"
    _property_names[maximum_range_when_computing_az_el_mask] = "maximum_range_when_computing_az_el_mask"

    def __init__(self, source_object=None):
        """Construct an object of type Target."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Target)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Target, [Target, ISTKObject, ILifetimeInformation, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((4718899831496382439, 1349970112787637171), Target)
agcls.AgTypeNameMap["Target"] = Target

class Place(ISTKObject, ILifetimeInformation, IDisplayTime, SupportsDeleteCallback):
    """Provide access to the properties and methods used in defining a place object."""

    _num_methods = 34
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_local_time_offset_method_offset = 1
    _set_use_local_time_offset_method_offset = 2
    _get_local_time_offset_method_offset = 3
    _set_local_time_offset_method_offset = 4
    _get_use_terrain_method_offset = 5
    _set_use_terrain_method_offset = 6
    _set_az_el_mask_method_offset = 7
    _get_graphics_method_offset = 8
    _get_position_method_offset = 9
    _set_terrain_normal_method_offset = 10
    _get_terrain_normal_data_method_offset = 11
    _get_graphics_3d_method_offset = 12
    _get_access_constraints_method_offset = 13
    _reset_az_el_mask_method_offset = 14
    _get_az_el_mask_method_offset = 15
    _get_az_el_mask_data_method_offset = 16
    _get_terrain_normal_method_offset = 17
    _set_height_above_ground_method_offset = 18
    _get_height_above_ground_method_offset = 19
    _set_altitude_reference_method_offset = 20
    _get_altitude_reference_method_offset = 21
    _get_atmosphere_method_offset = 22
    _get_radar_clutter_map_method_offset = 23
    _get_radar_cross_section_method_offset = 24
    _get_save_terrain_mask_data_in_binary_method_offset = 25
    _set_save_terrain_mask_data_in_binary_method_offset = 26
    _get_lighting_obstruction_model_method_offset = 27
    _set_lighting_obstruction_model_method_offset = 28
    _get_lighting_maximum_step_method_offset = 29
    _set_lighting_maximum_step_method_offset = 30
    _get_laser_environment_method_offset = 31
    _get_rf_environment_method_offset = 32
    _get_maximum_range_when_computing_az_el_mask_method_offset = 33
    _set_maximum_range_when_computing_az_el_mask_method_offset = 34
    _metadata = {
        "iid_data" : (5627085335930005245, 15453580451146137259),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Place)

    _get_use_local_time_offset_metadata = { "offset" : _get_use_local_time_offset_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_local_time_offset(self) -> bool:
        """Opt whether to use a local time offset from GMT."""
        return self._intf.get_property(Place._metadata, Place._get_use_local_time_offset_metadata)

    _set_use_local_time_offset_metadata = { "offset" : _set_use_local_time_offset_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_local_time_offset.setter
    def use_local_time_offset(self, use_local_time_offset:bool) -> None:
        return self._intf.set_property(Place._metadata, Place._set_use_local_time_offset_metadata, use_local_time_offset)

    _get_local_time_offset_metadata = { "offset" : _get_local_time_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_time_offset(self) -> float:
        """The amount of the time offset from GMT, if this option is used. Uses Time Dimension."""
        return self._intf.get_property(Place._metadata, Place._get_local_time_offset_metadata)

    _set_local_time_offset_metadata = { "offset" : _set_local_time_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_time_offset.setter
    def local_time_offset(self, local_time_offset:float) -> None:
        return self._intf.set_property(Place._metadata, Place._set_local_time_offset_metadata, local_time_offset)

    _get_use_terrain_metadata = { "offset" : _get_use_terrain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain(self) -> bool:
        """Opt whether to set altitude automatically by using terrain data."""
        return self._intf.get_property(Place._metadata, Place._get_use_terrain_metadata)

    _set_use_terrain_metadata = { "offset" : _set_use_terrain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain.setter
    def use_terrain(self, enable_terrain:bool) -> None:
        return self._intf.set_property(Place._metadata, Place._set_use_terrain_metadata, enable_terrain)

    _set_az_el_mask_metadata = { "offset" : _set_az_el_mask_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant,),
            "marshallers" : (agmarshall.EnumArg(AzElMaskType), agmarshall.VariantArg,) }
    def set_az_el_mask(self, type:"AzElMaskType", data:typing.Any) -> None:
        """Set an az-el mask. A member of the AzElMaskType enumeration."""
        return self._intf.invoke(Place._metadata, Place._set_az_el_mask_metadata, type, data)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "PlaceGraphics":
        """Get the 2D Graphics properties of the place."""
        return self._intf.get_property(Place._metadata, Place._get_graphics_metadata)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "IPosition":
        """Get the position of the place."""
        return self._intf.get_property(Place._metadata, Place._get_position_metadata)

    _get_terrain_normal_metadata = { "offset" : _get_terrain_normal_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TerrainNormalType),) }
    @property
    def terrain_normal(self) -> "TerrainNormalType":
        """Get the normal to the local terrain."""
        return self._intf.get_property(Place._metadata, Place._get_terrain_normal_metadata)

    _set_terrain_normal_metadata = { "offset" : _set_terrain_normal_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TerrainNormalType),) }
    @terrain_normal.setter
    def terrain_normal(self, type:"TerrainNormalType") -> None:
        """Set the normal to the local terrain."""
        return self._intf.set_property(Place._metadata, Place._set_terrain_normal_metadata, type)

    _get_terrain_normal_data_metadata = { "offset" : _get_terrain_normal_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def terrain_normal_data(self) -> "ITerrainNormData":
        """Data used in specifying terrain slope."""
        return self._intf.get_property(Place._metadata, Place._get_terrain_normal_data_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "PlaceGraphics3D":
        """Get the 3D Graphics properties of the place."""
        return self._intf.get_property(Place._metadata, Place._get_graphics_3d_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the place."""
        return self._intf.get_property(Place._metadata, Place._get_access_constraints_metadata)

    _reset_az_el_mask_metadata = { "offset" : _reset_az_el_mask_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reset_az_el_mask(self) -> None:
        """Reset the az-el mask."""
        return self._intf.invoke(Place._metadata, Place._reset_az_el_mask_metadata, )

    _get_az_el_mask_metadata = { "offset" : _get_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AzElMaskType),) }
    def get_az_el_mask(self) -> "AzElMaskType":
        """Get the az-el mask. A member of the AzElMaskType enumeration."""
        return self._intf.invoke(Place._metadata, Place._get_az_el_mask_metadata, OutArg())

    _get_az_el_mask_data_metadata = { "offset" : _get_az_el_mask_data_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    def get_az_el_mask_data(self) -> typing.Any:
        """Get az-el mask data."""
        return self._intf.invoke(Place._metadata, Place._get_az_el_mask_data_metadata, OutArg())

    _get_height_above_ground_metadata = { "offset" : _get_height_above_ground_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height_above_ground(self) -> float:
        """Height of place above its model of the ground. Height is measured along the normal to surface defined by reference ellipsoid of the central body. Place models the ground as an ellipsoid passing through the ground position. Uses Distance Dimension."""
        return self._intf.get_property(Place._metadata, Place._get_height_above_ground_metadata)

    _set_height_above_ground_metadata = { "offset" : _set_height_above_ground_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @height_above_ground.setter
    def height_above_ground(self, value:float) -> None:
        """Height of place above its model of the ground. Height is measured along the normal to surface defined by reference ellipsoid of the central body. Place models the ground as an ellipsoid passing through the ground position. Uses Distance Dimension."""
        return self._intf.set_property(Place._metadata, Place._set_height_above_ground_metadata, value)

    _get_altitude_reference_metadata = { "offset" : _get_altitude_reference_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AltitudeReferenceType),) }
    @property
    def altitude_reference(self) -> "AltitudeReferenceType":
        """Get or set the altitude reference of the object."""
        return self._intf.get_property(Place._metadata, Place._get_altitude_reference_metadata)

    _set_altitude_reference_metadata = { "offset" : _set_altitude_reference_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AltitudeReferenceType),) }
    @altitude_reference.setter
    def altitude_reference(self, value:"AltitudeReferenceType") -> None:
        """Get or set the altitude reference of the object."""
        return self._intf.set_property(Place._metadata, Place._set_altitude_reference_metadata, value)

    _get_atmosphere_metadata = { "offset" : _get_atmosphere_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmosphere(self) -> "Atmosphere":
        """Do not use this property, as it is deprecated. The new RFEnvironment property can be used to configure atmospheric models."""
        return self._intf.get_property(Place._metadata, Place._get_atmosphere_metadata)

    _get_radar_clutter_map_metadata = { "offset" : _get_radar_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_clutter_map(self) -> "IRadarClutterMapInheritable":
        """Return the radar clutter map."""
        return self._intf.get_property(Place._metadata, Place._get_radar_clutter_map_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionInheritable":
        """Return the radar cross sectoin."""
        return self._intf.get_property(Place._metadata, Place._get_radar_cross_section_metadata)

    _get_save_terrain_mask_data_in_binary_metadata = { "offset" : _get_save_terrain_mask_data_in_binary_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_terrain_mask_data_in_binary(self) -> bool:
        """Save terrain az-el mask data in binary."""
        return self._intf.get_property(Place._metadata, Place._get_save_terrain_mask_data_in_binary_metadata)

    _set_save_terrain_mask_data_in_binary_metadata = { "offset" : _set_save_terrain_mask_data_in_binary_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @save_terrain_mask_data_in_binary.setter
    def save_terrain_mask_data_in_binary(self, save_terrain_mask_data_in_binary:bool) -> None:
        return self._intf.set_property(Place._metadata, Place._set_save_terrain_mask_data_in_binary_metadata, save_terrain_mask_data_in_binary)

    _get_lighting_obstruction_model_metadata = { "offset" : _get_lighting_obstruction_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LightingObstructionModelType),) }
    @property
    def lighting_obstruction_model(self) -> "LightingObstructionModelType":
        """Get or set the obstruction model used in lighting computations."""
        return self._intf.get_property(Place._metadata, Place._get_lighting_obstruction_model_metadata)

    _set_lighting_obstruction_model_metadata = { "offset" : _set_lighting_obstruction_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LightingObstructionModelType),) }
    @lighting_obstruction_model.setter
    def lighting_obstruction_model(self, type:"LightingObstructionModelType") -> None:
        return self._intf.set_property(Place._metadata, Place._set_lighting_obstruction_model_metadata, type)

    _get_lighting_maximum_step_metadata = { "offset" : _get_lighting_maximum_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step(self) -> float:
        """Get or set the maximum step size to use when computing lighting. Only applies (and only can be set) when LightingObstructionModel is eLightingObstructionAzElMask or eLightingObstructionTerrain. Uses Time Dimension."""
        return self._intf.get_property(Place._metadata, Place._get_lighting_maximum_step_metadata)

    _set_lighting_maximum_step_metadata = { "offset" : _set_lighting_maximum_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step.setter
    def lighting_maximum_step(self, max_step:float) -> None:
        return self._intf.set_property(Place._metadata, Place._set_lighting_maximum_step_metadata, max_step)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "PlatformLaserEnvironment":
        """Get the laser environment."""
        return self._intf.get_property(Place._metadata, Place._get_laser_environment_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "IPlatformRFEnvironment":
        """Get the RF environment."""
        return self._intf.get_property(Place._metadata, Place._get_rf_environment_metadata)

    _get_maximum_range_when_computing_az_el_mask_metadata = { "offset" : _get_maximum_range_when_computing_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_range_when_computing_az_el_mask(self) -> float:
        """Get or set the maximum range to use when computing the az el mask using terrain data. Zero indicates to use algorithm default. Only applies when GetAzElMask returns eTerrainData (cannot be set if eMaskFile). Uses Distance Dimension."""
        return self._intf.get_property(Place._metadata, Place._get_maximum_range_when_computing_az_el_mask_metadata)

    _set_maximum_range_when_computing_az_el_mask_metadata = { "offset" : _set_maximum_range_when_computing_az_el_mask_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_range_when_computing_az_el_mask.setter
    def maximum_range_when_computing_az_el_mask(self, max_range:float) -> None:
        return self._intf.set_property(Place._metadata, Place._set_maximum_range_when_computing_az_el_mask_metadata, max_range)

    _property_names[use_local_time_offset] = "use_local_time_offset"
    _property_names[local_time_offset] = "local_time_offset"
    _property_names[use_terrain] = "use_terrain"
    _property_names[graphics] = "graphics"
    _property_names[position] = "position"
    _property_names[terrain_normal] = "terrain_normal"
    _property_names[terrain_normal_data] = "terrain_normal_data"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[access_constraints] = "access_constraints"
    _property_names[height_above_ground] = "height_above_ground"
    _property_names[altitude_reference] = "altitude_reference"
    _property_names[atmosphere] = "atmosphere"
    _property_names[radar_clutter_map] = "radar_clutter_map"
    _property_names[radar_cross_section] = "radar_cross_section"
    _property_names[save_terrain_mask_data_in_binary] = "save_terrain_mask_data_in_binary"
    _property_names[lighting_obstruction_model] = "lighting_obstruction_model"
    _property_names[lighting_maximum_step] = "lighting_maximum_step"
    _property_names[laser_environment] = "laser_environment"
    _property_names[rf_environment] = "rf_environment"
    _property_names[maximum_range_when_computing_az_el_mask] = "maximum_range_when_computing_az_el_mask"

    def __init__(self, source_object=None):
        """Construct an object of type Place."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Place)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Place, [Place, ISTKObject, ILifetimeInformation, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((4676066808156923506, 1655977574171784065), Place)
agcls.AgTypeNameMap["Place"] = Place

class Planet(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """
    Provide access to the properties and methods used in defining a planet object.

    Examples
    --------
    Modify a Planet's 2D Properties:
    >>> # Planet planet: Planet object
    >>> planet2D = planet.graphics
    >>> planet2D.color = Colors.Red
    >>> planet2D.inherit = False
    >>> planet2D.show_orbit = True
    >>> planet2D.show_sub_planet_point = False
    >>> planet2D.show_sub_planet_label = False

    Create a New Planet:
    >>> # Scenario scenario: Scenario object
    >>> planet = scenario.children.new(STKObjectType.PLANET, "Mars")
    >>> planet.common_tasks.set_position_source_central_body("Mars", EphemSourceType.JPL_DEVELOPMENTAL_EPHEMERIS)
    """

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_graphics_method_offset = 1
    _get_access_constraints_method_offset = 2
    _get_graphics_3d_method_offset = 3
    _get_position_source_method_offset = 4
    _set_position_source_method_offset = 5
    _get_position_source_data_method_offset = 6
    _get_common_tasks_method_offset = 7
    _metadata = {
        "iid_data" : (5356493938174314632, 10516173162792382653),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Planet)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "PlanetGraphics":
        """Get the planet's 2D Graphics properties."""
        return self._intf.get_property(Planet._metadata, Planet._get_graphics_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the planet."""
        return self._intf.get_property(Planet._metadata, Planet._get_access_constraints_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "PlanetGraphics3D":
        """Get the planet's 3D Graphics properties."""
        return self._intf.get_property(Planet._metadata, Planet._get_graphics_3d_metadata)

    _get_position_source_metadata = { "offset" : _get_position_source_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PlanetPositionSourceType),) }
    @property
    def position_source(self) -> "PlanetPositionSourceType":
        """The criterion for defining the planet. A member of the PlanetPositionSourceType enumeration."""
        return self._intf.get_property(Planet._metadata, Planet._get_position_source_metadata)

    _set_position_source_metadata = { "offset" : _set_position_source_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PlanetPositionSourceType),) }
    @position_source.setter
    def position_source(self, value:"PlanetPositionSourceType") -> None:
        return self._intf.set_property(Planet._metadata, Planet._set_position_source_metadata, value)

    _get_position_source_data_metadata = { "offset" : _get_position_source_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position_source_data(self) -> "IPositionSourceData":
        """Get definitional data for the planet."""
        return self._intf.get_property(Planet._metadata, Planet._get_position_source_data_metadata)

    _get_common_tasks_metadata = { "offset" : _get_common_tasks_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def common_tasks(self) -> "PlanetCommonTasks":
        """Common Tasks associated with the planet."""
        return self._intf.get_property(Planet._metadata, Planet._get_common_tasks_metadata)

    _property_names[graphics] = "graphics"
    _property_names[access_constraints] = "access_constraints"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[position_source] = "position_source"
    _property_names[position_source_data] = "position_source_data"
    _property_names[common_tasks] = "common_tasks"

    def __init__(self, source_object=None):
        """Construct an object of type Planet."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Planet)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Planet, [Planet, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5588820568255522568, 10390724185762651817), Planet)
agcls.AgTypeNameMap["Planet"] = Planet

class Sensor(ISTKObject, ILifetimeInformation, IDisplayTime, IProvideSpatialInfo, SupportsDeleteCallback):
    r"""
    Provide access to the properties and methods used in defining a sensor object.

    Examples
    --------
    Sensor Body Mask:
    >>> # Sensor sensor: Sensor object
    >>> if os.name == "nt":
    >>>     installPath = r"C:\Program Files\AGI\STK 12"
    >>> else:
    >>>     installPath = os.environ["STK_INSTALL_DIR"]
    >>> bmskPath = ["Data", "Resources", "stktraining", "text", "BodyMask_hga.bmsk"]
    >>> sensor.set_az_el_mask_file(os.path.join(installPath, *bmskPath))

    Set Sensor Properties:
    >>> # Sensor sensor: Sensor object
    >>> # Change pattern and set
    >>> sensor.common_tasks.set_pattern_rectangular(20, 25)
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_az_el(90, 60, AzElAboutBoresight.ROTATE)
    >>> # Change location and set
    >>> sensor.set_location_type(SensorLocation.FIXED)
    >>> sensor.location_data.assign_cartesian(-0.0004, -0.0004, 0.004)

    Attach a Sensor Object to a Vehicle:
    >>> # Satellite satellite: Satellite object
    >>> sensor = satellite.children.new(STKObjectType.SENSOR, "MySensor")
    """

    _num_methods = 32
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pattern_type_method_offset = 1
    _set_pattern_type_method_offset = 2
    _get_pattern_method_offset = 3
    _get_pointing_type_method_offset = 4
    _set_pointing_type_method_offset = 5
    _set_pointing_external_file_method_offset = 6
    _get_pointing_method_offset = 7
    _reset_az_el_mask_method_offset = 8
    _get_az_el_mask_method_offset = 9
    _set_az_el_mask_method_offset = 10
    _set_az_el_mask_file_method_offset = 11
    _get_az_el_mask_data_method_offset = 12
    _get_focal_length_method_offset = 13
    _set_focal_length_method_offset = 14
    _get_detector_pitch_method_offset = 15
    _set_detector_pitch_method_offset = 16
    _get_refraction_method_offset = 17
    _set_refraction_method_offset = 18
    _get_graphics_method_offset = 19
    _get_graphics_3d_method_offset = 20
    _get_location_type_method_offset = 21
    _set_location_type_method_offset = 22
    _get_location_data_method_offset = 23
    _get_access_constraints_method_offset = 24
    _get_swath_method_offset = 25
    _is_refraction_type_supported_method_offset = 26
    _get_refraction_supported_types_method_offset = 27
    _get_refraction_model_method_offset = 28
    _get_use_refraction_in_access_method_offset = 29
    _set_use_refraction_in_access_method_offset = 30
    _get_common_tasks_method_offset = 31
    _get_stars_in_field_of_view_method_offset = 32
    _metadata = {
        "iid_data" : (5523113412909833385, 11401986840398407098),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Sensor)

    _get_pattern_type_metadata = { "offset" : _get_pattern_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorPattern),) }
    @property
    def pattern_type(self) -> "SensorPattern":
        """Criterion for defining the sensor pattern. A member of the SensorPattern enumeration."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_pattern_type_metadata)

    _set_pattern_type_metadata = { "offset" : _set_pattern_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorPattern),) }
    def set_pattern_type(self, pattern_type:"SensorPattern") -> None:
        """Set the pattern type."""
        return self._intf.invoke(Sensor._metadata, Sensor._set_pattern_type_metadata, pattern_type)

    _get_pattern_metadata = { "offset" : _get_pattern_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pattern(self) -> "ISensorPattern":
        """Get data defining the sensor pattern."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_pattern_metadata)

    _get_pointing_type_metadata = { "offset" : _get_pointing_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorPointing),) }
    @property
    def pointing_type(self) -> "SensorPointing":
        """The sensor's pointing type. A member of the SensorPointing enumeration."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_pointing_type_metadata)

    _set_pointing_type_metadata = { "offset" : _set_pointing_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorPointing),) }
    def set_pointing_type(self, pointing_type:"SensorPointing") -> None:
        """Set the sensor's pointing type, using the SensorPointing enumeration."""
        return self._intf.invoke(Sensor._metadata, Sensor._set_pointing_type_metadata, pointing_type)

    _set_pointing_external_file_metadata = { "offset" : _set_pointing_external_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_pointing_external_file(self, sensor_pointing_file:str) -> None:
        """Set the external pointing type."""
        return self._intf.invoke(Sensor._metadata, Sensor._set_pointing_external_file_metadata, sensor_pointing_file)

    _get_pointing_metadata = { "offset" : _get_pointing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pointing(self) -> "ISensorPointing":
        """Get pointing data for the sensor."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_pointing_metadata)

    _reset_az_el_mask_metadata = { "offset" : _reset_az_el_mask_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reset_az_el_mask(self) -> None:
        """Reset the az-el mask."""
        return self._intf.invoke(Sensor._metadata, Sensor._reset_az_el_mask_metadata, )

    _get_az_el_mask_metadata = { "offset" : _get_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AzElMaskType),) }
    @property
    def az_el_mask(self) -> "AzElMaskType":
        """Get the az-el mask."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_az_el_mask_metadata)

    _set_az_el_mask_metadata = { "offset" : _set_az_el_mask_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AzElMaskType),) }
    def set_az_el_mask(self, az_el_mask_type:"AzElMaskType") -> None:
        """Set the az-el mask type, using the AzElMaskType enumeration."""
        return self._intf.invoke(Sensor._metadata, Sensor._set_az_el_mask_metadata, az_el_mask_type)

    _set_az_el_mask_file_metadata = { "offset" : _set_az_el_mask_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_az_el_mask_file(self, filename:str) -> None:
        """Path and file name of az-el mask file."""
        return self._intf.invoke(Sensor._metadata, Sensor._set_az_el_mask_file_metadata, filename)

    _get_az_el_mask_data_metadata = { "offset" : _get_az_el_mask_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def az_el_mask_data(self) -> "IAzElMaskData":
        """Get az-el mask data for the sensor."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_az_el_mask_data_metadata)

    _get_focal_length_metadata = { "offset" : _get_focal_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def focal_length(self) -> float:
        """Focal length used in defining sensor resolution. Uses SmallDistanceUnit Dimension."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_focal_length_metadata)

    _set_focal_length_metadata = { "offset" : _set_focal_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @focal_length.setter
    def focal_length(self, value:float) -> None:
        return self._intf.set_property(Sensor._metadata, Sensor._set_focal_length_metadata, value)

    _get_detector_pitch_metadata = { "offset" : _get_detector_pitch_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def detector_pitch(self) -> float:
        """Detector pitch used in defining senor resolution. Uses SmallDistanceUnit Dimension."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_detector_pitch_metadata)

    _set_detector_pitch_metadata = { "offset" : _set_detector_pitch_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @detector_pitch.setter
    def detector_pitch(self, value:float) -> None:
        return self._intf.set_property(Sensor._metadata, Sensor._set_detector_pitch_metadata, value)

    _get_refraction_metadata = { "offset" : _get_refraction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType),) }
    @property
    def refraction(self) -> "SensorRefractionType":
        """Refraction method, a member of the SensorRefractionType enumeration."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_refraction_metadata)

    _set_refraction_metadata = { "offset" : _set_refraction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType),) }
    @refraction.setter
    def refraction(self, value:"SensorRefractionType") -> None:
        return self._intf.set_property(Sensor._metadata, Sensor._set_refraction_metadata, value)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "SensorGraphics":
        """Get the 2D Graphics properties for the sensor."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "SensorGraphics3D":
        """Get the 3D Graphics properties for the sensor."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_graphics_3d_metadata)

    _get_location_type_metadata = { "offset" : _get_location_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorLocation),) }
    @property
    def location_type(self) -> "SensorLocation":
        """The location type being used by the sensor."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_location_type_metadata)

    _set_location_type_metadata = { "offset" : _set_location_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorLocation),) }
    def set_location_type(self, location_type:"SensorLocation") -> None:
        """Set the sensor's location type, a member of the SensorLocation enumeration."""
        return self._intf.invoke(Sensor._metadata, Sensor._set_location_type_metadata, location_type)

    _get_location_data_metadata = { "offset" : _get_location_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def location_data(self) -> "ILocationData":
        """Get location data for the sensor. The sensor's center point is invalid; all other points are valid choices for the location data."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_location_data_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get constraints imposed on the sensor."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_access_constraints_metadata)

    _get_swath_metadata = { "offset" : _get_swath_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def swath(self) -> "Swath":
        """Get the sensor's swath."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_swath_metadata)

    _is_refraction_type_supported_metadata = { "offset" : _is_refraction_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType), agmarshall.VariantBoolArg,) }
    def is_refraction_type_supported(self, model:"SensorRefractionType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(Sensor._metadata, Sensor._is_refraction_type_supported_metadata, model, OutArg())

    _get_refraction_supported_types_metadata = { "offset" : _get_refraction_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def refraction_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_refraction_supported_types_metadata)

    _get_refraction_model_metadata = { "offset" : _get_refraction_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def refraction_model(self) -> "IRefractionModelBase":
        """Get a refraction model."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_refraction_model_metadata)

    _get_use_refraction_in_access_metadata = { "offset" : _get_use_refraction_in_access_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_refraction_in_access(self) -> bool:
        """Flag controls whether refraction is applied when computing relative position in Access."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_use_refraction_in_access_metadata)

    _set_use_refraction_in_access_metadata = { "offset" : _set_use_refraction_in_access_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_refraction_in_access.setter
    def use_refraction_in_access(self, use_refraction_in_access:bool) -> None:
        return self._intf.set_property(Sensor._metadata, Sensor._set_use_refraction_in_access_metadata, use_refraction_in_access)

    _get_common_tasks_metadata = { "offset" : _get_common_tasks_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def common_tasks(self) -> "SensorCommonTasks":
        """Return an interface that exposes common tasks."""
        return self._intf.get_property(Sensor._metadata, Sensor._get_common_tasks_metadata)

    _get_stars_in_field_of_view_metadata = { "offset" : _get_stars_in_field_of_view_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def get_stars_in_field_of_view(self, epoch:typing.Any) -> "ICelestialBodyInformationCollection":
        """Return celestial bodies within the sensor's field of view."""
        return self._intf.invoke(Sensor._metadata, Sensor._get_stars_in_field_of_view_metadata, epoch, OutArg())

    _property_names[pattern_type] = "pattern_type"
    _property_names[pattern] = "pattern"
    _property_names[pointing_type] = "pointing_type"
    _property_names[pointing] = "pointing"
    _property_names[az_el_mask] = "az_el_mask"
    _property_names[az_el_mask_data] = "az_el_mask_data"
    _property_names[focal_length] = "focal_length"
    _property_names[detector_pitch] = "detector_pitch"
    _property_names[refraction] = "refraction"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[location_type] = "location_type"
    _property_names[location_data] = "location_data"
    _property_names[access_constraints] = "access_constraints"
    _property_names[swath] = "swath"
    _property_names[refraction_supported_types] = "refraction_supported_types"
    _property_names[refraction_model] = "refraction_model"
    _property_names[use_refraction_in_access] = "use_refraction_in_access"
    _property_names[common_tasks] = "common_tasks"

    def __init__(self, source_object=None):
        """Construct an object of type Sensor."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Sensor)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
        IProvideSpatialInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
        IProvideSpatialInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Sensor, [Sensor, ISTKObject, ILifetimeInformation, IDisplayTime, IProvideSpatialInfo])

agcls.AgClassCatalog.add_catalog_entry((5098506245346487393, 651681986479087018), Sensor)
agcls.AgTypeNameMap["Sensor"] = Sensor

class SensorCommonTasks(SupportsDeleteCallback):
    """
    The common tasks available for the sensor object.

    Examples
    --------
    Define sensor pointing fixed axes YPR:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_axes_ypr("CentralBody/Sun J2000 Axes", YPRAnglesSequence.RYP, 11, 22, 33)

    Define sensor pointing fixed YPR:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_ypr(YPRAnglesSequence.RPY, 12, 24, 36)

    Define sensor pointing fixed axes Quaternion:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_axes_quaternion("CentralBody/Sun J2000 Axes", 0.1, 0.2, 0.3, 0.4)

    Define sensor pointing fixed Quaternion:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_quaternion(0.1, 0.2, 0.3, 0.4)

    Define sensor pointing fixed axes Euler:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_axes_euler(
    >>>     "CentralBody/Sun J2000 Axes", EulerOrientationSequenceType.SEQUENCE_132, 30, 40, 50
    >>> )

    Define sensor pointing fixed Euler:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_euler(EulerOrientationSequenceType.SEQUENCE_132, 30, 40, 50)

    Define sensor pointing fixed axes AzEl:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_axes_az_el("CentralBody/Sun J2000 Axes", 11, 22, AzElAboutBoresight.HOLD)

    Define sensor pointing fixed AzEl:
    >>> # Sensor sensor: Sensor object
    >>> # Change pointing and set
    >>> sensor.common_tasks.set_pointing_fixed_az_el(4.5, -45.0, AzElAboutBoresight.ROTATE)
    """

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _set_pattern_simple_conic_method_offset = 1
    _set_pattern_complex_conic_method_offset = 2
    _set_pattern_eoir_method_offset = 3
    _set_pattern_half_power_method_offset = 4
    _set_pattern_rectangular_method_offset = 5
    _set_pattern_custom_method_offset = 6
    _set_pattern_sar_method_offset = 7
    _set_pointing_fixed_az_el_method_offset = 8
    _set_pointing_fixed_euler_method_offset = 9
    _set_pointing_fixed_quaternion_method_offset = 10
    _set_pointing_fixed_ypr_method_offset = 11
    _set_pointing_fixed_axes_az_el_method_offset = 12
    _set_pointing_fixed_axes_euler_method_offset = 13
    _set_pointing_fixed_axes_quaternion_method_offset = 14
    _set_pointing_fixed_axes_ypr_method_offset = 15
    _set_pointing_3d_model_method_offset = 16
    _set_pointing_grazing_altitude_method_offset = 17
    _set_pointing_spinning_method_offset = 18
    _set_pointing_targeted_tracking_method_offset = 19
    _set_pointing_along_vector_method_offset = 20
    _metadata = {
        "iid_data" : (4679245524456279767, 7505555900644736436),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorCommonTasks)

    _set_pattern_simple_conic_metadata = { "offset" : _set_pattern_simple_conic_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_pattern_simple_conic(self, cone_angle:typing.Any, angular_resolution:typing.Any) -> "SensorSimpleConicPattern":
        """Define the sensor using a simple conic pattern."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pattern_simple_conic_metadata, cone_angle, angular_resolution, OutArg())

    _set_pattern_complex_conic_metadata = { "offset" : _set_pattern_complex_conic_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_pattern_complex_conic(self, inner_cone_half_angle:typing.Any, outer_cone_half_angle:typing.Any, minimum_clock_angle:typing.Any, maximum_clock_angle:typing.Any) -> "SensorComplexConicPattern":
        """Define the sensor using a complex conic pattern."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pattern_complex_conic_metadata, inner_cone_half_angle, outer_cone_half_angle, minimum_clock_angle, maximum_clock_angle, OutArg())

    _set_pattern_eoir_metadata = { "offset" : _set_pattern_eoir_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.EnumArg(SensorEOIRProcessingLevelType), agmarshall.InterfaceOutArg,) }
    def set_pattern_eoir(self, line_of_site_jitter:float, processing_level:"SensorEOIRProcessingLevelType") -> "SensorEOIRPattern":
        """Define the sensor using a EOIR pattern."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pattern_eoir_metadata, line_of_site_jitter, processing_level, OutArg())

    _set_pattern_half_power_metadata = { "offset" : _set_pattern_half_power_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_pattern_half_power(self, frequency:float, antenna_diameter:float, angular_resolution:typing.Any) -> "SensorHalfPowerPattern":
        """Define the sensor using a half power pattern."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pattern_half_power_metadata, frequency, antenna_diameter, angular_resolution, OutArg())

    _set_pattern_rectangular_metadata = { "offset" : _set_pattern_rectangular_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_pattern_rectangular(self, vertical_half_angle:typing.Any, horizontal_half_angle:typing.Any) -> "SensorRectangularPattern":
        """Define the sensor using a rectangular pattern."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pattern_rectangular_metadata, vertical_half_angle, horizontal_half_angle, OutArg())

    _set_pattern_custom_metadata = { "offset" : _set_pattern_custom_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def set_pattern_custom(self, filename:str) -> "SensorCustomPattern":
        """Define the sensor using a custom pattern."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pattern_custom_metadata, filename, OutArg())

    _set_pattern_sar_metadata = { "offset" : _set_pattern_sar_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.Variant, agcom.Variant, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def set_pattern_sar(self, min_elevation_angle:typing.Any, max_elevation_angle:typing.Any, fore_exclusion_angle:typing.Any, aft_exclusion_angle:typing.Any, parent_altitude:float) -> "SensorSARPattern":
        """Define the sensor using a SAR pattern."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pattern_sar_metadata, min_elevation_angle, max_elevation_angle, fore_exclusion_angle, aft_exclusion_angle, parent_altitude, OutArg())

    _set_pointing_fixed_az_el_metadata = { "offset" : _set_pointing_fixed_az_el_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.EnumArg(AzElAboutBoresight), agmarshall.InterfaceOutArg,) }
    def set_pointing_fixed_az_el(self, azimuth:typing.Any, elevation:typing.Any, about_boresight:"AzElAboutBoresight") -> "SensorPointingFixed":
        """
        Set the pointing method to Fixed with an AzEl orientation.

        Examples
        --------
        Define sensor pointing fixed AzEl:
        >>> # Sensor sensor: Sensor object
        >>> # Change pointing and set
        >>> sensor.common_tasks.set_pointing_fixed_az_el(4.5, -45.0, AzElAboutBoresight.ROTATE)
        """
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_fixed_az_el_metadata, azimuth, elevation, about_boresight, OutArg())

    _set_pointing_fixed_euler_metadata = { "offset" : _set_pointing_fixed_euler_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant, agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(EulerOrientationSequenceType), agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_fixed_euler(self, sequence:"EulerOrientationSequenceType", a:typing.Any, b:typing.Any, c:typing.Any) -> "SensorPointingFixed":
        """
        Set the pointing method to Fixed with a Euler Angles orientation.

        Examples
        --------
        Define sensor pointing fixed Euler:
        >>> # Sensor sensor: Sensor object
        >>> # Change pointing and set
        >>> sensor.common_tasks.set_pointing_fixed_euler(EulerOrientationSequenceType.SEQUENCE_132, 30, 40, 50)
        """
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_fixed_euler_metadata, sequence, a, b, c, OutArg())

    _set_pointing_fixed_quaternion_metadata = { "offset" : _set_pointing_fixed_quaternion_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_fixed_quaternion(self, qx:float, qy:float, qz:float, qs:float) -> "SensorPointingFixed":
        """
        Set the pointing method to Fixed with a Quaternion orientation.

        Examples
        --------
        Define sensor pointing fixed Quaternion:
        >>> # Sensor sensor: Sensor object
        >>> # Change pointing and set
        >>> sensor.common_tasks.set_pointing_fixed_quaternion(0.1, 0.2, 0.3, 0.4)
        """
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_fixed_quaternion_metadata, qx, qy, qz, qs, OutArg())

    _set_pointing_fixed_ypr_metadata = { "offset" : _set_pointing_fixed_ypr_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant, agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(YPRAnglesSequence), agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_fixed_ypr(self, sequence:"YPRAnglesSequence", yaw:typing.Any, pitch:typing.Any, roll:typing.Any) -> "SensorPointingFixed":
        """
        Set the pointing method to Fixed with a YPR Angles orientation.

        Examples
        --------
        Define sensor pointing fixed YPR:
        >>> # Sensor sensor: Sensor object
        >>> # Change pointing and set
        >>> sensor.common_tasks.set_pointing_fixed_ypr(YPRAnglesSequence.RPY, 12, 24, 36)
        """
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_fixed_ypr_metadata, sequence, yaw, pitch, roll, OutArg())

    _set_pointing_fixed_axes_az_el_metadata = { "offset" : _set_pointing_fixed_axes_az_el_method_offset,
            "arg_types" : (agcom.BSTR, agcom.Variant, agcom.Variant, agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.EnumArg(AzElAboutBoresight), agmarshall.InterfaceOutArg,) }
    def set_pointing_fixed_axes_az_el(self, reference_axes:str, azimuth:typing.Any, elevation:typing.Any, about_boresight:"AzElAboutBoresight") -> "SensorPointingFixedInAxes":
        """
        Set the pointing method to FixedAxes with an AzEl orientation.

        Examples
        --------
        Define sensor pointing fixed axes AzEl:
        >>> # Sensor sensor: Sensor object
        >>> # Change pointing and set
        >>> sensor.common_tasks.set_pointing_fixed_axes_az_el("CentralBody/Sun J2000 Axes", 11, 22, AzElAboutBoresight.HOLD)
        """
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_fixed_axes_az_el_metadata, reference_axes, azimuth, elevation, about_boresight, OutArg())

    _set_pointing_fixed_axes_euler_metadata = { "offset" : _set_pointing_fixed_axes_euler_method_offset,
            "arg_types" : (agcom.BSTR, agcom.LONG, agcom.Variant, agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.EnumArg(EulerOrientationSequenceType), agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_fixed_axes_euler(self, reference_axes:str, sequence:"EulerOrientationSequenceType", a:typing.Any, b:typing.Any, c:typing.Any) -> "SensorPointingFixedInAxes":
        """
        Set the pointing method to FixedAxes with a Euler Angles orientation.

        Examples
        --------
        Define sensor pointing fixed axes Euler:
        >>> # Sensor sensor: Sensor object
        >>> # Change pointing and set
        >>> sensor.common_tasks.set_pointing_fixed_axes_euler(
        >>>     "CentralBody/Sun J2000 Axes", EulerOrientationSequenceType.SEQUENCE_132, 30, 40, 50
        >>> )
        """
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_fixed_axes_euler_metadata, reference_axes, sequence, a, b, c, OutArg())

    _set_pointing_fixed_axes_quaternion_metadata = { "offset" : _set_pointing_fixed_axes_quaternion_method_offset,
            "arg_types" : (agcom.BSTR, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_fixed_axes_quaternion(self, reference_axes:str, qx:float, qy:float, qz:float, qs:float) -> "SensorPointingFixedInAxes":
        """
        Set the pointing method to FixedAxes with a Quaternion orientation.

        Examples
        --------
        Define sensor pointing fixed axes Quaternion:
        >>> # Sensor sensor: Sensor object
        >>> # Change pointing and set
        >>> sensor.common_tasks.set_pointing_fixed_axes_quaternion("CentralBody/Sun J2000 Axes", 0.1, 0.2, 0.3, 0.4)
        """
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_fixed_axes_quaternion_metadata, reference_axes, qx, qy, qz, qs, OutArg())

    _set_pointing_fixed_axes_ypr_metadata = { "offset" : _set_pointing_fixed_axes_ypr_method_offset,
            "arg_types" : (agcom.BSTR, agcom.LONG, agcom.Variant, agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.EnumArg(YPRAnglesSequence), agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_fixed_axes_ypr(self, reference_axes:str, sequence:"YPRAnglesSequence", yaw:typing.Any, pitch:typing.Any, roll:typing.Any) -> "SensorPointingFixedInAxes":
        """
        Set the pointing method to FixedAxes with a YPR Angles orientation.

        Examples
        --------
        Define sensor pointing fixed axes YPR:
        >>> # Sensor sensor: Sensor object
        >>> # Change pointing and set
        >>> sensor.common_tasks.set_pointing_fixed_axes_ypr("CentralBody/Sun J2000 Axes", YPRAnglesSequence.RYP, 11, 22, 33)
        """
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_fixed_axes_ypr_metadata, reference_axes, sequence, yaw, pitch, roll, OutArg())

    _set_pointing_3d_model_metadata = { "offset" : _set_pointing_3d_model_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_3d_model(self, attach_name:str) -> "SensorPointing3DModel":
        """Set the pointing method to 3DModel."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_3d_model_metadata, attach_name, OutArg())

    _set_pointing_grazing_altitude_metadata = { "offset" : _set_pointing_grazing_altitude_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_grazing_altitude(self, azimuth_offset:typing.Any, grazing_alt:float) -> "SensorPointingGrazingAltitude":
        """Set the pointing method to GrazingAlt."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_grazing_altitude_metadata, azimuth_offset, grazing_alt, OutArg())

    _set_pointing_spinning_metadata = { "offset" : _set_pointing_spinning_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.Variant, agcom.LONG, agcom.DOUBLE, agcom.Variant, agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.EnumArg(SensorScanMode), agmarshall.DoubleArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_spinning(self, spin_axis_azimuth:typing.Any, spin_axis_elevation:typing.Any, spin_axis_cone_angle:typing.Any, scan_mode:"SensorScanMode", spin_rate:float, offset_angle:typing.Any, clock_angle_start:typing.Any, clock_angle_stop:typing.Any) -> "SensorPointingSpinning":
        """Set the pointing method to Spinning."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_spinning_metadata, spin_axis_azimuth, spin_axis_elevation, spin_axis_cone_angle, scan_mode, spin_rate, offset_angle, clock_angle_start, clock_angle_stop, OutArg())

    _set_pointing_targeted_tracking_metadata = { "offset" : _set_pointing_targeted_tracking_method_offset,
            "arg_types" : (agcom.LONG, agcom.LONG, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(TrackMode), agmarshall.EnumArg(BoresightType), agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_targeted_tracking(self, track_mode_type:"TrackMode", about_boresight_type:"BoresightType", target_path:str) -> "SensorPointingTargeted":
        """Set the pointing method to Targeted with Tracking."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_targeted_tracking_metadata, track_mode_type, about_boresight_type, target_path, OutArg())

    _set_pointing_along_vector_metadata = { "offset" : _set_pointing_along_vector_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_pointing_along_vector(self, alignment_vector:str, constraint_vector:str, clock_angle_offset:typing.Any) -> "SensorPointingAlongVector":
        """Set the pointing method to Along Vector."""
        return self._intf.invoke(SensorCommonTasks._metadata, SensorCommonTasks._set_pointing_along_vector_metadata, alignment_vector, constraint_vector, clock_angle_offset, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type SensorCommonTasks."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorCommonTasks)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorCommonTasks, [SensorCommonTasks, ])

agcls.AgClassCatalog.add_catalog_entry((4620092193363503973, 16577355631467092666), SensorCommonTasks)
agcls.AgTypeNameMap["SensorCommonTasks"] = SensorCommonTasks

class AreaTargetCommonTasks(SupportsDeleteCallback):
    """AreaTarget common tasks."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _set_area_type_ellipse_method_offset = 1
    _set_area_type_pattern_method_offset = 2
    _metadata = {
        "iid_data" : (4898686688617323797, 3686330255164310406),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AreaTargetCommonTasks)

    _set_area_type_ellipse_metadata = { "offset" : _set_area_type_ellipse_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def set_area_type_ellipse(self, semi_major_axis:float, semi_minor_axis:float, bearing:typing.Any) -> "AreaTypeEllipse":
        """Set the boundary area type to Ellipse."""
        return self._intf.invoke(AreaTargetCommonTasks._metadata, AreaTargetCommonTasks._set_area_type_ellipse_metadata, semi_major_axis, semi_minor_axis, bearing, OutArg())

    _set_area_type_pattern_metadata = { "offset" : _set_area_type_pattern_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def set_area_type_pattern(self, lat_lons:list) -> "AreaTypePatternCollection":
        """Set the boundary area type to Pattern."""
        return self._intf.invoke(AreaTargetCommonTasks._metadata, AreaTargetCommonTasks._set_area_type_pattern_metadata, lat_lons, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type AreaTargetCommonTasks."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AreaTargetCommonTasks)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AreaTargetCommonTasks, [AreaTargetCommonTasks, ])

agcls.AgClassCatalog.add_catalog_entry((5490651023529007692, 17361532949150204074), AreaTargetCommonTasks)
agcls.AgTypeNameMap["AreaTargetCommonTasks"] = AreaTargetCommonTasks

class PlanetCommonTasks(SupportsDeleteCallback):
    """PlanetCommonTasks."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _set_position_source_file_method_offset = 1
    _set_position_source_central_body_method_offset = 2
    _metadata = {
        "iid_data" : (5282957291588028256, 6516513834042743723),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PlanetCommonTasks)

    _set_position_source_file_metadata = { "offset" : _set_position_source_file_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def set_position_source_file(self, file:str) -> "PlanetPositionFile":
        """Specify a planet ephemeris file, with a .pe extension."""
        return self._intf.invoke(PlanetCommonTasks._metadata, PlanetCommonTasks._set_position_source_file_metadata, file, OutArg())

    _set_position_source_central_body_metadata = { "offset" : _set_position_source_central_body_method_offset,
            "arg_types" : (agcom.BSTR, agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.EnumArg(EphemSourceType), agmarshall.InterfaceOutArg,) }
    def set_position_source_central_body(self, central_body:str, ephem_source:"EphemSourceType") -> "PlanetPositionCentralBody":
        """Specify the planet using a central body and a desired ephemeris source."""
        return self._intf.invoke(PlanetCommonTasks._metadata, PlanetCommonTasks._set_position_source_central_body_metadata, central_body, ephem_source, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type PlanetCommonTasks."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PlanetCommonTasks)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PlanetCommonTasks, [PlanetCommonTasks, ])

agcls.AgClassCatalog.add_catalog_entry((5221915026015608690, 5945072984212652198), PlanetCommonTasks)
agcls.AgTypeNameMap["PlanetCommonTasks"] = PlanetCommonTasks

class Swath(SupportsDeleteCallback):
    """Provide access to the Swath properties."""

    _num_methods = 28
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_method_offset = 1
    _set_enable_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_line_style_method_offset = 5
    _set_line_style_method_offset = 6
    _get_line_width_method_offset = 7
    _set_line_width_method_offset = 8
    _add_time_interval_method_offset = 9
    _modify_time_interval_method_offset = 10
    _get_time_interval_index_method_offset = 11
    _remove_time_interval_method_offset = 12
    _remove_time_interval_index_method_offset = 13
    _remove_all_intervals_method_offset = 14
    _get_time_interval_count_method_offset = 15
    _to_array_method_offset = 16
    _get_minimum_step_method_offset = 17
    _set_minimum_step_method_offset = 18
    _get_maximum_step_method_offset = 19
    _set_maximum_step_method_offset = 20
    _get_use_maximum_cone_method_offset = 21
    _set_use_maximum_cone_method_offset = 22
    _get_scattering_tolerance_method_offset = 23
    _set_scattering_tolerance_method_offset = 24
    _get_curvature_tolerance_method_offset = 25
    _set_curvature_tolerance_method_offset = 26
    _get_computational_method_method_offset = 27
    _set_computational_method_method_offset = 28
    _metadata = {
        "iid_data" : (4856735066740483179, 9845622877256207744),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Swath)

    _get_enable_metadata = { "offset" : _get_enable_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable(self) -> bool:
        """Enable swath."""
        return self._intf.get_property(Swath._metadata, Swath._get_enable_metadata)

    _set_enable_metadata = { "offset" : _set_enable_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable.setter
    def enable(self, value:bool) -> None:
        return self._intf.set_property(Swath._metadata, Swath._set_enable_metadata, value)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the color in which swath graphics are displayed in the 2D Graphics window."""
        return self._intf.get_property(Swath._metadata, Swath._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(Swath._metadata, Swath._set_color_metadata, value)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Get or set the style of the line defining the boundaries of the swath display in the 2D Graphics window. A member of the LineStyle enumeration."""
        return self._intf.get_property(Swath._metadata, Swath._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(Swath._metadata, Swath._set_line_style_metadata, value)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Get or set the width of the line defining the boundaries of the swath display in the 2D Graphics window. A member of the LineWidth enumeration."""
        return self._intf.get_property(Swath._metadata, Swath._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(Swath._metadata, Swath._set_line_width_metadata, value)

    _add_time_interval_metadata = { "offset" : _add_time_interval_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def add_time_interval(self, start_time:typing.Any, stop_time:typing.Any) -> None:
        """Add an interval to the list of valid swath intervals. Start/Stop Times use DateFormat Dimension."""
        return self._intf.invoke(Swath._metadata, Swath._add_time_interval_metadata, start_time, stop_time)

    _modify_time_interval_metadata = { "offset" : _modify_time_interval_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.LongArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def modify_time_interval(self, index:int, start:typing.Any, stop:typing.Any) -> None:
        """Modify an interval given an index. Start/Stop Times use DateFormat Dimension."""
        return self._intf.invoke(Swath._metadata, Swath._modify_time_interval_metadata, index, start, stop)

    _get_time_interval_index_metadata = { "offset" : _get_time_interval_index_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.LongArg,) }
    def get_time_interval_index(self, start:typing.Any, stop:typing.Any) -> int:
        """Retrieve an index given a start and stop time. Start/Stop Times use DateFormat Dimension."""
        return self._intf.invoke(Swath._metadata, Swath._get_time_interval_index_metadata, start, stop, OutArg())

    _remove_time_interval_metadata = { "offset" : _remove_time_interval_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def remove_time_interval(self, start:typing.Any, stop:typing.Any) -> None:
        """Remove the interval given the start and stop times. Start/Stop Times use DateFormat Dimension."""
        return self._intf.invoke(Swath._metadata, Swath._remove_time_interval_metadata, start, stop)

    _remove_time_interval_index_metadata = { "offset" : _remove_time_interval_index_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_time_interval_index(self, index:int) -> None:
        """Remove an interval given an index."""
        return self._intf.invoke(Swath._metadata, Swath._remove_time_interval_index_metadata, index)

    _remove_all_intervals_metadata = { "offset" : _remove_all_intervals_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all_intervals(self) -> None:
        """Remove all intervals."""
        return self._intf.invoke(Swath._metadata, Swath._remove_all_intervals_metadata, )

    _get_time_interval_count_metadata = { "offset" : _get_time_interval_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def time_interval_count(self) -> int:
        """Number of Time Intervals."""
        return self._intf.get_property(Swath._metadata, Swath._get_time_interval_count_metadata)

    _to_array_metadata = { "offset" : _to_array_method_offset,
            "arg_types" : (agcom.LONG, agcom.LONG, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LongArg, agmarshall.LongArg, agmarshall.LPSafearrayArg,) }
    def to_array(self, index:int, length:int) -> list:
        """Return an array of all time intervals."""
        return self._intf.invoke(Swath._metadata, Swath._to_array_metadata, index, length, OutArg())

    _get_minimum_step_metadata = { "offset" : _get_minimum_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_step(self) -> float:
        """Get or set the minimum step size for the adaptive step size of swath computation."""
        return self._intf.get_property(Swath._metadata, Swath._get_minimum_step_metadata)

    _set_minimum_step_metadata = { "offset" : _set_minimum_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_step.setter
    def minimum_step(self, minimum_step:float) -> None:
        return self._intf.set_property(Swath._metadata, Swath._set_minimum_step_metadata, minimum_step)

    _get_maximum_step_metadata = { "offset" : _get_maximum_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_step(self) -> float:
        """Get or set the maximum step size for the adaptive step size of swath computation."""
        return self._intf.get_property(Swath._metadata, Swath._get_maximum_step_metadata)

    _set_maximum_step_metadata = { "offset" : _set_maximum_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_step.setter
    def maximum_step(self, maximum_step:float) -> None:
        return self._intf.set_property(Swath._metadata, Swath._set_maximum_step_metadata, maximum_step)

    _get_use_maximum_cone_metadata = { "offset" : _get_use_maximum_cone_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_maximum_cone(self) -> bool:
        """Whether to perform swath computations based on the maximum cone that encompasses the sensor pattern instead of actual pattern. Setting this option may result in a more informative swath with a superior appearance."""
        return self._intf.get_property(Swath._metadata, Swath._get_use_maximum_cone_metadata)

    _set_use_maximum_cone_metadata = { "offset" : _set_use_maximum_cone_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_maximum_cone.setter
    def use_maximum_cone(self, use_maximum_cone:bool) -> None:
        return self._intf.set_property(Swath._metadata, Swath._set_use_maximum_cone_metadata, use_maximum_cone)

    _get_scattering_tolerance_metadata = { "offset" : _get_scattering_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scattering_tolerance(self) -> float:
        """Determine the angle with respect to the swath line within which candidate points are considered for possible connection to it."""
        return self._intf.get_property(Swath._metadata, Swath._get_scattering_tolerance_metadata)

    _set_scattering_tolerance_metadata = { "offset" : _set_scattering_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scattering_tolerance.setter
    def scattering_tolerance(self, scattering_tolerance:float) -> None:
        return self._intf.set_property(Swath._metadata, Swath._set_scattering_tolerance_metadata, scattering_tolerance)

    _get_curvature_tolerance_metadata = { "offset" : _get_curvature_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def curvature_tolerance(self) -> float:
        """Control the adaptive step size of swath computation and ensures that neighboring samples adequately capture the curvature of the swath line."""
        return self._intf.get_property(Swath._metadata, Swath._get_curvature_tolerance_metadata)

    _set_curvature_tolerance_metadata = { "offset" : _set_curvature_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @curvature_tolerance.setter
    def curvature_tolerance(self, curvature_tolerance:float) -> None:
        return self._intf.set_property(Swath._metadata, Swath._set_curvature_tolerance_metadata, curvature_tolerance)

    _get_computational_method_metadata = { "offset" : _get_computational_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SwathComputationalMethod),) }
    @property
    def computational_method(self) -> "SwathComputationalMethod":
        """Select the Analytical or Numerical Computaional Method for generating swaths."""
        return self._intf.get_property(Swath._metadata, Swath._get_computational_method_metadata)

    _set_computational_method_metadata = { "offset" : _set_computational_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SwathComputationalMethod),) }
    @computational_method.setter
    def computational_method(self, swath_computational_method:"SwathComputationalMethod") -> None:
        return self._intf.set_property(Swath._metadata, Swath._set_computational_method_metadata, swath_computational_method)

    _property_names[enable] = "enable"
    _property_names[color] = "color"
    _property_names[line_style] = "line_style"
    _property_names[line_width] = "line_width"
    _property_names[time_interval_count] = "time_interval_count"
    _property_names[minimum_step] = "minimum_step"
    _property_names[maximum_step] = "maximum_step"
    _property_names[use_maximum_cone] = "use_maximum_cone"
    _property_names[scattering_tolerance] = "scattering_tolerance"
    _property_names[curvature_tolerance] = "curvature_tolerance"
    _property_names[computational_method] = "computational_method"

    def __init__(self, source_object=None):
        """Construct an object of type Swath."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Swath)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Swath, [Swath, ])

agcls.AgClassCatalog.add_catalog_entry((5420689223650134489, 5103980326220087184), Swath)
agcls.AgTypeNameMap["Swath"] = Swath

class Star(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """Provide access to the properties and methods used in defining a star object."""

    _num_methods = 19
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_location_right_ascension_method_offset = 1
    _set_location_right_ascension_method_offset = 2
    _get_location_declination_method_offset = 3
    _set_location_declination_method_offset = 4
    _get_proper_motion_right_ascension_method_offset = 5
    _set_proper_motion_right_ascension_method_offset = 6
    _get_proper_motion_declination_method_offset = 7
    _set_proper_motion_declination_method_offset = 8
    _get_parallax_method_offset = 9
    _set_parallax_method_offset = 10
    _get_epoch_method_offset = 11
    _get_magnitude_method_offset = 12
    _set_magnitude_method_offset = 13
    _get_graphics_method_offset = 14
    _get_access_constraints_method_offset = 15
    _get_graphics_3d_method_offset = 16
    _get_reference_frame_method_offset = 17
    _get_proper_motion_radial_velocity_method_offset = 18
    _set_proper_motion_radial_velocity_method_offset = 19
    _metadata = {
        "iid_data" : (5050264926481498336, 8828738164031145602),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Star)

    _get_location_right_ascension_metadata = { "offset" : _get_location_right_ascension_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def location_right_ascension(self) -> typing.Any:
        """The star's right ascension: the angle in the equatorial plane measured in a right-handed sense about the inertial Z-axis from the inertial X-axis. Uses Angle Dimension."""
        return self._intf.get_property(Star._metadata, Star._get_location_right_ascension_metadata)

    _set_location_right_ascension_metadata = { "offset" : _set_location_right_ascension_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @location_right_ascension.setter
    def location_right_ascension(self, right_ascension:typing.Any) -> None:
        return self._intf.set_property(Star._metadata, Star._set_location_right_ascension_metadata, right_ascension)

    _get_location_declination_metadata = { "offset" : _get_location_declination_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def location_declination(self) -> typing.Any:
        """The star's declination: the angle from the inertial equator measured toward the inertial positive Z-axis. Uses Angle Dimension."""
        return self._intf.get_property(Star._metadata, Star._get_location_declination_metadata)

    _set_location_declination_metadata = { "offset" : _set_location_declination_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @location_declination.setter
    def location_declination(self, declination:typing.Any) -> None:
        return self._intf.set_property(Star._metadata, Star._set_location_declination_metadata, declination)

    _get_proper_motion_right_ascension_metadata = { "offset" : _get_proper_motion_right_ascension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def proper_motion_right_ascension(self) -> float:
        """Motion of star relative to solar system barycenter expressed in arc seconds per year. Here, right ascension refers to motion in equatorial plane measured in a right-handed sense about the inertial Z-axis from inertial X-axis. Uses AngleRate Dimension."""
        return self._intf.get_property(Star._metadata, Star._get_proper_motion_right_ascension_metadata)

    _set_proper_motion_right_ascension_metadata = { "offset" : _set_proper_motion_right_ascension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @proper_motion_right_ascension.setter
    def proper_motion_right_ascension(self, proper_motion_right_ascension:float) -> None:
        return self._intf.set_property(Star._metadata, Star._set_proper_motion_right_ascension_metadata, proper_motion_right_ascension)

    _get_proper_motion_declination_metadata = { "offset" : _get_proper_motion_declination_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def proper_motion_declination(self) -> float:
        """Motion of the star relative to the solar system barycenter expressed in arc seconds per year. Here, declination refers to motion from the inertial equator measured towards the inertial positive Z-axis. Uses AngleRate Dimension."""
        return self._intf.get_property(Star._metadata, Star._get_proper_motion_declination_metadata)

    _set_proper_motion_declination_metadata = { "offset" : _set_proper_motion_declination_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @proper_motion_declination.setter
    def proper_motion_declination(self, proper_motion_declination:float) -> None:
        return self._intf.set_property(Star._metadata, Star._set_proper_motion_declination_metadata, proper_motion_declination)

    _get_parallax_metadata = { "offset" : _get_parallax_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def parallax(self) -> typing.Any:
        """Annual parallax: motion of a star due to changes in the Earth's position relative to the solar system barycenter. Uses Angle Dimension."""
        return self._intf.get_property(Star._metadata, Star._get_parallax_metadata)

    _set_parallax_metadata = { "offset" : _set_parallax_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @parallax.setter
    def parallax(self, proper_motion_parallax:typing.Any) -> None:
        return self._intf.set_property(Star._metadata, Star._set_parallax_metadata, proper_motion_parallax)

    _get_epoch_metadata = { "offset" : _get_epoch_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def epoch(self) -> str:
        """Epoch of the star position information as a Julian epoch (yyyy.yy). The Julian epoch is related to the Julian date by the expression JD = 2451545.0 + (yyyy.yy - 2000.0) x 365.25, where 2451545.0 (TT) represents the standard J2000 epoch."""
        return self._intf.get_property(Star._metadata, Star._get_epoch_metadata)

    _get_magnitude_metadata = { "offset" : _get_magnitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def magnitude(self) -> float:
        """Magnitude, the visual brightness of the star. Dimensionless."""
        return self._intf.get_property(Star._metadata, Star._get_magnitude_metadata)

    _set_magnitude_metadata = { "offset" : _set_magnitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @magnitude.setter
    def magnitude(self, magnitude:float) -> None:
        return self._intf.set_property(Star._metadata, Star._set_magnitude_metadata, magnitude)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "StarGraphics":
        """Get the star's 2D Graphics properties."""
        return self._intf.get_property(Star._metadata, Star._get_graphics_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the star."""
        return self._intf.get_property(Star._metadata, Star._get_access_constraints_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "StarGraphics3D":
        """Get the star's 3D Graphics properties."""
        return self._intf.get_property(Star._metadata, Star._get_graphics_3d_metadata)

    _get_reference_frame_metadata = { "offset" : _get_reference_frame_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(StarReferenceFrame),) }
    @property
    def reference_frame(self) -> "StarReferenceFrame":
        """Return a reference frame."""
        return self._intf.get_property(Star._metadata, Star._get_reference_frame_metadata)

    _get_proper_motion_radial_velocity_metadata = { "offset" : _get_proper_motion_radial_velocity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def proper_motion_radial_velocity(self) -> float:
        """Property motion radial velocity. Uses Distance dimension."""
        return self._intf.get_property(Star._metadata, Star._get_proper_motion_radial_velocity_metadata)

    _set_proper_motion_radial_velocity_metadata = { "offset" : _set_proper_motion_radial_velocity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @proper_motion_radial_velocity.setter
    def proper_motion_radial_velocity(self, radial_velocity:float) -> None:
        return self._intf.set_property(Star._metadata, Star._set_proper_motion_radial_velocity_metadata, radial_velocity)

    _property_names[location_right_ascension] = "location_right_ascension"
    _property_names[location_declination] = "location_declination"
    _property_names[proper_motion_right_ascension] = "proper_motion_right_ascension"
    _property_names[proper_motion_declination] = "proper_motion_declination"
    _property_names[parallax] = "parallax"
    _property_names[epoch] = "epoch"
    _property_names[magnitude] = "magnitude"
    _property_names[graphics] = "graphics"
    _property_names[access_constraints] = "access_constraints"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[reference_frame] = "reference_frame"
    _property_names[proper_motion_radial_velocity] = "proper_motion_radial_velocity"

    def __init__(self, source_object=None):
        """Construct an object of type Star."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Star)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Star, [Star, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5686130963924770811, 17803120372197994891), Star)
agcls.AgTypeNameMap["Star"] = Star

class DataProviderCollection(SupportsDeleteCallback):
    """
    Represents a collection of data providers.

    Examples
    --------
    Get Data for Specific Points and Elements:
    >>> # STKObjectRoot root: STK Object Model root
    >>> # Satellite satellite: Satellite object
    >>> # Change DateFormat dimension to epoch seconds to make the data easier to handle in
    >>> # Python
    >>> root.units_preferences.item("DateFormat").set_current_unit("EpSec")
    >>> times = [[0], [15000], [20000], [55000]]
    >>> elems = [["Time"], ["Precision Pass Number"]]
    >>> satPassesDP = satellite.data_providers.item("Precision Passes").execute_single_elements_array(times, elems)
    >>> passes = satPassesDP.get_array(1)

    Get Data for a Single Point in Time:
    >>> # STKObjectRoot root: STK Object Model root
    >>> # Satellite satellite: Satellite object
    >>> # Change DateFormat dimension to epoch seconds to make the data easier to handle in
    >>> # Python
    >>> root.units_preferences.item("DateFormat").set_current_unit("EpSec")
    >>> satPassDP = satellite.data_providers.item("Precision Passes").execute_single(2600)
    >>> passes = satPassDP.data_sets.get_data_set_by_name("Precision Pass Number").get_values()

    Extract Elements from Data Providers with pre-data:
    >>> # STKObjectRoot root: STK Object Model root
    >>> # Facility facility: Facility object
    >>> # Scenario scenario: Scenario object
    >>> # Change DateFormat dimension to epoch seconds to make the data easier to handle in
    >>> # Python
    >>> root.units_preferences.item("DateFormat").set_current_unit("EpSec")
    >>> facChooseDP = facility.data_providers.item("Points Choose System")
    >>> dataProvCenter = facChooseDP.group.item("Center")
    >>> # Choose the reference system you want to report the Center point in
    >>> dataProvCenter.pre_data = "CentralBody/Earth TOD"
    >>> rptElems = [["Time"], ["x"], ["y"], ["z"]]
    >>> results = dataProvCenter.execute_elements(scenario.start_time, scenario.stop_time, 60, rptElems)
    >>> datasets = results.data_sets
    >>> Time = datasets.get_data_set_by_name("Time").get_values()
    >>> facTODx = datasets.get_data_set_by_name("x").get_values()
    >>> facTODy = datasets.get_data_set_by_name("y").get_values()
    >>> facTODz = datasets.get_data_set_by_name("z").get_values()

    Extract Elements from Data Providers with Groups:
    >>> # STKObjectRoot root: STK Object Model root
    >>> # Satellite satellite: Satellite object
    >>> # Scenario scenario: Scenario object
    >>> # Change DateFormat dimension to epoch seconds to make the data easier to handle in
    >>> # Python
    >>> root.units_preferences.item("DateFormat").set_current_unit("EpSec")
    >>> satPosDP = (
    >>>     satellite.data_providers.item("Cartesian Position")
    >>>     .group.item("ICRF")
    >>>     .execute(scenario.start_time, scenario.stop_time, 60)
    >>> )
    >>> satx = satPosDP.data_sets.get_data_set_by_name("x").get_values()
    >>> saty = satPosDP.data_sets.get_data_set_by_name("y").get_values()
    >>> satz = satPosDP.data_sets.get_data_set_by_name("z").get_values()
    >>>
    >>> satVelDP = satellite.data_providers.get_data_provider_time_varying_from_path("Cartesian Velocity/ICRF").execute(
    >>>     scenario.start_time, scenario.stop_time, 60
    >>> )
    >>> # There are 4 Methods to get DP From a Path depending on the kind of DP:
    >>> #   GetDataPrvTimeVarFromPath
    >>> #   GetDataPrvIntervalFromPath
    >>> #   GetDataPrvInfoFromPath
    >>> #   GetDataPrvFixedFromPath
    >>> satvx = satVelDP.data_sets.get_data_set_by_name("x").get_values()
    >>> satvy = satVelDP.data_sets.get_data_set_by_name("y").get_values()
    >>> satvz = satVelDP.data_sets.get_data_set_by_name("z").get_values()

    Use a Time Dependent Data Provider and requesting only specified elements:
    >>> # STKObjectRoot root: STK Object Model root
    >>> # Satellite satellite: Satellite object
    >>> # Scenario scenario: Scenario object
    >>> # Change DateFormat dimension to epoch seconds to make the data easier to handle in
    >>> # Python
    >>> root.units_preferences.item("DateFormat").set_current_unit("EpSec")
    >>> elems = [["Time"], ["q1"], ["q2"], ["q3"], ["q4"]]
    >>> satDP = satellite.data_providers.item("Attitude Quaternions").execute_elements(
    >>>     scenario.start_time, scenario.stop_time, 60, elems
    >>> )
    >>> # Whenever you pass an index to an array, you need to cast it to a long
    >>> # equivalent (int32)
    >>> satTime = satDP.data_sets.item(0).get_values()
    >>> satq1 = satDP.data_sets.item(1).get_values()
    >>> satq2 = satDP.data_sets.item(2).get_values()
    >>> satq3 = satDP.data_sets.item(3).get_values()
    >>> satq4 = satDP.data_sets.item(4).get_values()

    Use an interval Data Provider:
    >>> # STKObjectRoot root: STK Object Model root
    >>> # Satellite satellite: Satellite object
    >>> # Facility facility: Facility object
    >>>
    >>> # Change DateFormat dimension to epoch seconds to make the data easier to handle in
    >>> # Python
    >>> root.units_preferences.item("DateFormat").set_current_unit("EpSec")
    >>> # Get the current scenario
    >>> scenario = root.current_scenario
    >>> # Set up the access object
    >>> access = satellite.get_access_to_object(facility)
    >>> access.compute_access()
    >>> # Get the Access AER Data Provider
    >>> accessDP = access.data_providers.item("Access Data").execute(scenario.start_time, scenario.stop_time)
    >>>
    >>> accessStartTimes = accessDP.data_sets.get_data_set_by_name("Start Time").get_values()
    >>> accessStopTimes = accessDP.data_sets.get_data_set_by_name("Stop Time").get_values()
    """

    _num_methods = 10
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_schema_method_offset = 1
    _item_method_offset = 2
    _get_count_method_offset = 3
    _get__new_enum_method_offset = 4
    _get_data_provider_information_from_path_method_offset = 5
    _get_data_provider_time_varying_from_path_method_offset = 6
    _get_data_provider_interval_from_path_method_offset = 7
    _get_data_provider_fixed_from_path_method_offset = 8
    _get_item_by_index_method_offset = 9
    _get_item_by_name_method_offset = 10
    _metadata = {
        "iid_data" : (4730928825606697993, 16428217635231577527),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderCollection)
    def __iter__(self):
        """Create an iterator for the DataProviderCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "IDataProviderInfo":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_schema_metadata = { "offset" : _get_schema_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    def get_schema(self) -> str:
        """Return a string containing the XML representation of the available data providers."""
        return self._intf.invoke(DataProviderCollection._metadata, DataProviderCollection._get_schema_metadata, OutArg())

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def item(self, index_or_name:typing.Any) -> "IDataProviderInfo":
        """Given an index, returns the element in the collection. If the index is an integer, then method returns the element in the collection at the given position. If the index is a string, then the method returns the element with the specified name."""
        return self._intf.invoke(DataProviderCollection._metadata, DataProviderCollection._item_metadata, index_or_name, OutArg())

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return number of elements in the collection."""
        return self._intf.get_property(DataProviderCollection._metadata, DataProviderCollection._get_count_metadata)

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return the enumerator for the collection."""
        return self._intf.get_property(DataProviderCollection._metadata, DataProviderCollection._get__new_enum_metadata)

    _get_data_provider_information_from_path_metadata = { "offset" : _get_data_provider_information_from_path_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_data_provider_information_from_path(self, data_provider_path:str) -> "IDataProviderInfo":
        """Return the data provider information specified by the data provider path."""
        return self._intf.invoke(DataProviderCollection._metadata, DataProviderCollection._get_data_provider_information_from_path_metadata, data_provider_path, OutArg())

    _get_data_provider_time_varying_from_path_metadata = { "offset" : _get_data_provider_time_varying_from_path_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_data_provider_time_varying_from_path(self, data_provider_path:str) -> "DataProviderTimeVarying":
        """Return the time variable data provider specified by the data provider path."""
        return self._intf.invoke(DataProviderCollection._metadata, DataProviderCollection._get_data_provider_time_varying_from_path_metadata, data_provider_path, OutArg())

    _get_data_provider_interval_from_path_metadata = { "offset" : _get_data_provider_interval_from_path_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_data_provider_interval_from_path(self, data_provider_path:str) -> "DataProviderInterval":
        """Return the interval data provider specified by the data provider path."""
        return self._intf.invoke(DataProviderCollection._metadata, DataProviderCollection._get_data_provider_interval_from_path_metadata, data_provider_path, OutArg())

    _get_data_provider_fixed_from_path_metadata = { "offset" : _get_data_provider_fixed_from_path_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_data_provider_fixed_from_path(self, data_provider_path:str) -> "DataProviderFixed":
        """Return the fixed data provider specified by the data provider path."""
        return self._intf.invoke(DataProviderCollection._metadata, DataProviderCollection._get_data_provider_fixed_from_path_metadata, data_provider_path, OutArg())

    _get_item_by_index_metadata = { "offset" : _get_item_by_index_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_index(self, index:int) -> "IDataProviderInfo":
        """Retrieve a data provider from the collection by index."""
        return self._intf.invoke(DataProviderCollection._metadata, DataProviderCollection._get_item_by_index_metadata, index, OutArg())

    _get_item_by_name_metadata = { "offset" : _get_item_by_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_name(self, name:str) -> "IDataProviderInfo":
        """Retrieve a data provider from the collection by name."""
        return self._intf.invoke(DataProviderCollection._metadata, DataProviderCollection._get_item_by_name_metadata, name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderCollection, [DataProviderCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5130555111292006457, 1226695125202043019), DataProviderCollection)
agcls.AgTypeNameMap["DataProviderCollection"] = DataProviderCollection

class DataProviderResultTimeArrayElements(SupportsDeleteCallback):
    """Provide a array result of element values for each time array value."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_array_method_offset = 1
    _get_valid_method_offset = 2
    _get_count_method_offset = 3
    _metadata = {
        "iid_data" : (5739070540946149905, 14592021506031723451),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultTimeArrayElements)

    _get_array_metadata = { "offset" : _get_array_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def get_array(self, index_or_name:typing.Any) -> list:
        """Return an array of values at the specified index.  Valid values of index range from 0 to Count-1."""
        return self._intf.invoke(DataProviderResultTimeArrayElements._metadata, DataProviderResultTimeArrayElements._get_array_metadata, index_or_name, OutArg())

    _get_valid_metadata = { "offset" : _get_valid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def valid(self) -> bool:
        """Return true if the result is valid, false otherwise."""
        return self._intf.get_property(DataProviderResultTimeArrayElements._metadata, DataProviderResultTimeArrayElements._get_valid_metadata)

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def count(self) -> int:
        """Get the number of arrays in the result."""
        return self._intf.get_property(DataProviderResultTimeArrayElements._metadata, DataProviderResultTimeArrayElements._get_count_metadata)

    _property_names[valid] = "valid"
    _property_names[count] = "count"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultTimeArrayElements."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultTimeArrayElements)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultTimeArrayElements, [DataProviderResultTimeArrayElements, ])

agcls.AgClassCatalog.add_catalog_entry((5532024088533428980, 15012408395242458286), DataProviderResultTimeArrayElements)
agcls.AgTypeNameMap["DataProviderResultTimeArrayElements"] = DataProviderResultTimeArrayElements

class DataProviderResult(SupportsDeleteCallback):
    """Provide methods to access the results returned by the data provider."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_category_method_offset = 1
    _get_value_method_offset = 2
    _get_sections_method_offset = 3
    _get_intervals_method_offset = 4
    _get_data_sets_method_offset = 5
    _get_message_method_offset = 6
    _metadata = {
        "iid_data" : (5650624586581708313, 15634292447640952975),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResult)

    _get_category_metadata = { "offset" : _get_category_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DataProviderResultCategory),) }
    @property
    def category(self) -> "DataProviderResultCategory":
        """Return a value representing the category of the result."""
        return self._intf.get_property(DataProviderResult._metadata, DataProviderResult._get_category_metadata)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def value(self) -> typing.Any:
        """Return the reference to the object containing the actual results returned by the data provider. The type of the object returned depends on the category. The categories currently defined are: Interval, SubSection and TextMessage."""
        return self._intf.get_property(DataProviderResult._metadata, DataProviderResult._get_value_metadata)

    _get_sections_metadata = { "offset" : _get_sections_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sections(self) -> "DataProviderResultSubSectionCollection":
        """Return a collection of sections."""
        return self._intf.get_property(DataProviderResult._metadata, DataProviderResult._get_sections_metadata)

    _get_intervals_metadata = { "offset" : _get_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def intervals(self) -> "DataProviderResultIntervalCollection":
        """Return a collection of intervals."""
        return self._intf.get_property(DataProviderResult._metadata, DataProviderResult._get_intervals_metadata)

    _get_data_sets_metadata = { "offset" : _get_data_sets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_sets(self) -> "DataProviderResultDataSetCollection":
        """Return a collection of Datasets."""
        return self._intf.get_property(DataProviderResult._metadata, DataProviderResult._get_data_sets_metadata)

    _get_message_metadata = { "offset" : _get_message_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def message(self) -> "DataProviderResultTextMessage":
        """Return the message returned with the result."""
        return self._intf.get_property(DataProviderResult._metadata, DataProviderResult._get_message_metadata)

    _property_names[category] = "category"
    _property_names[value] = "value"
    _property_names[sections] = "sections"
    _property_names[intervals] = "intervals"
    _property_names[data_sets] = "data_sets"
    _property_names[message] = "message"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResult."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResult)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResult, [DataProviderResult, ])

agcls.AgClassCatalog.add_catalog_entry((4677536107128360073, 12772156342632528314), DataProviderResult)
agcls.AgTypeNameMap["DataProviderResult"] = DataProviderResult

class DataProviderResultSubSectionCollection(SupportsDeleteCallback):
    """Represents a collection of sub-section data elements."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5626344725273114993, 12877523112448031162),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultSubSectionCollection)
    def __iter__(self):
        """Create an iterator for the DataProviderResultSubSectionCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "DataProviderResultSubSection":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return a number of elements in the collection."""
        return self._intf.get_property(DataProviderResultSubSectionCollection._metadata, DataProviderResultSubSectionCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "DataProviderResultSubSection":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(DataProviderResultSubSectionCollection._metadata, DataProviderResultSubSectionCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(DataProviderResultSubSectionCollection._metadata, DataProviderResultSubSectionCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultSubSectionCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultSubSectionCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultSubSectionCollection, [DataProviderResultSubSectionCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5415462761052771112, 15794118029239991984), DataProviderResultSubSectionCollection)
agcls.AgTypeNameMap["DataProviderResultSubSectionCollection"] = DataProviderResultSubSectionCollection

class DataProviderResultSubSection(SupportsDeleteCallback):
    """Represents a sub-section data element."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_title_method_offset = 1
    _get_intervals_method_offset = 2
    _metadata = {
        "iid_data" : (4709265480189864119, 5109567507106761117),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultSubSection)

    _get_title_metadata = { "offset" : _get_title_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def title(self) -> str:
        """Return a title of the sub-section."""
        return self._intf.get_property(DataProviderResultSubSection._metadata, DataProviderResultSubSection._get_title_metadata)

    _get_intervals_metadata = { "offset" : _get_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def intervals(self) -> "DataProviderResultIntervalCollection":
        """Return a collection of intervals within the sub-section."""
        return self._intf.get_property(DataProviderResultSubSection._metadata, DataProviderResultSubSection._get_intervals_metadata)

    _property_names[title] = "title"
    _property_names[intervals] = "intervals"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultSubSection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultSubSection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultSubSection, [DataProviderResultSubSection, ])

agcls.AgClassCatalog.add_catalog_entry((4920472653729386583, 10478601864688071816), DataProviderResultSubSection)
agcls.AgTypeNameMap["DataProviderResultSubSection"] = DataProviderResultSubSection

class DataProviderResultIntervalCollection(SupportsDeleteCallback):
    """Represents a collection of intervals."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5164379484401621178, 5598636205915659419),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultIntervalCollection)
    def __iter__(self):
        """Create an iterator for the DataProviderResultIntervalCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "DataProviderResultInterval":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return a number of elements in collection."""
        return self._intf.get_property(DataProviderResultIntervalCollection._metadata, DataProviderResultIntervalCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "DataProviderResultInterval":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(DataProviderResultIntervalCollection._metadata, DataProviderResultIntervalCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(DataProviderResultIntervalCollection._metadata, DataProviderResultIntervalCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultIntervalCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultIntervalCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultIntervalCollection, [DataProviderResultIntervalCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4879630776233428286, 9023651874411354296), DataProviderResultIntervalCollection)
agcls.AgTypeNameMap["DataProviderResultIntervalCollection"] = DataProviderResultIntervalCollection

class DataProviderResultInterval(SupportsDeleteCallback):
    """Represents a data interval element."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_time_method_offset = 1
    _get_stop_time_method_offset = 2
    _get_data_sets_method_offset = 3
    _threshold_crossings_method_offset = 4
    _multiple_threshold_crossings_method_offset = 5
    _metadata = {
        "iid_data" : (5502658012393690808, 18264526647984774039),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultInterval)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Return the start time of the interval. Uses DateFormat Dimension."""
        return self._intf.get_property(DataProviderResultInterval._metadata, DataProviderResultInterval._get_start_time_metadata)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Return the stop time of the interval. Uses DateFormat Dimension."""
        return self._intf.get_property(DataProviderResultInterval._metadata, DataProviderResultInterval._get_stop_time_metadata)

    _get_data_sets_metadata = { "offset" : _get_data_sets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_sets(self) -> "DataProviderResultDataSetCollection":
        """Return a collection of data sets within the interval."""
        return self._intf.get_property(DataProviderResultInterval._metadata, DataProviderResultInterval._get_data_sets_metadata)

    _threshold_crossings_metadata = { "offset" : _threshold_crossings_method_offset,
            "arg_types" : (agcom.BSTR, agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def threshold_crossings(self, elem_name:str, threshold:typing.Any) -> list:
        """Return a two-dimensional array containing time and direction data (negative for decreasing). The DataSets property must contain the Time dataset for this method to work correctly."""
        return self._intf.invoke(DataProviderResultInterval._metadata, DataProviderResultInterval._threshold_crossings_metadata, elem_name, threshold, OutArg())

    _multiple_threshold_crossings_metadata = { "offset" : _multiple_threshold_crossings_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg,) }
    def multiple_threshold_crossings(self, elem_name:str, thresholds:list) -> list:
        """Return an array of two-dimensional arrays.  Each two-dimensional array contains start and stop times based on the boundaries passed in. The DataSets property must contain the Time dataset for this method to work correctly."""
        return self._intf.invoke(DataProviderResultInterval._metadata, DataProviderResultInterval._multiple_threshold_crossings_metadata, elem_name, thresholds, OutArg())

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[data_sets] = "data_sets"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultInterval."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultInterval)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultInterval, [DataProviderResultInterval, ])

agcls.AgClassCatalog.add_catalog_entry((4983846792153902847, 14801152287886591375), DataProviderResultInterval)
agcls.AgTypeNameMap["DataProviderResultInterval"] = DataProviderResultInterval

class DataProviderResultDataSetCollection(SupportsDeleteCallback):
    """
    Represents a collection of dataset elements.

    Examples
    --------
    Create a heat map of coverage definition results graphing duration by asset using a Pandas DataFrame:
    >>> # CoverageDefinition coverage: Coverage object
    >>> from matplotlib import pyplot as plt
    >>> import numpy as np
    >>>
    >>> # compute data provider results for All Regions by Pass coverage
    >>> coverage_data_provider = coverage.data_providers.item("All Regions By Pass")
    >>> coverage_data = coverage_data_provider.execute()
    >>>
    >>> # convert dataset collection in a row format as a Pandas DataFrame with default numeric row index
    >>> coverage_all_regions_elements = coverage_data_provider.elements
    >>> all_regions_coverage_df = coverage_data.data_sets.to_pandas_dataframe(
    >>>     data_provider_elements=coverage_all_regions_elements
    >>> )
    >>>
    >>> # reshape the DataFrame based on column values
    >>> pivot = all_regions_coverage_df.pivot_table(index="region name", columns="asset name", values="duration")
    >>>
    >>> # plot heat map that shows duration by asset name by region
    >>> plt.xlabel("Duration by Asset", fontsize=20)
    >>> plt.xticks(ticks=range(len(pivot.columns.values)), labels=pivot.columns.values)
    >>>
    >>> plt.ylabel("Region Name", fontsize=20)
    >>> plt.yticks(ticks=np.arange(len(pivot.index), step=10), labels=pivot.index[::10])
    >>>
    >>> im = plt.imshow(pivot, cmap="YlGnBu", aspect="auto", interpolation="none")
    >>> plt.colorbar(orientation="vertical")

    Compute descriptive statistics for access measurements using a Pandas DataFrame:
    >>> # CoverageDefinition coverage: Coverage object
    >>> import pandas as pd
    >>>
    >>> # compute data provider results for All Regions by Pass coverage
    >>> coverage_data_provider = coverage.data_providers.item("All Regions By Pass")
    >>> coverage_data = coverage_data_provider.execute()
    >>>
    >>> # convert dataset collection in a row format as a Pandas DataFrame with default numeric row index
    >>> all_regions_coverage_df = coverage_data.data_sets.to_pandas_dataframe()
    >>>
    >>> # compute descriptive statistics of Duration, Percent Coverage, Area Coverage
    >>> all_regions_coverage_df[["duration", "percent coverage", "area coverage"]].apply(pd.to_numeric).describe()

    Convert access data provider results to a Pandas DataFrame:
    >>> # Access facility_sensor_satellite_access: Access calculation
    >>> # compute data provider results for basic Access
    >>> field_names = ["Access Number", "Start Time", "Stop Time", "Duration"]
    >>>
    >>> access_data = facility_sensor_satellite_access.data_providers["Access Data"].execute_elements(
    >>>     self.get_scenario().start_time, self.get_scenario().stop_time, field_names
    >>> )
    >>>
    >>> # convert dataset collection in a row format as a Pandas DataFrame
    >>> index_column = "Access Number"
    >>> access_data_df = access_data.data_sets.to_pandas_dataframe(index_element_name=index_column)

    Convert coverage definition data provider results to a Pandas DataFrame:
    >>> # CoverageDefinition coverage: Coverage object
    >>> # compute data provider results for All Regions by Pass coverage
    >>> coverage_data_provider = coverage.data_providers.item("All Regions By Pass")
    >>> coverage_data = coverage_data_provider.execute()
    >>>
    >>> # convert dataset collection in a row format as a Pandas DataFrame with default numeric row index
    >>> coverage_df = coverage_data.data_sets.to_pandas_dataframe()

    Load a Numpy array with flight profile data:
    >>> # Aircraft aircraft: Aircraft object
    >>> from scipy.spatial import ConvexHull
    >>> import matplotlib.pyplot as plt
    >>>
    >>> # compute data provider results for an aircraft's Flight Profile By Time
    >>> field_names = ["Mach #", "Altitude"]
    >>> time_step_sec = 1.0
    >>>
    >>> flight_profile_data_provider = aircraft.data_providers.item("Flight Profile By Time")
    >>> flight_profile_data = flight_profile_data_provider.execute_elements(
    >>>     self.get_scenario().start_time, self.get_scenario().stop_time, time_step_sec, field_names
    >>> )
    >>>
    >>> # convert dataset collection in a row format as a Numpy array
    >>> flight_profile_data_arr = flight_profile_data.data_sets.to_numpy_array()
    >>>
    >>> # plot estimated fligth envelope as a convex hull
    >>> hull = ConvexHull(flight_profile_data_arr)
    >>>
    >>> plt.figure(figsize=(15, 10))
    >>> for simplex in hull.simplices:
    >>>     plt.plot(flight_profile_data_arr[simplex, 1], flight_profile_data_arr[simplex, 0], color="darkblue")
    >>>
    >>> plt.title("Estimated Flight Envelope", fontsize=15)
    >>> plt.xlabel("Mach Number", fontsize=15)
    >>> plt.ylabel("Altitude", fontsize=15)
    >>>
    >>> plt.tick_params(axis="x", labelsize=15)
    >>> plt.tick_params(axis="y", labelsize=15)
    >>> plt.grid(visible=True)
    """

    _num_methods = 8
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _get_data_set_by_name_method_offset = 4
    _get_row_count_method_offset = 5
    _get_row_method_offset = 6
    _to_array_method_offset = 7
    _get_element_names_method_offset = 8
    _metadata = {
        "iid_data" : (5043757029794880303, 2624130216970529178),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultDataSetCollection)
    def __iter__(self):
        """Create an iterator for the DataProviderResultDataSetCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "DataProviderResultDataSet":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return a number of elements in collection."""
        return self._intf.get_property(DataProviderResultDataSetCollection._metadata, DataProviderResultDataSetCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "DataProviderResultDataSet":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(DataProviderResultDataSetCollection._metadata, DataProviderResultDataSetCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(DataProviderResultDataSetCollection._metadata, DataProviderResultDataSetCollection._get__new_enum_metadata)

    _get_data_set_by_name_metadata = { "offset" : _get_data_set_by_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_data_set_by_name(self, data_set_name:str) -> "DataProviderResultDataSet":
        """Return the element, given the name."""
        return self._intf.invoke(DataProviderResultDataSetCollection._metadata, DataProviderResultDataSetCollection._get_data_set_by_name_metadata, data_set_name, OutArg())

    _get_row_count_metadata = { "offset" : _get_row_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def row_count(self) -> int:
        """Return the number of rows in the dataset collection."""
        return self._intf.get_property(DataProviderResultDataSetCollection._metadata, DataProviderResultDataSetCollection._get_row_count_metadata)

    _get_row_metadata = { "offset" : _get_row_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LongArg, agmarshall.LPSafearrayArg,) }
    def get_row(self, index:int) -> list:
        """Return the specified row."""
        return self._intf.invoke(DataProviderResultDataSetCollection._metadata, DataProviderResultDataSetCollection._get_row_metadata, index, OutArg())

    _to_array_metadata = { "offset" : _to_array_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def to_array(self) -> list:
        """Return the entire dataset collection in row format."""
        return self._intf.invoke(DataProviderResultDataSetCollection._metadata, DataProviderResultDataSetCollection._to_array_metadata, OutArg())

    _get_element_names_metadata = { "offset" : _get_element_names_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def element_names(self) -> list:
        """Return the element names."""
        return self._intf.get_property(DataProviderResultDataSetCollection._metadata, DataProviderResultDataSetCollection._get_element_names_metadata)

    @agdata.required_package("numpy")
    def to_numpy_array(self) -> "ndarray":
        """Return a row formatted dataset collection as a numpy array. This function requires ``numpy``."""
        return agdata.to_numpy_array(self)

    @agdata.required_package("pandas")
    def to_pandas_dataframe(self, index_element_name: str = None,
                 data_provider_elements: "DataProviderElements" = None) -> "DataFrame":
        """
        Return a row formatted dataset collection as a pandas DataFrame. This function requires ``pandas``.

        This function optionally maps data provider element types to pandas DataFrame column dtypes and optionally sets the
        column to be used as the DataFrame index.

        Args:
        -----
        index_element_name: Valid data provider element name as the column to be set as the DataFrame index.
        data_provider_elements: Data provider elements for the corresponding DataProviderResultDataSetCollection to be used to automatically map data
            provider element types to DataFrame column dtypes.

        """
        return agdata.to_pandas_dataframe(self, index_element_name, data_provider_elements)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[row_count] = "row_count"
    _property_names[element_names] = "element_names"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultDataSetCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultDataSetCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultDataSetCollection, [DataProviderResultDataSetCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4702449407000604076, 16724680911546192524), DataProviderResultDataSetCollection)
agcls.AgTypeNameMap["DataProviderResultDataSetCollection"] = DataProviderResultDataSetCollection

class DataProviderResultDataSet(SupportsDeleteCallback):
    """Represents a dataset element."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_element_name_method_offset = 1
    _get_element_type_method_offset = 2
    _get_dimension_name_method_offset = 3
    _get_count_method_offset = 4
    _get_values_method_offset = 5
    _get_internal_units_values_method_offset = 6
    _get_statistics_method_offset = 7
    _metadata = {
        "iid_data" : (5650001686024591937, 5708704880291371185),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultDataSet)

    _get_element_name_metadata = { "offset" : _get_element_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def element_name(self) -> str:
        """Return a name of the dataset."""
        return self._intf.get_property(DataProviderResultDataSet._metadata, DataProviderResultDataSet._get_element_name_metadata)

    _get_element_type_metadata = { "offset" : _get_element_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def element_type(self) -> int:
        """Return a type of elements of the dataset. Dimensionless."""
        return self._intf.get_property(DataProviderResultDataSet._metadata, DataProviderResultDataSet._get_element_type_metadata)

    _get_dimension_name_metadata = { "offset" : _get_dimension_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def dimension_name(self) -> str:
        """Return the dimension of elements of the dataset."""
        return self._intf.get_property(DataProviderResultDataSet._metadata, DataProviderResultDataSet._get_dimension_name_metadata)

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return a number of elements in the dataset. Dimensionless."""
        return self._intf.get_property(DataProviderResultDataSet._metadata, DataProviderResultDataSet._get_count_metadata)

    _get_values_metadata = { "offset" : _get_values_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_values(self) -> list:
        """Retrieve an array of values of the elements in the dataset."""
        return self._intf.invoke(DataProviderResultDataSet._metadata, DataProviderResultDataSet._get_values_metadata, OutArg())

    _get_internal_units_values_metadata = { "offset" : _get_internal_units_values_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_internal_units_values(self) -> list:
        """Get the Internal Unit Values of the Data."""
        return self._intf.invoke(DataProviderResultDataSet._metadata, DataProviderResultDataSet._get_internal_units_values_metadata, OutArg())

    _get_statistics_metadata = { "offset" : _get_statistics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def statistics(self) -> "DataProviderResultStatistics":
        """Return an interface for computing statistics on the results."""
        return self._intf.get_property(DataProviderResultDataSet._metadata, DataProviderResultDataSet._get_statistics_metadata)

    _property_names[element_name] = "element_name"
    _property_names[element_type] = "element_type"
    _property_names[dimension_name] = "dimension_name"
    _property_names[count] = "count"
    _property_names[statistics] = "statistics"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultDataSet."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultDataSet)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultDataSet, [DataProviderResultDataSet, ])

agcls.AgClassCatalog.add_catalog_entry((5486292130595841666, 8031481552164271245), DataProviderResultDataSet)
agcls.AgTypeNameMap["DataProviderResultDataSet"] = DataProviderResultDataSet

class DataProviderFixed(IDataProvider, IDataProviderInfo, SupportsDeleteCallback):
    """Represents the Fixed Data Provider (i.e. non time dependent like facility position)."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _execute_method_offset = 1
    _execute_elements_method_offset = 2
    _metadata = {
        "iid_data" : (4653704204139024074, 7565488680600792477),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderFixed)

    _execute_metadata = { "offset" : _execute_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def execute(self) -> "DataProviderResult":
        """Compute the data; fixed data providers do not require arguments."""
        return self._intf.invoke(DataProviderFixed._metadata, DataProviderFixed._execute_metadata, OutArg())

    _execute_elements_metadata = { "offset" : _execute_elements_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def execute_elements(self, element_names:list) -> "DataProviderResult":
        """Compute the data and returns just the indicated data elements; fixed data providers do not require arguments."""
        return self._intf.invoke(DataProviderFixed._metadata, DataProviderFixed._execute_elements_metadata, element_names, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type DataProviderFixed."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderFixed)
        IDataProvider.__init__(self, source_object)
        IDataProviderInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDataProvider._private_init(self, intf)
        IDataProviderInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderFixed, [DataProviderFixed, IDataProvider, IDataProviderInfo])

agcls.AgClassCatalog.add_catalog_entry((4912119216378716384, 13965782040035855778), DataProviderFixed)
agcls.AgTypeNameMap["DataProviderFixed"] = DataProviderFixed

class DataProviderTimeVarying(IDataProvider, IDataProviderInfo, SupportsDeleteCallback):
    """Represents the Time-dependent Data Provider (for instance satellite position)."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _execute_method_offset = 1
    _execute_elements_method_offset = 2
    _execute_single_method_offset = 3
    _execute_single_elements_method_offset = 4
    _execute_single_elements_array_method_offset = 5
    _execute_native_times_method_offset = 6
    _execute_elements_native_times_method_offset = 7
    _execute_event_array_method_offset = 8
    _execute_elements_event_array_method_offset = 9
    _execute_elements_event_array_only_method_offset = 10
    _metadata = {
        "iid_data" : (5523015292185240108, 2467207749814672545),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderTimeVarying)

    _execute_metadata = { "offset" : _execute_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def execute(self, start_time:typing.Any, stop_time:typing.Any, step_time:float) -> "DataProviderResult":
        """Compute the data; time-dependent data providers require an interval and a time step. Start/Stop use DateFormat Dimension. StepTime uses Time Dimension."""
        return self._intf.invoke(DataProviderTimeVarying._metadata, DataProviderTimeVarying._execute_metadata, start_time, stop_time, step_time, OutArg())

    _execute_elements_metadata = { "offset" : _execute_elements_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.DOUBLE, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def execute_elements(self, start_time:typing.Any, stop_time:typing.Any, step_time:float, element_names:list) -> "DataProviderResult":
        """Compute the data and return just the indicated data elements; time-dependent data providers require an interval and a time step."""
        return self._intf.invoke(DataProviderTimeVarying._metadata, DataProviderTimeVarying._execute_elements_metadata, start_time, stop_time, step_time, element_names, OutArg())

    _execute_single_metadata = { "offset" : _execute_single_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def execute_single(self, single_time:typing.Any) -> "DataProviderResult":
        """Compute the data given a single Time. SingleTime uses DateFormat Dimension."""
        return self._intf.invoke(DataProviderTimeVarying._metadata, DataProviderTimeVarying._execute_single_metadata, single_time, OutArg())

    _execute_single_elements_metadata = { "offset" : _execute_single_elements_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def execute_single_elements(self, single_time:typing.Any, element_names:list) -> "DataProviderResult":
        """Compute the data given a single Time and return just the indicated data elements. SingleTime uses DateFormat Dimension."""
        return self._intf.invoke(DataProviderTimeVarying._metadata, DataProviderTimeVarying._execute_single_elements_metadata, single_time, element_names, OutArg())

    _execute_single_elements_array_metadata = { "offset" : _execute_single_elements_array_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def execute_single_elements_array(self, time_array:list, element_names:list) -> "DataProviderResultTimeArrayElements":
        """Compute the data given a single Time array and return just the indicated data elements. If time values without data are requested, null entries will be returned in the data array. SingleTime uses DateFormat Dimension."""
        return self._intf.invoke(DataProviderTimeVarying._metadata, DataProviderTimeVarying._execute_single_elements_array_metadata, time_array, element_names, OutArg())

    _execute_native_times_metadata = { "offset" : _execute_native_times_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def execute_native_times(self, start_time:typing.Any, stop_time:typing.Any) -> "DataProviderResult":
        """Compute the data for default; default time-dependent data providers require an interval. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(DataProviderTimeVarying._metadata, DataProviderTimeVarying._execute_native_times_metadata, start_time, stop_time, OutArg())

    _execute_elements_native_times_metadata = { "offset" : _execute_elements_native_times_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def execute_elements_native_times(self, start_time:typing.Any, stop_time:typing.Any, element_names:list) -> "DataProviderResult":
        """Compute the data for default; return just the indicated data elements; default time-dependent data providers require an interval. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(DataProviderTimeVarying._metadata, DataProviderTimeVarying._execute_elements_native_times_metadata, start_time, stop_time, element_names, OutArg())

    _execute_event_array_metadata = { "offset" : _execute_event_array_method_offset,
            "arg_types" : (agcom.PVOID, agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceInArg("ITimeToolTimeArray"), agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def execute_event_array(self, event_array:"ITimeToolTimeArray", start_time:typing.Any, stop_time:typing.Any) -> "DataProviderResult":
        """Compute the data given a Times Array component. Also requires object start and stop times, which use DateFormat Dimension."""
        return self._intf.invoke(DataProviderTimeVarying._metadata, DataProviderTimeVarying._execute_event_array_metadata, event_array, start_time, stop_time, OutArg())

    _execute_elements_event_array_metadata = { "offset" : _execute_elements_event_array_method_offset,
            "arg_types" : (agcom.PVOID, agcom.Variant, agcom.Variant, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceInArg("ITimeToolTimeArray"), agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def execute_elements_event_array(self, event_array:"ITimeToolTimeArray", start_time:typing.Any, stop_time:typing.Any, element_names:list) -> "DataProviderResult":
        """Compute the data and returns just the indicated data elements; Input is a Times Array component, and object start and stop times. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(DataProviderTimeVarying._metadata, DataProviderTimeVarying._execute_elements_event_array_metadata, event_array, start_time, stop_time, element_names, OutArg())

    _execute_elements_event_array_only_metadata = { "offset" : _execute_elements_event_array_only_method_offset,
            "arg_types" : (agcom.PVOID, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceInArg("ITimeToolTimeArray"), agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def execute_elements_event_array_only(self, event_array:"ITimeToolTimeArray", element_names:list) -> "DataProviderResult":
        """Compute the data and returns just the indicated data elements; Input is a Times Array component."""
        return self._intf.invoke(DataProviderTimeVarying._metadata, DataProviderTimeVarying._execute_elements_event_array_only_metadata, event_array, element_names, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type DataProviderTimeVarying."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderTimeVarying)
        IDataProvider.__init__(self, source_object)
        IDataProviderInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDataProvider._private_init(self, intf)
        IDataProviderInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderTimeVarying, [DataProviderTimeVarying, IDataProvider, IDataProviderInfo])

agcls.AgClassCatalog.add_catalog_entry((4831977191419863110, 13230452805025159607), DataProviderTimeVarying)
agcls.AgTypeNameMap["DataProviderTimeVarying"] = DataProviderTimeVarying

class DataProviderInterval(IDataProvider, IDataProviderInfo, SupportsDeleteCallback):
    """Represents the Interval Data Provider (for instance facility lighting times)."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _execute_method_offset = 1
    _execute_elements_method_offset = 2
    _execute_event_array_method_offset = 3
    _execute_elements_event_array_method_offset = 4
    _metadata = {
        "iid_data" : (5029066426719639016, 10679949830859038647),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderInterval)

    _execute_metadata = { "offset" : _execute_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def execute(self, start_time:typing.Any, stop_time:typing.Any) -> "DataProviderResult":
        """Compute the data; interval data providers require an interval or list of intervals. StartTime/StopTime use DateFormat Dimension."""
        return self._intf.invoke(DataProviderInterval._metadata, DataProviderInterval._execute_metadata, start_time, stop_time, OutArg())

    _execute_elements_metadata = { "offset" : _execute_elements_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def execute_elements(self, start_time:typing.Any, stop_time:typing.Any, element_names:list) -> "DataProviderResult":
        """Compute the data and return just the indicated data elements; interval data providers require an interval or list of intervals. StartTime/StopTime use DateFormat Dimension."""
        return self._intf.invoke(DataProviderInterval._metadata, DataProviderInterval._execute_elements_metadata, start_time, stop_time, element_names, OutArg())

    _execute_event_array_metadata = { "offset" : _execute_event_array_method_offset,
            "arg_types" : (agcom.PVOID, agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceInArg("ITimeToolTimeArray"), agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def execute_event_array(self, event_array:"ITimeToolTimeArray", start_time:typing.Any, stop_time:typing.Any) -> "DataProviderResult":
        """Compute the data given a Times Array component. Also requires object start and stop times, which use DateFormat Dimension."""
        return self._intf.invoke(DataProviderInterval._metadata, DataProviderInterval._execute_event_array_metadata, event_array, start_time, stop_time, OutArg())

    _execute_elements_event_array_metadata = { "offset" : _execute_elements_event_array_method_offset,
            "arg_types" : (agcom.PVOID, agcom.Variant, agcom.Variant, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceInArg("ITimeToolTimeArray"), agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def execute_elements_event_array(self, event_array:"ITimeToolTimeArray", start_time:typing.Any, stop_time:typing.Any, element_names:list) -> "DataProviderResult":
        """Compute the data and returns just the indicated data elements; Input is a Times Array component, and object start and stop times. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(DataProviderInterval._metadata, DataProviderInterval._execute_elements_event_array_metadata, event_array, start_time, stop_time, element_names, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type DataProviderInterval."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderInterval)
        IDataProvider.__init__(self, source_object)
        IDataProviderInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDataProvider._private_init(self, intf)
        IDataProviderInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderInterval, [DataProviderInterval, IDataProvider, IDataProviderInfo])

agcls.AgClassCatalog.add_catalog_entry((5009386751809112193, 8358332370277596814), DataProviderInterval)
agcls.AgTypeNameMap["DataProviderInterval"] = DataProviderInterval

class DataProviderResultTextMessage(SupportsDeleteCallback):
    """Represents notification/failure message returned by the data provider."""

    _num_methods = 5
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _get_messages_method_offset = 4
    _get_is_failure_method_offset = 5
    _metadata = {
        "iid_data" : (5449474112539148010, 12824637611812112008),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultTextMessage)
    def __iter__(self):
        """Create an iterator for the DataProviderResultTextMessage object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> str:
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return a number of strings in the message."""
        return self._intf.get_property(DataProviderResultTextMessage._metadata, DataProviderResultTextMessage._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg,) }
    def item(self, index:int) -> str:
        """Given an index, returns a string in the collection at the given position."""
        return self._intf.invoke(DataProviderResultTextMessage._metadata, DataProviderResultTextMessage._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return a string enumeration."""
        return self._intf.get_property(DataProviderResultTextMessage._metadata, DataProviderResultTextMessage._get__new_enum_metadata)

    _get_messages_metadata = { "offset" : _get_messages_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def messages(self) -> list:
        """Return an array of strings in the message."""
        return self._intf.get_property(DataProviderResultTextMessage._metadata, DataProviderResultTextMessage._get_messages_metadata)

    _get_is_failure_metadata = { "offset" : _get_is_failure_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_failure(self) -> bool:
        """Determine if the message represents a failure notification."""
        return self._intf.get_property(DataProviderResultTextMessage._metadata, DataProviderResultTextMessage._get_is_failure_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[messages] = "messages"
    _property_names[is_failure] = "is_failure"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultTextMessage."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultTextMessage)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultTextMessage, [DataProviderResultTextMessage, ])

agcls.AgClassCatalog.add_catalog_entry((5407767651016964689, 12877769935895130505), DataProviderResultTextMessage)
agcls.AgTypeNameMap["DataProviderResultTextMessage"] = DataProviderResultTextMessage

class DataProviderGroup(IDataProviderInfo, SupportsDeleteCallback):
    """Represents a group of data providers (for instance ``Cartesian Position`` on satellite)."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_group_method_offset = 1
    _metadata = {
        "iid_data" : (5422062128871296519, 7714412217734914990),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderGroup)

    _get_group_metadata = { "offset" : _get_group_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def group(self) -> "DataProviders":
        """Return a collection of data providers in the group."""
        return self._intf.get_property(DataProviderGroup._metadata, DataProviderGroup._get_group_metadata)

    _property_names[group] = "group"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderGroup."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderGroup)
        IDataProviderInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDataProviderInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderGroup, [DataProviderGroup, IDataProviderInfo])

agcls.AgClassCatalog.add_catalog_entry((5002914099605819830, 12983211935845455295), DataProviderGroup)
agcls.AgTypeNameMap["DataProviderGroup"] = DataProviderGroup

class DataProviderElements(SupportsDeleteCallback):
    """Represents a collection of elements in the data provider (for instance ``x``, ``y``, ``z``)."""

    _num_methods = 5
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _item_method_offset = 1
    _get_count_method_offset = 2
    _get__new_enum_method_offset = 3
    _get_item_by_index_method_offset = 4
    _get_item_by_name_method_offset = 5
    _metadata = {
        "iid_data" : (4905063563644577951, 4740467051178649528),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderElements)
    def __iter__(self):
        """Create an iterator for the DataProviderElements object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "DataProviderElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def item(self, index_or_name:typing.Any) -> "DataProviderElement":
        """Return the specific item provided an Index."""
        return self._intf.invoke(DataProviderElements._metadata, DataProviderElements._item_metadata, index_or_name, OutArg())

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return number of elements for this data provider."""
        return self._intf.get_property(DataProviderElements._metadata, DataProviderElements._get_count_metadata)

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return enum of DataProviderElement object."""
        return self._intf.get_property(DataProviderElements._metadata, DataProviderElements._get__new_enum_metadata)

    _get_item_by_index_metadata = { "offset" : _get_item_by_index_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_index(self, index:int) -> "DataProviderElement":
        """Return the specific item provided an Index."""
        return self._intf.invoke(DataProviderElements._metadata, DataProviderElements._get_item_by_index_metadata, index, OutArg())

    _get_item_by_name_metadata = { "offset" : _get_item_by_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_name(self, name:str) -> "DataProviderElement":
        """Return the specific item provided a Name."""
        return self._intf.invoke(DataProviderElements._metadata, DataProviderElements._get_item_by_name_metadata, name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderElements."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderElements)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderElements, [DataProviderElements, ])

agcls.AgClassCatalog.add_catalog_entry((4976544825256623527, 5630481732413786242), DataProviderElements)
agcls.AgTypeNameMap["DataProviderElements"] = DataProviderElements

class DataProviderElement(SupportsDeleteCallback):
    """Provide methods to access the information about the element (for instance ``x``)."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _get_dimension_name_method_offset = 3
    _metadata = {
        "iid_data" : (5222642136096412744, 15308379524645765292),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderElement)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Return a name of the element."""
        return self._intf.get_property(DataProviderElement._metadata, DataProviderElement._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DataProviderElementType),) }
    @property
    def type(self) -> "DataProviderElementType":
        """Return a type of the element."""
        return self._intf.get_property(DataProviderElement._metadata, DataProviderElement._get_type_metadata)

    _get_dimension_name_metadata = { "offset" : _get_dimension_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def dimension_name(self) -> str:
        """Return the dimension of the element."""
        return self._intf.get_property(DataProviderElement._metadata, DataProviderElement._get_dimension_name_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"
    _property_names[dimension_name] = "dimension_name"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderElement, [DataProviderElement, ])

agcls.AgClassCatalog.add_catalog_entry((5442229911129910357, 17629996298200210361), DataProviderElement)
agcls.AgTypeNameMap["DataProviderElement"] = DataProviderElement

class DataProviders(SupportsDeleteCallback):
    """Represents a collection of data providers."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _contains_method_offset = 4
    _get_item_by_index_method_offset = 5
    _get_item_by_name_method_offset = 6
    _metadata = {
        "iid_data" : (4745261046630470488, 2262132561001535368),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviders)
    def __iter__(self):
        """Create an iterator for the DataProviders object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "IDataProviderInfo":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return an element in the collection."""
        return self._intf.get_property(DataProviders._metadata, DataProviders._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def item(self, index_or_name:typing.Any) -> "IDataProviderInfo":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(DataProviders._metadata, DataProviders._item_metadata, index_or_name, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(DataProviders._metadata, DataProviders._get__new_enum_metadata)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def contains(self, data_provider_name:str) -> bool:
        """Determine whether the collection contains a specific data provider."""
        return self._intf.invoke(DataProviders._metadata, DataProviders._contains_metadata, data_provider_name, OutArg())

    _get_item_by_index_metadata = { "offset" : _get_item_by_index_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_index(self, index:int) -> "IDataProviderInfo":
        """Retrieve a data provider from the collection by index."""
        return self._intf.invoke(DataProviders._metadata, DataProviders._get_item_by_index_metadata, index, OutArg())

    _get_item_by_name_metadata = { "offset" : _get_item_by_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_name(self, name:str) -> "IDataProviderInfo":
        """Retrieve a data provider from the collection by name."""
        return self._intf.invoke(DataProviders._metadata, DataProviders._get_item_by_name_metadata, name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviders."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviders)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviders, [DataProviders, ])

agcls.AgClassCatalog.add_catalog_entry((5763782638747777902, 18061591487569456308), DataProviders)
agcls.AgTypeNameMap["DataProviders"] = DataProviders

class Access(ILifetimeInformation, SupportsDeleteCallback):
    """
    Provide access to the Data Providers and access computations.

    Examples
    --------
    Configure the access analysis time period to specified time instants:
    >>> # STKObjectRoot root: STK Object Model root
    >>>
    >>> satellite = root.get_object_from_path("Satellite/MySatellite")
    >>> facility = root.get_object_from_path("Facility/MyFacility")
    >>>
    >>> # For this code snippet, let's use the time interval when the satellite reached min and max altitude values.
    >>> # Note, this assumes time at min happens before time at max.
    >>> timeOfAltMin = satellite.analysis_workbench_components.time_instants.item(
    >>>     "GroundTrajectory.Detic.LLA.Altitude.TimeOfMin"
    >>> )
    >>> timeOfAltMax = satellite.analysis_workbench_components.time_instants.item(
    >>>     "GroundTrajectory.Detic.LLA.Altitude.TimeOfMax"
    >>> )
    >>>
    >>> # Set the access time period with the times we figured out above.
    >>> access = satellite.get_access_to_object(facility)
    >>> access.access_time_period = AccessTimeType.SPECIFIED_TIME_PERIOD
    >>> accessTimePeriod = access.access_time_period_data
    >>>
    >>> accessTimePeriod.access_interval.state = SmartIntervalState.START_STOP
    >>>
    >>> accessStartEpoch = accessTimePeriod.access_interval.get_start_epoch()
    >>> accessStartEpoch.set_implicit_time(timeOfAltMin)
    >>> accessTimePeriod.access_interval.set_start_epoch(accessStartEpoch)
    >>>
    >>> accessStopEpoch = accessTimePeriod.access_interval.get_stop_epoch()
    >>> accessStopEpoch.set_implicit_time(timeOfAltMax)
    >>> accessTimePeriod.access_interval.set_stop_epoch(accessStopEpoch)

    Compute and extract access interval times:
    >>> # Access access: Access calculation
    >>> # Get and display the Computed Access Intervals
    >>> intervalCollection = access.computed_access_interval_times
    >>>
    >>> # Set the intervals to use to the Computed Access Intervals
    >>> computedIntervals = intervalCollection.to_array(0, -1)
    >>> access.specify_access_intervals(computedIntervals)

    Compute an Access with Advanced Settings:
    >>> # Access access: Access object
    >>>
    >>> access.advanced.enable_light_time_delay = True
    >>> access.advanced.time_light_delay_convergence = 0.00005
    >>> access.advanced.aberration_type = AberrationType.ANNUAL
    >>> access.advanced.use_default_clock_host_and_signal_sense = False
    >>> access.advanced.clock_host = IvClockHost.BASE
    >>> access.advanced.signal_sense_of_clock_host = IvTimeSense.TRANSMIT
    >>> access.compute_access()

    Compute an access between two STK Objects (using object path):
    >>> # Satellite satellite: Satellite object
    >>>
    >>> # Get access by object path
    >>> access = satellite.get_access("Facility/MyFacility")
    >>>
    >>> # Compute access
    >>> access.compute_access()

    Compute an access between two STK Objects (using ISTKObject interface):
    >>> # Satellite satellite: Satellite object
    >>> # Facility facility: Facility object
    >>>
    >>> # Get access by STK Object
    >>> access = satellite.get_access_to_object(facility)
    >>>
    >>> # Compute access
    >>> access.compute_access()
    """

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_data_providers_method_offset = 1
    _remove_access_method_offset = 2
    _compute_access_method_offset = 3
    _get_access_time_period_method_offset = 4
    _set_access_time_period_method_offset = 5
    _specify_access_time_period_method_offset = 6
    _get_graphics_method_offset = 7
    _get_advanced_method_offset = 8
    _get_data_displays_method_offset = 9
    _specify_access_intervals_method_offset = 10
    _get_computed_access_interval_times_method_offset = 11
    _get_access_time_period_data_method_offset = 12
    _specify_access_event_intervals_method_offset = 13
    _clear_access_method_offset = 14
    _get_analysis_workbench_components_method_offset = 15
    _get_save_computed_data_method_offset = 16
    _set_save_computed_data_method_offset = 17
    _get_base_method_offset = 18
    _get_target_method_offset = 19
    _get_name_method_offset = 20
    _metadata = {
        "iid_data" : (4646996922344026553, 5367852749644647348),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Access)

    _get_data_providers_metadata = { "offset" : _get_data_providers_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_providers(self) -> "DataProviderCollection":
        """Return the object representing a list of available data providers for the object."""
        return self._intf.get_property(Access._metadata, Access._get_data_providers_metadata)

    _remove_access_metadata = { "offset" : _remove_access_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_access(self) -> None:
        """Remove the access that was computed between two objects."""
        return self._intf.invoke(Access._metadata, Access._remove_access_metadata, )

    _compute_access_metadata = { "offset" : _compute_access_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def compute_access(self) -> None:
        """Recomputes the access between two objects.  Calls to ComputeAccess should not be made between calls to BeginUpdate and EndUpdate."""
        return self._intf.invoke(Access._metadata, Access._compute_access_metadata, )

    _get_access_time_period_metadata = { "offset" : _get_access_time_period_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AccessTimeType),) }
    @property
    def access_time_period(self) -> "AccessTimeType":
        """Specify the time period option. A member of the AccessTimeType enumeration."""
        return self._intf.get_property(Access._metadata, Access._get_access_time_period_metadata)

    _set_access_time_period_metadata = { "offset" : _set_access_time_period_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AccessTimeType),) }
    @access_time_period.setter
    def access_time_period(self, value:"AccessTimeType") -> None:
        return self._intf.set_property(Access._metadata, Access._set_access_time_period_metadata, value)

    _specify_access_time_period_metadata = { "offset" : _specify_access_time_period_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def specify_access_time_period(self, start_time:typing.Any, stop_time:typing.Any) -> None:
        """If eUserSpec is selected for AccessTimePeriod, specify the start and stop times for the user-defined period."""
        return self._intf.invoke(Access._metadata, Access._specify_access_time_period_metadata, start_time, stop_time)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "AccessGraphics":
        """Get the Graphics properties for the Access computations."""
        return self._intf.get_property(Access._metadata, Access._get_graphics_metadata)

    _get_advanced_metadata = { "offset" : _get_advanced_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def advanced(self) -> "AccessAdvancedSettings":
        """Get the Advanced properties for the Access computations."""
        return self._intf.get_property(Access._metadata, Access._get_advanced_metadata)

    _get_data_displays_metadata = { "offset" : _get_data_displays_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_displays(self) -> "Graphics3DDataDisplayCollection":
        """Get the VO Data Display Collection."""
        return self._intf.get_property(Access._metadata, Access._get_data_displays_metadata)

    _specify_access_intervals_metadata = { "offset" : _specify_access_intervals_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def specify_access_intervals(self, access_intervals:list) -> None:
        """Allow a list of intervals to be used for the access calculation."""
        return self._intf.invoke(Access._metadata, Access._specify_access_intervals_metadata, access_intervals)

    _get_computed_access_interval_times_metadata = { "offset" : _get_computed_access_interval_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def computed_access_interval_times(self) -> "TimeIntervalCollection":
        """Return a list of the computed access interval times."""
        return self._intf.get_property(Access._metadata, Access._get_computed_access_interval_times_metadata)

    _get_access_time_period_data_metadata = { "offset" : _get_access_time_period_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_time_period_data(self) -> "IAccessInterval":
        """Return an TimeIntervalCollection if AccessTimePeriod is eAccessTimeIntervals; returns an AccessTimePeriod if AccessTimePeriod is eUserSpecAccessTime; returns an AccessAllowedTimeIntervals if AccessTimePeriod is eAccessTimeEventIntervals."""
        return self._intf.get_property(Access._metadata, Access._get_access_time_period_data_metadata)

    _specify_access_event_intervals_metadata = { "offset" : _specify_access_event_intervals_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ITimeToolTimeIntervalList"),) }
    def specify_access_event_intervals(self, event_interval_list:"ITimeToolTimeIntervalList") -> None:
        """Access is computed using the intervals in the specified event interval list."""
        return self._intf.invoke(Access._metadata, Access._specify_access_event_intervals_metadata, event_interval_list)

    _clear_access_metadata = { "offset" : _clear_access_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear_access(self) -> None:
        """Clear the access intervals, but not the definitional settings of the access object itself (like step size, light time delay settings, time interval, etc.)."""
        return self._intf.invoke(Access._metadata, Access._clear_access_metadata, )

    _get_analysis_workbench_components_metadata = { "offset" : _get_analysis_workbench_components_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis_workbench_components(self) -> "IAnalysisWorkbenchComponentProvider":
        """Get a VGT provider to access the analytical vector geometry, timeline, calculation and other types of components."""
        return self._intf.get_property(Access._metadata, Access._get_analysis_workbench_components_metadata)

    _get_save_computed_data_metadata = { "offset" : _get_save_computed_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_computed_data(self) -> bool:
        """Flag indicating whether to save computed data with the Access instance."""
        return self._intf.get_property(Access._metadata, Access._get_save_computed_data_metadata)

    _set_save_computed_data_metadata = { "offset" : _set_save_computed_data_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @save_computed_data.setter
    def save_computed_data(self, value:bool) -> None:
        return self._intf.set_property(Access._metadata, Access._set_save_computed_data_metadata, value)

    _get_base_metadata = { "offset" : _get_base_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def base(self) -> "ISTKObject":
        """Base object used in the access."""
        return self._intf.get_property(Access._metadata, Access._get_base_metadata)

    _get_target_metadata = { "offset" : _get_target_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def target(self) -> "ISTKObject":
        """Target object used in the access."""
        return self._intf.get_property(Access._metadata, Access._get_target_metadata)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Name of the access."""
        return self._intf.get_property(Access._metadata, Access._get_name_metadata)

    _property_names[data_providers] = "data_providers"
    _property_names[access_time_period] = "access_time_period"
    _property_names[graphics] = "graphics"
    _property_names[advanced] = "advanced"
    _property_names[data_displays] = "data_displays"
    _property_names[computed_access_interval_times] = "computed_access_interval_times"
    _property_names[access_time_period_data] = "access_time_period_data"
    _property_names[analysis_workbench_components] = "analysis_workbench_components"
    _property_names[save_computed_data] = "save_computed_data"
    _property_names[base] = "base"
    _property_names[target] = "target"
    _property_names[name] = "name"

    def __init__(self, source_object=None):
        """Construct an object of type Access."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Access)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Access, [Access, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5257331791528710126, 13834519455479139500), Access)
agcls.AgTypeNameMap["Access"] = Access

class AccessGraphics(SupportsDeleteCallback):
    """Provide access to the Graphics for Access Computations."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_method_offset = 1
    _set_inherit_method_offset = 2
    _get_show_line_method_offset = 3
    _set_show_line_method_offset = 4
    _get_show_animation_highlight_graphics_2d_method_offset = 5
    _set_show_animation_highlight_graphics_2d_method_offset = 6
    _get_static_graphics_2d_method_offset = 7
    _set_static_graphics_2d_method_offset = 8
    _get_line_width_method_offset = 9
    _set_line_width_method_offset = 10
    _get_line_style_method_offset = 11
    _set_line_style_method_offset = 12
    _metadata = {
        "iid_data" : (5372142801713665935, 13303745583475641272),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessGraphics)

    _get_inherit_metadata = { "offset" : _get_inherit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit(self) -> bool:
        """Specify whether the Access graphics inherit from the Scenario. Otherwise they can be set locally for this object."""
        return self._intf.get_property(AccessGraphics._metadata, AccessGraphics._get_inherit_metadata)

    _set_inherit_metadata = { "offset" : _set_inherit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit.setter
    def inherit(self, value:bool) -> None:
        return self._intf.set_property(AccessGraphics._metadata, AccessGraphics._set_inherit_metadata, value)

    _get_show_line_metadata = { "offset" : _get_show_line_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_line(self) -> bool:
        """Specify whether a line appears between objects during access periods in the 2D and 3D Graphics windows."""
        return self._intf.get_property(AccessGraphics._metadata, AccessGraphics._get_show_line_metadata)

    _set_show_line_metadata = { "offset" : _set_show_line_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_line.setter
    def show_line(self, value:bool) -> None:
        return self._intf.set_property(AccessGraphics._metadata, AccessGraphics._set_show_line_metadata, value)

    _get_show_animation_highlight_graphics_2d_metadata = { "offset" : _get_show_animation_highlight_graphics_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_animation_highlight_graphics_2d(self) -> bool:
        """Specify whether an Animate Highlight appears in the 2D Graphics window during access periods. The Animate Highlight is a box drawn around each object participating in the access."""
        return self._intf.get_property(AccessGraphics._metadata, AccessGraphics._get_show_animation_highlight_graphics_2d_metadata)

    _set_show_animation_highlight_graphics_2d_metadata = { "offset" : _set_show_animation_highlight_graphics_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_animation_highlight_graphics_2d.setter
    def show_animation_highlight_graphics_2d(self, value:bool) -> None:
        return self._intf.set_property(AccessGraphics._metadata, AccessGraphics._set_show_animation_highlight_graphics_2d_metadata, value)

    _get_static_graphics_2d_metadata = { "offset" : _get_static_graphics_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def static_graphics_2d(self) -> bool:
        """Specify whether a Static Highlight appears in the 2D Graphics window. The Static Highlight is a thick line overlaying portions of a vehicle's ground track during access periods."""
        return self._intf.get_property(AccessGraphics._metadata, AccessGraphics._get_static_graphics_2d_metadata)

    _set_static_graphics_2d_metadata = { "offset" : _set_static_graphics_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @static_graphics_2d.setter
    def static_graphics_2d(self, value:bool) -> None:
        return self._intf.set_property(AccessGraphics._metadata, AccessGraphics._set_static_graphics_2d_metadata, value)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def line_width(self) -> int:
        """Line width of lines between objects during access periods in the 2D and 3D Graphics windows."""
        return self._intf.get_property(AccessGraphics._metadata, AccessGraphics._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @line_width.setter
    def line_width(self, value:int) -> None:
        return self._intf.set_property(AccessGraphics._metadata, AccessGraphics._set_line_width_metadata, value)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def line_style(self) -> str:
        """Line style of lines between objects during access periods in the 2D and 3D Graphics windows."""
        return self._intf.get_property(AccessGraphics._metadata, AccessGraphics._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @line_style.setter
    def line_style(self, value:str) -> None:
        return self._intf.set_property(AccessGraphics._metadata, AccessGraphics._set_line_style_metadata, value)

    _property_names[inherit] = "inherit"
    _property_names[show_line] = "show_line"
    _property_names[show_animation_highlight_graphics_2d] = "show_animation_highlight_graphics_2d"
    _property_names[static_graphics_2d] = "static_graphics_2d"
    _property_names[line_width] = "line_width"
    _property_names[line_style] = "line_style"

    def __init__(self, source_object=None):
        """Construct an object of type AccessGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessGraphics, [AccessGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5443757637425276908, 2797952989428304299), AccessGraphics)
agcls.AgTypeNameMap["AccessGraphics"] = AccessGraphics

class AccessAdvancedSettings(SupportsDeleteCallback):
    """Provide access to the Advanced properties for Access Computations."""

    _num_methods = 30
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_light_time_delay_method_offset = 1
    _set_enable_light_time_delay_method_offset = 2
    _get_time_convergence_method_offset = 3
    _set_time_convergence_method_offset = 4
    _get_maximum_time_step_method_offset = 5
    _set_maximum_time_step_method_offset = 6
    _get_time_light_delay_convergence_method_offset = 7
    _set_time_light_delay_convergence_method_offset = 8
    _get_aberration_type_method_offset = 9
    _set_aberration_type_method_offset = 10
    _get_clock_host_method_offset = 11
    _set_clock_host_method_offset = 12
    _get_signal_sense_of_clock_host_method_offset = 13
    _set_signal_sense_of_clock_host_method_offset = 14
    _get_use_default_clock_host_and_signal_sense_method_offset = 15
    _set_use_default_clock_host_and_signal_sense_method_offset = 16
    _get_use_precise_event_times_method_offset = 17
    _set_use_precise_event_times_method_offset = 18
    _get_absolute_tolerance_method_offset = 19
    _set_absolute_tolerance_method_offset = 20
    _get_relative_tolerance_method_offset = 21
    _set_relative_tolerance_method_offset = 22
    _get_use_fixed_time_step_method_offset = 23
    _set_use_fixed_time_step_method_offset = 24
    _get_minimum_time_step_method_offset = 25
    _set_minimum_time_step_method_offset = 26
    _get_fixed_step_size_method_offset = 27
    _set_fixed_step_size_method_offset = 28
    _get_fixed_time_bound_method_offset = 29
    _set_fixed_time_bound_method_offset = 30
    _metadata = {
        "iid_data" : (5758792451272061844, 17015456204856800433),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessAdvancedSettings)

    _get_enable_light_time_delay_metadata = { "offset" : _get_enable_light_time_delay_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_light_time_delay(self) -> bool:
        """Specify whether to take light time delay into account in the computation."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_enable_light_time_delay_metadata)

    _set_enable_light_time_delay_metadata = { "offset" : _set_enable_light_time_delay_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_light_time_delay.setter
    def enable_light_time_delay(self, value:bool) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_enable_light_time_delay_metadata, value)

    _get_time_convergence_metadata = { "offset" : _get_time_convergence_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_convergence(self) -> float:
        """Get or set the time convergence value for Access. Uses Time Dimension."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_time_convergence_metadata)

    _set_time_convergence_metadata = { "offset" : _set_time_convergence_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_convergence.setter
    def time_convergence(self, value:float) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_time_convergence_metadata, value)

    _get_maximum_time_step_metadata = { "offset" : _get_maximum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_time_step(self) -> float:
        """Get or set the maximum step size to be used in new access computations. The maximum step size limits the amount of time that is allowed to elapse between sampling of the constraint functions during access computations. Uses Time Dimension."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_maximum_time_step_metadata)

    _set_maximum_time_step_metadata = { "offset" : _set_maximum_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_time_step.setter
    def maximum_time_step(self, value:float) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_maximum_time_step_metadata, value)

    _get_time_light_delay_convergence_metadata = { "offset" : _get_time_light_delay_convergence_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_light_delay_convergence(self) -> float:
        """Get or set the tolerance used when iterating to determine the light time delay. Uses Time Dimension."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_time_light_delay_convergence_metadata)

    _set_time_light_delay_convergence_metadata = { "offset" : _set_time_light_delay_convergence_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_light_delay_convergence.setter
    def time_light_delay_convergence(self, value:float) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_time_light_delay_convergence_metadata, value)

    _get_aberration_type_metadata = { "offset" : _get_aberration_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AberrationType),) }
    @property
    def aberration_type(self) -> "AberrationType":
        """Get or set the model of aberration to be used in access computations."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_aberration_type_metadata)

    _set_aberration_type_metadata = { "offset" : _set_aberration_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AberrationType),) }
    @aberration_type.setter
    def aberration_type(self, value:"AberrationType") -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_aberration_type_metadata, value)

    _get_clock_host_metadata = { "offset" : _get_clock_host_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(IvClockHost),) }
    @property
    def clock_host(self) -> "IvClockHost":
        """Clock host object with which the clock with which time values are reported is colocated."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_clock_host_metadata)

    _set_clock_host_metadata = { "offset" : _set_clock_host_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(IvClockHost),) }
    @clock_host.setter
    def clock_host(self, value:"IvClockHost") -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_clock_host_metadata, value)

    _get_signal_sense_of_clock_host_metadata = { "offset" : _get_signal_sense_of_clock_host_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(IvTimeSense),) }
    @property
    def signal_sense_of_clock_host(self) -> "IvTimeSense":
        """Get or set the direction of the signal with reference to the object selected as the ClockHost."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_signal_sense_of_clock_host_metadata)

    _set_signal_sense_of_clock_host_metadata = { "offset" : _set_signal_sense_of_clock_host_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(IvTimeSense),) }
    @signal_sense_of_clock_host.setter
    def signal_sense_of_clock_host(self, value:"IvTimeSense") -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_signal_sense_of_clock_host_metadata, value)

    _get_use_default_clock_host_and_signal_sense_metadata = { "offset" : _get_use_default_clock_host_and_signal_sense_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_default_clock_host_and_signal_sense(self) -> bool:
        """Opt whether to use default settings for ClockHost and SignalSenseOfClockHost."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_use_default_clock_host_and_signal_sense_metadata)

    _set_use_default_clock_host_and_signal_sense_metadata = { "offset" : _set_use_default_clock_host_and_signal_sense_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_default_clock_host_and_signal_sense.setter
    def use_default_clock_host_and_signal_sense(self, value:bool) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_use_default_clock_host_and_signal_sense_metadata, value)

    _get_use_precise_event_times_metadata = { "offset" : _get_use_precise_event_times_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_precise_event_times(self) -> bool:
        """Indicate that access will make additional samples, as part of its event detection algorithm, to precisely determine the time of access start and stop events."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_use_precise_event_times_metadata)

    _set_use_precise_event_times_metadata = { "offset" : _set_use_precise_event_times_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_precise_event_times.setter
    def use_precise_event_times(self, value:bool) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_use_precise_event_times_metadata, value)

    _get_absolute_tolerance_metadata = { "offset" : _get_absolute_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def absolute_tolerance(self) -> float:
        """Get or set the criterion used for convergence in value for values near 0. An event is said to be detected when a constraint value's difference compared to the previous sample is within this tolerance: (value - previousValue) < absoluteTolerance."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_absolute_tolerance_metadata)

    _set_absolute_tolerance_metadata = { "offset" : _set_absolute_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @absolute_tolerance.setter
    def absolute_tolerance(self, value:float) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_absolute_tolerance_metadata, value)

    _get_relative_tolerance_metadata = { "offset" : _get_relative_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def relative_tolerance(self) -> float:
        """An event is said to be detected when a constraint value's relative difference compared to the previous sample is within this tolerance: (value - previousValue) / value < relativeTolerance."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_relative_tolerance_metadata)

    _set_relative_tolerance_metadata = { "offset" : _set_relative_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @relative_tolerance.setter
    def relative_tolerance(self, value:float) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_relative_tolerance_metadata, value)

    _get_use_fixed_time_step_metadata = { "offset" : _get_use_fixed_time_step_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_fixed_time_step(self) -> bool:
        """Uses a fixed step size to choose samples."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_use_fixed_time_step_metadata)

    _set_use_fixed_time_step_metadata = { "offset" : _set_use_fixed_time_step_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_fixed_time_step.setter
    def use_fixed_time_step(self, value:bool) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_use_fixed_time_step_metadata, value)

    _get_minimum_time_step_metadata = { "offset" : _get_minimum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_time_step(self) -> float:
        """Get or set the minimum step size that is allowed to be taken."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_minimum_time_step_metadata)

    _set_minimum_time_step_metadata = { "offset" : _set_minimum_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_time_step.setter
    def minimum_time_step(self, value:float) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_minimum_time_step_metadata, value)

    _get_fixed_step_size_metadata = { "offset" : _get_fixed_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fixed_step_size(self) -> float:
        """Specify the fixed step size for the fixed step control."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_fixed_step_size_metadata)

    _set_fixed_step_size_metadata = { "offset" : _set_fixed_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fixed_step_size.setter
    def fixed_step_size(self, value:float) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_fixed_step_size_metadata, value)

    _get_fixed_time_bound_metadata = { "offset" : _get_fixed_time_bound_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fixed_time_bound(self) -> float:
        """Control alignment of samples with a UTC time grid. Using proper time bound can improve computational performance if the ephemeris lies on a fixed UTC time grid. The time bound determines the reference time for taking fixed step samples."""
        return self._intf.get_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._get_fixed_time_bound_metadata)

    _set_fixed_time_bound_metadata = { "offset" : _set_fixed_time_bound_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fixed_time_bound.setter
    def fixed_time_bound(self, value:float) -> None:
        return self._intf.set_property(AccessAdvancedSettings._metadata, AccessAdvancedSettings._set_fixed_time_bound_metadata, value)

    _property_names[enable_light_time_delay] = "enable_light_time_delay"
    _property_names[time_convergence] = "time_convergence"
    _property_names[maximum_time_step] = "maximum_time_step"
    _property_names[time_light_delay_convergence] = "time_light_delay_convergence"
    _property_names[aberration_type] = "aberration_type"
    _property_names[clock_host] = "clock_host"
    _property_names[signal_sense_of_clock_host] = "signal_sense_of_clock_host"
    _property_names[use_default_clock_host_and_signal_sense] = "use_default_clock_host_and_signal_sense"
    _property_names[use_precise_event_times] = "use_precise_event_times"
    _property_names[absolute_tolerance] = "absolute_tolerance"
    _property_names[relative_tolerance] = "relative_tolerance"
    _property_names[use_fixed_time_step] = "use_fixed_time_step"
    _property_names[minimum_time_step] = "minimum_time_step"
    _property_names[fixed_step_size] = "fixed_step_size"
    _property_names[fixed_time_bound] = "fixed_time_bound"

    def __init__(self, source_object=None):
        """Construct an object of type AccessAdvancedSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessAdvancedSettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessAdvancedSettings, [AccessAdvancedSettings, ])

agcls.AgClassCatalog.add_catalog_entry((5201814148760541518, 9216183683219818680), AccessAdvancedSettings)
agcls.AgTypeNameMap["AccessAdvancedSettings"] = AccessAdvancedSettings

class AccessTimePeriod(ITimePeriod, IAccessInterval, SupportsDeleteCallback):
    """Allow configuring the object's access interval."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_time_method_offset = 1
    _get_stop_time_method_offset = 2
    _get_duration_method_offset = 3
    _set_duration_method_offset = 4
    _get_access_interval_method_offset = 5
    _metadata = {
        "iid_data" : (5595959497212368204, 2937730304951826313),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessTimePeriod)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def start_time(self) -> "TimePeriodValue":
        """Get a start time. Uses DateFormat Dimension."""
        return self._intf.get_property(AccessTimePeriod._metadata, AccessTimePeriod._get_start_time_metadata)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def stop_time(self) -> "TimePeriodValue":
        """Get a stop time. Uses DateFormat Dimension."""
        return self._intf.get_property(AccessTimePeriod._metadata, AccessTimePeriod._get_stop_time_metadata)

    _get_duration_metadata = { "offset" : _get_duration_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def duration(self) -> typing.Any:
        """A time duration. The value is a relative duration (i.e. ``+1 day``, ``+1 hour``)."""
        return self._intf.get_property(AccessTimePeriod._metadata, AccessTimePeriod._get_duration_metadata)

    _set_duration_metadata = { "offset" : _set_duration_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @duration.setter
    def duration(self, duration:typing.Any) -> None:
        return self._intf.set_property(AccessTimePeriod._metadata, AccessTimePeriod._set_duration_metadata, duration)

    _get_access_interval_metadata = { "offset" : _get_access_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Return an access interval."""
        return self._intf.get_property(AccessTimePeriod._metadata, AccessTimePeriod._get_access_interval_metadata)

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[duration] = "duration"
    _property_names[access_interval] = "access_interval"

    def __init__(self, source_object=None):
        """Construct an object of type AccessTimePeriod."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessTimePeriod)
        ITimePeriod.__init__(self, source_object)
        IAccessInterval.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITimePeriod._private_init(self, intf)
        IAccessInterval._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessTimePeriod, [AccessTimePeriod, ITimePeriod, IAccessInterval])

agcls.AgClassCatalog.add_catalog_entry((5183298726021015721, 4770748461694279610), AccessTimePeriod)
agcls.AgTypeNameMap["AccessTimePeriod"] = AccessTimePeriod

class AccessAllowedTimeIntervals(IAccessInterval, SupportsDeleteCallback):
    """Allow configuring the access time period using a list of timeline intervals."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_list_of_intervals_method_offset = 1
    _set_list_of_intervals_method_offset = 2
    _metadata = {
        "iid_data" : (5126160670760682781, 1634838273849714306),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessAllowedTimeIntervals)

    _get_list_of_intervals_metadata = { "offset" : _get_list_of_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def list_of_intervals(self) -> "ITimeToolTimeIntervalList":
        """A list of timeline intervals used to define a list of allowed access intervals."""
        return self._intf.get_property(AccessAllowedTimeIntervals._metadata, AccessAllowedTimeIntervals._get_list_of_intervals_metadata)

    _set_list_of_intervals_metadata = { "offset" : _set_list_of_intervals_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ITimeToolTimeIntervalList"),) }
    @list_of_intervals.setter
    def list_of_intervals(self, event_interval_list:"ITimeToolTimeIntervalList") -> None:
        return self._intf.set_property(AccessAllowedTimeIntervals._metadata, AccessAllowedTimeIntervals._set_list_of_intervals_metadata, event_interval_list)

    _property_names[list_of_intervals] = "list_of_intervals"

    def __init__(self, source_object=None):
        """Construct an object of type AccessAllowedTimeIntervals."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessAllowedTimeIntervals)
        IAccessInterval.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessInterval._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessAllowedTimeIntervals, [AccessAllowedTimeIntervals, IAccessInterval])

agcls.AgClassCatalog.add_catalog_entry((4978623644031052824, 3860010489362889150), AccessAllowedTimeIntervals)
agcls.AgTypeNameMap["AccessAllowedTimeIntervals"] = AccessAllowedTimeIntervals

class ObjectCoverage(SupportsDeleteCallback):
    """
    Provide access to the Data Providers on an ObjectCoverage Object.

    Examples
    --------
    Compute Object Coverage:
    >>> # Aircraft aircraft: Aircraft object
    >>> objCoverage = aircraft.object_coverage
    >>> objCoverage.assets.remove_all
    >>> objCoverage.assets.add("Satellite/MySatellite")
    >>> objCoverage.use_object_times = True
    >>> objCoverage.compute()
    >>>
    >>> objCoverageFOM = objCoverage.figure_of_merit
    >>> objCoverageFOM.set_definition_type(FigureOfMeritDefinitionType.COVERAGE_TIME)
    >>> objCoverageFOM.definition.set_compute_type(FigureOfMeritCompute.TOTAL)
    """

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_data_providers_method_offset = 1
    _get_start_time_method_offset = 2
    _set_start_time_method_offset = 3
    _get_stop_time_method_offset = 4
    _set_stop_time_method_offset = 5
    _get_assets_method_offset = 6
    _get_figure_of_merit_method_offset = 7
    _compute_method_offset = 8
    _clear_method_offset = 9
    _get_access_interval_method_offset = 10
    _get_use_object_times_method_offset = 11
    _set_use_object_times_method_offset = 12
    _get_is_coverage_configuration_saved_method_offset = 13
    _set_is_coverage_configuration_saved_method_offset = 14
    _clear_coverage_method_offset = 15
    _metadata = {
        "iid_data" : (5364959831138972564, 16682429962765297826),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ObjectCoverage)

    _get_data_providers_metadata = { "offset" : _get_data_providers_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_providers(self) -> "DataProviderCollection":
        """Return the object representing a list of available data providers for the object."""
        return self._intf.get_property(ObjectCoverage._metadata, ObjectCoverage._get_data_providers_metadata)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Get or set the start time of object coverage. Uses DateFormat Dimension."""
        return self._intf.get_property(ObjectCoverage._metadata, ObjectCoverage._get_start_time_metadata)

    _set_start_time_metadata = { "offset" : _set_start_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_time.setter
    def start_time(self, start_time:typing.Any) -> None:
        return self._intf.set_property(ObjectCoverage._metadata, ObjectCoverage._set_start_time_metadata, start_time)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Get or set the stop time of object coverage. Uses DateFormat Dimension."""
        return self._intf.get_property(ObjectCoverage._metadata, ObjectCoverage._get_stop_time_metadata)

    _set_stop_time_metadata = { "offset" : _set_stop_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop_time.setter
    def stop_time(self, stop_time:typing.Any) -> None:
        return self._intf.set_property(ObjectCoverage._metadata, ObjectCoverage._set_stop_time_metadata, stop_time)

    _get_assets_metadata = { "offset" : _get_assets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def assets(self) -> "CoverageAssetListCollection":
        """Get the asset list collection."""
        return self._intf.get_property(ObjectCoverage._metadata, ObjectCoverage._get_assets_metadata)

    _get_figure_of_merit_metadata = { "offset" : _get_figure_of_merit_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def figure_of_merit(self) -> "ObjectCoverageFigureOfMerit":
        """Get the figure of merit on the object coverage."""
        return self._intf.get_property(ObjectCoverage._metadata, ObjectCoverage._get_figure_of_merit_metadata)

    _compute_metadata = { "offset" : _compute_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def compute(self) -> None:
        """Compute the object coverage."""
        return self._intf.invoke(ObjectCoverage._metadata, ObjectCoverage._compute_metadata, )

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Remove the computation on the object coverage."""
        return self._intf.invoke(ObjectCoverage._metadata, ObjectCoverage._clear_metadata, )

    _get_access_interval_metadata = { "offset" : _get_access_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """The object coverage's access interval."""
        return self._intf.get_property(ObjectCoverage._metadata, ObjectCoverage._get_access_interval_metadata)

    _get_use_object_times_metadata = { "offset" : _get_use_object_times_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_object_times(self) -> bool:
        """Use object interval times."""
        return self._intf.get_property(ObjectCoverage._metadata, ObjectCoverage._get_use_object_times_metadata)

    _set_use_object_times_metadata = { "offset" : _set_use_object_times_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_object_times.setter
    def use_object_times(self, use_object_times:bool) -> None:
        return self._intf.set_property(ObjectCoverage._metadata, ObjectCoverage._set_use_object_times_metadata, use_object_times)

    _get_is_coverage_configuration_saved_metadata = { "offset" : _get_is_coverage_configuration_saved_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_coverage_configuration_saved(self) -> bool:
        """Save the single-object coverage definitions when the scenario is saved to disk, if a compute has been done."""
        return self._intf.get_property(ObjectCoverage._metadata, ObjectCoverage._get_is_coverage_configuration_saved_metadata)

    _set_is_coverage_configuration_saved_metadata = { "offset" : _set_is_coverage_configuration_saved_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @is_coverage_configuration_saved.setter
    def is_coverage_configuration_saved(self, coverage_configuration_saved:bool) -> None:
        return self._intf.set_property(ObjectCoverage._metadata, ObjectCoverage._set_is_coverage_configuration_saved_metadata, coverage_configuration_saved)

    _clear_coverage_metadata = { "offset" : _clear_coverage_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear_coverage(self) -> None:
        """Clear object coverage."""
        return self._intf.invoke(ObjectCoverage._metadata, ObjectCoverage._clear_coverage_metadata, )

    _property_names[data_providers] = "data_providers"
    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[assets] = "assets"
    _property_names[figure_of_merit] = "figure_of_merit"
    _property_names[access_interval] = "access_interval"
    _property_names[use_object_times] = "use_object_times"
    _property_names[is_coverage_configuration_saved] = "is_coverage_configuration_saved"

    def __init__(self, source_object=None):
        """Construct an object of type ObjectCoverage."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ObjectCoverage)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ObjectCoverage, [ObjectCoverage, ])

agcls.AgClassCatalog.add_catalog_entry((5711057716915918001, 16441161263540070537), ObjectCoverage)
agcls.AgTypeNameMap["ObjectCoverage"] = ObjectCoverage

class ObjectCoverageFigureOfMerit(SupportsDeleteCallback):
    """Provide access to the Figure of Merit on the Object Coverage tool."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_definition_type_method_offset = 1
    _set_definition_type_method_offset = 2
    _is_definition_type_supported_method_offset = 3
    _get_definition_supported_types_method_offset = 4
    _get_definition_method_offset = 5
    _set_access_constraint_definition_method_offset = 6
    _get_graphics_method_offset = 7
    _set_access_constraint_definition_name_method_offset = 8
    _metadata = {
        "iid_data" : (5625650715713470743, 6436957953276041142),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ObjectCoverageFigureOfMerit)

    _get_definition_type_metadata = { "offset" : _get_definition_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritDefinitionType),) }
    @property
    def definition_type(self) -> "FigureOfMeritDefinitionType":
        """Definition type for the FOM."""
        return self._intf.get_property(ObjectCoverageFigureOfMerit._metadata, ObjectCoverageFigureOfMerit._get_definition_type_metadata)

    _set_definition_type_metadata = { "offset" : _set_definition_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritDefinitionType),) }
    def set_definition_type(self, defn:"FigureOfMeritDefinitionType") -> None:
        """Set the definition type."""
        return self._intf.invoke(ObjectCoverageFigureOfMerit._metadata, ObjectCoverageFigureOfMerit._set_definition_type_metadata, defn)

    _is_definition_type_supported_metadata = { "offset" : _is_definition_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritDefinitionType), agmarshall.VariantBoolArg,) }
    def is_definition_type_supported(self, defn:"FigureOfMeritDefinitionType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(ObjectCoverageFigureOfMerit._metadata, ObjectCoverageFigureOfMerit._is_definition_type_supported_metadata, defn, OutArg())

    _get_definition_supported_types_metadata = { "offset" : _get_definition_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def definition_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(ObjectCoverageFigureOfMerit._metadata, ObjectCoverageFigureOfMerit._get_definition_supported_types_metadata)

    _get_definition_metadata = { "offset" : _get_definition_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def definition(self) -> "IFigureOfMeritDefinition":
        """Definition properties of the FOM."""
        return self._intf.get_property(ObjectCoverageFigureOfMerit._metadata, ObjectCoverageFigureOfMerit._get_definition_metadata)

    _set_access_constraint_definition_metadata = { "offset" : _set_access_constraint_definition_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritConstraintName), agmarshall.InterfaceOutArg,) }
    def set_access_constraint_definition(self, constraint_name:"FigureOfMeritConstraintName") -> "FigureOfMeritDefinitionAccessConstraint":
        """Set the access constraint definition."""
        return self._intf.invoke(ObjectCoverageFigureOfMerit._metadata, ObjectCoverageFigureOfMerit._set_access_constraint_definition_metadata, constraint_name, OutArg())

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "FigureOfMeritGraphics":
        """2D graphics properties of the FOM."""
        return self._intf.get_property(ObjectCoverageFigureOfMerit._metadata, ObjectCoverageFigureOfMerit._get_graphics_metadata)

    _set_access_constraint_definition_name_metadata = { "offset" : _set_access_constraint_definition_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def set_access_constraint_definition_name(self, constraint_name:str) -> "FigureOfMeritDefinitionAccessConstraint":
        """Set the access constraint definition by name."""
        return self._intf.invoke(ObjectCoverageFigureOfMerit._metadata, ObjectCoverageFigureOfMerit._set_access_constraint_definition_name_metadata, constraint_name, OutArg())

    _property_names[definition_type] = "definition_type"
    _property_names[definition_supported_types] = "definition_supported_types"
    _property_names[definition] = "definition"
    _property_names[graphics] = "graphics"

    def __init__(self, source_object=None):
        """Construct an object of type ObjectCoverageFigureOfMerit."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ObjectCoverageFigureOfMerit)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ObjectCoverageFigureOfMerit, [ObjectCoverageFigureOfMerit, ])

agcls.AgClassCatalog.add_catalog_entry((5182238716688866082, 6057347634496691346), ObjectCoverageFigureOfMerit)
agcls.AgTypeNameMap["ObjectCoverageFigureOfMerit"] = ObjectCoverageFigureOfMerit

class Scenario3dFont(SupportsDeleteCallback):
    """Scenario3dFont Interface."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _set_name_method_offset = 2
    _get_point_size_method_offset = 3
    _set_point_size_method_offset = 4
    _get_bold_method_offset = 5
    _set_bold_method_offset = 6
    _get_italic_method_offset = 7
    _set_italic_method_offset = 8
    _get_available_fonts_method_offset = 9
    _is_font_available_method_offset = 10
    _metadata = {
        "iid_data" : (5611704556578444196, 14831345730066066341),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Scenario3dFont)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get or set the font name."""
        return self._intf.get_property(Scenario3dFont._metadata, Scenario3dFont._get_name_metadata)

    _set_name_metadata = { "offset" : _set_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @name.setter
    def name(self, name:str) -> None:
        return self._intf.set_property(Scenario3dFont._metadata, Scenario3dFont._set_name_metadata, name)

    _get_point_size_metadata = { "offset" : _get_point_size_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Scenario3dPointSize),) }
    @property
    def point_size(self) -> "Scenario3dPointSize":
        """Font size in points."""
        return self._intf.get_property(Scenario3dFont._metadata, Scenario3dFont._get_point_size_metadata)

    _set_point_size_metadata = { "offset" : _set_point_size_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Scenario3dPointSize),) }
    @point_size.setter
    def point_size(self, pt_size:"Scenario3dPointSize") -> None:
        return self._intf.set_property(Scenario3dFont._metadata, Scenario3dFont._set_point_size_metadata, pt_size)

    _get_bold_metadata = { "offset" : _get_bold_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def bold(self) -> bool:
        """Specify whether the font is bold."""
        return self._intf.get_property(Scenario3dFont._metadata, Scenario3dFont._get_bold_metadata)

    _set_bold_metadata = { "offset" : _set_bold_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @bold.setter
    def bold(self, bold:bool) -> None:
        return self._intf.set_property(Scenario3dFont._metadata, Scenario3dFont._set_bold_metadata, bold)

    _get_italic_metadata = { "offset" : _get_italic_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def italic(self) -> bool:
        """Specify whether the font is italic."""
        return self._intf.get_property(Scenario3dFont._metadata, Scenario3dFont._get_italic_metadata)

    _set_italic_metadata = { "offset" : _set_italic_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @italic.setter
    def italic(self, italic:bool) -> None:
        return self._intf.set_property(Scenario3dFont._metadata, Scenario3dFont._set_italic_metadata, italic)

    _get_available_fonts_metadata = { "offset" : _get_available_fonts_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_fonts(self) -> list:
        """Names of fonts installed in the system."""
        return self._intf.get_property(Scenario3dFont._metadata, Scenario3dFont._get_available_fonts_metadata)

    _is_font_available_metadata = { "offset" : _is_font_available_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_font_available(self, name:str) -> bool:
        """Return whether the specified font is installed in the system."""
        return self._intf.invoke(Scenario3dFont._metadata, Scenario3dFont._is_font_available_metadata, name, OutArg())

    _property_names[name] = "name"
    _property_names[point_size] = "point_size"
    _property_names[bold] = "bold"
    _property_names[italic] = "italic"
    _property_names[available_fonts] = "available_fonts"

    def __init__(self, source_object=None):
        """Construct an object of type Scenario3dFont."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Scenario3dFont)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Scenario3dFont, [Scenario3dFont, ])

agcls.AgClassCatalog.add_catalog_entry((5498910429825811658, 10098242107252200860), Scenario3dFont)
agcls.AgTypeNameMap["Scenario3dFont"] = Scenario3dFont

class Graphics3DBorderWall(SupportsDeleteCallback):
    """Border Wall Properties."""

    _num_methods = 19
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_border_wall_method_offset = 1
    _set_use_border_wall_method_offset = 2
    _get_upper_edge_altitude_reference_method_offset = 3
    _set_upper_edge_altitude_reference_method_offset = 4
    _get_upper_edge_height_method_offset = 5
    _set_upper_edge_height_method_offset = 6
    _get_lower_edge_altitude_reference_method_offset = 7
    _set_lower_edge_altitude_reference_method_offset = 8
    _get_lower_edge_height_method_offset = 9
    _set_lower_edge_height_method_offset = 10
    _get_use_wall_translucency_method_offset = 11
    _set_use_wall_translucency_method_offset = 12
    _get_wall_translucency_method_offset = 13
    _set_wall_translucency_method_offset = 14
    _get_use_line_translucency_method_offset = 15
    _set_use_line_translucency_method_offset = 16
    _get_line_translucency_method_offset = 17
    _set_line_translucency_method_offset = 18
    _is_altitude_reference_type_supported_method_offset = 19
    _metadata = {
        "iid_data" : (5108543889339440330, 11640165786037762207),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DBorderWall)

    _get_use_border_wall_metadata = { "offset" : _get_use_border_wall_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_border_wall(self) -> bool:
        """Display the border for the area target as a solid or translucent wall that extends from the lower edge altitude to the upper edge altitude."""
        return self._intf.get_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._get_use_border_wall_metadata)

    _set_use_border_wall_metadata = { "offset" : _set_use_border_wall_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_border_wall.setter
    def use_border_wall(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._set_use_border_wall_metadata, value)

    _get_upper_edge_altitude_reference_metadata = { "offset" : _get_upper_edge_altitude_reference_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(BorderWallUpperLowerEdgeAltitudeReference),) }
    @property
    def upper_edge_altitude_reference(self) -> "BorderWallUpperLowerEdgeAltitudeReference":
        """Reference used in defining the upper edge of the border wall. A member of the BorderWallUpperLowerEdgeAltitudeReference enumeration."""
        return self._intf.get_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._get_upper_edge_altitude_reference_metadata)

    _set_upper_edge_altitude_reference_metadata = { "offset" : _set_upper_edge_altitude_reference_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(BorderWallUpperLowerEdgeAltitudeReference),) }
    @upper_edge_altitude_reference.setter
    def upper_edge_altitude_reference(self, value:"BorderWallUpperLowerEdgeAltitudeReference") -> None:
        return self._intf.set_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._set_upper_edge_altitude_reference_metadata, value)

    _get_upper_edge_height_metadata = { "offset" : _get_upper_edge_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def upper_edge_height(self) -> float:
        """Height of the upper edge of the border wall."""
        return self._intf.get_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._get_upper_edge_height_metadata)

    _set_upper_edge_height_metadata = { "offset" : _set_upper_edge_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @upper_edge_height.setter
    def upper_edge_height(self, value:float) -> None:
        return self._intf.set_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._set_upper_edge_height_metadata, value)

    _get_lower_edge_altitude_reference_metadata = { "offset" : _get_lower_edge_altitude_reference_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(BorderWallUpperLowerEdgeAltitudeReference),) }
    @property
    def lower_edge_altitude_reference(self) -> "BorderWallUpperLowerEdgeAltitudeReference":
        """Reference used in defining the lower edge of the border wall. A member of the BorderWallUpperLowerEdgeAltitudeReference enumeration."""
        return self._intf.get_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._get_lower_edge_altitude_reference_metadata)

    _set_lower_edge_altitude_reference_metadata = { "offset" : _set_lower_edge_altitude_reference_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(BorderWallUpperLowerEdgeAltitudeReference),) }
    @lower_edge_altitude_reference.setter
    def lower_edge_altitude_reference(self, value:"BorderWallUpperLowerEdgeAltitudeReference") -> None:
        return self._intf.set_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._set_lower_edge_altitude_reference_metadata, value)

    _get_lower_edge_height_metadata = { "offset" : _get_lower_edge_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lower_edge_height(self) -> float:
        """Height of the lower edge of the border wall."""
        return self._intf.get_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._get_lower_edge_height_metadata)

    _set_lower_edge_height_metadata = { "offset" : _set_lower_edge_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lower_edge_height.setter
    def lower_edge_height(self, value:float) -> None:
        return self._intf.set_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._set_lower_edge_height_metadata, value)

    _get_use_wall_translucency_metadata = { "offset" : _get_use_wall_translucency_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_wall_translucency(self) -> bool:
        """Display the border wall at the specified translucency percentage."""
        return self._intf.get_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._get_use_wall_translucency_metadata)

    _set_use_wall_translucency_metadata = { "offset" : _set_use_wall_translucency_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_wall_translucency.setter
    def use_wall_translucency(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._set_use_wall_translucency_metadata, value)

    _get_wall_translucency_metadata = { "offset" : _get_wall_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def wall_translucency(self) -> float:
        """Get or set the border wall's translucency percentage, where 100% = invisible."""
        return self._intf.get_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._get_wall_translucency_metadata)

    _set_wall_translucency_metadata = { "offset" : _set_wall_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @wall_translucency.setter
    def wall_translucency(self, value:float) -> None:
        return self._intf.set_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._set_wall_translucency_metadata, value)

    _get_use_line_translucency_metadata = { "offset" : _get_use_line_translucency_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_line_translucency(self) -> bool:
        """Display the lines at the upper and lower edges of the border wall at the specified translucency percentage."""
        return self._intf.get_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._get_use_line_translucency_metadata)

    _set_use_line_translucency_metadata = { "offset" : _set_use_line_translucency_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_line_translucency.setter
    def use_line_translucency(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._set_use_line_translucency_metadata, value)

    _get_line_translucency_metadata = { "offset" : _get_line_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def line_translucency(self) -> float:
        """Get or set the translucency of the lines at the upper and lower edges of the border wall, where 100% = invisible."""
        return self._intf.get_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._get_line_translucency_metadata)

    _set_line_translucency_metadata = { "offset" : _set_line_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @line_translucency.setter
    def line_translucency(self, value:float) -> None:
        return self._intf.set_property(Graphics3DBorderWall._metadata, Graphics3DBorderWall._set_line_translucency_metadata, value)

    _is_altitude_reference_type_supported_metadata = { "offset" : _is_altitude_reference_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(BorderWallUpperLowerEdgeAltitudeReference), agmarshall.VariantBoolArg,) }
    def is_altitude_reference_type_supported(self, ref_type:"BorderWallUpperLowerEdgeAltitudeReference") -> bool:
        """Provide verification of the availability of borderwall edge altitude reference."""
        return self._intf.invoke(Graphics3DBorderWall._metadata, Graphics3DBorderWall._is_altitude_reference_type_supported_metadata, ref_type, OutArg())

    _property_names[use_border_wall] = "use_border_wall"
    _property_names[upper_edge_altitude_reference] = "upper_edge_altitude_reference"
    _property_names[upper_edge_height] = "upper_edge_height"
    _property_names[lower_edge_altitude_reference] = "lower_edge_altitude_reference"
    _property_names[lower_edge_height] = "lower_edge_height"
    _property_names[use_wall_translucency] = "use_wall_translucency"
    _property_names[wall_translucency] = "wall_translucency"
    _property_names[use_line_translucency] = "use_line_translucency"
    _property_names[line_translucency] = "line_translucency"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DBorderWall."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DBorderWall)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DBorderWall, [Graphics3DBorderWall, ])

agcls.AgClassCatalog.add_catalog_entry((5431628409368942373, 10098361332456852152), Graphics3DBorderWall)
agcls.AgTypeNameMap["Graphics3DBorderWall"] = Graphics3DBorderWall

class Graphics3DReferenceVectorGeometryToolComponentCollection(SupportsDeleteCallback):
    """Manages the collection of elements that are used to visualize the Vector Geometry Tool components in 3D."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _add_method_offset = 4
    _remove_method_offset = 5
    _remove_all_method_offset = 6
    _remove_by_name_method_offset = 7
    _get_available_vector_geometry_tool_components_method_offset = 8
    _get_component_by_name_method_offset = 9
    _metadata = {
        "iid_data" : (4945924720534264408, 10615086157888499599),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DReferenceVectorGeometryToolComponentCollection)
    def __iter__(self):
        """Create an iterator for the Graphics3DReferenceVectorGeometryToolComponentCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "IGraphics3DReferenceAnalysisWorkbenchComponent":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return a number of elements in the collection."""
        return self._intf.get_property(Graphics3DReferenceVectorGeometryToolComponentCollection._metadata, Graphics3DReferenceVectorGeometryToolComponentCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "IGraphics3DReferenceAnalysisWorkbenchComponent":
        """Return an element of the collection at the specified position."""
        return self._intf.invoke(Graphics3DReferenceVectorGeometryToolComponentCollection._metadata, Graphics3DReferenceVectorGeometryToolComponentCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the vector collection."""
        return self._intf.get_property(Graphics3DReferenceVectorGeometryToolComponentCollection._metadata, Graphics3DReferenceVectorGeometryToolComponentCollection._get__new_enum_metadata)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(GeometricElementType), agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, type:"GeometricElementType", name:str) -> "IGraphics3DReferenceAnalysisWorkbenchComponent":
        """Add a VGT component to the collection. The path must refer to a valid VGT component. The method throws an exception if the path is invalid or if the element already exist."""
        return self._intf.invoke(Graphics3DReferenceVectorGeometryToolComponentCollection._metadata, Graphics3DReferenceVectorGeometryToolComponentCollection._add_metadata, type, name, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove(self, index:int) -> None:
        """Remove an element at the specified position from the collection."""
        return self._intf.invoke(Graphics3DReferenceVectorGeometryToolComponentCollection._metadata, Graphics3DReferenceVectorGeometryToolComponentCollection._remove_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(Graphics3DReferenceVectorGeometryToolComponentCollection._metadata, Graphics3DReferenceVectorGeometryToolComponentCollection._remove_all_metadata, )

    _remove_by_name_metadata = { "offset" : _remove_by_name_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR,),
            "marshallers" : (agmarshall.EnumArg(GeometricElementType), agmarshall.BStrArg,) }
    def remove_by_name(self, type:"GeometricElementType", name:str) -> None:
        """Remove an element from the collection using the element's path. The method does not throw an exception if the element with the specified name is not in the collection."""
        return self._intf.invoke(Graphics3DReferenceVectorGeometryToolComponentCollection._metadata, Graphics3DReferenceVectorGeometryToolComponentCollection._remove_by_name_metadata, type, name)

    _get_available_vector_geometry_tool_components_metadata = { "offset" : _get_available_vector_geometry_tool_components_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_vector_geometry_tool_components(self) -> list:
        """Get a list of available VGT elements that can be added to the collection."""
        return self._intf.get_property(Graphics3DReferenceVectorGeometryToolComponentCollection._metadata, Graphics3DReferenceVectorGeometryToolComponentCollection._get_available_vector_geometry_tool_components_metadata)

    _get_component_by_name_metadata = { "offset" : _get_component_by_name_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(GeometricElementType), agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_component_by_name(self, type:"GeometricElementType", name:str) -> "IGraphics3DReferenceAnalysisWorkbenchComponent":
        """Return an element with the specified name and type. The method throws an exception if the element with the specified name does not exist."""
        return self._intf.invoke(Graphics3DReferenceVectorGeometryToolComponentCollection._metadata, Graphics3DReferenceVectorGeometryToolComponentCollection._get_component_by_name_metadata, type, name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[available_vector_geometry_tool_components] = "available_vector_geometry_tool_components"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DReferenceVectorGeometryToolComponentCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DReferenceVectorGeometryToolComponentCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DReferenceVectorGeometryToolComponentCollection, [Graphics3DReferenceVectorGeometryToolComponentCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5696701162594606196, 4455297685718229408), Graphics3DReferenceVectorGeometryToolComponentCollection)
agcls.AgTypeNameMap["Graphics3DReferenceVectorGeometryToolComponentCollection"] = Graphics3DReferenceVectorGeometryToolComponentCollection

class Graphics3DReferenceVector(IGraphics3DReferenceAnalysisWorkbenchComponent, IDisplayTime, SupportsDeleteCallback):
    """Configure the visual representation of a Vector Geometry vector component in 3D."""

    _num_methods = 31
    _vtable_offset = IGraphics3DReferenceAnalysisWorkbenchComponent._vtable_offset + IGraphics3DReferenceAnalysisWorkbenchComponent._num_methods
    _get_draw_at_central_body_method_offset = 1
    _set_draw_at_central_body_method_offset = 2
    _get_show_right_ascension_declination_values_method_offset = 3
    _set_show_right_ascension_declination_values_method_offset = 4
    _get_right_ascension_declination_units_abbreviation_method_offset = 5
    _set_right_ascension_declination_units_abbreviation_method_offset = 6
    _get_show_magnitude_value_method_offset = 7
    _set_show_magnitude_value_method_offset = 8
    _get_magnitude_dimension_method_offset = 9
    _get_magnitude_units_abbreviation_method_offset = 10
    _set_magnitude_units_abbreviation_method_offset = 11
    _get_show_persistence_method_offset = 12
    _set_show_persistence_method_offset = 13
    _get_duration_method_offset = 14
    _set_duration_method_offset = 15
    _get_connect_method_offset = 16
    _set_connect_method_offset = 17
    _get_transparent_method_offset = 18
    _set_transparent_method_offset = 19
    _get_axes_method_offset = 20
    _set_axes_method_offset = 21
    _get_draw_at_point_method_offset = 22
    _set_draw_at_point_method_offset = 23
    _get_point_method_offset = 24
    _set_point_method_offset = 25
    _get_true_scale_method_offset = 26
    _set_true_scale_method_offset = 27
    _get_available_axes_method_offset = 28
    _get_available_points_method_offset = 29
    _get_thickness_method_offset = 30
    _set_thickness_method_offset = 31
    _metadata = {
        "iid_data" : (4832460278997984125, 1132853522211728814),
        "vtable_reference" : IGraphics3DReferenceAnalysisWorkbenchComponent._vtable_offset + IGraphics3DReferenceAnalysisWorkbenchComponent._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DReferenceVector)

    _get_draw_at_central_body_metadata = { "offset" : _get_draw_at_central_body_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def draw_at_central_body(self) -> bool:
        """Only available for geometric elements relating to objects. If selected, the geometric element is drawn at the central body or object."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_draw_at_central_body_metadata)

    _set_draw_at_central_body_metadata = { "offset" : _set_draw_at_central_body_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @draw_at_central_body.setter
    def draw_at_central_body(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_draw_at_central_body_metadata, value)

    _get_show_right_ascension_declination_values_metadata = { "offset" : _get_show_right_ascension_declination_values_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_right_ascension_declination_values(self) -> bool:
        """Displays right-ascension and declination values with the selected vector."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_show_right_ascension_declination_values_metadata)

    _set_show_right_ascension_declination_values_metadata = { "offset" : _set_show_right_ascension_declination_values_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_right_ascension_declination_values.setter
    def show_right_ascension_declination_values(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_show_right_ascension_declination_values_metadata, value)

    _get_right_ascension_declination_units_abbreviation_metadata = { "offset" : _get_right_ascension_declination_units_abbreviation_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def right_ascension_declination_units_abbreviation(self) -> str:
        """Right Ascension Declination Unit Abrv."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_right_ascension_declination_units_abbreviation_metadata)

    _set_right_ascension_declination_units_abbreviation_metadata = { "offset" : _set_right_ascension_declination_units_abbreviation_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @right_ascension_declination_units_abbreviation.setter
    def right_ascension_declination_units_abbreviation(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_right_ascension_declination_units_abbreviation_metadata, value)

    _get_show_magnitude_value_metadata = { "offset" : _get_show_magnitude_value_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_magnitude_value(self) -> bool:
        """If selected, the magnitude value is displayed on the selected geometric element."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_show_magnitude_value_metadata)

    _set_show_magnitude_value_metadata = { "offset" : _set_show_magnitude_value_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_magnitude_value.setter
    def show_magnitude_value(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_show_magnitude_value_metadata, value)

    _get_magnitude_dimension_metadata = { "offset" : _get_magnitude_dimension_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def magnitude_dimension(self) -> str:
        """The Magnitude Dimension."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_magnitude_dimension_metadata)

    _get_magnitude_units_abbreviation_metadata = { "offset" : _get_magnitude_units_abbreviation_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def magnitude_units_abbreviation(self) -> str:
        """Magnitude's current unit."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_magnitude_units_abbreviation_metadata)

    _set_magnitude_units_abbreviation_metadata = { "offset" : _set_magnitude_units_abbreviation_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @magnitude_units_abbreviation.setter
    def magnitude_units_abbreviation(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_magnitude_units_abbreviation_metadata, value)

    _get_show_persistence_metadata = { "offset" : _get_show_persistence_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_persistence(self) -> bool:
        """Successively displays geometric elements over the specified duration."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_show_persistence_metadata)

    _set_show_persistence_metadata = { "offset" : _set_show_persistence_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_persistence.setter
    def show_persistence(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_show_persistence_metadata, value)

    _get_duration_metadata = { "offset" : _get_duration_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def duration(self) -> float:
        """The length of time during which the geometric element is visible. Uses Time Dimension."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_duration_metadata)

    _set_duration_metadata = { "offset" : _set_duration_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @duration.setter
    def duration(self, value:float) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_duration_metadata, value)

    _get_connect_metadata = { "offset" : _get_connect_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VectorAxesConnectType),) }
    @property
    def connect(self) -> "VectorAxesConnectType":
        """Specify the method used for connecting geometric elements."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_connect_metadata)

    _set_connect_metadata = { "offset" : _set_connect_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VectorAxesConnectType),) }
    @connect.setter
    def connect(self, value:"VectorAxesConnectType") -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_connect_metadata, value)

    _get_transparent_metadata = { "offset" : _get_transparent_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def transparent(self) -> bool:
        """If selected, earlier occurrences of a geometric element display fade over time so that it is drawn as completely filled at the most recent animation time and fades as the animation moves forward."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_transparent_metadata)

    _set_transparent_metadata = { "offset" : _set_transparent_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @transparent.setter
    def transparent(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_transparent_metadata, value)

    _get_axes_metadata = { "offset" : _get_axes_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def axes(self) -> str:
        """The name of the axes or system used to define the coordinate frame associated with the selected vector or axis."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_axes_metadata)

    _set_axes_metadata = { "offset" : _set_axes_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @axes.setter
    def axes(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_axes_metadata, value)

    _get_draw_at_point_metadata = { "offset" : _get_draw_at_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def draw_at_point(self) -> bool:
        """If selected, the geometric element is drawn at the selected point."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_draw_at_point_metadata)

    _set_draw_at_point_metadata = { "offset" : _set_draw_at_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @draw_at_point.setter
    def draw_at_point(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_draw_at_point_metadata, value)

    _get_point_metadata = { "offset" : _get_point_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def point(self) -> str:
        """Displays a point at the current animation time."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_point_metadata)

    _set_point_metadata = { "offset" : _set_point_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @point.setter
    def point(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_point_metadata, value)

    _get_true_scale_metadata = { "offset" : _get_true_scale_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def true_scale(self) -> bool:
        """If the Scale Relative to Model is selected, the scale of the model is multiplied by the scale of the vector. If the Scale Relative to Model is not selected, you can set the size of the geometric elements independent of the model scale."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_true_scale_metadata)

    _set_true_scale_metadata = { "offset" : _set_true_scale_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @true_scale.setter
    def true_scale(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_true_scale_metadata, value)

    _get_available_axes_metadata = { "offset" : _get_available_axes_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_axes(self) -> list:
        """Return a safearray of available axes."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_available_axes_metadata)

    _get_available_points_metadata = { "offset" : _get_available_points_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_points(self) -> list:
        """Return a safearray of available points."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_available_points_metadata)

    _get_thickness_metadata = { "offset" : _get_thickness_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def thickness(self) -> float:
        """Thickness of line."""
        return self._intf.get_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._get_thickness_metadata)

    _set_thickness_metadata = { "offset" : _set_thickness_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @thickness.setter
    def thickness(self, value:float) -> None:
        return self._intf.set_property(Graphics3DReferenceVector._metadata, Graphics3DReferenceVector._set_thickness_metadata, value)

    _property_names[draw_at_central_body] = "draw_at_central_body"
    _property_names[show_right_ascension_declination_values] = "show_right_ascension_declination_values"
    _property_names[right_ascension_declination_units_abbreviation] = "right_ascension_declination_units_abbreviation"
    _property_names[show_magnitude_value] = "show_magnitude_value"
    _property_names[magnitude_dimension] = "magnitude_dimension"
    _property_names[magnitude_units_abbreviation] = "magnitude_units_abbreviation"
    _property_names[show_persistence] = "show_persistence"
    _property_names[duration] = "duration"
    _property_names[connect] = "connect"
    _property_names[transparent] = "transparent"
    _property_names[axes] = "axes"
    _property_names[draw_at_point] = "draw_at_point"
    _property_names[point] = "point"
    _property_names[true_scale] = "true_scale"
    _property_names[available_axes] = "available_axes"
    _property_names[available_points] = "available_points"
    _property_names[thickness] = "thickness"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DReferenceVector."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DReferenceVector)
        IGraphics3DReferenceAnalysisWorkbenchComponent.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DReferenceAnalysisWorkbenchComponent._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DReferenceVector, [Graphics3DReferenceVector, IGraphics3DReferenceAnalysisWorkbenchComponent, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((5667750635764847418, 18325268599754471578), Graphics3DReferenceVector)
agcls.AgTypeNameMap["Graphics3DReferenceVector"] = Graphics3DReferenceVector

class Graphics3DReferenceAxes(IGraphics3DReferenceAnalysisWorkbenchComponent, IDisplayTime, SupportsDeleteCallback):
    """Configure the visual representation of a Vector Geometry axes component in 3D."""

    _num_methods = 20
    _vtable_offset = IGraphics3DReferenceAnalysisWorkbenchComponent._vtable_offset + IGraphics3DReferenceAnalysisWorkbenchComponent._num_methods
    _get_draw_at_central_body_method_offset = 1
    _set_draw_at_central_body_method_offset = 2
    _get_axes_method_offset = 3
    _set_axes_method_offset = 4
    _get_show_persistence_method_offset = 5
    _set_show_persistence_method_offset = 6
    _get_duration_method_offset = 7
    _set_duration_method_offset = 8
    _get_connect_method_offset = 9
    _set_connect_method_offset = 10
    _get_transparent_method_offset = 11
    _set_transparent_method_offset = 12
    _get_available_axes_method_offset = 13
    _get_draw_at_point_method_offset = 14
    _set_draw_at_point_method_offset = 15
    _get_point_method_offset = 16
    _set_point_method_offset = 17
    _get_available_points_method_offset = 18
    _get_thickness_method_offset = 19
    _set_thickness_method_offset = 20
    _metadata = {
        "iid_data" : (5555175870376089791, 17729409965982310789),
        "vtable_reference" : IGraphics3DReferenceAnalysisWorkbenchComponent._vtable_offset + IGraphics3DReferenceAnalysisWorkbenchComponent._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DReferenceAxes)

    _get_draw_at_central_body_metadata = { "offset" : _get_draw_at_central_body_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def draw_at_central_body(self) -> bool:
        """Only available for geometric elements relating to objects. If selected, the geometric element is drawn at the central body or object."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_draw_at_central_body_metadata)

    _set_draw_at_central_body_metadata = { "offset" : _set_draw_at_central_body_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @draw_at_central_body.setter
    def draw_at_central_body(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._set_draw_at_central_body_metadata, value)

    _get_axes_metadata = { "offset" : _get_axes_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def axes(self) -> str:
        """The name of the axes or system used to define the coordinate frame associated with the selected vector or axis."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_axes_metadata)

    _set_axes_metadata = { "offset" : _set_axes_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @axes.setter
    def axes(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._set_axes_metadata, value)

    _get_show_persistence_metadata = { "offset" : _get_show_persistence_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_persistence(self) -> bool:
        """Successively displays geometric elements over the specified duration."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_show_persistence_metadata)

    _set_show_persistence_metadata = { "offset" : _set_show_persistence_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_persistence.setter
    def show_persistence(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._set_show_persistence_metadata, value)

    _get_duration_metadata = { "offset" : _get_duration_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def duration(self) -> float:
        """The length of time during which the geometric element is visible. Uses Time Dimension."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_duration_metadata)

    _set_duration_metadata = { "offset" : _set_duration_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @duration.setter
    def duration(self, value:float) -> None:
        return self._intf.set_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._set_duration_metadata, value)

    _get_connect_metadata = { "offset" : _get_connect_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VectorAxesConnectType),) }
    @property
    def connect(self) -> "VectorAxesConnectType":
        """Specify the method used for connecting geometric elements."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_connect_metadata)

    _set_connect_metadata = { "offset" : _set_connect_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VectorAxesConnectType),) }
    @connect.setter
    def connect(self, value:"VectorAxesConnectType") -> None:
        return self._intf.set_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._set_connect_metadata, value)

    _get_transparent_metadata = { "offset" : _get_transparent_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def transparent(self) -> bool:
        """If selected, earlier occurrences of a geometric element display fade over time so that it is drawn as completely filled at the most recent animation time and fades as the animation moves forward."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_transparent_metadata)

    _set_transparent_metadata = { "offset" : _set_transparent_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @transparent.setter
    def transparent(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._set_transparent_metadata, value)

    _get_available_axes_metadata = { "offset" : _get_available_axes_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_axes(self) -> list:
        """Return an array of available Axes."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_available_axes_metadata)

    _get_draw_at_point_metadata = { "offset" : _get_draw_at_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def draw_at_point(self) -> bool:
        """If selected, the geometric element is drawn at the selected point."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_draw_at_point_metadata)

    _set_draw_at_point_metadata = { "offset" : _set_draw_at_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @draw_at_point.setter
    def draw_at_point(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._set_draw_at_point_metadata, value)

    _get_point_metadata = { "offset" : _get_point_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def point(self) -> str:
        """Displays a point at the current animation time."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_point_metadata)

    _set_point_metadata = { "offset" : _set_point_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @point.setter
    def point(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._set_point_metadata, value)

    _get_available_points_metadata = { "offset" : _get_available_points_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_points(self) -> list:
        """Return a safearray of available points."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_available_points_metadata)

    _get_thickness_metadata = { "offset" : _get_thickness_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def thickness(self) -> float:
        """Thickness of line."""
        return self._intf.get_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._get_thickness_metadata)

    _set_thickness_metadata = { "offset" : _set_thickness_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @thickness.setter
    def thickness(self, value:float) -> None:
        return self._intf.set_property(Graphics3DReferenceAxes._metadata, Graphics3DReferenceAxes._set_thickness_metadata, value)

    _property_names[draw_at_central_body] = "draw_at_central_body"
    _property_names[axes] = "axes"
    _property_names[show_persistence] = "show_persistence"
    _property_names[duration] = "duration"
    _property_names[connect] = "connect"
    _property_names[transparent] = "transparent"
    _property_names[available_axes] = "available_axes"
    _property_names[draw_at_point] = "draw_at_point"
    _property_names[point] = "point"
    _property_names[available_points] = "available_points"
    _property_names[thickness] = "thickness"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DReferenceAxes."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DReferenceAxes)
        IGraphics3DReferenceAnalysisWorkbenchComponent.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DReferenceAnalysisWorkbenchComponent._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DReferenceAxes, [Graphics3DReferenceAxes, IGraphics3DReferenceAnalysisWorkbenchComponent, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((4917439374152128972, 13339099992611637166), Graphics3DReferenceAxes)
agcls.AgTypeNameMap["Graphics3DReferenceAxes"] = Graphics3DReferenceAxes

class Graphics3DReferenceAngle(IGraphics3DReferenceAnalysisWorkbenchComponent, IDisplayTime, SupportsDeleteCallback):
    """Configure the visual representation of a Vector Geometry angle component in 3D."""

    _num_methods = 6
    _vtable_offset = IGraphics3DReferenceAnalysisWorkbenchComponent._vtable_offset + IGraphics3DReferenceAnalysisWorkbenchComponent._num_methods
    _get_show_angle_value_method_offset = 1
    _set_show_angle_value_method_offset = 2
    _get_angle_unit_abbreviation_method_offset = 3
    _set_angle_unit_abbreviation_method_offset = 4
    _get_show_dihedral_angle_supporting_arcs_method_offset = 5
    _set_show_dihedral_angle_supporting_arcs_method_offset = 6
    _metadata = {
        "iid_data" : (5597816062509792911, 4021949286562772146),
        "vtable_reference" : IGraphics3DReferenceAnalysisWorkbenchComponent._vtable_offset + IGraphics3DReferenceAnalysisWorkbenchComponent._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DReferenceAngle)

    _get_show_angle_value_metadata = { "offset" : _get_show_angle_value_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_angle_value(self) -> bool:
        """If selected, select a unit from the drop-down menu. Only available for angles."""
        return self._intf.get_property(Graphics3DReferenceAngle._metadata, Graphics3DReferenceAngle._get_show_angle_value_metadata)

    _set_show_angle_value_metadata = { "offset" : _set_show_angle_value_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_angle_value.setter
    def show_angle_value(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceAngle._metadata, Graphics3DReferenceAngle._set_show_angle_value_metadata, value)

    _get_angle_unit_abbreviation_metadata = { "offset" : _get_angle_unit_abbreviation_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def angle_unit_abbreviation(self) -> str:
        """The angle unit abbreviation."""
        return self._intf.get_property(Graphics3DReferenceAngle._metadata, Graphics3DReferenceAngle._get_angle_unit_abbreviation_metadata)

    _set_angle_unit_abbreviation_metadata = { "offset" : _set_angle_unit_abbreviation_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @angle_unit_abbreviation.setter
    def angle_unit_abbreviation(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferenceAngle._metadata, Graphics3DReferenceAngle._set_angle_unit_abbreviation_metadata, value)

    _get_show_dihedral_angle_supporting_arcs_metadata = { "offset" : _get_show_dihedral_angle_supporting_arcs_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_dihedral_angle_supporting_arcs(self) -> bool:
        """Select to show dihedral angle supporting arcs. Only available for angles."""
        return self._intf.get_property(Graphics3DReferenceAngle._metadata, Graphics3DReferenceAngle._get_show_dihedral_angle_supporting_arcs_metadata)

    _set_show_dihedral_angle_supporting_arcs_metadata = { "offset" : _set_show_dihedral_angle_supporting_arcs_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_dihedral_angle_supporting_arcs.setter
    def show_dihedral_angle_supporting_arcs(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferenceAngle._metadata, Graphics3DReferenceAngle._set_show_dihedral_angle_supporting_arcs_metadata, value)

    _property_names[show_angle_value] = "show_angle_value"
    _property_names[angle_unit_abbreviation] = "angle_unit_abbreviation"
    _property_names[show_dihedral_angle_supporting_arcs] = "show_dihedral_angle_supporting_arcs"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DReferenceAngle."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DReferenceAngle)
        IGraphics3DReferenceAnalysisWorkbenchComponent.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DReferenceAnalysisWorkbenchComponent._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DReferenceAngle, [Graphics3DReferenceAngle, IGraphics3DReferenceAnalysisWorkbenchComponent, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((4614858691963116183, 10865204772763763372), Graphics3DReferenceAngle)
agcls.AgTypeNameMap["Graphics3DReferenceAngle"] = Graphics3DReferenceAngle

class Graphics3DReferencePlane(IGraphics3DReferenceAnalysisWorkbenchComponent, IDisplayTime, SupportsDeleteCallback):
    """Configure the visual representation of a Vector Geometry plane component in 3D."""

    _num_methods = 16
    _vtable_offset = IGraphics3DReferenceAnalysisWorkbenchComponent._vtable_offset + IGraphics3DReferenceAnalysisWorkbenchComponent._num_methods
    _get_show_axis_labels_method_offset = 1
    _set_show_axis_labels_method_offset = 2
    _get_is_plane_transparent_method_offset = 3
    _set_is_plane_transparent_method_offset = 4
    _get_size_method_offset = 5
    _set_size_method_offset = 6
    _get_transparency_method_offset = 7
    _set_transparency_method_offset = 8
    _get_draw_at_object_method_offset = 9
    _set_draw_at_object_method_offset = 10
    _get_show_rectangular_grid_method_offset = 11
    _set_show_rectangular_grid_method_offset = 12
    _get_show_circle_grid_method_offset = 13
    _set_show_circle_grid_method_offset = 14
    _get_plane_grid_spacing_method_offset = 15
    _set_plane_grid_spacing_method_offset = 16
    _metadata = {
        "iid_data" : (5321980323872903493, 15883698277179338396),
        "vtable_reference" : IGraphics3DReferenceAnalysisWorkbenchComponent._vtable_offset + IGraphics3DReferenceAnalysisWorkbenchComponent._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DReferencePlane)

    _get_show_axis_labels_metadata = { "offset" : _get_show_axis_labels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_axis_labels(self) -> bool:
        """Displays labels for the selected axis. Only available for planes."""
        return self._intf.get_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._get_show_axis_labels_metadata)

    _set_show_axis_labels_metadata = { "offset" : _set_show_axis_labels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_axis_labels.setter
    def show_axis_labels(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._set_show_axis_labels_metadata, value)

    _get_is_plane_transparent_metadata = { "offset" : _get_is_plane_transparent_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_plane_transparent(self) -> bool:
        """If enabled, the plane is see-through; otherwise it is opaque. Only available for planes."""
        return self._intf.get_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._get_is_plane_transparent_metadata)

    _set_is_plane_transparent_metadata = { "offset" : _set_is_plane_transparent_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @is_plane_transparent.setter
    def is_plane_transparent(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._set_is_plane_transparent_metadata, value)

    _get_size_metadata = { "offset" : _get_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def size(self) -> float:
        """Get or set the size of the selected geometric plane or point. Dimensionless."""
        return self._intf.get_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._get_size_metadata)

    _set_size_metadata = { "offset" : _set_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @size.setter
    def size(self, value:float) -> None:
        return self._intf.set_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._set_size_metadata, value)

    _get_transparency_metadata = { "offset" : _get_transparency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def transparency(self) -> float:
        """Use the slide control to set the transparency of the plane. Transparency can be adjusted from 0 to 100 percent, where 100 percent is completely invisible. Only available for planes. Dimensionless."""
        return self._intf.get_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._get_transparency_metadata)

    _set_transparency_metadata = { "offset" : _set_transparency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @transparency.setter
    def transparency(self, value:float) -> None:
        return self._intf.set_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._set_transparency_metadata, value)

    _get_draw_at_object_metadata = { "offset" : _get_draw_at_object_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def draw_at_object(self) -> bool:
        """Only available for geometric elements relating to objects. If selected, the geometric element is drawn at the central body or object."""
        return self._intf.get_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._get_draw_at_object_metadata)

    _set_draw_at_object_metadata = { "offset" : _set_draw_at_object_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @draw_at_object.setter
    def draw_at_object(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._set_draw_at_object_metadata, value)

    _get_show_rectangular_grid_metadata = { "offset" : _get_show_rectangular_grid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_rectangular_grid(self) -> bool:
        """If enabled the rectangle grid is visible."""
        return self._intf.get_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._get_show_rectangular_grid_metadata)

    _set_show_rectangular_grid_metadata = { "offset" : _set_show_rectangular_grid_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_rectangular_grid.setter
    def show_rectangular_grid(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._set_show_rectangular_grid_metadata, value)

    _get_show_circle_grid_metadata = { "offset" : _get_show_circle_grid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_circle_grid(self) -> bool:
        """If enabled the circle grid is visible."""
        return self._intf.get_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._get_show_circle_grid_metadata)

    _set_show_circle_grid_metadata = { "offset" : _set_show_circle_grid_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_circle_grid.setter
    def show_circle_grid(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._set_show_circle_grid_metadata, value)

    _get_plane_grid_spacing_metadata = { "offset" : _get_plane_grid_spacing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def plane_grid_spacing(self) -> float:
        """Spacing between grid points. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._get_plane_grid_spacing_metadata)

    _set_plane_grid_spacing_metadata = { "offset" : _set_plane_grid_spacing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @plane_grid_spacing.setter
    def plane_grid_spacing(self, value:float) -> None:
        return self._intf.set_property(Graphics3DReferencePlane._metadata, Graphics3DReferencePlane._set_plane_grid_spacing_metadata, value)

    _property_names[show_axis_labels] = "show_axis_labels"
    _property_names[is_plane_transparent] = "is_plane_transparent"
    _property_names[size] = "size"
    _property_names[transparency] = "transparency"
    _property_names[draw_at_object] = "draw_at_object"
    _property_names[show_rectangular_grid] = "show_rectangular_grid"
    _property_names[show_circle_grid] = "show_circle_grid"
    _property_names[plane_grid_spacing] = "plane_grid_spacing"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DReferencePlane."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DReferencePlane)
        IGraphics3DReferenceAnalysisWorkbenchComponent.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DReferenceAnalysisWorkbenchComponent._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DReferencePlane, [Graphics3DReferencePlane, IGraphics3DReferenceAnalysisWorkbenchComponent, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((4711019140077687594, 11076444861690869438), Graphics3DReferencePlane)
agcls.AgTypeNameMap["Graphics3DReferencePlane"] = Graphics3DReferencePlane

class Graphics3DReferencePoint(IGraphics3DReferenceAnalysisWorkbenchComponent, IDisplayTime, SupportsDeleteCallback):
    """Configure the visual representation of a Vector Geometry point component in 3D."""

    _num_methods = 19
    _vtable_offset = IGraphics3DReferenceAnalysisWorkbenchComponent._vtable_offset + IGraphics3DReferenceAnalysisWorkbenchComponent._num_methods
    _get_trajectory_type_method_offset = 1
    _set_trajectory_type_method_offset = 2
    _get_show_right_ascension_declination_values_method_offset = 3
    _set_show_right_ascension_declination_values_method_offset = 4
    _get_right_ascension_declination_units_abbreviation_method_offset = 5
    _set_right_ascension_declination_units_abbreviation_method_offset = 6
    _get_show_magnitude_value_method_offset = 7
    _set_show_magnitude_value_method_offset = 8
    _get_magnitude_units_abbreviation_method_offset = 9
    _set_magnitude_units_abbreviation_method_offset = 10
    _get_show_cartesian_value_method_offset = 11
    _set_show_cartesian_value_method_offset = 12
    _get_cartesian_units_abbreviation_method_offset = 13
    _set_cartesian_units_abbreviation_method_offset = 14
    _get_system_method_offset = 15
    _set_system_method_offset = 16
    _get_size_method_offset = 17
    _set_size_method_offset = 18
    _get_available_systems_method_offset = 19
    _metadata = {
        "iid_data" : (5535717795553618063, 7975606792961594039),
        "vtable_reference" : IGraphics3DReferenceAnalysisWorkbenchComponent._vtable_offset + IGraphics3DReferenceAnalysisWorkbenchComponent._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DReferencePoint)

    _get_trajectory_type_metadata = { "offset" : _get_trajectory_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TrajectoryType),) }
    @property
    def trajectory_type(self) -> "TrajectoryType":
        """Specify the arrow type used to represent the geometric element."""
        return self._intf.get_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._get_trajectory_type_metadata)

    _set_trajectory_type_metadata = { "offset" : _set_trajectory_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TrajectoryType),) }
    @trajectory_type.setter
    def trajectory_type(self, value:"TrajectoryType") -> None:
        return self._intf.set_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._set_trajectory_type_metadata, value)

    _get_show_right_ascension_declination_values_metadata = { "offset" : _get_show_right_ascension_declination_values_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_right_ascension_declination_values(self) -> bool:
        """Displays right-ascension and declination values with the selected point."""
        return self._intf.get_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._get_show_right_ascension_declination_values_metadata)

    _set_show_right_ascension_declination_values_metadata = { "offset" : _set_show_right_ascension_declination_values_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_right_ascension_declination_values.setter
    def show_right_ascension_declination_values(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._set_show_right_ascension_declination_values_metadata, value)

    _get_right_ascension_declination_units_abbreviation_metadata = { "offset" : _get_right_ascension_declination_units_abbreviation_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def right_ascension_declination_units_abbreviation(self) -> str:
        """Right Ascension Declination Unit Abrv."""
        return self._intf.get_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._get_right_ascension_declination_units_abbreviation_metadata)

    _set_right_ascension_declination_units_abbreviation_metadata = { "offset" : _set_right_ascension_declination_units_abbreviation_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @right_ascension_declination_units_abbreviation.setter
    def right_ascension_declination_units_abbreviation(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._set_right_ascension_declination_units_abbreviation_metadata, value)

    _get_show_magnitude_value_metadata = { "offset" : _get_show_magnitude_value_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_magnitude_value(self) -> bool:
        """If selected, the magnitude value is displayed on the selected geometric element."""
        return self._intf.get_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._get_show_magnitude_value_metadata)

    _set_show_magnitude_value_metadata = { "offset" : _set_show_magnitude_value_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_magnitude_value.setter
    def show_magnitude_value(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._set_show_magnitude_value_metadata, value)

    _get_magnitude_units_abbreviation_metadata = { "offset" : _get_magnitude_units_abbreviation_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def magnitude_units_abbreviation(self) -> str:
        """The Magnitude Unit abrv."""
        return self._intf.get_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._get_magnitude_units_abbreviation_metadata)

    _set_magnitude_units_abbreviation_metadata = { "offset" : _set_magnitude_units_abbreviation_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @magnitude_units_abbreviation.setter
    def magnitude_units_abbreviation(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._set_magnitude_units_abbreviation_metadata, value)

    _get_show_cartesian_value_metadata = { "offset" : _get_show_cartesian_value_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_cartesian_value(self) -> bool:
        """If selected, the cartesian value is displayed on the selected geometric element."""
        return self._intf.get_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._get_show_cartesian_value_metadata)

    _set_show_cartesian_value_metadata = { "offset" : _set_show_cartesian_value_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_cartesian_value.setter
    def show_cartesian_value(self, value:bool) -> None:
        return self._intf.set_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._set_show_cartesian_value_metadata, value)

    _get_cartesian_units_abbreviation_metadata = { "offset" : _get_cartesian_units_abbreviation_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def cartesian_units_abbreviation(self) -> str:
        """Cartesian Unit Abrv uses Distance."""
        return self._intf.get_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._get_cartesian_units_abbreviation_metadata)

    _set_cartesian_units_abbreviation_metadata = { "offset" : _set_cartesian_units_abbreviation_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @cartesian_units_abbreviation.setter
    def cartesian_units_abbreviation(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._set_cartesian_units_abbreviation_metadata, value)

    _get_system_metadata = { "offset" : _get_system_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def system(self) -> str:
        """The name of the system used to define the coordinate frame associated with the selected RefCrdn."""
        return self._intf.get_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._get_system_metadata)

    _set_system_metadata = { "offset" : _set_system_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @system.setter
    def system(self, value:str) -> None:
        return self._intf.set_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._set_system_metadata, value)

    _get_size_metadata = { "offset" : _get_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def size(self) -> float:
        """Get or set the size of the selected geometric plane or point. Dimensionless."""
        return self._intf.get_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._get_size_metadata)

    _set_size_metadata = { "offset" : _set_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @size.setter
    def size(self, value:float) -> None:
        return self._intf.set_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._set_size_metadata, value)

    _get_available_systems_metadata = { "offset" : _get_available_systems_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_systems(self) -> list:
        """Return an array of available Systems."""
        return self._intf.get_property(Graphics3DReferencePoint._metadata, Graphics3DReferencePoint._get_available_systems_metadata)

    _property_names[trajectory_type] = "trajectory_type"
    _property_names[show_right_ascension_declination_values] = "show_right_ascension_declination_values"
    _property_names[right_ascension_declination_units_abbreviation] = "right_ascension_declination_units_abbreviation"
    _property_names[show_magnitude_value] = "show_magnitude_value"
    _property_names[magnitude_units_abbreviation] = "magnitude_units_abbreviation"
    _property_names[show_cartesian_value] = "show_cartesian_value"
    _property_names[cartesian_units_abbreviation] = "cartesian_units_abbreviation"
    _property_names[system] = "system"
    _property_names[size] = "size"
    _property_names[available_systems] = "available_systems"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DReferencePoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DReferencePoint)
        IGraphics3DReferenceAnalysisWorkbenchComponent.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DReferenceAnalysisWorkbenchComponent._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DReferencePoint, [Graphics3DReferencePoint, IGraphics3DReferenceAnalysisWorkbenchComponent, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((4788067620178629544, 13448743290130896573), Graphics3DReferencePoint)
agcls.AgTypeNameMap["Graphics3DReferencePoint"] = Graphics3DReferencePoint

class TargetGraphics(SupportsDeleteCallback):
    """TargetGraphics used to access the 2-d graphics properties for a Target object."""

    _num_methods = 22
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_from_scenario_method_offset = 1
    _set_inherit_from_scenario_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_marker_style_method_offset = 5
    _set_marker_style_method_offset = 6
    _get_show_label_method_offset = 7
    _set_show_label_method_offset = 8
    _get_az_el_mask_method_offset = 9
    _get_contours_method_offset = 10
    _get_use_instance_name_label_method_offset = 11
    _set_use_instance_name_label_method_offset = 12
    _get_label_name_method_offset = 13
    _set_label_name_method_offset = 14
    _get_label_notes_method_offset = 15
    _get_marker_color_method_offset = 16
    _set_marker_color_method_offset = 17
    _get_label_color_method_offset = 18
    _set_label_color_method_offset = 19
    _get_show_graphics_method_offset = 20
    _set_show_graphics_method_offset = 21
    _get_radar_cross_section_method_offset = 22
    _metadata = {
        "iid_data" : (4813261790948524658, 2995281032322707364),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TargetGraphics)

    _get_inherit_from_scenario_metadata = { "offset" : _get_inherit_from_scenario_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_from_scenario(self) -> bool:
        """Inheritable graphics attributes are inherited from the Scenario object instead of being set locally for the facility, place or target."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_inherit_from_scenario_metadata)

    _set_inherit_from_scenario_metadata = { "offset" : _set_inherit_from_scenario_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_from_scenario.setter
    def inherit_from_scenario(self, inherit:bool) -> None:
        return self._intf.set_property(TargetGraphics._metadata, TargetGraphics._set_inherit_from_scenario_metadata, inherit)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """The color in which the marker and label for the object is displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(TargetGraphics._metadata, TargetGraphics._set_color_metadata, color)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """The style of the marker representing the object in the 2D Graphics window. A member of the MarkerStyle enumeration."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, marker_style:str) -> None:
        return self._intf.set_property(TargetGraphics._metadata, TargetGraphics._set_marker_style_metadata, marker_style)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Display the label for the facility, place or target."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, show_label:bool) -> None:
        return self._intf.set_property(TargetGraphics._metadata, TargetGraphics._set_show_label_metadata, show_label)

    _get_az_el_mask_metadata = { "offset" : _get_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def az_el_mask(self) -> "BasicAzElMask":
        """The graphics az-el mask properties for the facility, place or target."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_az_el_mask_metadata)

    _get_contours_metadata = { "offset" : _get_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def contours(self) -> "Graphics2DRangeContours":
        """The range contours properties for the facility, place or target."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_contours_metadata)

    _get_use_instance_name_label_metadata = { "offset" : _get_use_instance_name_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_instance_name_label(self) -> bool:
        """Use the name of the object as the label for the facility, place or target."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_use_instance_name_label_metadata)

    _set_use_instance_name_label_metadata = { "offset" : _set_use_instance_name_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_instance_name_label.setter
    def use_instance_name_label(self, value:bool) -> None:
        return self._intf.set_property(TargetGraphics._metadata, TargetGraphics._set_use_instance_name_label_metadata, value)

    _get_label_name_metadata = { "offset" : _get_label_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label_name(self) -> str:
        """Use a user-specified name as the label for the facility, place or target. This does not have to correspond to the name of the object in the Object Browser."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_label_name_metadata)

    _set_label_name_metadata = { "offset" : _set_label_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label_name.setter
    def label_name(self, value:str) -> None:
        return self._intf.set_property(TargetGraphics._metadata, TargetGraphics._set_label_name_metadata, value)

    _get_label_notes_metadata = { "offset" : _get_label_notes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_notes(self) -> "LabelNoteCollection":
        """Notes attached to the object and displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_label_notes_metadata)

    _get_marker_color_metadata = { "offset" : _get_marker_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def marker_color(self) -> agcolor.Color:
        """The color in which the marker for the object is displayed."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_marker_color_metadata)

    _set_marker_color_metadata = { "offset" : _set_marker_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @marker_color.setter
    def marker_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(TargetGraphics._metadata, TargetGraphics._set_marker_color_metadata, color)

    _get_label_color_metadata = { "offset" : _get_label_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def label_color(self) -> agcolor.Color:
        """The color in which the label for the object is displayed."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_label_color_metadata)

    _set_label_color_metadata = { "offset" : _set_label_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @label_color.setter
    def label_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(TargetGraphics._metadata, TargetGraphics._set_label_color_metadata, color)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the target are visible."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(TargetGraphics._metadata, TargetGraphics._set_show_graphics_metadata, is_visible)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(TargetGraphics._metadata, TargetGraphics._get_radar_cross_section_metadata)

    _property_names[inherit_from_scenario] = "inherit_from_scenario"
    _property_names[color] = "color"
    _property_names[marker_style] = "marker_style"
    _property_names[show_label] = "show_label"
    _property_names[az_el_mask] = "az_el_mask"
    _property_names[contours] = "contours"
    _property_names[use_instance_name_label] = "use_instance_name_label"
    _property_names[label_name] = "label_name"
    _property_names[label_notes] = "label_notes"
    _property_names[marker_color] = "marker_color"
    _property_names[label_color] = "label_color"
    _property_names[show_graphics] = "show_graphics"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type TargetGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TargetGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TargetGraphics, [TargetGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5365189935308455135, 16081474093370033309), TargetGraphics)
agcls.AgTypeNameMap["TargetGraphics"] = TargetGraphics

class TargetGraphics3D(SupportsDeleteCallback):
    """TargetGraphics3D Interface. For 3D properties of a Target object."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_model_method_offset = 1
    _get_offsets_method_offset = 2
    _get_range_contours_method_offset = 3
    _get_data_displays_method_offset = 4
    _get_vector_method_offset = 5
    _get_az_el_mask_method_offset = 6
    _get_model_pointing_method_offset = 7
    _get_uncertainty_area_label_swap_distance_method_offset = 8
    _get_vapor_trail_method_offset = 9
    _get_radar_cross_section_method_offset = 10
    _metadata = {
        "iid_data" : (5444584010678184395, 17510174959078593669),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TargetGraphics3D)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "PointTargetGraphics3DModel":
        """Return the 3D model properties."""
        return self._intf.get_property(TargetGraphics3D._metadata, TargetGraphics3D._get_model_metadata)

    _get_offsets_metadata = { "offset" : _get_offsets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def offsets(self) -> "Graphics3DOffset":
        """Return the 3D offsets properties."""
        return self._intf.get_property(TargetGraphics3D._metadata, TargetGraphics3D._get_offsets_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics3DRangeContours":
        """Return the 3D range contours properties."""
        return self._intf.get_property(TargetGraphics3D._metadata, TargetGraphics3D._get_range_contours_metadata)

    _get_data_displays_metadata = { "offset" : _get_data_displays_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_displays(self) -> "Graphics3DDataDisplayCollection":
        """Return the 3D data display properties."""
        return self._intf.get_property(TargetGraphics3D._metadata, TargetGraphics3D._get_data_displays_metadata)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Return the 3D vectorector properties."""
        return self._intf.get_property(TargetGraphics3D._metadata, TargetGraphics3D._get_vector_metadata)

    _get_az_el_mask_metadata = { "offset" : _get_az_el_mask_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def az_el_mask(self) -> "Graphics3DAzElMask":
        """Return the 3D AzElMask properties."""
        return self._intf.get_property(TargetGraphics3D._metadata, TargetGraphics3D._get_az_el_mask_metadata)

    _get_model_pointing_metadata = { "offset" : _get_model_pointing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_pointing(self) -> "Graphics3DModelPointing":
        """Return 3D model pointing properties used to point parts of a target model toward a target, such as the Sun or Earth."""
        return self._intf.get_property(TargetGraphics3D._metadata, TargetGraphics3D._get_model_pointing_metadata)

    _get_uncertainty_area_label_swap_distance_metadata = { "offset" : _get_uncertainty_area_label_swap_distance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def uncertainty_area_label_swap_distance(self) -> "Graphics3DLabelSwapDistance":
        """Area of uncertainty label swap distance."""
        return self._intf.get_property(TargetGraphics3D._metadata, TargetGraphics3D._get_uncertainty_area_label_swap_distance_metadata)

    _get_vapor_trail_metadata = { "offset" : _get_vapor_trail_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vapor_trail(self) -> "Graphics3DVaporTrail":
        """Vapor trail attributes."""
        return self._intf.get_property(TargetGraphics3D._metadata, TargetGraphics3D._get_vapor_trail_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics3D":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(TargetGraphics3D._metadata, TargetGraphics3D._get_radar_cross_section_metadata)

    _property_names[model] = "model"
    _property_names[offsets] = "offsets"
    _property_names[range_contours] = "range_contours"
    _property_names[data_displays] = "data_displays"
    _property_names[vector] = "vector"
    _property_names[az_el_mask] = "az_el_mask"
    _property_names[model_pointing] = "model_pointing"
    _property_names[uncertainty_area_label_swap_distance] = "uncertainty_area_label_swap_distance"
    _property_names[vapor_trail] = "vapor_trail"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type TargetGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TargetGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TargetGraphics3D, [TargetGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5426284043590765787, 3413083429466418584), TargetGraphics3D)
agcls.AgTypeNameMap["TargetGraphics3D"] = TargetGraphics3D

class PointTargetGraphics3DModel(IGraphics3DModel, SupportsDeleteCallback):
    """PointTargetGraphics3DModel used to access the 3D model attributes."""

    _num_methods = 8
    _vtable_offset = IGraphics3DModel._vtable_offset + IGraphics3DModel._num_methods
    _get_marker_method_offset = 1
    _get_show_point_method_offset = 2
    _set_show_point_method_offset = 3
    _get_point_size_method_offset = 4
    _set_point_size_method_offset = 5
    _get_gltf_reflection_map_type_method_offset = 6
    _set_gltf_reflection_map_type_method_offset = 7
    _get_gltf_image_based_method_offset = 8
    _metadata = {
        "iid_data" : (4671271387614949971, 10482702235781070271),
        "vtable_reference" : IGraphics3DModel._vtable_offset + IGraphics3DModel._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PointTargetGraphics3DModel)

    _get_marker_metadata = { "offset" : _get_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def marker(self) -> "Graphics3DMarker":
        """VO Marker attributes."""
        return self._intf.get_property(PointTargetGraphics3DModel._metadata, PointTargetGraphics3DModel._get_marker_metadata)

    _get_show_point_metadata = { "offset" : _get_show_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_point(self) -> bool:
        """Whether the point that is shown at certain viewing distances to represent an object, is visible."""
        return self._intf.get_property(PointTargetGraphics3DModel._metadata, PointTargetGraphics3DModel._get_show_point_metadata)

    _set_show_point_metadata = { "offset" : _set_show_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_point.setter
    def show_point(self, show_point:bool) -> None:
        return self._intf.set_property(PointTargetGraphics3DModel._metadata, PointTargetGraphics3DModel._set_show_point_metadata, show_point)

    _get_point_size_metadata = { "offset" : _get_point_size_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def point_size(self) -> typing.Any:
        """A size of the point (in pixels)."""
        return self._intf.get_property(PointTargetGraphics3DModel._metadata, PointTargetGraphics3DModel._get_point_size_metadata)

    _set_point_size_metadata = { "offset" : _set_point_size_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @point_size.setter
    def point_size(self, point_size:typing.Any) -> None:
        return self._intf.set_property(PointTargetGraphics3DModel._metadata, PointTargetGraphics3DModel._set_point_size_metadata, point_size)

    _get_gltf_reflection_map_type_metadata = { "offset" : _get_gltf_reflection_map_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ModelGltfReflectionMapType),) }
    @property
    def gltf_reflection_map_type(self) -> "ModelGltfReflectionMapType":
        """Get or set the glTF reflection map type property. A member of the ModelGltfReflectionMapType enumeration."""
        return self._intf.get_property(PointTargetGraphics3DModel._metadata, PointTargetGraphics3DModel._get_gltf_reflection_map_type_metadata)

    _set_gltf_reflection_map_type_metadata = { "offset" : _set_gltf_reflection_map_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ModelGltfReflectionMapType),) }
    @gltf_reflection_map_type.setter
    def gltf_reflection_map_type(self, type:"ModelGltfReflectionMapType") -> None:
        return self._intf.set_property(PointTargetGraphics3DModel._metadata, PointTargetGraphics3DModel._set_gltf_reflection_map_type_metadata, type)

    _get_gltf_image_based_metadata = { "offset" : _get_gltf_image_based_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def gltf_image_based(self) -> "Graphics3DModelglTFImageBased":
        """Get the glTF Image Based properties."""
        return self._intf.get_property(PointTargetGraphics3DModel._metadata, PointTargetGraphics3DModel._get_gltf_image_based_metadata)

    _property_names[marker] = "marker"
    _property_names[show_point] = "show_point"
    _property_names[point_size] = "point_size"
    _property_names[gltf_reflection_map_type] = "gltf_reflection_map_type"
    _property_names[gltf_image_based] = "gltf_image_based"

    def __init__(self, source_object=None):
        """Construct an object of type PointTargetGraphics3DModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PointTargetGraphics3DModel)
        IGraphics3DModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PointTargetGraphics3DModel, [PointTargetGraphics3DModel, IGraphics3DModel])

agcls.AgClassCatalog.add_catalog_entry((5477578664503651505, 13152078993141991816), PointTargetGraphics3DModel)
agcls.AgTypeNameMap["PointTargetGraphics3DModel"] = PointTargetGraphics3DModel

class ObjectLinkCollection(SupportsDeleteCallback):
    """ObjectLinkCollection represents a collection of names of STK objects that are available in the current scenario."""

    _num_methods = 12
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _get__new_enum_method_offset = 2
    _item_method_offset = 3
    _add_method_offset = 4
    _remove_method_offset = 5
    _remove_all_method_offset = 6
    _remove_name_method_offset = 7
    _get_available_objects_method_offset = 8
    _add_object_method_offset = 9
    _remove_object_method_offset = 10
    _contains_method_offset = 11
    _index_of_method_offset = 12
    _metadata = {
        "iid_data" : (5063810443674744790, 8545288884069043114),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ObjectLinkCollection)
    def __iter__(self):
        """Create an iterator for the ObjectLinkCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "ObjectLink":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(ObjectLinkCollection._metadata, ObjectLinkCollection._get_count_metadata)

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(ObjectLinkCollection._metadata, ObjectLinkCollection._get__new_enum_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "ObjectLink":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(ObjectLinkCollection._metadata, ObjectLinkCollection._item_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add(self, name:str) -> None:
        """Add to the collection a link to an STK object with the given object path and name."""
        return self._intf.invoke(ObjectLinkCollection._metadata, ObjectLinkCollection._add_metadata, name)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove(self, index:int) -> None:
        """Remove from the collection a link to the STK object with the given index."""
        return self._intf.invoke(ObjectLinkCollection._metadata, ObjectLinkCollection._remove_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all links from the collection."""
        return self._intf.invoke(ObjectLinkCollection._metadata, ObjectLinkCollection._remove_all_metadata, )

    _remove_name_metadata = { "offset" : _remove_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_name(self, name:str) -> None:
        """Remove from the collection a link to an STK object with the given object path and name."""
        return self._intf.invoke(ObjectLinkCollection._metadata, ObjectLinkCollection._remove_name_metadata, name)

    _get_available_objects_metadata = { "offset" : _get_available_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_objects(self) -> list:
        """Return an array of valid objects."""
        return self._intf.get_property(ObjectLinkCollection._metadata, ObjectLinkCollection._get_available_objects_metadata)

    _add_object_metadata = { "offset" : _add_object_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"),) }
    def add_object(self, object:"ISTKObject") -> None:
        """Add to the collection a link to the given STK object."""
        return self._intf.invoke(ObjectLinkCollection._metadata, ObjectLinkCollection._add_object_metadata, object)

    _remove_object_metadata = { "offset" : _remove_object_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"),) }
    def remove_object(self, object:"ISTKObject") -> None:
        """Remove from the collection a link to the given STK object."""
        return self._intf.invoke(ObjectLinkCollection._metadata, ObjectLinkCollection._remove_object_metadata, object)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def contains(self, name:str) -> bool:
        """Determine whether the object with the given name is in the collection."""
        return self._intf.invoke(ObjectLinkCollection._metadata, ObjectLinkCollection._contains_metadata, name, OutArg())

    _index_of_metadata = { "offset" : _index_of_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.LongArg,) }
    def index_of(self, name:str) -> int:
        """Search the collection for the specified object and returns a zero-based index of the first occurrence within the collection, if found; otherwise, -1."""
        return self._intf.invoke(ObjectLinkCollection._metadata, ObjectLinkCollection._index_of_metadata, name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[available_objects] = "available_objects"

    def __init__(self, source_object=None):
        """Construct an object of type ObjectLinkCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ObjectLinkCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ObjectLinkCollection, [ObjectLinkCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5458151547512723776, 12421310114243271828), ObjectLinkCollection)
agcls.AgTypeNameMap["ObjectLinkCollection"] = ObjectLinkCollection

class ObjectLink(SupportsDeleteCallback):
    """ObjectLink provides methods and properties of elements stored in ObjectLinkCollection collection."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_path_method_offset = 2
    _get_type_method_offset = 3
    _get_linked_object_method_offset = 4
    _metadata = {
        "iid_data" : (5696185677201025719, 13889527444173429921),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ObjectLink)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Return STK object name."""
        return self._intf.get_property(ObjectLink._metadata, ObjectLink._get_name_metadata)

    _get_path_metadata = { "offset" : _get_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def path(self) -> str:
        """Return STK object path."""
        return self._intf.get_property(ObjectLink._metadata, ObjectLink._get_path_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(STKObjectType),) }
    @property
    def type(self) -> "STKObjectType":
        """Return STK object type."""
        return self._intf.get_property(ObjectLink._metadata, ObjectLink._get_type_metadata)

    _get_linked_object_metadata = { "offset" : _get_linked_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def linked_object(self) -> "ISTKObject":
        """Return the STK object associated with the instance."""
        return self._intf.get_property(ObjectLink._metadata, ObjectLink._get_linked_object_metadata)

    _property_names[name] = "name"
    _property_names[path] = "path"
    _property_names[type] = "type"
    _property_names[linked_object] = "linked_object"

    def __init__(self, source_object=None):
        """Construct an object of type ObjectLink."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ObjectLink)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ObjectLink, [ObjectLink, ])

agcls.AgClassCatalog.add_catalog_entry((4640300829771649597, 5349786695960098453), ObjectLink)
agcls.AgTypeNameMap["ObjectLink"] = ObjectLink

class LinkToObject(SupportsDeleteCallback):
    """LinkToObject represents a link to STK object."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_linked_object_method_offset = 2
    _bind_to_object_method_offset = 3
    _get_available_objects_method_offset = 4
    _get_is_intrinsic_method_offset = 5
    _metadata = {
        "iid_data" : (5270882537153128192, 3337634972979210903),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LinkToObject)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Return a name of linked object."""
        return self._intf.get_property(LinkToObject._metadata, LinkToObject._get_name_metadata)

    _get_linked_object_metadata = { "offset" : _get_linked_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def linked_object(self) -> "ISTKObject":
        """Dereferences the link and returns the linked object."""
        return self._intf.get_property(LinkToObject._metadata, LinkToObject._get_linked_object_metadata)

    _bind_to_object_metadata = { "offset" : _bind_to_object_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def bind_to_object(self, path:str) -> "ISTKObject":
        """Binds to existing object instance using the specified object path."""
        return self._intf.invoke(LinkToObject._metadata, LinkToObject._bind_to_object_metadata, path, OutArg())

    _get_available_objects_metadata = { "offset" : _get_available_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_objects(self) -> list:
        """Return a list of available objects that can be linked to."""
        return self._intf.get_property(LinkToObject._metadata, LinkToObject._get_available_objects_metadata)

    _get_is_intrinsic_metadata = { "offset" : _get_is_intrinsic_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_intrinsic(self) -> bool:
        """Return true if the link references an intrinsic object, otherwise returns false."""
        return self._intf.get_property(LinkToObject._metadata, LinkToObject._get_is_intrinsic_metadata)

    _property_names[name] = "name"
    _property_names[linked_object] = "linked_object"
    _property_names[available_objects] = "available_objects"
    _property_names[is_intrinsic] = "is_intrinsic"

    def __init__(self, source_object=None):
        """Construct an object of type LinkToObject."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LinkToObject)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LinkToObject, [LinkToObject, ])

agcls.AgClassCatalog.add_catalog_entry((4918707871194052392, 13208573270157936570), LinkToObject)
agcls.AgTypeNameMap["LinkToObject"] = LinkToObject

class LatitudeLongitudeAltitudePosition(ILatitudeLongitudeAltitudePosition, SupportsDeleteCallback):
    """Class defining position defined in terms of latitude, longitude and altitude (LLA)."""
    def __init__(self, source_object=None):
        """Construct an object of type LatitudeLongitudeAltitudePosition."""
        SupportsDeleteCallback.__init__(self)
        ILatitudeLongitudeAltitudePosition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILatitudeLongitudeAltitudePosition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LatitudeLongitudeAltitudePosition, [ILatitudeLongitudeAltitudePosition])

agcls.AgClassCatalog.add_catalog_entry((5427896345185002816, 9070083516704639157), LatitudeLongitudeAltitudePosition)
agcls.AgTypeNameMap["LatitudeLongitudeAltitudePosition"] = LatitudeLongitudeAltitudePosition

class Graphics3DDataDisplayElement(SupportsDeleteCallback):
    """
    Interface for 3D Graphics window data display element.

    Examples
    --------
    Add a Data Display to the 3D Window:
    >>> # Satellite satellite: Satellite object
    >>> # Remove all data displays so you can easily pick one that may already be in
    >>> # the list
    >>> satellite.graphics_3d.data_display.remove_all()
    >>> # Add LLA data display and change size/title
    >>> datadisplay = satellite.graphics_3d.data_display.add("LLA Position")
    >>> datadisplay.show_graphics = True
    >>> datadisplay.font_size = Graphics3DFontSize.MEDIUM
    >>> datadisplay.title_text = "My Data Display"
    >>> datadisplay.show_name = False
    """

    _num_methods = 54
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_show_graphics_method_offset = 2
    _set_show_graphics_method_offset = 3
    _is_displayed_in_window_method_offset = 4
    _get_location_method_offset = 5
    _set_location_method_offset = 6
    _get_x_origin_method_offset = 7
    _set_x_origin_method_offset = 8
    _get_x_method_offset = 9
    _set_x_method_offset = 10
    _get_y_origin_method_offset = 11
    _set_y_origin_method_offset = 12
    _get_y_method_offset = 13
    _set_y_method_offset = 14
    _get_title_method_offset = 15
    _set_title_method_offset = 16
    _get_font_size_method_offset = 17
    _set_font_size_method_offset = 18
    _get_font_color_method_offset = 19
    _set_font_color_method_offset = 20
    _get_format_method_offset = 21
    _set_format_method_offset = 22
    _get_use_background_method_offset = 23
    _set_use_background_method_offset = 24
    _get_transparent_background_method_offset = 25
    _set_transparent_background_method_offset = 26
    _get_background_width_method_offset = 27
    _set_background_width_method_offset = 28
    _get_background_height_method_offset = 29
    _set_background_height_method_offset = 30
    _get_background_color_method_offset = 31
    _set_background_color_method_offset = 32
    _get_available_windows_method_offset = 33
    _add_to_window_method_offset = 34
    _remove_from_window_method_offset = 35
    _add_to_all_windows_method_offset = 36
    _get_title_text_method_offset = 37
    _set_title_text_method_offset = 38
    _get_background_translucency_method_offset = 39
    _set_background_translucency_method_offset = 40
    _get_use_background_texture_method_offset = 41
    _set_use_background_texture_method_offset = 42
    _get_background_texture_filename_method_offset = 43
    _set_background_texture_filename_method_offset = 44
    _get_use_background_border_method_offset = 45
    _set_use_background_border_method_offset = 46
    _get_background_border_color_method_offset = 47
    _set_background_border_color_method_offset = 48
    _get_use_automatic_size_width_method_offset = 49
    _set_use_automatic_size_width_method_offset = 50
    _get_use_automatic_size_height_method_offset = 51
    _set_use_automatic_size_height_method_offset = 52
    _get_show_name_method_offset = 53
    _set_show_name_method_offset = 54
    _metadata = {
        "iid_data" : (4632465869209165852, 4541111219859478967),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DDataDisplayElement)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Name of data display element."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_name_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to show the data display element."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_show_graphics_metadata, is_visible)

    _is_displayed_in_window_metadata = { "offset" : _is_displayed_in_window_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_displayed_in_window(self, title:str) -> bool:
        """Opt whether to show the data display in the selected location."""
        return self._intf.invoke(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._is_displayed_in_window_metadata, title, OutArg())

    _get_location_metadata = { "offset" : _get_location_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DLocation),) }
    @property
    def location(self) -> "Graphics3DLocation":
        """Get or set the location where the data display is to appear: 3D window, data display area, or offset from the selected object."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_location_metadata)

    _set_location_metadata = { "offset" : _set_location_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DLocation),) }
    @location.setter
    def location(self, location:"Graphics3DLocation") -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_location_metadata, location)

    _get_x_origin_metadata = { "offset" : _get_x_origin_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DXOrigin),) }
    @property
    def x_origin(self) -> "Graphics3DXOrigin":
        """Get or set the horizontal point of origin for the marker (left, center or right)."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_x_origin_metadata)

    _set_x_origin_metadata = { "offset" : _set_x_origin_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DXOrigin),) }
    @x_origin.setter
    def x_origin(self, x_origin:"Graphics3DXOrigin") -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_x_origin_metadata, x_origin)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def x(self) -> int:
        """Amount of X offset from the origin. Dimensionless."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_x_metadata)

    _set_x_metadata = { "offset" : _set_x_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @x.setter
    def x(self, x:int) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_x_metadata, x)

    _get_y_origin_metadata = { "offset" : _get_y_origin_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DYOrigin),) }
    @property
    def y_origin(self) -> "Graphics3DYOrigin":
        """Get or set the vertical point of origin for the marker (top, center or bottom.)."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_y_origin_metadata)

    _set_y_origin_metadata = { "offset" : _set_y_origin_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DYOrigin),) }
    @y_origin.setter
    def y_origin(self, y_origin:"Graphics3DYOrigin") -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_y_origin_metadata, y_origin)

    _get_y_metadata = { "offset" : _get_y_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def y(self) -> int:
        """Amount of Y offset from the origin. Dimensionless."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_y_metadata)

    _set_y_metadata = { "offset" : _set_y_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @y.setter
    def y(self, y:int) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_y_metadata, y)

    _get_title_metadata = { "offset" : _get_title_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def title(self) -> bool:
        """Opt whether to show the title of the data display."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_title_metadata)

    _set_title_metadata = { "offset" : _set_title_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @title.setter
    def title(self, title:bool) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_title_metadata, title)

    _get_font_size_metadata = { "offset" : _get_font_size_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DFontSize),) }
    @property
    def font_size(self) -> "Graphics3DFontSize":
        """Font size of the data display."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_font_size_metadata)

    _set_font_size_metadata = { "offset" : _set_font_size_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DFontSize),) }
    @font_size.setter
    def font_size(self, font_size:"Graphics3DFontSize") -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_font_size_metadata, font_size)

    _get_font_color_metadata = { "offset" : _get_font_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def font_color(self) -> agcolor.Color:
        """Font color of the data display."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_font_color_metadata)

    _set_font_color_metadata = { "offset" : _set_font_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @font_color.setter
    def font_color(self, font_color:agcolor.Color) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_font_color_metadata, font_color)

    _get_format_metadata = { "offset" : _get_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DFormat),) }
    @property
    def format(self) -> "Graphics3DFormat":
        """Font format of the data display."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_format_metadata)

    _set_format_metadata = { "offset" : _set_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DFormat),) }
    @format.setter
    def format(self, format:"Graphics3DFormat") -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_format_metadata, format)

    _get_use_background_metadata = { "offset" : _get_use_background_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_background(self) -> bool:
        """Opt whether to use a background with the data display."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_use_background_metadata)

    _set_use_background_metadata = { "offset" : _set_use_background_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_background.setter
    def use_background(self, use_background:bool) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_use_background_metadata, use_background)

    _get_transparent_background_metadata = { "offset" : _get_transparent_background_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def transparent_background(self) -> bool:
        """Opt whether to make the background transparent."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_transparent_background_metadata)

    _set_transparent_background_metadata = { "offset" : _set_transparent_background_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @transparent_background.setter
    def transparent_background(self, transparent_bg:bool) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_transparent_background_metadata, transparent_bg)

    _get_background_width_metadata = { "offset" : _get_background_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def background_width(self) -> int:
        """Get or set the width of the data display background. Dimensionless."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_background_width_metadata)

    _set_background_width_metadata = { "offset" : _set_background_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @background_width.setter
    def background_width(self, bg_width:int) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_background_width_metadata, bg_width)

    _get_background_height_metadata = { "offset" : _get_background_height_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def background_height(self) -> int:
        """Get or set the height of the data display background. Dimensionless."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_background_height_metadata)

    _set_background_height_metadata = { "offset" : _set_background_height_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @background_height.setter
    def background_height(self, bg_height:int) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_background_height_metadata, bg_height)

    _get_background_color_metadata = { "offset" : _get_background_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def background_color(self) -> agcolor.Color:
        """Get or set the color of the data display background."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_background_color_metadata)

    _set_background_color_metadata = { "offset" : _set_background_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @background_color.setter
    def background_color(self, bg_color:agcolor.Color) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_background_color_metadata, bg_color)

    _get_available_windows_metadata = { "offset" : _get_available_windows_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_windows(self) -> list:
        """Get the available 3D windows for the data display."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_available_windows_metadata)

    _add_to_window_metadata = { "offset" : _add_to_window_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add_to_window(self, title:str) -> None:
        """Add the data display to a 3D window."""
        return self._intf.invoke(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._add_to_window_metadata, title)

    _remove_from_window_metadata = { "offset" : _remove_from_window_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_from_window(self, title:str) -> None:
        """Remove the data display from a 3D window."""
        return self._intf.invoke(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._remove_from_window_metadata, title)

    _add_to_all_windows_metadata = { "offset" : _add_to_all_windows_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def add_to_all_windows(self) -> None:
        """Add the data display to all 3D windows."""
        return self._intf.invoke(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._add_to_all_windows_metadata, )

    _get_title_text_metadata = { "offset" : _get_title_text_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def title_text(self) -> str:
        """Get or set the title of the data display."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_title_text_metadata)

    _set_title_text_metadata = { "offset" : _set_title_text_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @title_text.setter
    def title_text(self, title:str) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_title_text_metadata, title)

    _get_background_translucency_metadata = { "offset" : _get_background_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def background_translucency(self) -> float:
        """Get or set the translucency of the background between 0 and 1 inclusive."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_background_translucency_metadata)

    _set_background_translucency_metadata = { "offset" : _set_background_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @background_translucency.setter
    def background_translucency(self, translucency:float) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_background_translucency_metadata, translucency)

    _get_use_background_texture_metadata = { "offset" : _get_use_background_texture_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_background_texture(self) -> bool:
        """Opt whether to use a background texture with the data display."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_use_background_texture_metadata)

    _set_use_background_texture_metadata = { "offset" : _set_use_background_texture_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_background_texture.setter
    def use_background_texture(self, use_texture:bool) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_use_background_texture_metadata, use_texture)

    _get_background_texture_filename_metadata = { "offset" : _get_background_texture_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def background_texture_filename(self) -> str:
        """Get or set the filename of the background texture."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_background_texture_filename_metadata)

    _set_background_texture_filename_metadata = { "offset" : _set_background_texture_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @background_texture_filename.setter
    def background_texture_filename(self, file_name:str) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_background_texture_filename_metadata, file_name)

    _get_use_background_border_metadata = { "offset" : _get_use_background_border_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_background_border(self) -> bool:
        """Opt whether to use a background border with the data display."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_use_background_border_metadata)

    _set_use_background_border_metadata = { "offset" : _set_use_background_border_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_background_border.setter
    def use_background_border(self, use_border:bool) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_use_background_border_metadata, use_border)

    _get_background_border_color_metadata = { "offset" : _get_background_border_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def background_border_color(self) -> agcolor.Color:
        """Get or set the color of the border surrounding the data display background."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_background_border_color_metadata)

    _set_background_border_color_metadata = { "offset" : _set_background_border_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @background_border_color.setter
    def background_border_color(self, border_color:agcolor.Color) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_background_border_color_metadata, border_color)

    _get_use_automatic_size_width_metadata = { "offset" : _get_use_automatic_size_width_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_automatic_size_width(self) -> bool:
        """Opt whether to allow automatic resizing of data display width."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_use_automatic_size_width_metadata)

    _set_use_automatic_size_width_metadata = { "offset" : _set_use_automatic_size_width_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_automatic_size_width.setter
    def use_automatic_size_width(self, use_auto_size_width:bool) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_use_automatic_size_width_metadata, use_auto_size_width)

    _get_use_automatic_size_height_metadata = { "offset" : _get_use_automatic_size_height_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_automatic_size_height(self) -> bool:
        """Opt whether to allow automatic resizing of data display height."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_use_automatic_size_height_metadata)

    _set_use_automatic_size_height_metadata = { "offset" : _set_use_automatic_size_height_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_automatic_size_height.setter
    def use_automatic_size_height(self, use_auto_size_height:bool) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_use_automatic_size_height_metadata, use_auto_size_height)

    _get_show_name_metadata = { "offset" : _get_show_name_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_name(self) -> bool:
        """Opt whether to show an objects name in the data display title."""
        return self._intf.get_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._get_show_name_metadata)

    _set_show_name_metadata = { "offset" : _set_show_name_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_name.setter
    def show_name(self, show_name:bool) -> None:
        return self._intf.set_property(Graphics3DDataDisplayElement._metadata, Graphics3DDataDisplayElement._set_show_name_metadata, show_name)

    _property_names[name] = "name"
    _property_names[show_graphics] = "show_graphics"
    _property_names[location] = "location"
    _property_names[x_origin] = "x_origin"
    _property_names[x] = "x"
    _property_names[y_origin] = "y_origin"
    _property_names[y] = "y"
    _property_names[title] = "title"
    _property_names[font_size] = "font_size"
    _property_names[font_color] = "font_color"
    _property_names[format] = "format"
    _property_names[use_background] = "use_background"
    _property_names[transparent_background] = "transparent_background"
    _property_names[background_width] = "background_width"
    _property_names[background_height] = "background_height"
    _property_names[background_color] = "background_color"
    _property_names[available_windows] = "available_windows"
    _property_names[title_text] = "title_text"
    _property_names[background_translucency] = "background_translucency"
    _property_names[use_background_texture] = "use_background_texture"
    _property_names[background_texture_filename] = "background_texture_filename"
    _property_names[use_background_border] = "use_background_border"
    _property_names[background_border_color] = "background_border_color"
    _property_names[use_automatic_size_width] = "use_automatic_size_width"
    _property_names[use_automatic_size_height] = "use_automatic_size_height"
    _property_names[show_name] = "show_name"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DDataDisplayElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DDataDisplayElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DDataDisplayElement, [Graphics3DDataDisplayElement, ])

agcls.AgClassCatalog.add_catalog_entry((5514563368576362545, 3945281593687396747), Graphics3DDataDisplayElement)
agcls.AgTypeNameMap["Graphics3DDataDisplayElement"] = Graphics3DDataDisplayElement

class Graphics3DDataDisplayCollection(SupportsDeleteCallback):
    """Data Display Text."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _get_available_data_method_offset = 7
    _is_pre_data_required_method_offset = 8
    _add_data_display_requiring_pre_data_method_offset = 9
    _metadata = {
        "iid_data" : (5684865070691808245, 12658517249890590100),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DDataDisplayCollection)
    def __iter__(self):
        """Create an iterator for the Graphics3DDataDisplayCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "Graphics3DDataDisplayElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(Graphics3DDataDisplayCollection._metadata, Graphics3DDataDisplayCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "Graphics3DDataDisplayElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(Graphics3DDataDisplayCollection._metadata, Graphics3DDataDisplayCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(Graphics3DDataDisplayCollection._metadata, Graphics3DDataDisplayCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(Graphics3DDataDisplayCollection._metadata, Graphics3DDataDisplayCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(Graphics3DDataDisplayCollection._metadata, Graphics3DDataDisplayCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, name:str) -> "Graphics3DDataDisplayElement":
        """Add a new element to the collection."""
        return self._intf.invoke(Graphics3DDataDisplayCollection._metadata, Graphics3DDataDisplayCollection._add_metadata, name, OutArg())

    _get_available_data_metadata = { "offset" : _get_available_data_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_data(self) -> list:
        """Get the available data."""
        return self._intf.get_property(Graphics3DDataDisplayCollection._metadata, Graphics3DDataDisplayCollection._get_available_data_metadata)

    _is_pre_data_required_metadata = { "offset" : _is_pre_data_required_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_pre_data_required(self, data_display_name:str) -> bool:
        """Determine if the data display needs additional data, such as a comparison object for an RIC report or a set of axes for a vector."""
        return self._intf.invoke(Graphics3DDataDisplayCollection._metadata, Graphics3DDataDisplayCollection._is_pre_data_required_metadata, data_display_name, OutArg())

    _add_data_display_requiring_pre_data_metadata = { "offset" : _add_data_display_requiring_pre_data_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add_data_display_requiring_pre_data(self, name:str, pre_data:str) -> "Graphics3DDataDisplayElement":
        """Add a data display using additional data, such as a comparison object for an RIC report or a set of axes for a vector."""
        return self._intf.invoke(Graphics3DDataDisplayCollection._metadata, Graphics3DDataDisplayCollection._add_data_display_requiring_pre_data_metadata, name, pre_data, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[available_data] = "available_data"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DDataDisplayCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DDataDisplayCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DDataDisplayCollection, [Graphics3DDataDisplayCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5738039515248438290, 4466662286765798016), Graphics3DDataDisplayCollection)
agcls.AgTypeNameMap["Graphics3DDataDisplayCollection"] = Graphics3DDataDisplayCollection

class VehicleInitialState(SupportsDeleteCallback):
    """Propagator Initial State."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_representation_method_offset = 1
    _get_propagation_frame_method_offset = 2
    _set_propagation_frame_method_offset = 3
    _get_supported_propagation_frames_method_offset = 4
    _get_orbit_epoch_method_offset = 5
    _metadata = {
        "iid_data" : (4834967253017700772, 9835399467630948757),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleInitialState)

    _get_representation_metadata = { "offset" : _get_representation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def representation(self) -> "IOrbitState":
        """Representation."""
        return self._intf.get_property(VehicleInitialState._metadata, VehicleInitialState._get_representation_metadata)

    _get_propagation_frame_metadata = { "offset" : _get_propagation_frame_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehiclePropagationFrame),) }
    @property
    def propagation_frame(self) -> "VehiclePropagationFrame":
        """Do not use this property, as it is deprecated. Use Two-body, J2 and J4 propagators to configure propagation frame. The propagation frame."""
        return self._intf.get_property(VehicleInitialState._metadata, VehicleInitialState._get_propagation_frame_metadata)

    _set_propagation_frame_metadata = { "offset" : _set_propagation_frame_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehiclePropagationFrame),) }
    @propagation_frame.setter
    def propagation_frame(self, propagation_frame:"VehiclePropagationFrame") -> None:
        """Do not use this property, as it is deprecated."""
        return self._intf.set_property(VehicleInitialState._metadata, VehicleInitialState._set_propagation_frame_metadata, propagation_frame)

    _get_supported_propagation_frames_metadata = { "offset" : _get_supported_propagation_frames_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_propagation_frames(self) -> list:
        """Do not use this property, as it is deprecated. Use Two-body, J2 and J4 propagators to get a list of supported propagation frames. Returns supported propagation frames."""
        return self._intf.get_property(VehicleInitialState._metadata, VehicleInitialState._get_supported_propagation_frames_metadata)

    _get_orbit_epoch_metadata = { "offset" : _get_orbit_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orbit_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Get the smart epoch component to configure the orbit state epoch."""
        return self._intf.get_property(VehicleInitialState._metadata, VehicleInitialState._get_orbit_epoch_metadata)

    _property_names[representation] = "representation"
    _property_names[propagation_frame] = "propagation_frame"
    _property_names[supported_propagation_frames] = "supported_propagation_frames"
    _property_names[orbit_epoch] = "orbit_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleInitialState."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleInitialState)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleInitialState, [VehicleInitialState, ])

agcls.AgClassCatalog.add_catalog_entry((5641643374698871065, 15590946819355561906), VehicleInitialState)
agcls.AgTypeNameMap["VehicleInitialState"] = VehicleInitialState

class VehicleHPOPCentralBodyGravity(SupportsDeleteCallback):
    """Central Body Gravity interface."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_file_method_offset = 1
    _set_file_method_offset = 2
    _get_maximum_degree_method_offset = 3
    _set_maximum_degree_method_offset = 4
    _get_maximum_order_method_offset = 5
    _set_maximum_order_method_offset = 6
    _get_use_ocean_tides_method_offset = 7
    _set_use_ocean_tides_method_offset = 8
    _get_solid_tide_type_method_offset = 9
    _set_solid_tide_type_method_offset = 10
    _get_use_secular_variations_method_offset = 11
    _set_use_secular_variations_method_offset = 12
    _set_maximum_degree_and_order_method_offset = 13
    _metadata = {
        "iid_data" : (5459466020098478969, 341399663758289582),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPCentralBodyGravity)

    _get_file_metadata = { "offset" : _get_file_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file(self) -> str:
        """Name of gravity (.grv) file, an ASCII file containing the Central Body geopotential model coefficients."""
        return self._intf.get_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._get_file_metadata)

    _set_file_metadata = { "offset" : _set_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @file.setter
    def file(self, file:str) -> None:
        return self._intf.set_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._set_file_metadata, file)

    _get_maximum_degree_metadata = { "offset" : _get_maximum_degree_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_degree(self) -> int:
        """Maximum degree of geopotential coefficients to be included for Central Body gravity computations. Dimensionless."""
        return self._intf.get_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._get_maximum_degree_metadata)

    _set_maximum_degree_metadata = { "offset" : _set_maximum_degree_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_degree.setter
    def maximum_degree(self, max_degree:int) -> None:
        return self._intf.set_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._set_maximum_degree_metadata, max_degree)

    _get_maximum_order_metadata = { "offset" : _get_maximum_order_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_order(self) -> int:
        """Maximum order of geopotential coefficients to be included for Central Body gravity computations. Dimensionless."""
        return self._intf.get_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._get_maximum_order_metadata)

    _set_maximum_order_metadata = { "offset" : _set_maximum_order_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_order.setter
    def maximum_order(self, max_order:int) -> None:
        return self._intf.set_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._set_maximum_order_metadata, max_order)

    _get_use_ocean_tides_metadata = { "offset" : _get_use_ocean_tides_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_ocean_tides(self) -> bool:
        """Opt whether to include the perturbation of the gravity field caused by the effects of ocean tides."""
        return self._intf.get_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._get_use_ocean_tides_metadata)

    _set_use_ocean_tides_metadata = { "offset" : _set_use_ocean_tides_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_ocean_tides.setter
    def use_ocean_tides(self, use_ocean_tides:bool) -> None:
        return self._intf.set_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._set_use_ocean_tides_metadata, use_ocean_tides)

    _get_solid_tide_type_metadata = { "offset" : _get_solid_tide_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SolidTide),) }
    @property
    def solid_tide_type(self) -> "SolidTide":
        """Solid Tide Type."""
        return self._intf.get_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._get_solid_tide_type_metadata)

    _set_solid_tide_type_metadata = { "offset" : _set_solid_tide_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SolidTide),) }
    @solid_tide_type.setter
    def solid_tide_type(self, solid_tide:"SolidTide") -> None:
        return self._intf.set_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._set_solid_tide_type_metadata, solid_tide)

    _get_use_secular_variations_metadata = { "offset" : _get_use_secular_variations_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_secular_variations(self) -> bool:
        """Opt whether to include or ignore secular variations defined by the gravity field model."""
        return self._intf.get_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._get_use_secular_variations_metadata)

    _set_use_secular_variations_metadata = { "offset" : _set_use_secular_variations_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_secular_variations.setter
    def use_secular_variations(self, value:bool) -> None:
        return self._intf.set_property(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._set_use_secular_variations_metadata, value)

    _set_maximum_degree_and_order_metadata = { "offset" : _set_maximum_degree_and_order_method_offset,
            "arg_types" : (agcom.INT, agcom.INT,),
            "marshallers" : (agmarshall.IntArg, agmarshall.IntArg,) }
    def set_maximum_degree_and_order(self, maximum_degree:int, maximum_order:int) -> None:
        """Set maximum degree and maximum order of geopotential coefficients to be included for Central Body gravity computations. An exception is raised if MaximumDegree is less than MaximumOrder. Both values are dimensionless."""
        return self._intf.invoke(VehicleHPOPCentralBodyGravity._metadata, VehicleHPOPCentralBodyGravity._set_maximum_degree_and_order_metadata, maximum_degree, maximum_order)

    _property_names[file] = "file"
    _property_names[maximum_degree] = "maximum_degree"
    _property_names[maximum_order] = "maximum_order"
    _property_names[use_ocean_tides] = "use_ocean_tides"
    _property_names[solid_tide_type] = "solid_tide_type"
    _property_names[use_secular_variations] = "use_secular_variations"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPCentralBodyGravity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPCentralBodyGravity)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPCentralBodyGravity, [VehicleHPOPCentralBodyGravity, ])

agcls.AgClassCatalog.add_catalog_entry((5455785877963402407, 13406483586350719650), VehicleHPOPCentralBodyGravity)
agcls.AgTypeNameMap["VehicleHPOPCentralBodyGravity"] = VehicleHPOPCentralBodyGravity

class RadiationPressure(SupportsDeleteCallback):
    """Interface for additional radiation pressure options."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_file_method_offset = 1
    _set_file_method_offset = 2
    _get_ck_method_offset = 3
    _set_ck_method_offset = 4
    _get_area_mass_ratio_method_offset = 5
    _set_area_mass_ratio_method_offset = 6
    _get_include_albedo_method_offset = 7
    _set_include_albedo_method_offset = 8
    _get_include_thermal_method_offset = 9
    _set_include_thermal_method_offset = 10
    _metadata = {
        "iid_data" : (5440434062651876542, 918984607124296369),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadiationPressure)

    _get_file_metadata = { "offset" : _get_file_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file(self) -> str:
        """File containing parameters defining a ground reflection model that defines albedo and emissivity properties of the central body surface."""
        return self._intf.get_property(RadiationPressure._metadata, RadiationPressure._get_file_metadata)

    _set_file_metadata = { "offset" : _set_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @file.setter
    def file(self, file:str) -> None:
        return self._intf.set_property(RadiationPressure._metadata, RadiationPressure._set_file_metadata, file)

    _get_ck_metadata = { "offset" : _get_ck_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ck(self) -> float:
        """Coefficient of radiation pressure reflectivity of the satellite. Dimensionless."""
        return self._intf.get_property(RadiationPressure._metadata, RadiationPressure._get_ck_metadata)

    _set_ck_metadata = { "offset" : _set_ck_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ck.setter
    def ck(self, ck:float) -> None:
        return self._intf.set_property(RadiationPressure._metadata, RadiationPressure._set_ck_metadata, ck)

    _get_area_mass_ratio_metadata = { "offset" : _get_area_mass_ratio_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def area_mass_ratio(self) -> float:
        """Area exposed to radiation pressure (nominally along the radial direction) divided by the mass. Uses AreaPerMass Dimension."""
        return self._intf.get_property(RadiationPressure._metadata, RadiationPressure._get_area_mass_ratio_metadata)

    _set_area_mass_ratio_metadata = { "offset" : _set_area_mass_ratio_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @area_mass_ratio.setter
    def area_mass_ratio(self, area_mass_ratio:float) -> None:
        return self._intf.set_property(RadiationPressure._metadata, RadiationPressure._set_area_mass_ratio_metadata, area_mass_ratio)

    _get_include_albedo_metadata = { "offset" : _get_include_albedo_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_albedo(self) -> bool:
        """Opt whether to consider albedo effects (i.e., radiation pressure caused by sunlight reflected off the lit part of the central body)."""
        return self._intf.get_property(RadiationPressure._metadata, RadiationPressure._get_include_albedo_metadata)

    _set_include_albedo_metadata = { "offset" : _set_include_albedo_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_albedo.setter
    def include_albedo(self, use_solid_tides:bool) -> None:
        return self._intf.set_property(RadiationPressure._metadata, RadiationPressure._set_include_albedo_metadata, use_solid_tides)

    _get_include_thermal_metadata = { "offset" : _get_include_thermal_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_thermal(self) -> bool:
        """Opt whether to consider thermal radiation pressure effects (i.e., radiation pressure caused by blackbody heat radiation of the central body)."""
        return self._intf.get_property(RadiationPressure._metadata, RadiationPressure._get_include_thermal_metadata)

    _set_include_thermal_metadata = { "offset" : _set_include_thermal_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_thermal.setter
    def include_thermal(self, use_ocean_tides:bool) -> None:
        return self._intf.set_property(RadiationPressure._metadata, RadiationPressure._set_include_thermal_metadata, use_ocean_tides)

    _property_names[file] = "file"
    _property_names[ck] = "ck"
    _property_names[area_mass_ratio] = "area_mass_ratio"
    _property_names[include_albedo] = "include_albedo"
    _property_names[include_thermal] = "include_thermal"

    def __init__(self, source_object=None):
        """Construct an object of type RadiationPressure."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadiationPressure)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadiationPressure, [RadiationPressure, ])

agcls.AgClassCatalog.add_catalog_entry((4646147867975980214, 8088619399373319558), RadiationPressure)
agcls.AgTypeNameMap["RadiationPressure"] = RadiationPressure

class VehicleHPOPSolarRadiationPressure(SupportsDeleteCallback):
    """Solar Radiation Pressure (SRP) interface."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_method_offset = 1
    _set_use_method_offset = 2
    _get_shadow_model_method_offset = 3
    _set_shadow_model_method_offset = 4
    _get_use_boundary_mitigation_method_offset = 5
    _set_use_boundary_mitigation_method_offset = 6
    _get_solar_radiation_pressure_model_method_offset = 7
    _metadata = {
        "iid_data" : (5654298132440214553, 17856354918343180720),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPSolarRadiationPressure)

    _get_use_metadata = { "offset" : _get_use_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use(self) -> bool:
        """Opt whether to take SRP into account."""
        return self._intf.get_property(VehicleHPOPSolarRadiationPressure._metadata, VehicleHPOPSolarRadiationPressure._get_use_metadata)

    _set_use_metadata = { "offset" : _set_use_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use.setter
    def use(self, use:bool) -> None:
        return self._intf.set_property(VehicleHPOPSolarRadiationPressure._metadata, VehicleHPOPSolarRadiationPressure._set_use_metadata, use)

    _get_shadow_model_metadata = { "offset" : _get_shadow_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SolarRadiationPressureShadowModelType),) }
    @property
    def shadow_model(self) -> "SolarRadiationPressureShadowModelType":
        """Type of shadow to be used in determining the lighting condition for the satellite - cylincrical, dual cone, or none."""
        return self._intf.get_property(VehicleHPOPSolarRadiationPressure._metadata, VehicleHPOPSolarRadiationPressure._get_shadow_model_metadata)

    _set_shadow_model_metadata = { "offset" : _set_shadow_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SolarRadiationPressureShadowModelType),) }
    @shadow_model.setter
    def shadow_model(self, shadow_model:"SolarRadiationPressureShadowModelType") -> None:
        return self._intf.set_property(VehicleHPOPSolarRadiationPressure._metadata, VehicleHPOPSolarRadiationPressure._set_shadow_model_metadata, shadow_model)

    _get_use_boundary_mitigation_metadata = { "offset" : _get_use_boundary_mitigation_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_boundary_mitigation(self) -> bool:
        """Opt whether to correct the state of the satellite after crossing a shadow boundary for errors that may have been introduced by the sudden change in the SRP which occurred during the integration step."""
        return self._intf.get_property(VehicleHPOPSolarRadiationPressure._metadata, VehicleHPOPSolarRadiationPressure._get_use_boundary_mitigation_metadata)

    _set_use_boundary_mitigation_metadata = { "offset" : _set_use_boundary_mitigation_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_boundary_mitigation.setter
    def use_boundary_mitigation(self, use_boundary_mitigation:bool) -> None:
        return self._intf.set_property(VehicleHPOPSolarRadiationPressure._metadata, VehicleHPOPSolarRadiationPressure._set_use_boundary_mitigation_metadata, use_boundary_mitigation)

    _get_solar_radiation_pressure_model_metadata = { "offset" : _get_solar_radiation_pressure_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def solar_radiation_pressure_model(self) -> "VehicleHPOPSolarRadiationPressureModel":
        """Return a solar radiation pressure model."""
        return self._intf.get_property(VehicleHPOPSolarRadiationPressure._metadata, VehicleHPOPSolarRadiationPressure._get_solar_radiation_pressure_model_metadata)

    _property_names[use] = "use"
    _property_names[shadow_model] = "shadow_model"
    _property_names[use_boundary_mitigation] = "use_boundary_mitigation"
    _property_names[solar_radiation_pressure_model] = "solar_radiation_pressure_model"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPSolarRadiationPressure."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPSolarRadiationPressure)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPSolarRadiationPressure, [VehicleHPOPSolarRadiationPressure, ])

agcls.AgClassCatalog.add_catalog_entry((5391273738200790193, 11290303134898931622), VehicleHPOPSolarRadiationPressure)
agcls.AgTypeNameMap["VehicleHPOPSolarRadiationPressure"] = VehicleHPOPSolarRadiationPressure

class SolarFluxGeoMagneticValueSettings(IVehicleSolarFluxGeoMagnitude, SupportsDeleteCallback):
    """Interface for specifying solar and geomagnetic flux directly."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_daily_f107_method_offset = 1
    _set_daily_f107_method_offset = 2
    _get_average_f107_method_offset = 3
    _set_average_f107_method_offset = 4
    _get_geomagnetic_index_method_offset = 5
    _set_geomagnetic_index_method_offset = 6
    _metadata = {
        "iid_data" : (5755076231954435768, 17274252754584637313),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SolarFluxGeoMagneticValueSettings)

    _get_daily_f107_metadata = { "offset" : _get_daily_f107_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def daily_f107(self) -> float:
        """Daily F10.7: daily Ottawa 10.7 cm solar flux value. Dimensionless."""
        return self._intf.get_property(SolarFluxGeoMagneticValueSettings._metadata, SolarFluxGeoMagneticValueSettings._get_daily_f107_metadata)

    _set_daily_f107_metadata = { "offset" : _set_daily_f107_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @daily_f107.setter
    def daily_f107(self, daily_f107:float) -> None:
        return self._intf.set_property(SolarFluxGeoMagneticValueSettings._metadata, SolarFluxGeoMagneticValueSettings._set_daily_f107_metadata, daily_f107)

    _get_average_f107_metadata = { "offset" : _get_average_f107_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def average_f107(self) -> float:
        """Average F10.7: 81-day averaged Ottawa 10.7 cm solar flux value. Dimensionless."""
        return self._intf.get_property(SolarFluxGeoMagneticValueSettings._metadata, SolarFluxGeoMagneticValueSettings._get_average_f107_metadata)

    _set_average_f107_metadata = { "offset" : _set_average_f107_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @average_f107.setter
    def average_f107(self, average_f107:float) -> None:
        return self._intf.set_property(SolarFluxGeoMagneticValueSettings._metadata, SolarFluxGeoMagneticValueSettings._set_average_f107_metadata, average_f107)

    _get_geomagnetic_index_metadata = { "offset" : _get_geomagnetic_index_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def geomagnetic_index(self) -> float:
        """Geomagnetic Index (Kp): planetary geomagnetic flux index. Dimensionless."""
        return self._intf.get_property(SolarFluxGeoMagneticValueSettings._metadata, SolarFluxGeoMagneticValueSettings._get_geomagnetic_index_metadata)

    _set_geomagnetic_index_metadata = { "offset" : _set_geomagnetic_index_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @geomagnetic_index.setter
    def geomagnetic_index(self, geomagnetic_index:float) -> None:
        return self._intf.set_property(SolarFluxGeoMagneticValueSettings._metadata, SolarFluxGeoMagneticValueSettings._set_geomagnetic_index_metadata, geomagnetic_index)

    _property_names[daily_f107] = "daily_f107"
    _property_names[average_f107] = "average_f107"
    _property_names[geomagnetic_index] = "geomagnetic_index"

    def __init__(self, source_object=None):
        """Construct an object of type SolarFluxGeoMagneticValueSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SolarFluxGeoMagneticValueSettings)
        IVehicleSolarFluxGeoMagnitude.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleSolarFluxGeoMagnitude._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SolarFluxGeoMagneticValueSettings, [SolarFluxGeoMagneticValueSettings, IVehicleSolarFluxGeoMagnitude])

agcls.AgClassCatalog.add_catalog_entry((5438819010686551420, 5249004514218958758), SolarFluxGeoMagneticValueSettings)
agcls.AgTypeNameMap["SolarFluxGeoMagneticValueSettings"] = SolarFluxGeoMagneticValueSettings

class SolarFluxGeoMagneticFileSettings(IVehicleSolarFluxGeoMagnitude, SupportsDeleteCallback):
    """Interface for specifying solar and geomagnetic flux via a file."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_file_method_offset = 1
    _set_file_method_offset = 2
    _get_geomagnetic_flux_update_rate_method_offset = 3
    _set_geomagnetic_flux_update_rate_method_offset = 4
    _get_geomagnetic_flux_source_method_offset = 5
    _set_geomagnetic_flux_source_method_offset = 6
    _metadata = {
        "iid_data" : (5059051443398615866, 8869402725993780149),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SolarFluxGeoMagneticFileSettings)

    _get_file_metadata = { "offset" : _get_file_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file(self) -> str:
        """Path and name of flux/Ap file."""
        return self._intf.get_property(SolarFluxGeoMagneticFileSettings._metadata, SolarFluxGeoMagneticFileSettings._get_file_metadata)

    _set_file_metadata = { "offset" : _set_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @file.setter
    def file(self, file:str) -> None:
        return self._intf.set_property(SolarFluxGeoMagneticFileSettings._metadata, SolarFluxGeoMagneticFileSettings._set_file_metadata, file)

    _get_geomagnetic_flux_update_rate_metadata = { "offset" : _get_geomagnetic_flux_update_rate_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGeomagneticFluxUpdateRateType),) }
    @property
    def geomagnetic_flux_update_rate(self) -> "VehicleGeomagneticFluxUpdateRateType":
        """Select a  method for updating the geomagnetic flux update rate."""
        return self._intf.get_property(SolarFluxGeoMagneticFileSettings._metadata, SolarFluxGeoMagneticFileSettings._get_geomagnetic_flux_update_rate_metadata)

    _set_geomagnetic_flux_update_rate_metadata = { "offset" : _set_geomagnetic_flux_update_rate_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGeomagneticFluxUpdateRateType),) }
    @geomagnetic_flux_update_rate.setter
    def geomagnetic_flux_update_rate(self, geomag_flux_update_rate:"VehicleGeomagneticFluxUpdateRateType") -> None:
        return self._intf.set_property(SolarFluxGeoMagneticFileSettings._metadata, SolarFluxGeoMagneticFileSettings._set_geomagnetic_flux_update_rate_metadata, geomag_flux_update_rate)

    _get_geomagnetic_flux_source_metadata = { "offset" : _get_geomagnetic_flux_source_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGeomagneticFluxSourceType),) }
    @property
    def geomagnetic_flux_source(self) -> "VehicleGeomagneticFluxSourceType":
        """Select a  method for updating the geomagnetic flux update rate."""
        return self._intf.get_property(SolarFluxGeoMagneticFileSettings._metadata, SolarFluxGeoMagneticFileSettings._get_geomagnetic_flux_source_metadata)

    _set_geomagnetic_flux_source_metadata = { "offset" : _set_geomagnetic_flux_source_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGeomagneticFluxSourceType),) }
    @geomagnetic_flux_source.setter
    def geomagnetic_flux_source(self, geomag_flux_src:"VehicleGeomagneticFluxSourceType") -> None:
        return self._intf.set_property(SolarFluxGeoMagneticFileSettings._metadata, SolarFluxGeoMagneticFileSettings._set_geomagnetic_flux_source_metadata, geomag_flux_src)

    _property_names[file] = "file"
    _property_names[geomagnetic_flux_update_rate] = "geomagnetic_flux_update_rate"
    _property_names[geomagnetic_flux_source] = "geomagnetic_flux_source"

    def __init__(self, source_object=None):
        """Construct an object of type SolarFluxGeoMagneticFileSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SolarFluxGeoMagneticFileSettings)
        IVehicleSolarFluxGeoMagnitude.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleSolarFluxGeoMagnitude._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SolarFluxGeoMagneticFileSettings, [SolarFluxGeoMagneticFileSettings, IVehicleSolarFluxGeoMagnitude])

agcls.AgClassCatalog.add_catalog_entry((4725883357437959097, 7203339032406910626), SolarFluxGeoMagneticFileSettings)
agcls.AgTypeNameMap["SolarFluxGeoMagneticFileSettings"] = SolarFluxGeoMagneticFileSettings

class VehicleHPOPForceModelDrag(SupportsDeleteCallback):
    """Atmospheric Drag interface."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_method_offset = 1
    _set_use_method_offset = 2
    _get_atmospheric_density_model_method_offset = 3
    _set_atmospheric_density_model_method_offset = 4
    _get_solar_flux_geo_magnitude_type_method_offset = 5
    _set_solar_flux_geo_magnitude_type_method_offset = 6
    _get_solar_flux_geo_magnitude_method_offset = 7
    _get_drag_model_type_method_offset = 8
    _set_drag_model_type_method_offset = 9
    _is_drag_model_type_supported_method_offset = 10
    _get_drag_model_supported_types_method_offset = 11
    _get_drag_model_method_offset = 12
    _get_low_altitude_atmospheric_density_model_method_offset = 13
    _set_low_altitude_atmospheric_density_model_method_offset = 14
    _get_blending_range_method_offset = 15
    _set_blending_range_method_offset = 16
    _get_low_altitude_atmosphere_density_model_method_offset = 17
    _set_low_altitude_atmosphere_density_model_method_offset = 18
    _metadata = {
        "iid_data" : (5303117610234093529, 14952362265361974708),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPForceModelDrag)

    _get_use_metadata = { "offset" : _get_use_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use(self) -> bool:
        """Opt whether to take account of atmospheric drag."""
        return self._intf.get_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._get_use_metadata)

    _set_use_metadata = { "offset" : _set_use_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use.setter
    def use(self, use:bool) -> None:
        return self._intf.set_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._set_use_metadata, use)

    _get_atmospheric_density_model_metadata = { "offset" : _get_atmospheric_density_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AtmosphericDensityModel),) }
    @property
    def atmospheric_density_model(self) -> "AtmosphericDensityModel":
        """Select the atmospheric density model to be used."""
        return self._intf.get_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._get_atmospheric_density_model_metadata)

    _set_atmospheric_density_model_metadata = { "offset" : _set_atmospheric_density_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AtmosphericDensityModel),) }
    @atmospheric_density_model.setter
    def atmospheric_density_model(self, atmospheric_density_model:"AtmosphericDensityModel") -> None:
        return self._intf.set_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._set_atmospheric_density_model_metadata, atmospheric_density_model)

    _get_solar_flux_geo_magnitude_type_metadata = { "offset" : _get_solar_flux_geo_magnitude_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSolarFluxGeomagneticType),) }
    @property
    def solar_flux_geo_magnitude_type(self) -> "VehicleSolarFluxGeomagneticType":
        """Get the method for specifying solar and geomagnetic flux."""
        return self._intf.get_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._get_solar_flux_geo_magnitude_type_metadata)

    _set_solar_flux_geo_magnitude_type_metadata = { "offset" : _set_solar_flux_geo_magnitude_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSolarFluxGeomagneticType),) }
    def set_solar_flux_geo_magnitude_type(self, solar_flux_geo_mag:"VehicleSolarFluxGeomagneticType") -> None:
        """Set the method for specifying solar and geomagnetic flux."""
        return self._intf.invoke(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._set_solar_flux_geo_magnitude_type_metadata, solar_flux_geo_mag)

    _get_solar_flux_geo_magnitude_metadata = { "offset" : _get_solar_flux_geo_magnitude_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def solar_flux_geo_magnitude(self) -> "IVehicleSolarFluxGeoMagnitude":
        """Solar and geomagnetic flux."""
        return self._intf.get_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._get_solar_flux_geo_magnitude_metadata)

    _get_drag_model_type_metadata = { "offset" : _get_drag_model_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DragModel),) }
    @property
    def drag_model_type(self) -> "DragModel":
        """Return a type of the active drag model."""
        return self._intf.get_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._get_drag_model_type_metadata)

    _set_drag_model_type_metadata = { "offset" : _set_drag_model_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(DragModel),) }
    def set_drag_model_type(self, drag_model:"DragModel") -> None:
        """Change the active drag model type."""
        return self._intf.invoke(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._set_drag_model_type_metadata, drag_model)

    _is_drag_model_type_supported_metadata = { "offset" : _is_drag_model_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(DragModel), agmarshall.VariantBoolArg,) }
    def is_drag_model_type_supported(self, drag_model:"DragModel") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._is_drag_model_type_supported_metadata, drag_model, OutArg())

    _get_drag_model_supported_types_metadata = { "offset" : _get_drag_model_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def drag_model_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._get_drag_model_supported_types_metadata)

    _get_drag_model_metadata = { "offset" : _get_drag_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drag_model(self) -> "IVehicleHPOPDragModel":
        """Return the active drag model."""
        return self._intf.get_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._get_drag_model_metadata)

    _get_low_altitude_atmospheric_density_model_metadata = { "offset" : _get_low_altitude_atmospheric_density_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AtmosphericDensityModel),) }
    @property
    def low_altitude_atmospheric_density_model(self) -> "AtmosphericDensityModel":
        """Do not use this property, as it is deprecated. Use LowAltAtmosDensityModel instead. Select the low altitude atmospheric density model to be used."""
        return self._intf.get_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._get_low_altitude_atmospheric_density_model_metadata)

    _set_low_altitude_atmospheric_density_model_metadata = { "offset" : _set_low_altitude_atmospheric_density_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AtmosphericDensityModel),) }
    @low_altitude_atmospheric_density_model.setter
    def low_altitude_atmospheric_density_model(self, atmospheric_density_model:"AtmosphericDensityModel") -> None:
        return self._intf.set_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._set_low_altitude_atmospheric_density_model_metadata, atmospheric_density_model)

    _get_blending_range_metadata = { "offset" : _get_blending_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def blending_range(self) -> float:
        """Atmospheric blending range: measured from the lower extent of the upper atmospheric model. Uses distance dimension."""
        return self._intf.get_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._get_blending_range_metadata)

    _set_blending_range_metadata = { "offset" : _set_blending_range_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @blending_range.setter
    def blending_range(self, blend_range:float) -> None:
        return self._intf.set_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._set_blending_range_metadata, blend_range)

    _get_low_altitude_atmosphere_density_model_metadata = { "offset" : _get_low_altitude_atmosphere_density_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LowAltitudeAtmosphericDensityModel),) }
    @property
    def low_altitude_atmosphere_density_model(self) -> "LowAltitudeAtmosphericDensityModel":
        """Select the low altitude atmospheric density model to be used."""
        return self._intf.get_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._get_low_altitude_atmosphere_density_model_metadata)

    _set_low_altitude_atmosphere_density_model_metadata = { "offset" : _set_low_altitude_atmosphere_density_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LowAltitudeAtmosphericDensityModel),) }
    @low_altitude_atmosphere_density_model.setter
    def low_altitude_atmosphere_density_model(self, atmospheric_density_model:"LowAltitudeAtmosphericDensityModel") -> None:
        return self._intf.set_property(VehicleHPOPForceModelDrag._metadata, VehicleHPOPForceModelDrag._set_low_altitude_atmosphere_density_model_metadata, atmospheric_density_model)

    _property_names[use] = "use"
    _property_names[atmospheric_density_model] = "atmospheric_density_model"
    _property_names[solar_flux_geo_magnitude_type] = "solar_flux_geo_magnitude_type"
    _property_names[solar_flux_geo_magnitude] = "solar_flux_geo_magnitude"
    _property_names[drag_model_type] = "drag_model_type"
    _property_names[drag_model_supported_types] = "drag_model_supported_types"
    _property_names[drag_model] = "drag_model"
    _property_names[low_altitude_atmospheric_density_model] = "low_altitude_atmospheric_density_model"
    _property_names[blending_range] = "blending_range"
    _property_names[low_altitude_atmosphere_density_model] = "low_altitude_atmosphere_density_model"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPForceModelDrag."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPForceModelDrag)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPForceModelDrag, [VehicleHPOPForceModelDrag, ])

agcls.AgClassCatalog.add_catalog_entry((4974126595777146641, 5885033249959001996), VehicleHPOPForceModelDrag)
agcls.AgTypeNameMap["VehicleHPOPForceModelDrag"] = VehicleHPOPForceModelDrag

class VehicleHPOPForceModelDragOptions(SupportsDeleteCallback):
    """Interface for additional options for atmospheric drag."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_approx_altitude_method_offset = 1
    _set_use_approx_altitude_method_offset = 2
    _get_use_apparent_sun_position_method_offset = 3
    _set_use_apparent_sun_position_method_offset = 4
    _metadata = {
        "iid_data" : (4702856246965742244, 5665241706758726078),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPForceModelDragOptions)

    _get_use_approx_altitude_metadata = { "offset" : _get_use_approx_altitude_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_approx_altitude(self) -> bool:
        """Opt whether to have the drag model use an approximate expression to determine altitude, instead of finding the exact altitude, when computing density."""
        return self._intf.get_property(VehicleHPOPForceModelDragOptions._metadata, VehicleHPOPForceModelDragOptions._get_use_approx_altitude_metadata)

    _set_use_approx_altitude_metadata = { "offset" : _set_use_approx_altitude_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_approx_altitude.setter
    def use_approx_altitude(self, use_approx_alt:bool) -> None:
        return self._intf.set_property(VehicleHPOPForceModelDragOptions._metadata, VehicleHPOPForceModelDragOptions._set_use_approx_altitude_metadata, use_approx_alt)

    _get_use_apparent_sun_position_metadata = { "offset" : _get_use_apparent_sun_position_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_apparent_sun_position(self) -> bool:
        """Opt whether to use the apparent position of the sun; otherwise, the true position of the sun is used."""
        return self._intf.get_property(VehicleHPOPForceModelDragOptions._metadata, VehicleHPOPForceModelDragOptions._get_use_apparent_sun_position_metadata)

    _set_use_apparent_sun_position_metadata = { "offset" : _set_use_apparent_sun_position_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_apparent_sun_position.setter
    def use_apparent_sun_position(self, use_apparent_sun_position:bool) -> None:
        return self._intf.set_property(VehicleHPOPForceModelDragOptions._metadata, VehicleHPOPForceModelDragOptions._set_use_apparent_sun_position_metadata, use_apparent_sun_position)

    _property_names[use_approx_altitude] = "use_approx_altitude"
    _property_names[use_apparent_sun_position] = "use_apparent_sun_position"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPForceModelDragOptions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPForceModelDragOptions)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPForceModelDragOptions, [VehicleHPOPForceModelDragOptions, ])

agcls.AgClassCatalog.add_catalog_entry((5460927696774812781, 11941136458748820629), VehicleHPOPForceModelDragOptions)
agcls.AgTypeNameMap["VehicleHPOPForceModelDragOptions"] = VehicleHPOPForceModelDragOptions

class VehicleHPOPSolarRadiationPressureOptions(SupportsDeleteCallback):
    """Interface for additional solar radiation pressure options."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_method_to_compute_sun_position_method_offset = 1
    _set_method_to_compute_sun_position_method_offset = 2
    _get_atmosphere_altitude_of_earth_shape_for_eclipse_method_offset = 3
    _set_atmosphere_altitude_of_earth_shape_for_eclipse_method_offset = 4
    _metadata = {
        "iid_data" : (5334448079374411024, 796188310291163302),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPSolarRadiationPressureOptions)

    _get_method_to_compute_sun_position_metadata = { "offset" : _get_method_to_compute_sun_position_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MethodToComputeSunPosition),) }
    @property
    def method_to_compute_sun_position(self) -> "MethodToComputeSunPosition":
        """Specify the direction of the Sun for SRP computations."""
        return self._intf.get_property(VehicleHPOPSolarRadiationPressureOptions._metadata, VehicleHPOPSolarRadiationPressureOptions._get_method_to_compute_sun_position_metadata)

    _set_method_to_compute_sun_position_metadata = { "offset" : _set_method_to_compute_sun_position_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MethodToComputeSunPosition),) }
    @method_to_compute_sun_position.setter
    def method_to_compute_sun_position(self, method_to_compute_sun_position:"MethodToComputeSunPosition") -> None:
        return self._intf.set_property(VehicleHPOPSolarRadiationPressureOptions._metadata, VehicleHPOPSolarRadiationPressureOptions._set_method_to_compute_sun_position_metadata, method_to_compute_sun_position)

    _get_atmosphere_altitude_of_earth_shape_for_eclipse_metadata = { "offset" : _get_atmosphere_altitude_of_earth_shape_for_eclipse_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def atmosphere_altitude_of_earth_shape_for_eclipse(self) -> float:
        """Atmospheric altitude for the shape of the Earth for eclipses. Uses Distance Dimension."""
        return self._intf.get_property(VehicleHPOPSolarRadiationPressureOptions._metadata, VehicleHPOPSolarRadiationPressureOptions._get_atmosphere_altitude_of_earth_shape_for_eclipse_metadata)

    _set_atmosphere_altitude_of_earth_shape_for_eclipse_metadata = { "offset" : _set_atmosphere_altitude_of_earth_shape_for_eclipse_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @atmosphere_altitude_of_earth_shape_for_eclipse.setter
    def atmosphere_altitude_of_earth_shape_for_eclipse(self, atmos_alt_of_earth_shape_for_eclipse:float) -> None:
        return self._intf.set_property(VehicleHPOPSolarRadiationPressureOptions._metadata, VehicleHPOPSolarRadiationPressureOptions._set_atmosphere_altitude_of_earth_shape_for_eclipse_metadata, atmos_alt_of_earth_shape_for_eclipse)

    _property_names[method_to_compute_sun_position] = "method_to_compute_sun_position"
    _property_names[atmosphere_altitude_of_earth_shape_for_eclipse] = "atmosphere_altitude_of_earth_shape_for_eclipse"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPSolarRadiationPressureOptions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPSolarRadiationPressureOptions)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPSolarRadiationPressureOptions, [VehicleHPOPSolarRadiationPressureOptions, ])

agcls.AgClassCatalog.add_catalog_entry((5503448351271347876, 13166772244891550382), VehicleHPOPSolarRadiationPressureOptions)
agcls.AgTypeNameMap["VehicleHPOPSolarRadiationPressureOptions"] = VehicleHPOPSolarRadiationPressureOptions

class PropagatorHPOPStaticForceModelSettings(SupportsDeleteCallback):
    """Interface for additional static force model options."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_satellite_mass_method_offset = 1
    _set_satellite_mass_method_offset = 2
    _get_include_relativistic_acceleration_method_offset = 3
    _set_include_relativistic_acceleration_method_offset = 4
    _metadata = {
        "iid_data" : (5509860630907532686, 1540726506057024414),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorHPOPStaticForceModelSettings)

    _get_satellite_mass_metadata = { "offset" : _get_satellite_mass_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def satellite_mass(self) -> float:
        """A value for the satellite's mass to be used in atmospheric drag and solar radiation pressure calculations. Uses Mass Dimension."""
        return self._intf.get_property(PropagatorHPOPStaticForceModelSettings._metadata, PropagatorHPOPStaticForceModelSettings._get_satellite_mass_metadata)

    _set_satellite_mass_metadata = { "offset" : _set_satellite_mass_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @satellite_mass.setter
    def satellite_mass(self, satellite_mass:float) -> None:
        return self._intf.set_property(PropagatorHPOPStaticForceModelSettings._metadata, PropagatorHPOPStaticForceModelSettings._set_satellite_mass_metadata, satellite_mass)

    _get_include_relativistic_acceleration_metadata = { "offset" : _get_include_relativistic_acceleration_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_relativistic_acceleration(self) -> bool:
        """Models the effects of general relativity in accordance with IERS Technical Note 32, IERS Conventions (2003)."""
        return self._intf.get_property(PropagatorHPOPStaticForceModelSettings._metadata, PropagatorHPOPStaticForceModelSettings._get_include_relativistic_acceleration_metadata)

    _set_include_relativistic_acceleration_metadata = { "offset" : _set_include_relativistic_acceleration_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_relativistic_acceleration.setter
    def include_relativistic_acceleration(self, inc_relativistic_acc:bool) -> None:
        return self._intf.set_property(PropagatorHPOPStaticForceModelSettings._metadata, PropagatorHPOPStaticForceModelSettings._set_include_relativistic_acceleration_metadata, inc_relativistic_acc)

    _property_names[satellite_mass] = "satellite_mass"
    _property_names[include_relativistic_acceleration] = "include_relativistic_acceleration"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorHPOPStaticForceModelSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorHPOPStaticForceModelSettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorHPOPStaticForceModelSettings, [PropagatorHPOPStaticForceModelSettings, ])

agcls.AgClassCatalog.add_catalog_entry((5658300043339012269, 4837646549557966765), PropagatorHPOPStaticForceModelSettings)
agcls.AgTypeNameMap["PropagatorHPOPStaticForceModelSettings"] = PropagatorHPOPStaticForceModelSettings

class SolidTides(SupportsDeleteCallback):
    """Interface for additional force model options related to solid tides."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_include_time_dependent_solid_tides_method_offset = 1
    _set_include_time_dependent_solid_tides_method_offset = 2
    _get_minimum_amplitude_method_offset = 3
    _set_minimum_amplitude_method_offset = 4
    _get_truncate_solid_tides_method_offset = 5
    _set_truncate_solid_tides_method_offset = 6
    _metadata = {
        "iid_data" : (5263256068630555240, 6034773159860154529),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SolidTides)

    _get_include_time_dependent_solid_tides_metadata = { "offset" : _get_include_time_dependent_solid_tides_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_time_dependent_solid_tides(self) -> bool:
        """Time-dependent solid tide effects: opt whether to account for the secondary contribution from certain effects of loading the crust and core."""
        return self._intf.get_property(SolidTides._metadata, SolidTides._get_include_time_dependent_solid_tides_metadata)

    _set_include_time_dependent_solid_tides_metadata = { "offset" : _set_include_time_dependent_solid_tides_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_time_dependent_solid_tides.setter
    def include_time_dependent_solid_tides(self, inc_time_dep_solid_tides:bool) -> None:
        return self._intf.set_property(SolidTides._metadata, SolidTides._set_include_time_dependent_solid_tides_metadata, inc_time_dep_solid_tides)

    _get_minimum_amplitude_metadata = { "offset" : _get_minimum_amplitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_amplitude(self) -> float:
        """Minimum tidal amplitude to include in the computation. Uses SmallDistanceUnit Dimension."""
        return self._intf.get_property(SolidTides._metadata, SolidTides._get_minimum_amplitude_metadata)

    _set_minimum_amplitude_metadata = { "offset" : _set_minimum_amplitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_amplitude.setter
    def minimum_amplitude(self, min_amplitude:float) -> None:
        return self._intf.set_property(SolidTides._metadata, SolidTides._set_minimum_amplitude_metadata, min_amplitude)

    _get_truncate_solid_tides_metadata = { "offset" : _get_truncate_solid_tides_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def truncate_solid_tides(self) -> bool:
        """True if solid tide terms (including permanent tide) won't be included beyond the degree and order selected for the gravity model."""
        return self._intf.get_property(SolidTides._metadata, SolidTides._get_truncate_solid_tides_metadata)

    _set_truncate_solid_tides_metadata = { "offset" : _set_truncate_solid_tides_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @truncate_solid_tides.setter
    def truncate_solid_tides(self, value:bool) -> None:
        return self._intf.set_property(SolidTides._metadata, SolidTides._set_truncate_solid_tides_metadata, value)

    _property_names[include_time_dependent_solid_tides] = "include_time_dependent_solid_tides"
    _property_names[minimum_amplitude] = "minimum_amplitude"
    _property_names[truncate_solid_tides] = "truncate_solid_tides"

    def __init__(self, source_object=None):
        """Construct an object of type SolidTides."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SolidTides)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SolidTides, [SolidTides, ])

agcls.AgClassCatalog.add_catalog_entry((4921481311382714366, 17215651443877996469), SolidTides)
agcls.AgTypeNameMap["SolidTides"] = SolidTides

class OceanTides(SupportsDeleteCallback):
    """Interface for additional force model options related to ocean tides."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_maximum_degree_method_offset = 1
    _set_maximum_degree_method_offset = 2
    _get_maximum_order_method_offset = 3
    _set_maximum_order_method_offset = 4
    _get_minimum_amplitude_method_offset = 5
    _set_minimum_amplitude_method_offset = 6
    _metadata = {
        "iid_data" : (4745633719226739656, 11554815202916848052),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OceanTides)

    _get_maximum_degree_metadata = { "offset" : _get_maximum_degree_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_degree(self) -> int:
        """Maximum degree: limit the ocean tide model to contributions of a specified maximum degree. Dimensionless."""
        return self._intf.get_property(OceanTides._metadata, OceanTides._get_maximum_degree_metadata)

    _set_maximum_degree_metadata = { "offset" : _set_maximum_degree_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_degree.setter
    def maximum_degree(self, max_degree:int) -> None:
        return self._intf.set_property(OceanTides._metadata, OceanTides._set_maximum_degree_metadata, max_degree)

    _get_maximum_order_metadata = { "offset" : _get_maximum_order_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_order(self) -> int:
        """Maximum order: limit the ocean tide model to contributions of a specified maximum order. Dimensionless."""
        return self._intf.get_property(OceanTides._metadata, OceanTides._get_maximum_order_metadata)

    _set_maximum_order_metadata = { "offset" : _set_maximum_order_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_order.setter
    def maximum_order(self, max_order:int) -> None:
        return self._intf.set_property(OceanTides._metadata, OceanTides._set_maximum_order_metadata, max_order)

    _get_minimum_amplitude_metadata = { "offset" : _get_minimum_amplitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_amplitude(self) -> float:
        """Minimum amplitude: include only those constituents whose tidal amplitude is sufficiently large by specifying the minimum amplitude to include in the computation. Uses SmallDistanceUnit Dimension."""
        return self._intf.get_property(OceanTides._metadata, OceanTides._get_minimum_amplitude_metadata)

    _set_minimum_amplitude_metadata = { "offset" : _set_minimum_amplitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_amplitude.setter
    def minimum_amplitude(self, min_amplitude:float) -> None:
        return self._intf.set_property(OceanTides._metadata, OceanTides._set_minimum_amplitude_metadata, min_amplitude)

    _property_names[maximum_degree] = "maximum_degree"
    _property_names[maximum_order] = "maximum_order"
    _property_names[minimum_amplitude] = "minimum_amplitude"

    def __init__(self, source_object=None):
        """Construct an object of type OceanTides."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OceanTides)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OceanTides, [OceanTides, ])

agcls.AgClassCatalog.add_catalog_entry((5062423875036373895, 6723548894775986869), OceanTides)
agcls.AgTypeNameMap["OceanTides"] = OceanTides

class VehiclePluginSettings(SupportsDeleteCallback):
    """Interface for HPOP plugin settings."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_property_method_offset = 1
    _set_property_method_offset = 2
    _get_available_properties_method_offset = 3
    _metadata = {
        "iid_data" : (5065875480285277070, 8766139513383818937),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehiclePluginSettings)

    _get_property_metadata = { "offset" : _get_property_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg,) }
    def get_property(self, path:str) -> typing.Any:
        """Get a property."""
        return self._intf.invoke(VehiclePluginSettings._metadata, VehiclePluginSettings._get_property_metadata, path, OutArg())

    _set_property_metadata = { "offset" : _set_property_method_offset,
            "arg_types" : (agcom.BSTR, agcom.Variant,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg,) }
    def set_property(self, path:str, value:typing.Any) -> None:
        """Set a property."""
        return self._intf.invoke(VehiclePluginSettings._metadata, VehiclePluginSettings._set_property_metadata, path, value)

    _get_available_properties_metadata = { "offset" : _get_available_properties_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_properties(self) -> list:
        """Available properties."""
        return self._intf.get_property(VehiclePluginSettings._metadata, VehiclePluginSettings._get_available_properties_metadata)

    _property_names[available_properties] = "available_properties"

    def __init__(self, source_object=None):
        """Construct an object of type VehiclePluginSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehiclePluginSettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehiclePluginSettings, [VehiclePluginSettings, ])

agcls.AgClassCatalog.add_catalog_entry((5684984747057311219, 16304066213008949160), VehiclePluginSettings)
agcls.AgTypeNameMap["VehiclePluginSettings"] = VehiclePluginSettings

class VehiclePluginPropagator(SupportsDeleteCallback):
    """Interface for propagator plugin."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_plugin_method_offset = 1
    _set_use_plugin_method_offset = 2
    _get_plugin_name_method_offset = 3
    _set_plugin_name_method_offset = 4
    _get_plugin_settings_method_offset = 5
    _get_raw_plugin_object_method_offset = 6
    _apply_plugin_changes_method_offset = 7
    _get_available_plugins_method_offset = 8
    _metadata = {
        "iid_data" : (4857790121125032203, 13560502021062313641),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehiclePluginPropagator)

    _get_use_plugin_metadata = { "offset" : _get_use_plugin_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_plugin(self) -> bool:
        """Opt whether to use a plugin."""
        return self._intf.get_property(VehiclePluginPropagator._metadata, VehiclePluginPropagator._get_use_plugin_metadata)

    _set_use_plugin_metadata = { "offset" : _set_use_plugin_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_plugin.setter
    def use_plugin(self, use_plugin:bool) -> None:
        return self._intf.set_property(VehiclePluginPropagator._metadata, VehiclePluginPropagator._set_use_plugin_metadata, use_plugin)

    _get_plugin_name_metadata = { "offset" : _get_plugin_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def plugin_name(self) -> str:
        """Get or set the complete name of the plugin."""
        return self._intf.get_property(VehiclePluginPropagator._metadata, VehiclePluginPropagator._get_plugin_name_metadata)

    _set_plugin_name_metadata = { "offset" : _set_plugin_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @plugin_name.setter
    def plugin_name(self, plugin_name:str) -> None:
        return self._intf.set_property(VehiclePluginPropagator._metadata, VehiclePluginPropagator._set_plugin_name_metadata, plugin_name)

    _get_plugin_settings_metadata = { "offset" : _get_plugin_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_settings(self) -> "VehiclePluginSettings":
        """Get the parameters of the selected plugin."""
        return self._intf.get_property(VehiclePluginPropagator._metadata, VehiclePluginPropagator._get_plugin_settings_metadata)

    _get_raw_plugin_object_metadata = { "offset" : _get_raw_plugin_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_raw_plugin_object(self) -> typing.Any:
        """Get a raw pointer to the instance of the plugin."""
        return self._intf.invoke(VehiclePluginPropagator._metadata, VehiclePluginPropagator._get_raw_plugin_object_metadata, OutArg())

    _apply_plugin_changes_metadata = { "offset" : _apply_plugin_changes_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def apply_plugin_changes(self) -> None:
        """Apply the changes made to the plugin's configuration."""
        return self._intf.invoke(VehiclePluginPropagator._metadata, VehiclePluginPropagator._apply_plugin_changes_metadata, )

    _get_available_plugins_metadata = { "offset" : _get_available_plugins_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_plugins(self) -> list:
        """Get the list of all the available plugins."""
        return self._intf.get_property(VehiclePluginPropagator._metadata, VehiclePluginPropagator._get_available_plugins_metadata)

    _property_names[use_plugin] = "use_plugin"
    _property_names[plugin_name] = "plugin_name"
    _property_names[plugin_settings] = "plugin_settings"
    _property_names[available_plugins] = "available_plugins"

    def __init__(self, source_object=None):
        """Construct an object of type VehiclePluginPropagator."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehiclePluginPropagator)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehiclePluginPropagator, [VehiclePluginPropagator, ])

agcls.AgClassCatalog.add_catalog_entry((5465223646534094221, 6897429558290734999), VehiclePluginPropagator)
agcls.AgTypeNameMap["VehiclePluginPropagator"] = VehiclePluginPropagator

class VehicleHPOPForceModelMoreOptions(SupportsDeleteCallback):
    """Interface for additional force model options."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_drag_method_offset = 1
    _get_solar_radiation_pressure_method_offset = 2
    _get_static_method_offset = 3
    _get_solid_tides_method_offset = 4
    _get_ocean_tides_method_offset = 5
    _get_radiation_pressure_method_offset = 6
    _get_plugin_propagator_method_offset = 7
    _metadata = {
        "iid_data" : (5174256804673406604, 6076262374589126801),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPForceModelMoreOptions)

    _get_drag_metadata = { "offset" : _get_drag_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drag(self) -> "VehicleHPOPForceModelDragOptions":
        """Get the additional atmospheric drag options."""
        return self._intf.get_property(VehicleHPOPForceModelMoreOptions._metadata, VehicleHPOPForceModelMoreOptions._get_drag_metadata)

    _get_solar_radiation_pressure_metadata = { "offset" : _get_solar_radiation_pressure_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def solar_radiation_pressure(self) -> "VehicleHPOPSolarRadiationPressureOptions":
        """Get the additional solar radiation pressure options."""
        return self._intf.get_property(VehicleHPOPForceModelMoreOptions._metadata, VehicleHPOPForceModelMoreOptions._get_solar_radiation_pressure_metadata)

    _get_static_metadata = { "offset" : _get_static_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def static(self) -> "PropagatorHPOPStaticForceModelSettings":
        """Get the static force model options concerning satellite mass and relativistic accelerations."""
        return self._intf.get_property(VehicleHPOPForceModelMoreOptions._metadata, VehicleHPOPForceModelMoreOptions._get_static_metadata)

    _get_solid_tides_metadata = { "offset" : _get_solid_tides_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def solid_tides(self) -> "SolidTides":
        """Get the solid tides options."""
        return self._intf.get_property(VehicleHPOPForceModelMoreOptions._metadata, VehicleHPOPForceModelMoreOptions._get_solid_tides_metadata)

    _get_ocean_tides_metadata = { "offset" : _get_ocean_tides_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ocean_tides(self) -> "OceanTides":
        """Get the ocean tides options."""
        return self._intf.get_property(VehicleHPOPForceModelMoreOptions._metadata, VehicleHPOPForceModelMoreOptions._get_ocean_tides_metadata)

    _get_radiation_pressure_metadata = { "offset" : _get_radiation_pressure_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radiation_pressure(self) -> "RadiationPressure":
        """Get the radiation pressure options."""
        return self._intf.get_property(VehicleHPOPForceModelMoreOptions._metadata, VehicleHPOPForceModelMoreOptions._get_radiation_pressure_metadata)

    _get_plugin_propagator_metadata = { "offset" : _get_plugin_propagator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_propagator(self) -> "VehiclePluginPropagator":
        """Get the plugin propagator parameters."""
        return self._intf.get_property(VehicleHPOPForceModelMoreOptions._metadata, VehicleHPOPForceModelMoreOptions._get_plugin_propagator_metadata)

    _property_names[drag] = "drag"
    _property_names[solar_radiation_pressure] = "solar_radiation_pressure"
    _property_names[static] = "static"
    _property_names[solid_tides] = "solid_tides"
    _property_names[ocean_tides] = "ocean_tides"
    _property_names[radiation_pressure] = "radiation_pressure"
    _property_names[plugin_propagator] = "plugin_propagator"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPForceModelMoreOptions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPForceModelMoreOptions)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPForceModelMoreOptions, [VehicleHPOPForceModelMoreOptions, ])

agcls.AgClassCatalog.add_catalog_entry((4699198047769406293, 14852521233841347505), VehicleHPOPForceModelMoreOptions)
agcls.AgTypeNameMap["VehicleHPOPForceModelMoreOptions"] = VehicleHPOPForceModelMoreOptions

class VehicleHPOPForceModel(SupportsDeleteCallback):
    """Interface for HPOP force models."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_central_body_gravity_method_offset = 1
    _get_solar_radiation_pressure_method_offset = 2
    _get_drag_method_offset = 3
    _get_third_body_gravity_method_offset = 4
    _get_more_options_method_offset = 5
    _get_eclipsing_bodies_method_offset = 6
    _metadata = {
        "iid_data" : (5338333891463494389, 15094987211078854816),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPForceModel)

    _get_central_body_gravity_metadata = { "offset" : _get_central_body_gravity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def central_body_gravity(self) -> "VehicleHPOPCentralBodyGravity":
        """Get the central body gravity properties."""
        return self._intf.get_property(VehicleHPOPForceModel._metadata, VehicleHPOPForceModel._get_central_body_gravity_metadata)

    _get_solar_radiation_pressure_metadata = { "offset" : _get_solar_radiation_pressure_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def solar_radiation_pressure(self) -> "VehicleHPOPSolarRadiationPressure":
        """Get the solar radiation pressure properties."""
        return self._intf.get_property(VehicleHPOPForceModel._metadata, VehicleHPOPForceModel._get_solar_radiation_pressure_metadata)

    _get_drag_metadata = { "offset" : _get_drag_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drag(self) -> "VehicleHPOPForceModelDrag":
        """Get the atmospheric drag properties."""
        return self._intf.get_property(VehicleHPOPForceModel._metadata, VehicleHPOPForceModel._get_drag_metadata)

    _get_third_body_gravity_metadata = { "offset" : _get_third_body_gravity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def third_body_gravity(self) -> "PropagatorHPOPThirdBodyGravityCollection":
        """Get the 3rd-body gravity properties."""
        return self._intf.get_property(VehicleHPOPForceModel._metadata, VehicleHPOPForceModel._get_third_body_gravity_metadata)

    _get_more_options_metadata = { "offset" : _get_more_options_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def more_options(self) -> "VehicleHPOPForceModelMoreOptions":
        """Get the additional force model options."""
        return self._intf.get_property(VehicleHPOPForceModel._metadata, VehicleHPOPForceModel._get_more_options_metadata)

    _get_eclipsing_bodies_metadata = { "offset" : _get_eclipsing_bodies_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def eclipsing_bodies(self) -> "VehicleEclipsingBodies":
        """Get the eclipsing bodies."""
        return self._intf.get_property(VehicleHPOPForceModel._metadata, VehicleHPOPForceModel._get_eclipsing_bodies_metadata)

    _property_names[central_body_gravity] = "central_body_gravity"
    _property_names[solar_radiation_pressure] = "solar_radiation_pressure"
    _property_names[drag] = "drag"
    _property_names[third_body_gravity] = "third_body_gravity"
    _property_names[more_options] = "more_options"
    _property_names[eclipsing_bodies] = "eclipsing_bodies"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPForceModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPForceModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPForceModel, [VehicleHPOPForceModel, ])

agcls.AgClassCatalog.add_catalog_entry((5269388614442139783, 2613232291735167363), VehicleHPOPForceModel)
agcls.AgTypeNameMap["VehicleHPOPForceModel"] = VehicleHPOPForceModel

class IntegratorStepSizeControl(SupportsDeleteCallback):
    """Interface for step size control."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_method_method_offset = 1
    _set_method_method_offset = 2
    _get_error_tolerance_method_offset = 3
    _set_error_tolerance_method_offset = 4
    _get_minimum_step_size_method_offset = 5
    _set_minimum_step_size_method_offset = 6
    _get_maximum_step_size_method_offset = 7
    _set_maximum_step_size_method_offset = 8
    _metadata = {
        "iid_data" : (5707132558902087949, 4354837239942270866),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, IntegratorStepSizeControl)

    _get_method_metadata = { "offset" : _get_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleMethod),) }
    @property
    def method(self) -> "VehicleMethod":
        """Fixed step or relative error."""
        return self._intf.get_property(IntegratorStepSizeControl._metadata, IntegratorStepSizeControl._get_method_metadata)

    _set_method_metadata = { "offset" : _set_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleMethod),) }
    @method.setter
    def method(self, method:"VehicleMethod") -> None:
        return self._intf.set_property(IntegratorStepSizeControl._metadata, IntegratorStepSizeControl._set_method_metadata, method)

    _get_error_tolerance_metadata = { "offset" : _get_error_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def error_tolerance(self) -> float:
        """If the method is relative error. Dimensionless."""
        return self._intf.get_property(IntegratorStepSizeControl._metadata, IntegratorStepSizeControl._get_error_tolerance_metadata)

    _set_error_tolerance_metadata = { "offset" : _set_error_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @error_tolerance.setter
    def error_tolerance(self, error_tolerance:float) -> None:
        return self._intf.set_property(IntegratorStepSizeControl._metadata, IntegratorStepSizeControl._set_error_tolerance_metadata, error_tolerance)

    _get_minimum_step_size_metadata = { "offset" : _get_minimum_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_step_size(self) -> float:
        """If the method is relative error. Uses Time Dimension."""
        return self._intf.get_property(IntegratorStepSizeControl._metadata, IntegratorStepSizeControl._get_minimum_step_size_metadata)

    _set_minimum_step_size_metadata = { "offset" : _set_minimum_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_step_size.setter
    def minimum_step_size(self, min_step_size:float) -> None:
        return self._intf.set_property(IntegratorStepSizeControl._metadata, IntegratorStepSizeControl._set_minimum_step_size_metadata, min_step_size)

    _get_maximum_step_size_metadata = { "offset" : _get_maximum_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_step_size(self) -> float:
        """If the method is relative error. Uses Time Dimension."""
        return self._intf.get_property(IntegratorStepSizeControl._metadata, IntegratorStepSizeControl._get_maximum_step_size_metadata)

    _set_maximum_step_size_metadata = { "offset" : _set_maximum_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_step_size.setter
    def maximum_step_size(self, max_step_size:float) -> None:
        return self._intf.set_property(IntegratorStepSizeControl._metadata, IntegratorStepSizeControl._set_maximum_step_size_metadata, max_step_size)

    _property_names[method] = "method"
    _property_names[error_tolerance] = "error_tolerance"
    _property_names[minimum_step_size] = "minimum_step_size"
    _property_names[maximum_step_size] = "maximum_step_size"

    def __init__(self, source_object=None):
        """Construct an object of type IntegratorStepSizeControl."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, IntegratorStepSizeControl)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, IntegratorStepSizeControl, [IntegratorStepSizeControl, ])

agcls.AgClassCatalog.add_catalog_entry((4827485377242329268, 10478285793864442545), IntegratorStepSizeControl)
agcls.AgTypeNameMap["IntegratorStepSizeControl"] = IntegratorStepSizeControl

class IntegratorTimeRegularization(SupportsDeleteCallback):
    """Interface for time regularization."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_method_offset = 1
    _set_use_method_offset = 2
    _get_exponent_method_offset = 3
    _set_exponent_method_offset = 4
    _get_steps_per_orbit_method_offset = 5
    _set_steps_per_orbit_method_offset = 6
    _metadata = {
        "iid_data" : (5669025921549043375, 12522568218497612219),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, IntegratorTimeRegularization)

    _get_use_metadata = { "offset" : _get_use_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use(self) -> bool:
        """Opt whether to integrate the orbit with respect to regularized time."""
        return self._intf.get_property(IntegratorTimeRegularization._metadata, IntegratorTimeRegularization._get_use_metadata)

    _set_use_metadata = { "offset" : _set_use_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use.setter
    def use(self, use:bool) -> None:
        return self._intf.set_property(IntegratorTimeRegularization._metadata, IntegratorTimeRegularization._set_use_metadata, use)

    _get_exponent_metadata = { "offset" : _get_exponent_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def exponent(self) -> float:
        """Exponent used in the regularization equation. Dimensionless."""
        return self._intf.get_property(IntegratorTimeRegularization._metadata, IntegratorTimeRegularization._get_exponent_metadata)

    _set_exponent_metadata = { "offset" : _set_exponent_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @exponent.setter
    def exponent(self, exponent:float) -> None:
        return self._intf.set_property(IntegratorTimeRegularization._metadata, IntegratorTimeRegularization._set_exponent_metadata, exponent)

    _get_steps_per_orbit_metadata = { "offset" : _get_steps_per_orbit_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def steps_per_orbit(self) -> int:
        """Integration steps per orbit. Dimensionless."""
        return self._intf.get_property(IntegratorTimeRegularization._metadata, IntegratorTimeRegularization._get_steps_per_orbit_metadata)

    _set_steps_per_orbit_metadata = { "offset" : _set_steps_per_orbit_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @steps_per_orbit.setter
    def steps_per_orbit(self, steps_per_orbit:int) -> None:
        return self._intf.set_property(IntegratorTimeRegularization._metadata, IntegratorTimeRegularization._set_steps_per_orbit_metadata, steps_per_orbit)

    _property_names[use] = "use"
    _property_names[exponent] = "exponent"
    _property_names[steps_per_orbit] = "steps_per_orbit"

    def __init__(self, source_object=None):
        """Construct an object of type IntegratorTimeRegularization."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, IntegratorTimeRegularization)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, IntegratorTimeRegularization, [IntegratorTimeRegularization, ])

agcls.AgClassCatalog.add_catalog_entry((5181710093397880649, 5592632751061841551), IntegratorTimeRegularization)
agcls.AgTypeNameMap["IntegratorTimeRegularization"] = IntegratorTimeRegularization

class VehicleInterpolation(SupportsDeleteCallback):
    """Interpolation interface."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_method_method_offset = 1
    _set_method_method_offset = 2
    _get_vop_mu_method_offset = 3
    _set_vop_mu_method_offset = 4
    _get_order_method_offset = 5
    _set_order_method_offset = 6
    _metadata = {
        "iid_data" : (5142609827729076349, 10454662441668119445),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleInterpolation)

    _get_method_metadata = { "offset" : _get_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleInterpolationMethod),) }
    @property
    def method(self) -> "VehicleInterpolationMethod":
        """Get or set the interpolation method."""
        return self._intf.get_property(VehicleInterpolation._metadata, VehicleInterpolation._get_method_metadata)

    _set_method_metadata = { "offset" : _set_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleInterpolationMethod),) }
    @method.setter
    def method(self, interpolation_method:"VehicleInterpolationMethod") -> None:
        return self._intf.set_property(VehicleInterpolation._metadata, VehicleInterpolation._set_method_metadata, interpolation_method)

    _get_vop_mu_metadata = { "offset" : _get_vop_mu_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def vop_mu(self) -> float:
        """Get or set the gravitational parameter used by the VOP method, in the range 1.993002209e+14 to 7.972008836e+14 for Earth based vehicles. Dimensionless."""
        return self._intf.get_property(VehicleInterpolation._metadata, VehicleInterpolation._get_vop_mu_metadata)

    _set_vop_mu_metadata = { "offset" : _set_vop_mu_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @vop_mu.setter
    def vop_mu(self, mu:float) -> None:
        return self._intf.set_property(VehicleInterpolation._metadata, VehicleInterpolation._set_vop_mu_metadata, mu)

    _get_order_metadata = { "offset" : _get_order_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def order(self) -> int:
        """Interpolation order. Dimensionless."""
        return self._intf.get_property(VehicleInterpolation._metadata, VehicleInterpolation._get_order_metadata)

    _set_order_metadata = { "offset" : _set_order_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @order.setter
    def order(self, order:int) -> None:
        return self._intf.set_property(VehicleInterpolation._metadata, VehicleInterpolation._set_order_metadata, order)

    _property_names[method] = "method"
    _property_names[vop_mu] = "vop_mu"
    _property_names[order] = "order"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleInterpolation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleInterpolation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleInterpolation, [VehicleInterpolation, ])

agcls.AgClassCatalog.add_catalog_entry((4872126416475508613, 16972023327919476147), VehicleInterpolation)
agcls.AgTypeNameMap["VehicleInterpolation"] = VehicleInterpolation

class VehicleIntegrator(SupportsDeleteCallback):
    """Interface for HPOP integrator."""

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_integration_model_method_offset = 1
    _set_integration_model_method_offset = 2
    _get_use_graphics_3d_p_method_offset = 3
    _set_use_graphics_3d_p_method_offset = 4
    _get_predictor_corrector_scheme_method_offset = 5
    _set_predictor_corrector_scheme_method_offset = 6
    _get_step_size_control_method_offset = 7
    _get_time_regularization_method_offset = 8
    _get_interpolation_method_offset = 9
    _get_report_ephemeris_on_fixed_time_step_method_offset = 10
    _set_report_ephemeris_on_fixed_time_step_method_offset = 11
    _get_do_not_propagate_below_altitude_method_offset = 12
    _set_do_not_propagate_below_altitude_method_offset = 13
    _get_allow_position_velocity_covariance_interpolation_method_offset = 14
    _set_allow_position_velocity_covariance_interpolation_method_offset = 15
    _metadata = {
        "iid_data" : (4865148983571878735, 1000475680568814773),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleIntegrator)

    _get_integration_model_metadata = { "offset" : _get_integration_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleIntegrationModel),) }
    @property
    def integration_model(self) -> "VehicleIntegrationModel":
        """Integration method to be used in propagating the orbit."""
        return self._intf.get_property(VehicleIntegrator._metadata, VehicleIntegrator._get_integration_model_metadata)

    _set_integration_model_metadata = { "offset" : _set_integration_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleIntegrationModel),) }
    @integration_model.setter
    def integration_model(self, integration_model:"VehicleIntegrationModel") -> None:
        return self._intf.set_property(VehicleIntegrator._metadata, VehicleIntegrator._set_integration_model_metadata, integration_model)

    _get_use_graphics_3d_p_metadata = { "offset" : _get_use_graphics_3d_p_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_graphics_3d_p(self) -> bool:
        """Opt whether to use VOP, a variation of parameters in universal variables formulation of the equations of motion. Valid in combination with the RKF7(8) and Burlirsch-Stoer integration methods."""
        return self._intf.get_property(VehicleIntegrator._metadata, VehicleIntegrator._get_use_graphics_3d_p_metadata)

    _set_use_graphics_3d_p_metadata = { "offset" : _set_use_graphics_3d_p_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_graphics_3d_p.setter
    def use_graphics_3d_p(self, use_vop:bool) -> None:
        return self._intf.set_property(VehicleIntegrator._metadata, VehicleIntegrator._set_use_graphics_3d_p_metadata, use_vop)

    _get_predictor_corrector_scheme_metadata = { "offset" : _get_predictor_corrector_scheme_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehiclePredictorCorrectorScheme),) }
    @property
    def predictor_corrector_scheme(self) -> "VehiclePredictorCorrectorScheme":
        """Predictor corrector scheme (valid for Gauss-Jackson method only): method for updating acceleration components after corrector has converged."""
        return self._intf.get_property(VehicleIntegrator._metadata, VehicleIntegrator._get_predictor_corrector_scheme_metadata)

    _set_predictor_corrector_scheme_metadata = { "offset" : _set_predictor_corrector_scheme_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehiclePredictorCorrectorScheme),) }
    @predictor_corrector_scheme.setter
    def predictor_corrector_scheme(self, predictor_corrector_scheme:"VehiclePredictorCorrectorScheme") -> None:
        return self._intf.set_property(VehicleIntegrator._metadata, VehicleIntegrator._set_predictor_corrector_scheme_metadata, predictor_corrector_scheme)

    _get_step_size_control_metadata = { "offset" : _get_step_size_control_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def step_size_control(self) -> "IntegratorStepSizeControl":
        """Get the method of integration step size control."""
        return self._intf.get_property(VehicleIntegrator._metadata, VehicleIntegrator._get_step_size_control_metadata)

    _get_time_regularization_metadata = { "offset" : _get_time_regularization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_regularization(self) -> "IntegratorTimeRegularization":
        """Get the time regularization parameters."""
        return self._intf.get_property(VehicleIntegrator._metadata, VehicleIntegrator._get_time_regularization_metadata)

    _get_interpolation_metadata = { "offset" : _get_interpolation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def interpolation(self) -> "VehicleInterpolation":
        """Get the interpolation parameters."""
        return self._intf.get_property(VehicleIntegrator._metadata, VehicleIntegrator._get_interpolation_metadata)

    _get_report_ephemeris_on_fixed_time_step_metadata = { "offset" : _get_report_ephemeris_on_fixed_time_step_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def report_ephemeris_on_fixed_time_step(self) -> bool:
        """Opt whether ephemeris is to be reported on a fixed time step."""
        return self._intf.get_property(VehicleIntegrator._metadata, VehicleIntegrator._get_report_ephemeris_on_fixed_time_step_metadata)

    _set_report_ephemeris_on_fixed_time_step_metadata = { "offset" : _set_report_ephemeris_on_fixed_time_step_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @report_ephemeris_on_fixed_time_step.setter
    def report_ephemeris_on_fixed_time_step(self, report_ephem_on_fixed_time_step:bool) -> None:
        return self._intf.set_property(VehicleIntegrator._metadata, VehicleIntegrator._set_report_ephemeris_on_fixed_time_step_metadata, report_ephem_on_fixed_time_step)

    _get_do_not_propagate_below_altitude_metadata = { "offset" : _get_do_not_propagate_below_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def do_not_propagate_below_altitude(self) -> float:
        """Altitude below which to stop propagation. Uses Distance Dimension."""
        return self._intf.get_property(VehicleIntegrator._metadata, VehicleIntegrator._get_do_not_propagate_below_altitude_metadata)

    _set_do_not_propagate_below_altitude_metadata = { "offset" : _set_do_not_propagate_below_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @do_not_propagate_below_altitude.setter
    def do_not_propagate_below_altitude(self, do_not_propagate_below_alt:float) -> None:
        return self._intf.set_property(VehicleIntegrator._metadata, VehicleIntegrator._set_do_not_propagate_below_altitude_metadata, do_not_propagate_below_alt)

    _get_allow_position_velocity_covariance_interpolation_metadata = { "offset" : _get_allow_position_velocity_covariance_interpolation_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_position_velocity_covariance_interpolation(self) -> bool:
        """Get whether to allow pos-vel covariance interpolation."""
        return self._intf.get_property(VehicleIntegrator._metadata, VehicleIntegrator._get_allow_position_velocity_covariance_interpolation_metadata)

    _set_allow_position_velocity_covariance_interpolation_metadata = { "offset" : _set_allow_position_velocity_covariance_interpolation_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_position_velocity_covariance_interpolation.setter
    def allow_position_velocity_covariance_interpolation(self, value:bool) -> None:
        return self._intf.set_property(VehicleIntegrator._metadata, VehicleIntegrator._set_allow_position_velocity_covariance_interpolation_metadata, value)

    _property_names[integration_model] = "integration_model"
    _property_names[use_graphics_3d_p] = "use_graphics_3d_p"
    _property_names[predictor_corrector_scheme] = "predictor_corrector_scheme"
    _property_names[step_size_control] = "step_size_control"
    _property_names[time_regularization] = "time_regularization"
    _property_names[interpolation] = "interpolation"
    _property_names[report_ephemeris_on_fixed_time_step] = "report_ephemeris_on_fixed_time_step"
    _property_names[do_not_propagate_below_altitude] = "do_not_propagate_below_altitude"
    _property_names[allow_position_velocity_covariance_interpolation] = "allow_position_velocity_covariance_interpolation"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleIntegrator."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleIntegrator)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleIntegrator, [VehicleIntegrator, ])

agcls.AgClassCatalog.add_catalog_entry((5520303857056380686, 10259926913839975337), VehicleIntegrator)
agcls.AgTypeNameMap["VehicleIntegrator"] = VehicleIntegrator

class VehicleGravity(SupportsDeleteCallback):
    """Gravity options for covariance matrix."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_maximum_degree_method_offset = 1
    _set_maximum_degree_method_offset = 2
    _get_maximum_order_method_offset = 3
    _set_maximum_order_method_offset = 4
    _metadata = {
        "iid_data" : (5089876066074727215, 16401678190017986972),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGravity)

    _get_maximum_degree_metadata = { "offset" : _get_maximum_degree_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_degree(self) -> int:
        """Maximum degree to use in the gravity field when propagating the state error covariance matrix. Dimensionless."""
        return self._intf.get_property(VehicleGravity._metadata, VehicleGravity._get_maximum_degree_metadata)

    _set_maximum_degree_metadata = { "offset" : _set_maximum_degree_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_degree.setter
    def maximum_degree(self, maximum_degree:int) -> None:
        return self._intf.set_property(VehicleGravity._metadata, VehicleGravity._set_maximum_degree_metadata, maximum_degree)

    _get_maximum_order_metadata = { "offset" : _get_maximum_order_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_order(self) -> int:
        """Maximum order to use in the gravity field when propagating the state error covariance matrix. Dimensionless."""
        return self._intf.get_property(VehicleGravity._metadata, VehicleGravity._get_maximum_order_metadata)

    _set_maximum_order_metadata = { "offset" : _set_maximum_order_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_order.setter
    def maximum_order(self, maximum_order:int) -> None:
        return self._intf.set_property(VehicleGravity._metadata, VehicleGravity._set_maximum_order_metadata, maximum_order)

    _property_names[maximum_degree] = "maximum_degree"
    _property_names[maximum_order] = "maximum_order"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGravity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGravity)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGravity, [VehicleGravity, ])

agcls.AgClassCatalog.add_catalog_entry((4937851962406821966, 15210362232245684145), VehicleGravity)
agcls.AgTypeNameMap["VehicleGravity"] = VehicleGravity

class VehiclePositionVelocityElement(SupportsDeleteCallback):
    """Covariance matrix interface."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_x_method_offset = 1
    _set_x_method_offset = 2
    _get_y_method_offset = 3
    _set_y_method_offset = 4
    _get_z_method_offset = 5
    _set_z_method_offset = 6
    _get_vx_method_offset = 7
    _set_vx_method_offset = 8
    _get_vy_method_offset = 9
    _set_vy_method_offset = 10
    _get_vz_method_offset = 11
    _set_vz_method_offset = 12
    _metadata = {
        "iid_data" : (4841556221710264922, 14857128281137620115),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehiclePositionVelocityElement)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x(self) -> float:
        """X collection. Dimensionless."""
        return self._intf.get_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._get_x_metadata)

    _set_x_metadata = { "offset" : _set_x_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x.setter
    def x(self, x:float) -> None:
        return self._intf.set_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._set_x_metadata, x)

    _get_y_metadata = { "offset" : _get_y_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y(self) -> float:
        """Y collection. Dimensionless."""
        return self._intf.get_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._get_y_metadata)

    _set_y_metadata = { "offset" : _set_y_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y.setter
    def y(self, y:float) -> None:
        return self._intf.set_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._set_y_metadata, y)

    _get_z_metadata = { "offset" : _get_z_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z(self) -> float:
        """Z collection. Dimensionless."""
        return self._intf.get_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._get_z_metadata)

    _set_z_metadata = { "offset" : _set_z_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z.setter
    def z(self, z:float) -> None:
        return self._intf.set_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._set_z_metadata, z)

    _get_vx_metadata = { "offset" : _get_vx_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def vx(self) -> float:
        """Vx collection. Dimensionless."""
        return self._intf.get_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._get_vx_metadata)

    _set_vx_metadata = { "offset" : _set_vx_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @vx.setter
    def vx(self, vx:float) -> None:
        return self._intf.set_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._set_vx_metadata, vx)

    _get_vy_metadata = { "offset" : _get_vy_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def vy(self) -> float:
        """Vy collection. Dimensionless."""
        return self._intf.get_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._get_vy_metadata)

    _set_vy_metadata = { "offset" : _set_vy_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @vy.setter
    def vy(self, vy:float) -> None:
        return self._intf.set_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._set_vy_metadata, vy)

    _get_vz_metadata = { "offset" : _get_vz_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def vz(self) -> float:
        """Vz collection. Dimensionless."""
        return self._intf.get_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._get_vz_metadata)

    _set_vz_metadata = { "offset" : _set_vz_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @vz.setter
    def vz(self, vz:float) -> None:
        return self._intf.set_property(VehiclePositionVelocityElement._metadata, VehiclePositionVelocityElement._set_vz_metadata, vz)

    _property_names[x] = "x"
    _property_names[y] = "y"
    _property_names[z] = "z"
    _property_names[vx] = "vx"
    _property_names[vy] = "vy"
    _property_names[vz] = "vz"

    def __init__(self, source_object=None):
        """Construct an object of type VehiclePositionVelocityElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehiclePositionVelocityElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehiclePositionVelocityElement, [VehiclePositionVelocityElement, ])

agcls.AgClassCatalog.add_catalog_entry((5435236775838448517, 11423754254047198123), VehiclePositionVelocityElement)
agcls.AgTypeNameMap["VehiclePositionVelocityElement"] = VehiclePositionVelocityElement

class VehiclePositionVelocityCollection(SupportsDeleteCallback):
    """An initial state error covariance matrix used to represent the uncertainty in the vehicle's position and velocity. Because the matrix is symmetric, you only need to enter the lower triangle of the 6x6 matrix."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5703625708670753820, 9586266063491925171),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehiclePositionVelocityCollection)
    def __iter__(self):
        """Create an iterator for the VehiclePositionVelocityCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehiclePositionVelocityElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehiclePositionVelocityCollection._metadata, VehiclePositionVelocityCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehiclePositionVelocityElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehiclePositionVelocityCollection._metadata, VehiclePositionVelocityCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehiclePositionVelocityCollection._metadata, VehiclePositionVelocityCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehiclePositionVelocityCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehiclePositionVelocityCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehiclePositionVelocityCollection, [VehiclePositionVelocityCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5171982345290352037, 16115726840383356074), VehiclePositionVelocityCollection)
agcls.AgTypeNameMap["VehiclePositionVelocityCollection"] = VehiclePositionVelocityCollection

class VehicleCorrelationListCollection(SupportsDeleteCallback):
    """Consider Analysis list for HPOP covariance."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5200983275512029954, 10557443089001666229),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleCorrelationListCollection)
    def __iter__(self):
        """Create an iterator for the VehicleCorrelationListCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleCorrelationListElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleCorrelationListCollection._metadata, VehicleCorrelationListCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleCorrelationListElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleCorrelationListCollection._metadata, VehicleCorrelationListCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleCorrelationListCollection._metadata, VehicleCorrelationListCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleCorrelationListCollection._metadata, VehicleCorrelationListCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleCorrelationListCollection._metadata, VehicleCorrelationListCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "VehicleCorrelationListElement":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleCorrelationListCollection._metadata, VehicleCorrelationListCollection._add_metadata, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleCorrelationListCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleCorrelationListCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleCorrelationListCollection, [VehicleCorrelationListCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5599336897854204890, 14400129480613019793), VehicleCorrelationListCollection)
agcls.AgTypeNameMap["VehicleCorrelationListCollection"] = VehicleCorrelationListCollection

class VehicleCorrelationListElement(SupportsDeleteCallback):
    """Item in Consider Cross Correlation list."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_row_method_offset = 1
    _set_row_method_offset = 2
    _get_column_method_offset = 3
    _set_column_method_offset = 4
    _get_value_method_offset = 5
    _set_value_method_offset = 6
    _metadata = {
        "iid_data" : (5665275888923402754, 14958361067389388964),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleCorrelationListElement)

    _get_row_metadata = { "offset" : _get_row_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleCorrelationListType),) }
    @property
    def row(self) -> "VehicleCorrelationListType":
        """Consider parameter for row."""
        return self._intf.get_property(VehicleCorrelationListElement._metadata, VehicleCorrelationListElement._get_row_metadata)

    _set_row_metadata = { "offset" : _set_row_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleCorrelationListType),) }
    @row.setter
    def row(self, row:"VehicleCorrelationListType") -> None:
        return self._intf.set_property(VehicleCorrelationListElement._metadata, VehicleCorrelationListElement._set_row_metadata, row)

    _get_column_metadata = { "offset" : _get_column_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleCorrelationListType),) }
    @property
    def column(self) -> "VehicleCorrelationListType":
        """Consider parameter for column."""
        return self._intf.get_property(VehicleCorrelationListElement._metadata, VehicleCorrelationListElement._get_column_metadata)

    _set_column_metadata = { "offset" : _set_column_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleCorrelationListType),) }
    @column.setter
    def column(self, column:"VehicleCorrelationListType") -> None:
        return self._intf.set_property(VehicleCorrelationListElement._metadata, VehicleCorrelationListElement._set_column_metadata, column)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Cross correlation value. Dimensionless."""
        return self._intf.get_property(VehicleCorrelationListElement._metadata, VehicleCorrelationListElement._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(VehicleCorrelationListElement._metadata, VehicleCorrelationListElement._set_value_metadata, value)

    _property_names[row] = "row"
    _property_names[column] = "column"
    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleCorrelationListElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleCorrelationListElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleCorrelationListElement, [VehicleCorrelationListElement, ])

agcls.AgClassCatalog.add_catalog_entry((5558510712015211755, 15062579791963935617), VehicleCorrelationListElement)
agcls.AgTypeNameMap["VehicleCorrelationListElement"] = VehicleCorrelationListElement

class VehicleCovariance(SupportsDeleteCallback):
    """HPOP covariance interface."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_covariance_method_offset = 1
    _set_compute_covariance_method_offset = 2
    _get_frame_method_offset = 3
    _set_frame_method_offset = 4
    _get_representation_method_offset = 5
    _get_gravity_method_offset = 6
    _get_position_velocity_method_offset = 7
    _get_include_consider_analysis_method_offset = 8
    _set_include_consider_analysis_method_offset = 9
    _get_consider_analysis_list_method_offset = 10
    _get_include_consider_cross_correlation_method_offset = 11
    _set_include_consider_cross_correlation_method_offset = 12
    _get_correlation_list_method_offset = 13
    _validate_method_offset = 14
    _metadata = {
        "iid_data" : (5059453610184073399, 10160465711816785322),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleCovariance)

    _get_compute_covariance_metadata = { "offset" : _get_compute_covariance_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_covariance(self) -> bool:
        """Opt whether to compute covariance."""
        return self._intf.get_property(VehicleCovariance._metadata, VehicleCovariance._get_compute_covariance_metadata)

    _set_compute_covariance_metadata = { "offset" : _set_compute_covariance_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_covariance.setter
    def compute_covariance(self, compute_covariance:bool) -> None:
        return self._intf.set_property(VehicleCovariance._metadata, VehicleCovariance._set_compute_covariance_metadata, compute_covariance)

    _get_frame_metadata = { "offset" : _get_frame_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleFrame),) }
    @property
    def frame(self) -> "VehicleFrame":
        """Frame in which covariance is input."""
        return self._intf.get_property(VehicleCovariance._metadata, VehicleCovariance._get_frame_metadata)

    _set_frame_metadata = { "offset" : _set_frame_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleFrame),) }
    @frame.setter
    def frame(self, frame:"VehicleFrame") -> None:
        return self._intf.set_property(VehicleCovariance._metadata, VehicleCovariance._set_frame_metadata, frame)

    _get_representation_metadata = { "offset" : _get_representation_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def representation(self) -> str:
        """Get the representation for the covariance."""
        return self._intf.get_property(VehicleCovariance._metadata, VehicleCovariance._get_representation_metadata)

    _get_gravity_metadata = { "offset" : _get_gravity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def gravity(self) -> "VehicleGravity":
        """Get the gravity parameters for the covariance."""
        return self._intf.get_property(VehicleCovariance._metadata, VehicleCovariance._get_gravity_metadata)

    _get_position_velocity_metadata = { "offset" : _get_position_velocity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position_velocity(self) -> "VehiclePositionVelocityCollection":
        """Get the covariance matrix."""
        return self._intf.get_property(VehicleCovariance._metadata, VehicleCovariance._get_position_velocity_metadata)

    _get_include_consider_analysis_metadata = { "offset" : _get_include_consider_analysis_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_consider_analysis(self) -> bool:
        """Opt whether to include Consider Analysis."""
        return self._intf.get_property(VehicleCovariance._metadata, VehicleCovariance._get_include_consider_analysis_metadata)

    _set_include_consider_analysis_metadata = { "offset" : _set_include_consider_analysis_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_consider_analysis.setter
    def include_consider_analysis(self, include_consider_analysis:bool) -> None:
        return self._intf.set_property(VehicleCovariance._metadata, VehicleCovariance._set_include_consider_analysis_metadata, include_consider_analysis)

    _get_consider_analysis_list_metadata = { "offset" : _get_consider_analysis_list_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def consider_analysis_list(self) -> "VehicleConsiderAnalysisCollection":
        """Get the Consider Analysis list."""
        return self._intf.get_property(VehicleCovariance._metadata, VehicleCovariance._get_consider_analysis_list_metadata)

    _get_include_consider_cross_correlation_metadata = { "offset" : _get_include_consider_cross_correlation_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_consider_cross_correlation(self) -> bool:
        """Opt whether to include Consider Cross Correlation."""
        return self._intf.get_property(VehicleCovariance._metadata, VehicleCovariance._get_include_consider_cross_correlation_metadata)

    _set_include_consider_cross_correlation_metadata = { "offset" : _set_include_consider_cross_correlation_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_consider_cross_correlation.setter
    def include_consider_cross_correlation(self, include_consider_cross_correlation:bool) -> None:
        return self._intf.set_property(VehicleCovariance._metadata, VehicleCovariance._set_include_consider_cross_correlation_metadata, include_consider_cross_correlation)

    _get_correlation_list_metadata = { "offset" : _get_correlation_list_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def correlation_list(self) -> "VehicleCorrelationListCollection":
        """Get the Consider Cross Correlation list."""
        return self._intf.get_property(VehicleCovariance._metadata, VehicleCovariance._get_correlation_list_metadata)

    _validate_metadata = { "offset" : _validate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def validate(self) -> None:
        """Validate."""
        return self._intf.invoke(VehicleCovariance._metadata, VehicleCovariance._validate_metadata, )

    _property_names[compute_covariance] = "compute_covariance"
    _property_names[frame] = "frame"
    _property_names[representation] = "representation"
    _property_names[gravity] = "gravity"
    _property_names[position_velocity] = "position_velocity"
    _property_names[include_consider_analysis] = "include_consider_analysis"
    _property_names[consider_analysis_list] = "consider_analysis_list"
    _property_names[include_consider_cross_correlation] = "include_consider_cross_correlation"
    _property_names[correlation_list] = "correlation_list"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleCovariance."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleCovariance)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleCovariance, [VehicleCovariance, ])

agcls.AgClassCatalog.add_catalog_entry((5141124562144856778, 10041762533004953243), VehicleCovariance)
agcls.AgTypeNameMap["VehicleCovariance"] = VehicleCovariance

class VehicleZonalPropagatorInitialState(SupportsDeleteCallback):
    """Initial state interface for J2/J4 perturbation propagators."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ellipse_options_method_offset = 1
    _set_ellipse_options_method_offset = 2
    _get_representation_method_offset = 3
    _get_propagation_frame_method_offset = 4
    _set_propagation_frame_method_offset = 5
    _get_supported_propagation_frames_method_offset = 6
    _get_orbit_epoch_method_offset = 7
    _metadata = {
        "iid_data" : (4672904645545175476, 17414511901507166874),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleZonalPropagatorInitialState)

    _get_ellipse_options_metadata = { "offset" : _get_ellipse_options_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleEllipseOptionType),) }
    @property
    def ellipse_options(self) -> "VehicleEllipseOptionType":
        """Options for modeling elliptical motion."""
        return self._intf.get_property(VehicleZonalPropagatorInitialState._metadata, VehicleZonalPropagatorInitialState._get_ellipse_options_metadata)

    _set_ellipse_options_metadata = { "offset" : _set_ellipse_options_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleEllipseOptionType),) }
    @ellipse_options.setter
    def ellipse_options(self, ellipse_options:"VehicleEllipseOptionType") -> None:
        return self._intf.set_property(VehicleZonalPropagatorInitialState._metadata, VehicleZonalPropagatorInitialState._set_ellipse_options_metadata, ellipse_options)

    _get_representation_metadata = { "offset" : _get_representation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def representation(self) -> "IOrbitState":
        """Representation."""
        return self._intf.get_property(VehicleZonalPropagatorInitialState._metadata, VehicleZonalPropagatorInitialState._get_representation_metadata)

    _get_propagation_frame_metadata = { "offset" : _get_propagation_frame_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehiclePropagationFrame),) }
    @property
    def propagation_frame(self) -> "VehiclePropagationFrame":
        """Get or set the propagation frame."""
        return self._intf.get_property(VehicleZonalPropagatorInitialState._metadata, VehicleZonalPropagatorInitialState._get_propagation_frame_metadata)

    _set_propagation_frame_metadata = { "offset" : _set_propagation_frame_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehiclePropagationFrame),) }
    @propagation_frame.setter
    def propagation_frame(self, propagation_frame:"VehiclePropagationFrame") -> None:
        return self._intf.set_property(VehicleZonalPropagatorInitialState._metadata, VehicleZonalPropagatorInitialState._set_propagation_frame_metadata, propagation_frame)

    _get_supported_propagation_frames_metadata = { "offset" : _get_supported_propagation_frames_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_propagation_frames(self) -> list:
        """Return supported propagation frames."""
        return self._intf.get_property(VehicleZonalPropagatorInitialState._metadata, VehicleZonalPropagatorInitialState._get_supported_propagation_frames_metadata)

    _get_orbit_epoch_metadata = { "offset" : _get_orbit_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orbit_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Get the smart epoch component to configure the orbit state epoch."""
        return self._intf.get_property(VehicleZonalPropagatorInitialState._metadata, VehicleZonalPropagatorInitialState._get_orbit_epoch_metadata)

    _property_names[ellipse_options] = "ellipse_options"
    _property_names[representation] = "representation"
    _property_names[propagation_frame] = "propagation_frame"
    _property_names[supported_propagation_frames] = "supported_propagation_frames"
    _property_names[orbit_epoch] = "orbit_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleZonalPropagatorInitialState."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleZonalPropagatorInitialState)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleZonalPropagatorInitialState, [VehicleZonalPropagatorInitialState, ])

agcls.AgClassCatalog.add_catalog_entry((5421172342180113538, 12975023285938525088), VehicleZonalPropagatorInitialState)
agcls.AgTypeNameMap["VehicleZonalPropagatorInitialState"] = VehicleZonalPropagatorInitialState

class VehicleLOPCentralBodyGravity(SupportsDeleteCallback):
    """Central body gravity interface for Long-range Orbit Predictor (LOP) propagator."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_maximum_degree_method_offset = 1
    _set_maximum_degree_method_offset = 2
    _get_maximum_order_method_offset = 3
    _set_maximum_order_method_offset = 4
    _metadata = {
        "iid_data" : (4810894511546132806, 5937367140790037893),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleLOPCentralBodyGravity)

    _get_maximum_degree_metadata = { "offset" : _get_maximum_degree_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_degree(self) -> int:
        """Get or set the maximum degree of geopotential coefficients to be included for Central Body gravity computations. Valid range is from 0 to 90, depending on the gravity model. Dimensionless."""
        return self._intf.get_property(VehicleLOPCentralBodyGravity._metadata, VehicleLOPCentralBodyGravity._get_maximum_degree_metadata)

    _set_maximum_degree_metadata = { "offset" : _set_maximum_degree_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_degree.setter
    def maximum_degree(self, max_degree:int) -> None:
        return self._intf.set_property(VehicleLOPCentralBodyGravity._metadata, VehicleLOPCentralBodyGravity._set_maximum_degree_metadata, max_degree)

    _get_maximum_order_metadata = { "offset" : _get_maximum_order_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_order(self) -> int:
        """Get or set the maximum order of geopotential coefficients to be included for Central Body gravity computations. Valid range is from 0 to 90, depending on the gravity model. Dimensionless."""
        return self._intf.get_property(VehicleLOPCentralBodyGravity._metadata, VehicleLOPCentralBodyGravity._get_maximum_order_metadata)

    _set_maximum_order_metadata = { "offset" : _set_maximum_order_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_order.setter
    def maximum_order(self, max_order:int) -> None:
        return self._intf.set_property(VehicleLOPCentralBodyGravity._metadata, VehicleLOPCentralBodyGravity._set_maximum_order_metadata, max_order)

    _property_names[maximum_degree] = "maximum_degree"
    _property_names[maximum_order] = "maximum_order"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleLOPCentralBodyGravity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleLOPCentralBodyGravity)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleLOPCentralBodyGravity, [VehicleLOPCentralBodyGravity, ])

agcls.AgClassCatalog.add_catalog_entry((5166467692499943355, 4372741462097492389), VehicleLOPCentralBodyGravity)
agcls.AgTypeNameMap["VehicleLOPCentralBodyGravity"] = VehicleLOPCentralBodyGravity

class PropagatorHPOPThirdBodyGravityElement(SupportsDeleteCallback):
    """Third-body gravity interface."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_source_method_offset = 1
    _set_source_method_offset = 2
    _get_gravity_value_method_offset = 3
    _set_gravity_value_method_offset = 4
    _get_central_body_method_offset = 5
    _metadata = {
        "iid_data" : (4714520061378889431, 3105801463511841705),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorHPOPThirdBodyGravityElement)

    _get_source_metadata = { "offset" : _get_source_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ThirdBodyGravitySourceType),) }
    @property
    def source(self) -> "ThirdBodyGravitySourceType":
        """Source of 3rd-body gravity data."""
        return self._intf.get_property(PropagatorHPOPThirdBodyGravityElement._metadata, PropagatorHPOPThirdBodyGravityElement._get_source_metadata)

    _set_source_metadata = { "offset" : _set_source_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ThirdBodyGravitySourceType),) }
    @source.setter
    def source(self, value:"ThirdBodyGravitySourceType") -> None:
        return self._intf.set_property(PropagatorHPOPThirdBodyGravityElement._metadata, PropagatorHPOPThirdBodyGravityElement._set_source_metadata, value)

    _get_gravity_value_metadata = { "offset" : _get_gravity_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def gravity_value(self) -> float:
        """Gravity value (if the source is user-specified. Uses Gravity Parameter Dimension."""
        return self._intf.get_property(PropagatorHPOPThirdBodyGravityElement._metadata, PropagatorHPOPThirdBodyGravityElement._get_gravity_value_metadata)

    _set_gravity_value_metadata = { "offset" : _set_gravity_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @gravity_value.setter
    def gravity_value(self, value:float) -> None:
        return self._intf.set_property(PropagatorHPOPThirdBodyGravityElement._metadata, PropagatorHPOPThirdBodyGravityElement._set_gravity_value_metadata, value)

    _get_central_body_metadata = { "offset" : _get_central_body_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body(self) -> str:
        """Name of the central body."""
        return self._intf.get_property(PropagatorHPOPThirdBodyGravityElement._metadata, PropagatorHPOPThirdBodyGravityElement._get_central_body_metadata)

    _property_names[source] = "source"
    _property_names[gravity_value] = "gravity_value"
    _property_names[central_body] = "central_body"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorHPOPThirdBodyGravityElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorHPOPThirdBodyGravityElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorHPOPThirdBodyGravityElement, [PropagatorHPOPThirdBodyGravityElement, ])

agcls.AgClassCatalog.add_catalog_entry((4944158663311077405, 7294088681223104433), PropagatorHPOPThirdBodyGravityElement)
agcls.AgTypeNameMap["PropagatorHPOPThirdBodyGravityElement"] = PropagatorHPOPThirdBodyGravityElement

class PropagatorHPOPThirdBodyGravityCollection(SupportsDeleteCallback):
    """Third Body Gravity Collection."""

    _num_methods = 8
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _get_available_third_body_names_method_offset = 6
    _add_third_body_method_offset = 7
    _remove_third_body_method_offset = 8
    _metadata = {
        "iid_data" : (5158640976786434321, 11053058831332605850),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorHPOPThirdBodyGravityCollection)
    def __iter__(self):
        """Create an iterator for the PropagatorHPOPThirdBodyGravityCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "PropagatorHPOPThirdBodyGravityElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(PropagatorHPOPThirdBodyGravityCollection._metadata, PropagatorHPOPThirdBodyGravityCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "PropagatorHPOPThirdBodyGravityElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(PropagatorHPOPThirdBodyGravityCollection._metadata, PropagatorHPOPThirdBodyGravityCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(PropagatorHPOPThirdBodyGravityCollection._metadata, PropagatorHPOPThirdBodyGravityCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(PropagatorHPOPThirdBodyGravityCollection._metadata, PropagatorHPOPThirdBodyGravityCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(PropagatorHPOPThirdBodyGravityCollection._metadata, PropagatorHPOPThirdBodyGravityCollection._remove_all_metadata, )

    _get_available_third_body_names_metadata = { "offset" : _get_available_third_body_names_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_third_body_names(self) -> list:
        """Get the available third bodies. The return result is a collection of strings representing names of the central bodies that can be used as third body."""
        return self._intf.get_property(PropagatorHPOPThirdBodyGravityCollection._metadata, PropagatorHPOPThirdBodyGravityCollection._get_available_third_body_names_metadata)

    _add_third_body_metadata = { "offset" : _add_third_body_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add_third_body(self, third_body:str) -> "PropagatorHPOPThirdBodyGravityElement":
        """Add a new element to the collection."""
        return self._intf.invoke(PropagatorHPOPThirdBodyGravityCollection._metadata, PropagatorHPOPThirdBodyGravityCollection._add_third_body_metadata, third_body, OutArg())

    _remove_third_body_metadata = { "offset" : _remove_third_body_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_third_body(self, third_body:str) -> None:
        """Remove an element from the collection."""
        return self._intf.invoke(PropagatorHPOPThirdBodyGravityCollection._metadata, PropagatorHPOPThirdBodyGravityCollection._remove_third_body_metadata, third_body)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[available_third_body_names] = "available_third_body_names"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorHPOPThirdBodyGravityCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorHPOPThirdBodyGravityCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorHPOPThirdBodyGravityCollection, [PropagatorHPOPThirdBodyGravityCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5192005243811854660, 10959138337496537505), PropagatorHPOPThirdBodyGravityCollection)
agcls.AgTypeNameMap["PropagatorHPOPThirdBodyGravityCollection"] = PropagatorHPOPThirdBodyGravityCollection

class VehicleExponentialDensityModelParameters(SupportsDeleteCallback):
    """Interface for exponential density model (for LOP propagator)."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_reference_density_method_offset = 1
    _set_reference_density_method_offset = 2
    _get_reference_height_method_offset = 3
    _set_reference_height_method_offset = 4
    _get_scale_height_method_offset = 5
    _set_scale_height_method_offset = 6
    _metadata = {
        "iid_data" : (5126627712430956389, 2813024428060576189),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleExponentialDensityModelParameters)

    _get_reference_density_metadata = { "offset" : _get_reference_density_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def reference_density(self) -> float:
        """Get or set the reference density. Uses Density Dimension."""
        return self._intf.get_property(VehicleExponentialDensityModelParameters._metadata, VehicleExponentialDensityModelParameters._get_reference_density_metadata)

    _set_reference_density_metadata = { "offset" : _set_reference_density_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @reference_density.setter
    def reference_density(self, reference_density:float) -> None:
        return self._intf.set_property(VehicleExponentialDensityModelParameters._metadata, VehicleExponentialDensityModelParameters._set_reference_density_metadata, reference_density)

    _get_reference_height_metadata = { "offset" : _get_reference_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def reference_height(self) -> float:
        """Get or set the reference height. Uses Distance Dimension."""
        return self._intf.get_property(VehicleExponentialDensityModelParameters._metadata, VehicleExponentialDensityModelParameters._get_reference_height_metadata)

    _set_reference_height_metadata = { "offset" : _set_reference_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @reference_height.setter
    def reference_height(self, reference_height:float) -> None:
        return self._intf.set_property(VehicleExponentialDensityModelParameters._metadata, VehicleExponentialDensityModelParameters._set_reference_height_metadata, reference_height)

    _get_scale_height_metadata = { "offset" : _get_scale_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scale_height(self) -> float:
        """Get or set the scale height. Uses Distance Dimension."""
        return self._intf.get_property(VehicleExponentialDensityModelParameters._metadata, VehicleExponentialDensityModelParameters._get_scale_height_metadata)

    _set_scale_height_metadata = { "offset" : _set_scale_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scale_height.setter
    def scale_height(self, scale_height:float) -> None:
        return self._intf.set_property(VehicleExponentialDensityModelParameters._metadata, VehicleExponentialDensityModelParameters._set_scale_height_metadata, scale_height)

    _property_names[reference_density] = "reference_density"
    _property_names[reference_height] = "reference_height"
    _property_names[scale_height] = "scale_height"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleExponentialDensityModelParameters."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleExponentialDensityModelParameters)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleExponentialDensityModelParameters, [VehicleExponentialDensityModelParameters, ])

agcls.AgClassCatalog.add_catalog_entry((5323076388565659004, 2616528186121196182), VehicleExponentialDensityModelParameters)
agcls.AgTypeNameMap["VehicleExponentialDensityModelParameters"] = VehicleExponentialDensityModelParameters

class VehicleLOPDragSettings(SupportsDeleteCallback):
    """Interface for advanced drag options for LOP propagator."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_atmospheric_density_model_method_offset = 1
    _set_atmospheric_density_model_method_offset = 2
    _get_use_osculating_altitude_method_offset = 3
    _set_use_osculating_altitude_method_offset = 4
    _get_maximum_drag_altitude_method_offset = 5
    _set_maximum_drag_altitude_method_offset = 6
    _get_density_weighing_factor_method_offset = 7
    _set_density_weighing_factor_method_offset = 8
    _get_exponential_density_model_parameters_method_offset = 9
    _get_atmosphere_density_model_method_offset = 10
    _set_atmosphere_density_model_method_offset = 11
    _metadata = {
        "iid_data" : (5372335515581167025, 17631966534798884518),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleLOPDragSettings)

    _get_atmospheric_density_model_metadata = { "offset" : _get_atmospheric_density_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AtmosphericDensityModel),) }
    @property
    def atmospheric_density_model(self) -> "AtmosphericDensityModel":
        """Do not use this property, as it is deprecated. Use AtmosDensityModel instead. Atmospheric density model."""
        return self._intf.get_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._get_atmospheric_density_model_metadata)

    _set_atmospheric_density_model_metadata = { "offset" : _set_atmospheric_density_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AtmosphericDensityModel),) }
    @atmospheric_density_model.setter
    def atmospheric_density_model(self, atmospheric_density_model:"AtmosphericDensityModel") -> None:
        return self._intf.set_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._set_atmospheric_density_model_metadata, atmospheric_density_model)

    _get_use_osculating_altitude_metadata = { "offset" : _get_use_osculating_altitude_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_osculating_altitude(self) -> bool:
        """Opt whether to use osculating altitude, which uses a short period variation due to J2 perturbations when calculating altitude."""
        return self._intf.get_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._get_use_osculating_altitude_metadata)

    _set_use_osculating_altitude_metadata = { "offset" : _set_use_osculating_altitude_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_osculating_altitude.setter
    def use_osculating_altitude(self, use_osculating_alt:bool) -> None:
        return self._intf.set_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._set_use_osculating_altitude_metadata, use_osculating_alt)

    _get_maximum_drag_altitude_metadata = { "offset" : _get_maximum_drag_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_drag_altitude(self) -> float:
        """Maximum drag altitude, above which drag calculations are not considered. Uses Distance Dimension."""
        return self._intf.get_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._get_maximum_drag_altitude_metadata)

    _set_maximum_drag_altitude_metadata = { "offset" : _set_maximum_drag_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_drag_altitude.setter
    def maximum_drag_altitude(self, max_drag_alt:float) -> None:
        return self._intf.set_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._set_maximum_drag_altitude_metadata, max_drag_alt)

    _get_density_weighing_factor_metadata = { "offset" : _get_density_weighing_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def density_weighing_factor(self) -> float:
        """Get or set the scale factor to be used during density calculations. Dimensionless."""
        return self._intf.get_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._get_density_weighing_factor_metadata)

    _set_density_weighing_factor_metadata = { "offset" : _set_density_weighing_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @density_weighing_factor.setter
    def density_weighing_factor(self, density_weighing_factor:float) -> None:
        return self._intf.set_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._set_density_weighing_factor_metadata, density_weighing_factor)

    _get_exponential_density_model_parameters_metadata = { "offset" : _get_exponential_density_model_parameters_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def exponential_density_model_parameters(self) -> "VehicleExponentialDensityModelParameters":
        """Get the exponential density modeling parameters."""
        return self._intf.get_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._get_exponential_density_model_parameters_metadata)

    _get_atmosphere_density_model_metadata = { "offset" : _get_atmosphere_density_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LOPAtmosphericDensityModel),) }
    @property
    def atmosphere_density_model(self) -> "LOPAtmosphericDensityModel":
        """Atmospheric density model."""
        return self._intf.get_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._get_atmosphere_density_model_metadata)

    _set_atmosphere_density_model_metadata = { "offset" : _set_atmosphere_density_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LOPAtmosphericDensityModel),) }
    @atmosphere_density_model.setter
    def atmosphere_density_model(self, atmospheric_density_model:"LOPAtmosphericDensityModel") -> None:
        return self._intf.set_property(VehicleLOPDragSettings._metadata, VehicleLOPDragSettings._set_atmosphere_density_model_metadata, atmospheric_density_model)

    _property_names[atmospheric_density_model] = "atmospheric_density_model"
    _property_names[use_osculating_altitude] = "use_osculating_altitude"
    _property_names[maximum_drag_altitude] = "maximum_drag_altitude"
    _property_names[density_weighing_factor] = "density_weighing_factor"
    _property_names[exponential_density_model_parameters] = "exponential_density_model_parameters"
    _property_names[atmosphere_density_model] = "atmosphere_density_model"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleLOPDragSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleLOPDragSettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleLOPDragSettings, [VehicleLOPDragSettings, ])

agcls.AgClassCatalog.add_catalog_entry((4872984218056333542, 12180287826528333730), VehicleLOPDragSettings)
agcls.AgTypeNameMap["VehicleLOPDragSettings"] = VehicleLOPDragSettings

class VehicleLOPForceModelDrag(SupportsDeleteCallback):
    """Interface for atmospheric drag for LOP propagator."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_method_offset = 1
    _set_use_method_offset = 2
    _get_cd_method_offset = 3
    _set_cd_method_offset = 4
    _get_advanced_method_offset = 5
    _metadata = {
        "iid_data" : (5575441595861141526, 11158107723416240778),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleLOPForceModelDrag)

    _get_use_metadata = { "offset" : _get_use_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use(self) -> bool:
        """Opt whether to use drag parameters."""
        return self._intf.get_property(VehicleLOPForceModelDrag._metadata, VehicleLOPForceModelDrag._get_use_metadata)

    _set_use_metadata = { "offset" : _set_use_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use.setter
    def use(self, use:bool) -> None:
        return self._intf.set_property(VehicleLOPForceModelDrag._metadata, VehicleLOPForceModelDrag._set_use_metadata, use)

    _get_cd_metadata = { "offset" : _get_cd_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cd(self) -> float:
        """Get or set the atmospheric drag coefficient. Dimensionless."""
        return self._intf.get_property(VehicleLOPForceModelDrag._metadata, VehicleLOPForceModelDrag._get_cd_metadata)

    _set_cd_metadata = { "offset" : _set_cd_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cd.setter
    def cd(self, cd:float) -> None:
        return self._intf.set_property(VehicleLOPForceModelDrag._metadata, VehicleLOPForceModelDrag._set_cd_metadata, cd)

    _get_advanced_metadata = { "offset" : _get_advanced_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def advanced(self) -> "VehicleLOPDragSettings":
        """Get the advanced drag parameters."""
        return self._intf.get_property(VehicleLOPForceModelDrag._metadata, VehicleLOPForceModelDrag._get_advanced_metadata)

    _property_names[use] = "use"
    _property_names[cd] = "cd"
    _property_names[advanced] = "advanced"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleLOPForceModelDrag."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleLOPForceModelDrag)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleLOPForceModelDrag, [VehicleLOPForceModelDrag, ])

agcls.AgClassCatalog.add_catalog_entry((5723453491805945075, 5328275544299816084), VehicleLOPForceModelDrag)
agcls.AgTypeNameMap["VehicleLOPForceModelDrag"] = VehicleLOPForceModelDrag

class VehicleLOPSolarRadiationPressure(SupportsDeleteCallback):
    """Solar radiation pressure interface for LOP propagator."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_method_offset = 1
    _set_use_method_offset = 2
    _get_cp_method_offset = 3
    _set_cp_method_offset = 4
    _get_atmosphere_height_method_offset = 5
    _set_atmosphere_height_method_offset = 6
    _metadata = {
        "iid_data" : (5258055070252294348, 9002579332893023376),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleLOPSolarRadiationPressure)

    _get_use_metadata = { "offset" : _get_use_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use(self) -> bool:
        """Opt whether to use SRP."""
        return self._intf.get_property(VehicleLOPSolarRadiationPressure._metadata, VehicleLOPSolarRadiationPressure._get_use_metadata)

    _set_use_metadata = { "offset" : _set_use_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use.setter
    def use(self, use:bool) -> None:
        return self._intf.set_property(VehicleLOPSolarRadiationPressure._metadata, VehicleLOPSolarRadiationPressure._set_use_metadata, use)

    _get_cp_metadata = { "offset" : _get_cp_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cp(self) -> float:
        """Get or set the solar radiation pressure coefficient. Dimensionless."""
        return self._intf.get_property(VehicleLOPSolarRadiationPressure._metadata, VehicleLOPSolarRadiationPressure._get_cp_metadata)

    _set_cp_metadata = { "offset" : _set_cp_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cp.setter
    def cp(self, cp:float) -> None:
        return self._intf.set_property(VehicleLOPSolarRadiationPressure._metadata, VehicleLOPSolarRadiationPressure._set_cp_metadata, cp)

    _get_atmosphere_height_metadata = { "offset" : _get_atmosphere_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def atmosphere_height(self) -> float:
        """Height of atmosphere blockage used when calculating shadow entry and exit in solar radiation computations. Uses Distance Dimension."""
        return self._intf.get_property(VehicleLOPSolarRadiationPressure._metadata, VehicleLOPSolarRadiationPressure._get_atmosphere_height_metadata)

    _set_atmosphere_height_metadata = { "offset" : _set_atmosphere_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @atmosphere_height.setter
    def atmosphere_height(self, atmos_height:float) -> None:
        return self._intf.set_property(VehicleLOPSolarRadiationPressure._metadata, VehicleLOPSolarRadiationPressure._set_atmosphere_height_metadata, atmos_height)

    _property_names[use] = "use"
    _property_names[cp] = "cp"
    _property_names[atmosphere_height] = "atmosphere_height"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleLOPSolarRadiationPressure."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleLOPSolarRadiationPressure)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleLOPSolarRadiationPressure, [VehicleLOPSolarRadiationPressure, ])

agcls.AgClassCatalog.add_catalog_entry((4779971542394509407, 15901493659389779360), VehicleLOPSolarRadiationPressure)
agcls.AgTypeNameMap["VehicleLOPSolarRadiationPressure"] = VehicleLOPSolarRadiationPressure

class VehiclePhysicalData(SupportsDeleteCallback):
    """Physical data interface for LOP propagator."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_drag_cross_sectional_area_method_offset = 1
    _set_drag_cross_sectional_area_method_offset = 2
    _get_solar_radiation_pressure_cross_sectional_area_method_offset = 3
    _set_solar_radiation_pressure_cross_sectional_area_method_offset = 4
    _get_satellite_mass_method_offset = 5
    _set_satellite_mass_method_offset = 6
    _metadata = {
        "iid_data" : (5621759224640038595, 2754501022675936136),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehiclePhysicalData)

    _get_drag_cross_sectional_area_metadata = { "offset" : _get_drag_cross_sectional_area_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def drag_cross_sectional_area(self) -> float:
        """Get or set the satellite's cross-sectional area to be used in atmospheric drag calculations. Uses Area Dimension."""
        return self._intf.get_property(VehiclePhysicalData._metadata, VehiclePhysicalData._get_drag_cross_sectional_area_metadata)

    _set_drag_cross_sectional_area_metadata = { "offset" : _set_drag_cross_sectional_area_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @drag_cross_sectional_area.setter
    def drag_cross_sectional_area(self, drag_cross_sectional_area:float) -> None:
        return self._intf.set_property(VehiclePhysicalData._metadata, VehiclePhysicalData._set_drag_cross_sectional_area_metadata, drag_cross_sectional_area)

    _get_solar_radiation_pressure_cross_sectional_area_metadata = { "offset" : _get_solar_radiation_pressure_cross_sectional_area_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def solar_radiation_pressure_cross_sectional_area(self) -> float:
        """Get or set the satellite's cross-sectional area to be used in solar radiation pressure calculations. Uses Area Dimension."""
        return self._intf.get_property(VehiclePhysicalData._metadata, VehiclePhysicalData._get_solar_radiation_pressure_cross_sectional_area_metadata)

    _set_solar_radiation_pressure_cross_sectional_area_metadata = { "offset" : _set_solar_radiation_pressure_cross_sectional_area_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @solar_radiation_pressure_cross_sectional_area.setter
    def solar_radiation_pressure_cross_sectional_area(self, srp_cross_sectional_area:float) -> None:
        return self._intf.set_property(VehiclePhysicalData._metadata, VehiclePhysicalData._set_solar_radiation_pressure_cross_sectional_area_metadata, srp_cross_sectional_area)

    _get_satellite_mass_metadata = { "offset" : _get_satellite_mass_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def satellite_mass(self) -> float:
        """Get or set the mass of the satellite to be used in atmospheric drag and solar radiation pressure calculations. Uses Mass Dimension."""
        return self._intf.get_property(VehiclePhysicalData._metadata, VehiclePhysicalData._get_satellite_mass_metadata)

    _set_satellite_mass_metadata = { "offset" : _set_satellite_mass_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @satellite_mass.setter
    def satellite_mass(self, satellite_mass:float) -> None:
        return self._intf.set_property(VehiclePhysicalData._metadata, VehiclePhysicalData._set_satellite_mass_metadata, satellite_mass)

    _property_names[drag_cross_sectional_area] = "drag_cross_sectional_area"
    _property_names[solar_radiation_pressure_cross_sectional_area] = "solar_radiation_pressure_cross_sectional_area"
    _property_names[satellite_mass] = "satellite_mass"

    def __init__(self, source_object=None):
        """Construct an object of type VehiclePhysicalData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehiclePhysicalData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehiclePhysicalData, [VehiclePhysicalData, ])

agcls.AgClassCatalog.add_catalog_entry((5729592232256253256, 10775991593959803264), VehiclePhysicalData)
agcls.AgTypeNameMap["VehiclePhysicalData"] = VehiclePhysicalData

class VehicleLOPForceModel(SupportsDeleteCallback):
    """Force model interface for LOP propagator."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_central_body_gravity_method_offset = 1
    _get_third_body_gravity_method_offset = 2
    _get_drag_method_offset = 3
    _get_solar_radiation_pressure_method_offset = 4
    _get_physical_data_method_offset = 5
    _metadata = {
        "iid_data" : (5271331820947794410, 5820784666484996528),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleLOPForceModel)

    _get_central_body_gravity_metadata = { "offset" : _get_central_body_gravity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def central_body_gravity(self) -> "VehicleLOPCentralBodyGravity":
        """Get the central body gravity parameters."""
        return self._intf.get_property(VehicleLOPForceModel._metadata, VehicleLOPForceModel._get_central_body_gravity_metadata)

    _get_third_body_gravity_metadata = { "offset" : _get_third_body_gravity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def third_body_gravity(self) -> "PropagatorLOPThirdBodyGravity":
        """Get the 3rd body gravity parameters."""
        return self._intf.get_property(VehicleLOPForceModel._metadata, VehicleLOPForceModel._get_third_body_gravity_metadata)

    _get_drag_metadata = { "offset" : _get_drag_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drag(self) -> "VehicleLOPForceModelDrag":
        """Get the atmospheric drag parameters."""
        return self._intf.get_property(VehicleLOPForceModel._metadata, VehicleLOPForceModel._get_drag_metadata)

    _get_solar_radiation_pressure_metadata = { "offset" : _get_solar_radiation_pressure_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def solar_radiation_pressure(self) -> "VehicleLOPSolarRadiationPressure":
        """Get the solar radiation pressure parameters."""
        return self._intf.get_property(VehicleLOPForceModel._metadata, VehicleLOPForceModel._get_solar_radiation_pressure_metadata)

    _get_physical_data_metadata = { "offset" : _get_physical_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def physical_data(self) -> "VehiclePhysicalData":
        """Get the physical data parameters."""
        return self._intf.get_property(VehicleLOPForceModel._metadata, VehicleLOPForceModel._get_physical_data_metadata)

    _property_names[central_body_gravity] = "central_body_gravity"
    _property_names[third_body_gravity] = "third_body_gravity"
    _property_names[drag] = "drag"
    _property_names[solar_radiation_pressure] = "solar_radiation_pressure"
    _property_names[physical_data] = "physical_data"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleLOPForceModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleLOPForceModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleLOPForceModel, [VehicleLOPForceModel, ])

agcls.AgClassCatalog.add_catalog_entry((5277081822107301865, 9649562234918760127), VehicleLOPForceModel)
agcls.AgTypeNameMap["VehicleLOPForceModel"] = VehicleLOPForceModel

class PropagatorSPICESegmentsCollection(SupportsDeleteCallback):
    """Set of segments."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5551086064478361619, 17033275557370737068),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSPICESegmentsCollection)
    def __iter__(self):
        """Create an iterator for the PropagatorSPICESegmentsCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "PropagatorSPICESegment":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(PropagatorSPICESegmentsCollection._metadata, PropagatorSPICESegmentsCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "PropagatorSPICESegment":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(PropagatorSPICESegmentsCollection._metadata, PropagatorSPICESegmentsCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(PropagatorSPICESegmentsCollection._metadata, PropagatorSPICESegmentsCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSPICESegmentsCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSPICESegmentsCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSPICESegmentsCollection, [PropagatorSPICESegmentsCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5745396956833068712, 17025715347288444817), PropagatorSPICESegmentsCollection)
agcls.AgTypeNameMap["PropagatorSPICESegmentsCollection"] = PropagatorSPICESegmentsCollection

class PropagatorHPOP(IPropagator, SupportsDeleteCallback):
    r"""
    HPOP propagator interface.

    Examples
    --------
    Set satellite propagator to HPOP and set force model properties:
    >>> # Satellite satellite: Satellite object
    >>> satellite.set_propagator_type(PropagatorType.HPOP)
    >>> satellite.propagator.step = 60
    >>> satellite.propagator.initial_state.representation.assign_cartesian(
    >>>     CoordinateSystem.FIXED, 6406.92, -1787.59, -506.422, 2.10185, 6.48871, 3.64041
    >>> )
    >>>
    >>> forceModel = satellite.propagator.force_model
    >>> if os.name == "nt":
    >>>     installPath = r"C:\Program Files\AGI\STK 12"
    >>> else:
    >>>     installPath = os.environ["STK_INSTALL_DIR"]
    >>> grv_path = ["STKData", "CentralBodies", "Earth", "WGS84_EGM96.grv"]
    >>> forceModel.central_body_gravity.file = os.path.join(installPath, *grv_path)
    >>> forceModel.central_body_gravity.maximum_degree = 21
    >>> forceModel.central_body_gravity.maximum_order = 21
    >>> forceModel.drag.use = True
    >>> forceModel.drag.drag_model.cd = 0.01
    >>> forceModel.drag.drag_model.area_mass_ratio = 0.01
    >>> forceModel.solar_radiation_pressure.use = False
    >>>
    >>> integrator = satellite.propagator.integrator
    >>> integrator.do_not_propagate_below_altitude = -1e6
    >>> integrator.integration_model = VehicleIntegrationModel.RUNGE_KUTTA_FEHLBERG_78
    >>> integrator.step_size_control.method = VehicleMethod.RELATIVE_ERROR
    >>> integrator.step_size_control.error_tolerance = 1e-13
    >>> integrator.step_size_control.minimum_step_size = 0.1
    >>> integrator.step_size_control.maximum_step_size = 30
    >>> integrator.interpolation.method = VehicleInterpolationMethod.LAGRANGE
    >>> integrator.interpolation.order = 7
    >>>
    >>> satellite.propagator.propagate()
    """

    _num_methods = 10
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_initial_state_method_offset = 4
    _get_force_model_method_offset = 5
    _get_integrator_method_offset = 6
    _get_covariance_method_offset = 7
    _get_ephemeris_interval_method_offset = 8
    _get_display_coordinate_type_method_offset = 9
    _set_display_coordinate_type_method_offset = 10
    _metadata = {
        "iid_data" : (4837255466315778899, 4408874591827939745),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorHPOP)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the satellite's path using the specified time interval."""
        return self._intf.invoke(PropagatorHPOP._metadata, PropagatorHPOP._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorHPOP._metadata, PropagatorHPOP._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorHPOP._metadata, PropagatorHPOP._set_step_metadata, step)

    _get_initial_state_metadata = { "offset" : _get_initial_state_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def initial_state(self) -> "VehicleInitialState":
        """Get the satellite's initial state."""
        return self._intf.get_property(PropagatorHPOP._metadata, PropagatorHPOP._get_initial_state_metadata)

    _get_force_model_metadata = { "offset" : _get_force_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def force_model(self) -> "VehicleHPOPForceModel":
        """Get the force model parameters."""
        return self._intf.get_property(PropagatorHPOP._metadata, PropagatorHPOP._get_force_model_metadata)

    _get_integrator_metadata = { "offset" : _get_integrator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def integrator(self) -> "VehicleIntegrator":
        """Get the integrator parameters."""
        return self._intf.get_property(PropagatorHPOP._metadata, PropagatorHPOP._get_integrator_metadata)

    _get_covariance_metadata = { "offset" : _get_covariance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def covariance(self) -> "VehicleCovariance":
        """Get the covariance parameters."""
        return self._intf.get_property(PropagatorHPOP._metadata, PropagatorHPOP._get_covariance_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorHPOP._metadata, PropagatorHPOP._get_ephemeris_interval_metadata)

    _get_display_coordinate_type_metadata = { "offset" : _get_display_coordinate_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorDisplayCoordinateType),) }
    @property
    def display_coordinate_type(self) -> "PropagatorDisplayCoordinateType":
        """The propagator's display coordinate type."""
        return self._intf.get_property(PropagatorHPOP._metadata, PropagatorHPOP._get_display_coordinate_type_metadata)

    _set_display_coordinate_type_metadata = { "offset" : _set_display_coordinate_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorDisplayCoordinateType),) }
    @display_coordinate_type.setter
    def display_coordinate_type(self, display_coordinate_type:"PropagatorDisplayCoordinateType") -> None:
        return self._intf.set_property(PropagatorHPOP._metadata, PropagatorHPOP._set_display_coordinate_type_metadata, display_coordinate_type)

    _property_names[step] = "step"
    _property_names[initial_state] = "initial_state"
    _property_names[force_model] = "force_model"
    _property_names[integrator] = "integrator"
    _property_names[covariance] = "covariance"
    _property_names[ephemeris_interval] = "ephemeris_interval"
    _property_names[display_coordinate_type] = "display_coordinate_type"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorHPOP."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorHPOP)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorHPOP, [PropagatorHPOP, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((5648424975659269950, 17640277987756226746), PropagatorHPOP)
agcls.AgTypeNameMap["PropagatorHPOP"] = PropagatorHPOP

class PropagatorJ2Perturbation(IPropagator, SupportsDeleteCallback):
    """J2 Perturbation propagator interface."""

    _num_methods = 10
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_initial_state_method_offset = 4
    _get_ephemeris_interval_method_offset = 5
    _get_propagation_frame_method_offset = 6
    _set_propagation_frame_method_offset = 7
    _get_supported_propagation_frames_method_offset = 8
    _get_display_coordinate_type_method_offset = 9
    _set_display_coordinate_type_method_offset = 10
    _metadata = {
        "iid_data" : (5710611355316157488, 2776247070565079686),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorJ2Perturbation)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the satellite's path using the specified time interval."""
        return self._intf.invoke(PropagatorJ2Perturbation._metadata, PropagatorJ2Perturbation._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorJ2Perturbation._metadata, PropagatorJ2Perturbation._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorJ2Perturbation._metadata, PropagatorJ2Perturbation._set_step_metadata, step)

    _get_initial_state_metadata = { "offset" : _get_initial_state_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def initial_state(self) -> "VehicleZonalPropagatorInitialState":
        """Get the initial state."""
        return self._intf.get_property(PropagatorJ2Perturbation._metadata, PropagatorJ2Perturbation._get_initial_state_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorJ2Perturbation._metadata, PropagatorJ2Perturbation._get_ephemeris_interval_metadata)

    _get_propagation_frame_metadata = { "offset" : _get_propagation_frame_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehiclePropagationFrame),) }
    @property
    def propagation_frame(self) -> "VehiclePropagationFrame":
        """Get or set the propagation frame."""
        return self._intf.get_property(PropagatorJ2Perturbation._metadata, PropagatorJ2Perturbation._get_propagation_frame_metadata)

    _set_propagation_frame_metadata = { "offset" : _set_propagation_frame_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehiclePropagationFrame),) }
    @propagation_frame.setter
    def propagation_frame(self, propagation_frame:"VehiclePropagationFrame") -> None:
        return self._intf.set_property(PropagatorJ2Perturbation._metadata, PropagatorJ2Perturbation._set_propagation_frame_metadata, propagation_frame)

    _get_supported_propagation_frames_metadata = { "offset" : _get_supported_propagation_frames_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_propagation_frames(self) -> list:
        """Return supported propagation frames."""
        return self._intf.get_property(PropagatorJ2Perturbation._metadata, PropagatorJ2Perturbation._get_supported_propagation_frames_metadata)

    _get_display_coordinate_type_metadata = { "offset" : _get_display_coordinate_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorDisplayCoordinateType),) }
    @property
    def display_coordinate_type(self) -> "PropagatorDisplayCoordinateType":
        """The propagator's display coordinate type."""
        return self._intf.get_property(PropagatorJ2Perturbation._metadata, PropagatorJ2Perturbation._get_display_coordinate_type_metadata)

    _set_display_coordinate_type_metadata = { "offset" : _set_display_coordinate_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorDisplayCoordinateType),) }
    @display_coordinate_type.setter
    def display_coordinate_type(self, display_coordinate_type:"PropagatorDisplayCoordinateType") -> None:
        return self._intf.set_property(PropagatorJ2Perturbation._metadata, PropagatorJ2Perturbation._set_display_coordinate_type_metadata, display_coordinate_type)

    _property_names[step] = "step"
    _property_names[initial_state] = "initial_state"
    _property_names[ephemeris_interval] = "ephemeris_interval"
    _property_names[propagation_frame] = "propagation_frame"
    _property_names[supported_propagation_frames] = "supported_propagation_frames"
    _property_names[display_coordinate_type] = "display_coordinate_type"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorJ2Perturbation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorJ2Perturbation)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorJ2Perturbation, [PropagatorJ2Perturbation, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((5751818002946687406, 14333009989110836403), PropagatorJ2Perturbation)
agcls.AgTypeNameMap["PropagatorJ2Perturbation"] = PropagatorJ2Perturbation

class PropagatorJ4Perturbation(IPropagator, SupportsDeleteCallback):
    """
    J4 Perturbation propagator interface.

    Examples
    --------
    Set satellite propagator to J4 and assign cartesian position:
    >>> # Satellite satellite: Satellite object
    >>> satellite.set_propagator_type(PropagatorType.J4_PERTURBATION)
    >>> propagator = satellite.propagator
    >>> icrfCoordinates = [6678.14, 0, 0, 0, 6.78953, 3.68641]
    >>> propagator.initial_state.representation.assign_cartesian(CoordinateSystem.ICRF, *icrfCoordinates)
    >>> propagator.propagate()
    """

    _num_methods = 10
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_initial_state_method_offset = 4
    _get_ephemeris_interval_method_offset = 5
    _get_propagation_frame_method_offset = 6
    _set_propagation_frame_method_offset = 7
    _get_supported_propagation_frames_method_offset = 8
    _get_display_coordinate_type_method_offset = 9
    _set_display_coordinate_type_method_offset = 10
    _metadata = {
        "iid_data" : (5558910373842567478, 5071806728835135888),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorJ4Perturbation)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the satellite's path using the specified time interval."""
        return self._intf.invoke(PropagatorJ4Perturbation._metadata, PropagatorJ4Perturbation._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorJ4Perturbation._metadata, PropagatorJ4Perturbation._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorJ4Perturbation._metadata, PropagatorJ4Perturbation._set_step_metadata, step)

    _get_initial_state_metadata = { "offset" : _get_initial_state_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def initial_state(self) -> "VehicleZonalPropagatorInitialState":
        """Get the initial state."""
        return self._intf.get_property(PropagatorJ4Perturbation._metadata, PropagatorJ4Perturbation._get_initial_state_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorJ4Perturbation._metadata, PropagatorJ4Perturbation._get_ephemeris_interval_metadata)

    _get_propagation_frame_metadata = { "offset" : _get_propagation_frame_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehiclePropagationFrame),) }
    @property
    def propagation_frame(self) -> "VehiclePropagationFrame":
        """Get or set the propagation frame."""
        return self._intf.get_property(PropagatorJ4Perturbation._metadata, PropagatorJ4Perturbation._get_propagation_frame_metadata)

    _set_propagation_frame_metadata = { "offset" : _set_propagation_frame_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehiclePropagationFrame),) }
    @propagation_frame.setter
    def propagation_frame(self, propagation_frame:"VehiclePropagationFrame") -> None:
        return self._intf.set_property(PropagatorJ4Perturbation._metadata, PropagatorJ4Perturbation._set_propagation_frame_metadata, propagation_frame)

    _get_supported_propagation_frames_metadata = { "offset" : _get_supported_propagation_frames_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_propagation_frames(self) -> list:
        """Return supported propagation frames."""
        return self._intf.get_property(PropagatorJ4Perturbation._metadata, PropagatorJ4Perturbation._get_supported_propagation_frames_metadata)

    _get_display_coordinate_type_metadata = { "offset" : _get_display_coordinate_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorDisplayCoordinateType),) }
    @property
    def display_coordinate_type(self) -> "PropagatorDisplayCoordinateType":
        """The propagator's display coordinate type."""
        return self._intf.get_property(PropagatorJ4Perturbation._metadata, PropagatorJ4Perturbation._get_display_coordinate_type_metadata)

    _set_display_coordinate_type_metadata = { "offset" : _set_display_coordinate_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorDisplayCoordinateType),) }
    @display_coordinate_type.setter
    def display_coordinate_type(self, display_coordinate_type:"PropagatorDisplayCoordinateType") -> None:
        return self._intf.set_property(PropagatorJ4Perturbation._metadata, PropagatorJ4Perturbation._set_display_coordinate_type_metadata, display_coordinate_type)

    _property_names[step] = "step"
    _property_names[initial_state] = "initial_state"
    _property_names[ephemeris_interval] = "ephemeris_interval"
    _property_names[propagation_frame] = "propagation_frame"
    _property_names[supported_propagation_frames] = "supported_propagation_frames"
    _property_names[display_coordinate_type] = "display_coordinate_type"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorJ4Perturbation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorJ4Perturbation)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorJ4Perturbation, [PropagatorJ4Perturbation, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((4682321690096532856, 13090179637556098221), PropagatorJ4Perturbation)
agcls.AgTypeNameMap["PropagatorJ4Perturbation"] = PropagatorJ4Perturbation

class PropagatorLOP(IPropagator, SupportsDeleteCallback):
    """LOP (Long-Range Orbit Predictor) propagator interface."""

    _num_methods = 8
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_initial_state_method_offset = 4
    _get_force_model_method_offset = 5
    _get_ephemeris_interval_method_offset = 6
    _get_display_coordinate_type_method_offset = 7
    _set_display_coordinate_type_method_offset = 8
    _metadata = {
        "iid_data" : (5234725472925885624, 15934490420497880224),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorLOP)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the satellite's path using the specified time interval."""
        return self._intf.invoke(PropagatorLOP._metadata, PropagatorLOP._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorLOP._metadata, PropagatorLOP._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorLOP._metadata, PropagatorLOP._set_step_metadata, step)

    _get_initial_state_metadata = { "offset" : _get_initial_state_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def initial_state(self) -> "VehicleInitialState":
        """Get the initial state."""
        return self._intf.get_property(PropagatorLOP._metadata, PropagatorLOP._get_initial_state_metadata)

    _get_force_model_metadata = { "offset" : _get_force_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def force_model(self) -> "VehicleLOPForceModel":
        """Get the force model parameters."""
        return self._intf.get_property(PropagatorLOP._metadata, PropagatorLOP._get_force_model_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorLOP._metadata, PropagatorLOP._get_ephemeris_interval_metadata)

    _get_display_coordinate_type_metadata = { "offset" : _get_display_coordinate_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorDisplayCoordinateType),) }
    @property
    def display_coordinate_type(self) -> "PropagatorDisplayCoordinateType":
        """The propagator's display coordinate type."""
        return self._intf.get_property(PropagatorLOP._metadata, PropagatorLOP._get_display_coordinate_type_metadata)

    _set_display_coordinate_type_metadata = { "offset" : _set_display_coordinate_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorDisplayCoordinateType),) }
    @display_coordinate_type.setter
    def display_coordinate_type(self, display_coordinate_type:"PropagatorDisplayCoordinateType") -> None:
        return self._intf.set_property(PropagatorLOP._metadata, PropagatorLOP._set_display_coordinate_type_metadata, display_coordinate_type)

    _property_names[step] = "step"
    _property_names[initial_state] = "initial_state"
    _property_names[force_model] = "force_model"
    _property_names[ephemeris_interval] = "ephemeris_interval"
    _property_names[display_coordinate_type] = "display_coordinate_type"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorLOP."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorLOP)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorLOP, [PropagatorLOP, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((4873132332327876144, 5183090407087396236), PropagatorLOP)
agcls.AgTypeNameMap["PropagatorLOP"] = PropagatorLOP

class PropagatorSGP4(IPropagator, SupportsDeleteCallback):
    """
    SGP4 propagator interface.

    Examples
    --------
    Set satellite propagator to SGP4 and propagate:
    >>> # Satellite satellite: Satellite object
    >>> satellite.set_propagator_type(PropagatorType.SGP4)
    >>> propagator = satellite.propagator
    >>> propagator.ephemeris_interval.set_implicit_interval(
    >>>     root.current_scenario.analysis_workbench_components.time_intervals.item("AnalysisInterval")
    >>> )  # Link to scenario period
    >>> propagator.common_tasks.add_segments_from_online_source("25544")  # International Space Station
    >>> propagator.automatic_update_enabled = True
    >>> propagator.propagate()
    """

    _num_methods = 12
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_segments_method_offset = 4
    _get_automatic_update_enabled_method_offset = 5
    _set_automatic_update_enabled_method_offset = 6
    _get_automatic_update_settings_method_offset = 7
    _get_common_tasks_method_offset = 8
    _get_settings_method_offset = 9
    _get_ephemeris_interval_method_offset = 10
    _get_international_designator_method_offset = 11
    _set_international_designator_method_offset = 12
    _metadata = {
        "iid_data" : (5499799530762519551, 17546345082066884286),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the satellite's path using the specified time interval."""
        return self._intf.invoke(PropagatorSGP4._metadata, PropagatorSGP4._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorSGP4._metadata, PropagatorSGP4._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorSGP4._metadata, PropagatorSGP4._set_step_metadata, step)

    _get_segments_metadata = { "offset" : _get_segments_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def segments(self) -> "PropagatorSGP4SegmentCollection":
        """Get the element set list."""
        return self._intf.get_property(PropagatorSGP4._metadata, PropagatorSGP4._get_segments_metadata)

    _get_automatic_update_enabled_metadata = { "offset" : _get_automatic_update_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def automatic_update_enabled(self) -> bool:
        """Whether automatic update is enabled."""
        return self._intf.get_property(PropagatorSGP4._metadata, PropagatorSGP4._get_automatic_update_enabled_metadata)

    _set_automatic_update_enabled_metadata = { "offset" : _set_automatic_update_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @automatic_update_enabled.setter
    def automatic_update_enabled(self, auto_update_enabled:bool) -> None:
        return self._intf.set_property(PropagatorSGP4._metadata, PropagatorSGP4._set_automatic_update_enabled_metadata, auto_update_enabled)

    _get_automatic_update_settings_metadata = { "offset" : _get_automatic_update_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def automatic_update_settings(self) -> "PropagatorSGP4AutoUpdate":
        """Allow configuring the auto-update parameters and settings."""
        return self._intf.get_property(PropagatorSGP4._metadata, PropagatorSGP4._get_automatic_update_settings_metadata)

    _get_common_tasks_metadata = { "offset" : _get_common_tasks_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def common_tasks(self) -> "PropagatorSGP4CommonTasks":
        """Most commonly used tasks such as importing file data, etc."""
        return self._intf.get_property(PropagatorSGP4._metadata, PropagatorSGP4._get_common_tasks_metadata)

    _get_settings_metadata = { "offset" : _get_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def settings(self) -> "PropagatorSGP4PropagatorSettings":
        """Propagator settings."""
        return self._intf.get_property(PropagatorSGP4._metadata, PropagatorSGP4._get_settings_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorSGP4._metadata, PropagatorSGP4._get_ephemeris_interval_metadata)

    _get_international_designator_metadata = { "offset" : _get_international_designator_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def international_designator(self) -> str:
        """International designation of the satellite."""
        return self._intf.get_property(PropagatorSGP4._metadata, PropagatorSGP4._get_international_designator_metadata)

    _set_international_designator_metadata = { "offset" : _set_international_designator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @international_designator.setter
    def international_designator(self, designator:str) -> None:
        return self._intf.set_property(PropagatorSGP4._metadata, PropagatorSGP4._set_international_designator_metadata, designator)

    _property_names[step] = "step"
    _property_names[segments] = "segments"
    _property_names[automatic_update_enabled] = "automatic_update_enabled"
    _property_names[automatic_update_settings] = "automatic_update_settings"
    _property_names[common_tasks] = "common_tasks"
    _property_names[settings] = "settings"
    _property_names[ephemeris_interval] = "ephemeris_interval"
    _property_names[international_designator] = "international_designator"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4, [PropagatorSGP4, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((5611136693935603489, 11810962676535376038), PropagatorSGP4)
agcls.AgTypeNameMap["PropagatorSGP4"] = PropagatorSGP4

class PropagatorSPICE(IPropagator, SupportsDeleteCallback):
    r"""
    SPICE propagator interface.

    Examples
    --------
    Set satellite propagator to SPICE and propagate:
    >>> # Satellite satellite: Satellite object
    >>> # STKObjectRoot root: STK Object Model Root
    >>> satellite.set_propagator_type(PropagatorType.SPICE)
    >>> propagator = satellite.propagator
    >>> if os.name == "nt":
    >>>     installPath = r"C:\Program Files\AGI\STK 12"
    >>> else:
    >>>     installPath = os.environ["STK_INSTALL_DIR"]
    >>> bspPath = ["STKData", "Spice", "planets.bsp"]
    >>> propagator.spice = os.path.join(installPath, *bspPath)  # Make sure this is a valid path
    >>> propagator.body_name = "MARS"
    >>>
    >>> intvl = root.current_scenario.analysis_workbench_components.time_intervals.item("AnalysisInterval")
    >>> propagator.ephemeris_interval.set_implicit_interval(intvl)  # Link to scenario period
    >>> propagator.step = 60.0
    >>> propagator.propagate()
    """

    _num_methods = 10
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_spice_method_offset = 4
    _set_spice_method_offset = 5
    _get_body_name_method_offset = 6
    _set_body_name_method_offset = 7
    _get_segments_method_offset = 8
    _get_available_body_names_method_offset = 9
    _get_ephemeris_interval_method_offset = 10
    _metadata = {
        "iid_data" : (5400522439021362078, 14940526176246293121),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSPICE)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the satellite's path using the specified time interval."""
        return self._intf.invoke(PropagatorSPICE._metadata, PropagatorSPICE._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorSPICE._metadata, PropagatorSPICE._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorSPICE._metadata, PropagatorSPICE._set_step_metadata, step)

    _get_spice_metadata = { "offset" : _get_spice_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def spice(self) -> str:
        """Name of SPICE file."""
        return self._intf.get_property(PropagatorSPICE._metadata, PropagatorSPICE._get_spice_metadata)

    _set_spice_metadata = { "offset" : _set_spice_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @spice.setter
    def spice(self, spice:str) -> None:
        return self._intf.set_property(PropagatorSPICE._metadata, PropagatorSPICE._set_spice_metadata, spice)

    _get_body_name_metadata = { "offset" : _get_body_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def body_name(self) -> str:
        """Body name."""
        return self._intf.get_property(PropagatorSPICE._metadata, PropagatorSPICE._get_body_name_metadata)

    _set_body_name_metadata = { "offset" : _set_body_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @body_name.setter
    def body_name(self, body_name:str) -> None:
        return self._intf.set_property(PropagatorSPICE._metadata, PropagatorSPICE._set_body_name_metadata, body_name)

    _get_segments_metadata = { "offset" : _get_segments_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def segments(self) -> "PropagatorSPICESegmentsCollection":
        """Get the segment list."""
        return self._intf.get_property(PropagatorSPICE._metadata, PropagatorSPICE._get_segments_metadata)

    _get_available_body_names_metadata = { "offset" : _get_available_body_names_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_body_names(self) -> list:
        """Get a list of available body names."""
        return self._intf.get_property(PropagatorSPICE._metadata, PropagatorSPICE._get_available_body_names_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorSPICE._metadata, PropagatorSPICE._get_ephemeris_interval_metadata)

    _property_names[step] = "step"
    _property_names[spice] = "spice"
    _property_names[body_name] = "body_name"
    _property_names[segments] = "segments"
    _property_names[available_body_names] = "available_body_names"
    _property_names[ephemeris_interval] = "ephemeris_interval"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSPICE."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSPICE)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSPICE, [PropagatorSPICE, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((5709088581719726310, 10480182384597456043), PropagatorSPICE)
agcls.AgTypeNameMap["PropagatorSPICE"] = PropagatorSPICE

class PropagatorSTKExternal(IPropagator, SupportsDeleteCallback):
    """StkExternal propagator interface."""

    _num_methods = 15
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_start_time_method_offset = 2
    _get_stop_time_method_offset = 3
    _get_step_method_offset = 4
    _get_filename_method_offset = 5
    _set_filename_method_offset = 6
    _get_override_method_offset = 7
    _set_override_method_offset = 8
    _get_file_format_method_offset = 9
    _set_file_format_method_offset = 10
    _get_ephemeris_start_epoch_method_offset = 11
    _get_limit_ephemeris_to_scenario_interval_method_offset = 12
    _set_limit_ephemeris_to_scenario_interval_method_offset = 13
    _get_message_level_method_offset = 14
    _set_message_level_method_offset = 15
    _metadata = {
        "iid_data" : (5523190596007530599, 5066525413887370417),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSTKExternal)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the satellite's path using the specified time interval."""
        return self._intf.invoke(PropagatorSTKExternal._metadata, PropagatorSTKExternal._propagate_metadata, )

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Get the start time of ephemeris interval. Uses DateFormat Dimension."""
        return self._intf.get_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._get_start_time_metadata)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Get the stop time of ephemeris interval. Uses DateFormat Dimension."""
        return self._intf.get_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._get_stop_time_metadata)

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._get_step_metadata)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Name of external file."""
        return self._intf.get_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._set_filename_metadata, value)

    _get_override_metadata = { "offset" : _get_override_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override(self) -> bool:
        """Opt whether to override times contained in the external file."""
        return self._intf.get_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._get_override_metadata)

    _set_override_metadata = { "offset" : _set_override_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override.setter
    def override(self, override:bool) -> None:
        return self._intf.set_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._set_override_metadata, override)

    _get_file_format_metadata = { "offset" : _get_file_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ExternalEphemerisFormatType),) }
    @property
    def file_format(self) -> "ExternalEphemerisFormatType":
        """Ephemeris file format."""
        return self._intf.get_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._get_file_format_metadata)

    _set_file_format_metadata = { "offset" : _set_file_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ExternalEphemerisFormatType),) }
    @file_format.setter
    def file_format(self, file_format:"ExternalEphemerisFormatType") -> None:
        return self._intf.set_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._set_file_format_metadata, file_format)

    _get_ephemeris_start_epoch_metadata = { "offset" : _get_ephemeris_start_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_start_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """If overriding the times contained in the external file, specify the time of the first ephemeris point."""
        return self._intf.get_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._get_ephemeris_start_epoch_metadata)

    _get_limit_ephemeris_to_scenario_interval_metadata = { "offset" : _get_limit_ephemeris_to_scenario_interval_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def limit_ephemeris_to_scenario_interval(self) -> bool:
        """Limit ephemeris for analysis to the Scenario Interval."""
        return self._intf.get_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._get_limit_ephemeris_to_scenario_interval_metadata)

    _set_limit_ephemeris_to_scenario_interval_metadata = { "offset" : _set_limit_ephemeris_to_scenario_interval_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @limit_ephemeris_to_scenario_interval.setter
    def limit_ephemeris_to_scenario_interval(self, limit_ephem_witnin_scen_int:bool) -> None:
        return self._intf.set_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._set_limit_ephemeris_to_scenario_interval_metadata, limit_ephem_witnin_scen_int)

    _get_message_level_metadata = { "offset" : _get_message_level_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ExternalFileMessageLevelType),) }
    @property
    def message_level(self) -> "ExternalFileMessageLevelType":
        """Message level used to report messages during file loading."""
        return self._intf.get_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._get_message_level_metadata)

    _set_message_level_metadata = { "offset" : _set_message_level_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ExternalFileMessageLevelType),) }
    @message_level.setter
    def message_level(self, msg_level:"ExternalFileMessageLevelType") -> None:
        return self._intf.set_property(PropagatorSTKExternal._metadata, PropagatorSTKExternal._set_message_level_metadata, msg_level)

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[step] = "step"
    _property_names[filename] = "filename"
    _property_names[override] = "override"
    _property_names[file_format] = "file_format"
    _property_names[ephemeris_start_epoch] = "ephemeris_start_epoch"
    _property_names[limit_ephemeris_to_scenario_interval] = "limit_ephemeris_to_scenario_interval"
    _property_names[message_level] = "message_level"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSTKExternal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSTKExternal)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSTKExternal, [PropagatorSTKExternal, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((5265884709931486530, 9870109827576315030), PropagatorSTKExternal)
agcls.AgTypeNameMap["PropagatorSTKExternal"] = PropagatorSTKExternal

class PropagatorTwoBody(IPropagator, SupportsDeleteCallback):
    """Two-body propagator interface."""

    _num_methods = 10
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_initial_state_method_offset = 4
    _get_ephemeris_interval_method_offset = 5
    _get_propagation_frame_method_offset = 6
    _set_propagation_frame_method_offset = 7
    _get_supported_propagation_frames_method_offset = 8
    _get_display_coordinate_type_method_offset = 9
    _set_display_coordinate_type_method_offset = 10
    _metadata = {
        "iid_data" : (4955666920446659850, 13993148105509406360),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorTwoBody)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the satellite's path using the specified time interval."""
        return self._intf.invoke(PropagatorTwoBody._metadata, PropagatorTwoBody._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorTwoBody._metadata, PropagatorTwoBody._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorTwoBody._metadata, PropagatorTwoBody._set_step_metadata, step)

    _get_initial_state_metadata = { "offset" : _get_initial_state_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def initial_state(self) -> "VehicleInitialState":
        """Get the initial state."""
        return self._intf.get_property(PropagatorTwoBody._metadata, PropagatorTwoBody._get_initial_state_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorTwoBody._metadata, PropagatorTwoBody._get_ephemeris_interval_metadata)

    _get_propagation_frame_metadata = { "offset" : _get_propagation_frame_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehiclePropagationFrame),) }
    @property
    def propagation_frame(self) -> "VehiclePropagationFrame":
        """Get or set the propagation frame."""
        return self._intf.get_property(PropagatorTwoBody._metadata, PropagatorTwoBody._get_propagation_frame_metadata)

    _set_propagation_frame_metadata = { "offset" : _set_propagation_frame_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehiclePropagationFrame),) }
    @propagation_frame.setter
    def propagation_frame(self, propagation_frame:"VehiclePropagationFrame") -> None:
        return self._intf.set_property(PropagatorTwoBody._metadata, PropagatorTwoBody._set_propagation_frame_metadata, propagation_frame)

    _get_supported_propagation_frames_metadata = { "offset" : _get_supported_propagation_frames_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_propagation_frames(self) -> list:
        """Return supported propagation frames."""
        return self._intf.get_property(PropagatorTwoBody._metadata, PropagatorTwoBody._get_supported_propagation_frames_metadata)

    _get_display_coordinate_type_metadata = { "offset" : _get_display_coordinate_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorDisplayCoordinateType),) }
    @property
    def display_coordinate_type(self) -> "PropagatorDisplayCoordinateType":
        """The propagator's display coordinate type."""
        return self._intf.get_property(PropagatorTwoBody._metadata, PropagatorTwoBody._get_display_coordinate_type_metadata)

    _set_display_coordinate_type_metadata = { "offset" : _set_display_coordinate_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorDisplayCoordinateType),) }
    @display_coordinate_type.setter
    def display_coordinate_type(self, display_coordinate_type:"PropagatorDisplayCoordinateType") -> None:
        return self._intf.set_property(PropagatorTwoBody._metadata, PropagatorTwoBody._set_display_coordinate_type_metadata, display_coordinate_type)

    _property_names[step] = "step"
    _property_names[initial_state] = "initial_state"
    _property_names[ephemeris_interval] = "ephemeris_interval"
    _property_names[propagation_frame] = "propagation_frame"
    _property_names[supported_propagation_frames] = "supported_propagation_frames"
    _property_names[display_coordinate_type] = "display_coordinate_type"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorTwoBody."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorTwoBody)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorTwoBody, [PropagatorTwoBody, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((5256972860113627770, 4365942663131789468), PropagatorTwoBody)
agcls.AgTypeNameMap["PropagatorTwoBody"] = PropagatorTwoBody

class PropagatorUserExternal(IPropagator, SupportsDeleteCallback):
    """User-external propagator interface."""

    _num_methods = 17
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_start_time_method_offset = 2
    _set_start_time_method_offset = 3
    _get_stop_time_method_offset = 4
    _set_stop_time_method_offset = 5
    _get_step_method_offset = 6
    _set_step_method_offset = 7
    _get_propagator_method_offset = 8
    _set_propagator_method_offset = 9
    _get_file_method_offset = 10
    _set_file_method_offset = 11
    _get_vehicle_id_method_offset = 12
    _set_vehicle_id_method_offset = 13
    _get_description_method_offset = 14
    _get_available_vehicle_identifiers_method_offset = 15
    _get_available_propagators_method_offset = 16
    _get_ephemeris_interval_method_offset = 17
    _metadata = {
        "iid_data" : (5660308038733331120, 4552789927307892665),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorUserExternal)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the vehicle's path using the specified time interval."""
        return self._intf.invoke(PropagatorUserExternal._metadata, PropagatorUserExternal._propagate_metadata, )

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Get or set the start time of ephemeris interval. Uses DateFormat Dimension."""
        return self._intf.get_property(PropagatorUserExternal._metadata, PropagatorUserExternal._get_start_time_metadata)

    _set_start_time_metadata = { "offset" : _set_start_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_time.setter
    def start_time(self, start_time:typing.Any) -> None:
        return self._intf.set_property(PropagatorUserExternal._metadata, PropagatorUserExternal._set_start_time_metadata, start_time)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Get or set the stop time of ephemeris interval. Uses DateFormat Dimension."""
        return self._intf.get_property(PropagatorUserExternal._metadata, PropagatorUserExternal._get_stop_time_metadata)

    _set_stop_time_metadata = { "offset" : _set_stop_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop_time.setter
    def stop_time(self, stop_time:typing.Any) -> None:
        return self._intf.set_property(PropagatorUserExternal._metadata, PropagatorUserExternal._set_stop_time_metadata, stop_time)

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorUserExternal._metadata, PropagatorUserExternal._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorUserExternal._metadata, PropagatorUserExternal._set_step_metadata, step)

    _get_propagator_metadata = { "offset" : _get_propagator_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def propagator(self) -> str:
        """Propagator."""
        return self._intf.get_property(PropagatorUserExternal._metadata, PropagatorUserExternal._get_propagator_metadata)

    _set_propagator_metadata = { "offset" : _set_propagator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @propagator.setter
    def propagator(self, value:str) -> None:
        return self._intf.set_property(PropagatorUserExternal._metadata, PropagatorUserExternal._set_propagator_metadata, value)

    _get_file_metadata = { "offset" : _get_file_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file(self) -> str:
        """Name of user-external file."""
        return self._intf.get_property(PropagatorUserExternal._metadata, PropagatorUserExternal._get_file_metadata)

    _set_file_metadata = { "offset" : _set_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @file.setter
    def file(self, file:str) -> None:
        return self._intf.set_property(PropagatorUserExternal._metadata, PropagatorUserExternal._set_file_metadata, file)

    _get_vehicle_id_metadata = { "offset" : _get_vehicle_id_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def vehicle_id(self) -> str:
        """Vehicle ID."""
        return self._intf.get_property(PropagatorUserExternal._metadata, PropagatorUserExternal._get_vehicle_id_metadata)

    _set_vehicle_id_metadata = { "offset" : _set_vehicle_id_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @vehicle_id.setter
    def vehicle_id(self, value:str) -> None:
        return self._intf.set_property(PropagatorUserExternal._metadata, PropagatorUserExternal._set_vehicle_id_metadata, value)

    _get_description_metadata = { "offset" : _get_description_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def description(self) -> str:
        """Description."""
        return self._intf.get_property(PropagatorUserExternal._metadata, PropagatorUserExternal._get_description_metadata)

    _get_available_vehicle_identifiers_metadata = { "offset" : _get_available_vehicle_identifiers_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_vehicle_identifiers(self) -> list:
        """Get available IDs."""
        return self._intf.get_property(PropagatorUserExternal._metadata, PropagatorUserExternal._get_available_vehicle_identifiers_metadata)

    _get_available_propagators_metadata = { "offset" : _get_available_propagators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_propagators(self) -> list:
        """Get available propagators."""
        return self._intf.get_property(PropagatorUserExternal._metadata, PropagatorUserExternal._get_available_propagators_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorUserExternal._metadata, PropagatorUserExternal._get_ephemeris_interval_metadata)

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[step] = "step"
    _property_names[propagator] = "propagator"
    _property_names[file] = "file"
    _property_names[vehicle_id] = "vehicle_id"
    _property_names[description] = "description"
    _property_names[available_vehicle_identifiers] = "available_vehicle_identifiers"
    _property_names[available_propagators] = "available_propagators"
    _property_names[ephemeris_interval] = "ephemeris_interval"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorUserExternal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorUserExternal)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorUserExternal, [PropagatorUserExternal, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((4867116723624908645, 16524557858493267608), PropagatorUserExternal)
agcls.AgTypeNameMap["PropagatorUserExternal"] = PropagatorUserExternal

class LaunchVehicleInitialState(SupportsDeleteCallback):
    """Simple Ascent propagator initial state interface."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_launch_method_offset = 1
    _get_burnout_velocity_method_offset = 2
    _set_burnout_velocity_method_offset = 3
    _get_burnout_method_offset = 4
    _get_trajectory_epoch_method_offset = 5
    _metadata = {
        "iid_data" : (5707362914840733260, 12346986937981156503),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicleInitialState)

    _get_launch_metadata = { "offset" : _get_launch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def launch(self) -> "ILatitudeLongitudeAltitudePosition":
        """Get the geocentric or geodetic launch position coordinates."""
        return self._intf.get_property(LaunchVehicleInitialState._metadata, LaunchVehicleInitialState._get_launch_metadata)

    _get_burnout_velocity_metadata = { "offset" : _get_burnout_velocity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def burnout_velocity(self) -> float:
        """Burnout velocity, i.e. the velocity of the vehicle at the stop time."""
        return self._intf.get_property(LaunchVehicleInitialState._metadata, LaunchVehicleInitialState._get_burnout_velocity_metadata)

    _set_burnout_velocity_metadata = { "offset" : _set_burnout_velocity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @burnout_velocity.setter
    def burnout_velocity(self, burnout_vel:float) -> None:
        return self._intf.set_property(LaunchVehicleInitialState._metadata, LaunchVehicleInitialState._set_burnout_velocity_metadata, burnout_vel)

    _get_burnout_metadata = { "offset" : _get_burnout_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def burnout(self) -> "ILatitudeLongitudeAltitudePosition":
        """Get the geocentric or geodetic burnout position coordinates."""
        return self._intf.get_property(LaunchVehicleInitialState._metadata, LaunchVehicleInitialState._get_burnout_metadata)

    _get_trajectory_epoch_metadata = { "offset" : _get_trajectory_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Get the smart epoch component to access the trajectory epoch."""
        return self._intf.get_property(LaunchVehicleInitialState._metadata, LaunchVehicleInitialState._get_trajectory_epoch_metadata)

    _property_names[launch] = "launch"
    _property_names[burnout_velocity] = "burnout_velocity"
    _property_names[burnout] = "burnout"
    _property_names[trajectory_epoch] = "trajectory_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicleInitialState."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicleInitialState)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicleInitialState, [LaunchVehicleInitialState, ])

agcls.AgClassCatalog.add_catalog_entry((5407771696627016020, 852554673691188889), LaunchVehicleInitialState)
agcls.AgTypeNameMap["LaunchVehicleInitialState"] = LaunchVehicleInitialState

class PropagatorSimpleAscent(IPropagator, SupportsDeleteCallback):
    """SimpleAscent Propagator."""

    _num_methods = 5
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_initial_state_method_offset = 4
    _get_ephemeris_interval_method_offset = 5
    _metadata = {
        "iid_data" : (4650233301770808095, 4494741190195721862),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSimpleAscent)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the launch vehicle's path using the specified time interval."""
        return self._intf.invoke(PropagatorSimpleAscent._metadata, PropagatorSimpleAscent._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorSimpleAscent._metadata, PropagatorSimpleAscent._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorSimpleAscent._metadata, PropagatorSimpleAscent._set_step_metadata, step)

    _get_initial_state_metadata = { "offset" : _get_initial_state_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def initial_state(self) -> "LaunchVehicleInitialState":
        """Get the initial state."""
        return self._intf.get_property(PropagatorSimpleAscent._metadata, PropagatorSimpleAscent._get_initial_state_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorSimpleAscent._metadata, PropagatorSimpleAscent._get_ephemeris_interval_metadata)

    _property_names[step] = "step"
    _property_names[initial_state] = "initial_state"
    _property_names[ephemeris_interval] = "ephemeris_interval"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSimpleAscent."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSimpleAscent)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSimpleAscent, [PropagatorSimpleAscent, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((4738045014485883873, 6850844412891641735), PropagatorSimpleAscent)
agcls.AgTypeNameMap["PropagatorSimpleAscent"] = PropagatorSimpleAscent

class VehicleWaypointsElement(SupportsDeleteCallback):
    """Interface for representing a waypoint in a collection of waypoints."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_latitude_method_offset = 1
    _set_latitude_method_offset = 2
    _get_longitude_method_offset = 3
    _set_longitude_method_offset = 4
    _get_altitude_method_offset = 5
    _set_altitude_method_offset = 6
    _get_speed_method_offset = 7
    _set_speed_method_offset = 8
    _get_acceleration_method_offset = 9
    _set_acceleration_method_offset = 10
    _get_time_method_offset = 11
    _set_time_method_offset = 12
    _get_turn_radius_method_offset = 13
    _set_turn_radius_method_offset = 14
    _metadata = {
        "iid_data" : (5392178121839419542, 14130613716364263860),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleWaypointsElement)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def latitude(self) -> typing.Any:
        """Latitude of the waypoint. Uses Angle Dimension."""
        return self._intf.get_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @latitude.setter
    def latitude(self, latitude:typing.Any) -> None:
        return self._intf.set_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._set_latitude_metadata, latitude)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def longitude(self) -> typing.Any:
        """Longitude of the waypoint. Uses Angle Dimension."""
        return self._intf.get_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @longitude.setter
    def longitude(self, longitude:typing.Any) -> None:
        return self._intf.set_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._set_longitude_metadata, longitude)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Altitude of the waypoint. Changes in altitude take effect linearly between two waypoints. Uses Distance Dimension."""
        return self._intf.get_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, altitude:float) -> None:
        return self._intf.set_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._set_altitude_metadata, altitude)

    _get_speed_metadata = { "offset" : _get_speed_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def speed(self) -> float:
        """Velocity of the vehicle from the current waypoint to the next. A change in velocity occurs immediately at the waypoint. Uses Rate Dimension."""
        return self._intf.get_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._get_speed_metadata)

    _set_speed_metadata = { "offset" : _set_speed_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @speed.setter
    def speed(self, speed:float) -> None:
        return self._intf.set_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._set_speed_metadata, speed)

    _get_acceleration_metadata = { "offset" : _get_acceleration_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def acceleration(self) -> float:
        """Rate of increase (if positive) or decrease (if negative) in the velocity of the vehicle. Uses Acceleration Dimension."""
        return self._intf.get_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._get_acceleration_metadata)

    _set_acceleration_metadata = { "offset" : _set_acceleration_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @acceleration.setter
    def acceleration(self, acceleration:float) -> None:
        return self._intf.set_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._set_acceleration_metadata, acceleration)

    _get_time_metadata = { "offset" : _get_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def time(self) -> typing.Any:
        """Time at which the vehicle is at the waypoint. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._get_time_metadata)

    _set_time_metadata = { "offset" : _set_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @time.setter
    def time(self, time:typing.Any) -> None:
        return self._intf.set_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._set_time_metadata, time)

    _get_turn_radius_metadata = { "offset" : _get_turn_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def turn_radius(self) -> float:
        """Curvature of the arc between the current waypoint and the next waypoint. A smaller turn radius produces a sharper curve in the arc. Uses Distance Dimension."""
        return self._intf.get_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._get_turn_radius_metadata)

    _set_turn_radius_metadata = { "offset" : _set_turn_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @turn_radius.setter
    def turn_radius(self, turn_radius:float) -> None:
        return self._intf.set_property(VehicleWaypointsElement._metadata, VehicleWaypointsElement._set_turn_radius_metadata, turn_radius)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[altitude] = "altitude"
    _property_names[speed] = "speed"
    _property_names[acceleration] = "acceleration"
    _property_names[time] = "time"
    _property_names[turn_radius] = "turn_radius"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleWaypointsElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleWaypointsElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleWaypointsElement, [VehicleWaypointsElement, ])

agcls.AgClassCatalog.add_catalog_entry((5512935779878348121, 6727541866577316503), VehicleWaypointsElement)
agcls.AgTypeNameMap["VehicleWaypointsElement"] = VehicleWaypointsElement

class VehicleWaypointsCollection(SupportsDeleteCallback):
    """Represents a collection of waypoints used with GreatArc vehicles."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _contains_method_offset = 7
    _index_of_method_offset = 8
    _to_array_method_offset = 9
    _metadata = {
        "iid_data" : (5404590581501589595, 13498263283881373083),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleWaypointsCollection)
    def __iter__(self):
        """Create an iterator for the VehicleWaypointsCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleWaypointsElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleWaypointsCollection._metadata, VehicleWaypointsCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleWaypointsElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleWaypointsCollection._metadata, VehicleWaypointsCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleWaypointsCollection._metadata, VehicleWaypointsCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleWaypointsCollection._metadata, VehicleWaypointsCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleWaypointsCollection._metadata, VehicleWaypointsCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "VehicleWaypointsElement":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleWaypointsCollection._metadata, VehicleWaypointsCollection._add_metadata, OutArg())

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def contains(self, time:typing.Any) -> bool:
        """Determine whether the collection contains the waypoint at the specified time."""
        return self._intf.invoke(VehicleWaypointsCollection._metadata, VehicleWaypointsCollection._contains_metadata, time, OutArg())

    _index_of_metadata = { "offset" : _index_of_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LongArg,) }
    def index_of(self, time:typing.Any) -> int:
        """Determine whether the collection contains the specified waypoint and returns an index of existing waypoint. The index < 0 indicates the way point is not in the collection."""
        return self._intf.invoke(VehicleWaypointsCollection._metadata, VehicleWaypointsCollection._index_of_metadata, time, OutArg())

    _to_array_metadata = { "offset" : _to_array_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def to_array(self) -> list:
        """Return a two-dimensional array that contains the way points. Each sub-array represents a waypoint. The order of the elements is Time, Latitude, Longitude, Altitude,Speed,Acceleration,TurnRadius."""
        return self._intf.invoke(VehicleWaypointsCollection._metadata, VehicleWaypointsCollection._to_array_metadata, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleWaypointsCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleWaypointsCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleWaypointsCollection, [VehicleWaypointsCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5719368903864964737, 5334718748822699667), VehicleWaypointsCollection)
agcls.AgTypeNameMap["VehicleWaypointsCollection"] = VehicleWaypointsCollection

class LaunchVehicleLocationDetic(IVehicleLaunch, SupportsDeleteCallback):
    """Interface for geodetic LLA position."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_latitude_method_offset = 1
    _set_latitude_method_offset = 2
    _get_longitude_method_offset = 3
    _set_longitude_method_offset = 4
    _get_altitude_method_offset = 5
    _set_altitude_method_offset = 6
    _metadata = {
        "iid_data" : (5514432012770393710, 5050514050822627767),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicleLocationDetic)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Geodetic launch latitude. Uses Latitude Dimension."""
        return self._intf.get_property(LaunchVehicleLocationDetic._metadata, LaunchVehicleLocationDetic._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude.setter
    def latitude(self, lat:float) -> None:
        return self._intf.set_property(LaunchVehicleLocationDetic._metadata, LaunchVehicleLocationDetic._set_latitude_metadata, lat)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Geodetic launch longitude. Uses Longitude Dimension."""
        return self._intf.get_property(LaunchVehicleLocationDetic._metadata, LaunchVehicleLocationDetic._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, lon:float) -> None:
        return self._intf.set_property(LaunchVehicleLocationDetic._metadata, LaunchVehicleLocationDetic._set_longitude_metadata, lon)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Geodetic launch altitude. Uses Distance Dimension."""
        return self._intf.get_property(LaunchVehicleLocationDetic._metadata, LaunchVehicleLocationDetic._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, alt:float) -> None:
        return self._intf.set_property(LaunchVehicleLocationDetic._metadata, LaunchVehicleLocationDetic._set_altitude_metadata, alt)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[altitude] = "altitude"

    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicleLocationDetic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicleLocationDetic)
        IVehicleLaunch.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLaunch._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicleLocationDetic, [LaunchVehicleLocationDetic, IVehicleLaunch])

agcls.AgClassCatalog.add_catalog_entry((5460938469287819630, 1399720205535387562), LaunchVehicleLocationDetic)
agcls.AgTypeNameMap["LaunchVehicleLocationDetic"] = LaunchVehicleLocationDetic

class LaunchVehicleLocationCentric(IVehicleLaunch, SupportsDeleteCallback):
    """Interface for geocentric LLR position."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_latitude_method_offset = 1
    _set_latitude_method_offset = 2
    _get_longitude_method_offset = 3
    _set_longitude_method_offset = 4
    _get_radius_method_offset = 5
    _set_radius_method_offset = 6
    _metadata = {
        "iid_data" : (5278855337443974070, 1387819903242212790),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicleLocationCentric)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Geocentric launch latitude. Uses Latitude Dimension."""
        return self._intf.get_property(LaunchVehicleLocationCentric._metadata, LaunchVehicleLocationCentric._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude.setter
    def latitude(self, lat:float) -> None:
        return self._intf.set_property(LaunchVehicleLocationCentric._metadata, LaunchVehicleLocationCentric._set_latitude_metadata, lat)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Geocentric launch longitude. Uses Longitude Dimension."""
        return self._intf.get_property(LaunchVehicleLocationCentric._metadata, LaunchVehicleLocationCentric._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, lon:float) -> None:
        return self._intf.set_property(LaunchVehicleLocationCentric._metadata, LaunchVehicleLocationCentric._set_longitude_metadata, lon)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """Geocentric launch radius. Uses Distance Dimension."""
        return self._intf.get_property(LaunchVehicleLocationCentric._metadata, LaunchVehicleLocationCentric._get_radius_metadata)

    _set_radius_metadata = { "offset" : _set_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius.setter
    def radius(self, radius:float) -> None:
        return self._intf.set_property(LaunchVehicleLocationCentric._metadata, LaunchVehicleLocationCentric._set_radius_metadata, radius)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[radius] = "radius"

    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicleLocationCentric."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicleLocationCentric)
        IVehicleLaunch.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLaunch._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicleLocationCentric, [LaunchVehicleLocationCentric, IVehicleLaunch])

agcls.AgClassCatalog.add_catalog_entry((4837748521045701093, 1072115239792928924), LaunchVehicleLocationCentric)
agcls.AgTypeNameMap["LaunchVehicleLocationCentric"] = LaunchVehicleLocationCentric

class VehicleImpactLocationDetic(IVehicleImpact, SupportsDeleteCallback):
    """Interface for LLA (geodetic) coordinates for a missile's impact location."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_latitude_method_offset = 1
    _set_latitude_method_offset = 2
    _get_longitude_method_offset = 3
    _set_longitude_method_offset = 4
    _get_altitude_method_offset = 5
    _set_altitude_method_offset = 6
    _metadata = {
        "iid_data" : (5477490481622501241, 2759263552172593037),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleImpactLocationDetic)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Geodetic impact latitude. Uses Latitude Dimension."""
        return self._intf.get_property(VehicleImpactLocationDetic._metadata, VehicleImpactLocationDetic._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude.setter
    def latitude(self, lat:float) -> None:
        return self._intf.set_property(VehicleImpactLocationDetic._metadata, VehicleImpactLocationDetic._set_latitude_metadata, lat)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Geodetic impact longitude. Uses Longitude Dimension."""
        return self._intf.get_property(VehicleImpactLocationDetic._metadata, VehicleImpactLocationDetic._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, lon:float) -> None:
        return self._intf.set_property(VehicleImpactLocationDetic._metadata, VehicleImpactLocationDetic._set_longitude_metadata, lon)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Geodetic impact altitude. Uses Distance Dimension."""
        return self._intf.get_property(VehicleImpactLocationDetic._metadata, VehicleImpactLocationDetic._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, alt:float) -> None:
        return self._intf.set_property(VehicleImpactLocationDetic._metadata, VehicleImpactLocationDetic._set_altitude_metadata, alt)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[altitude] = "altitude"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleImpactLocationDetic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleImpactLocationDetic)
        IVehicleImpact.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleImpact._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleImpactLocationDetic, [VehicleImpactLocationDetic, IVehicleImpact])

agcls.AgClassCatalog.add_catalog_entry((5535630761680077203, 14720518273541853834), VehicleImpactLocationDetic)
agcls.AgTypeNameMap["VehicleImpactLocationDetic"] = VehicleImpactLocationDetic

class VehicleImpactLocationCentric(IVehicleImpact, SupportsDeleteCallback):
    """Interface for LLR (geocentric) coordinates for a missile's impact location."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_latitude_method_offset = 1
    _set_latitude_method_offset = 2
    _get_longitude_method_offset = 3
    _set_longitude_method_offset = 4
    _get_radius_method_offset = 5
    _set_radius_method_offset = 6
    _metadata = {
        "iid_data" : (5036952682094932985, 18435541260133812400),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleImpactLocationCentric)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Geocentric impact latitude. Uses Latitude Dimension."""
        return self._intf.get_property(VehicleImpactLocationCentric._metadata, VehicleImpactLocationCentric._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude.setter
    def latitude(self, lat:float) -> None:
        return self._intf.set_property(VehicleImpactLocationCentric._metadata, VehicleImpactLocationCentric._set_latitude_metadata, lat)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Geocentric impact longitude. Uses Longitude Dimension."""
        return self._intf.get_property(VehicleImpactLocationCentric._metadata, VehicleImpactLocationCentric._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, lon:float) -> None:
        return self._intf.set_property(VehicleImpactLocationCentric._metadata, VehicleImpactLocationCentric._set_longitude_metadata, lon)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """Geocentric impact radius. Uses Distance Dimension."""
        return self._intf.get_property(VehicleImpactLocationCentric._metadata, VehicleImpactLocationCentric._get_radius_metadata)

    _set_radius_metadata = { "offset" : _set_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius.setter
    def radius(self, radius:float) -> None:
        return self._intf.set_property(VehicleImpactLocationCentric._metadata, VehicleImpactLocationCentric._set_radius_metadata, radius)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[radius] = "radius"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleImpactLocationCentric."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleImpactLocationCentric)
        IVehicleImpact.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleImpact._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleImpactLocationCentric, [VehicleImpactLocationCentric, IVehicleImpact])

agcls.AgClassCatalog.add_catalog_entry((5501824076814420624, 723996054661984170), VehicleImpactLocationCentric)
agcls.AgTypeNameMap["VehicleImpactLocationCentric"] = VehicleImpactLocationCentric

class LaunchVehicleControlFixedApogeeAltitude(IVehicleLaunchControl, SupportsDeleteCallback):
    """Fixed apogee altitude interface for missile flight parameters."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_apogee_altitude_method_offset = 1
    _set_apogee_altitude_method_offset = 2
    _metadata = {
        "iid_data" : (5653272149752213236, 6458231501662127493),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicleControlFixedApogeeAltitude)

    _get_apogee_altitude_metadata = { "offset" : _get_apogee_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def apogee_altitude(self) -> float:
        """Fixed apogee altitude: the vehicle's maximum altitude. Uses Distance Dimension."""
        return self._intf.get_property(LaunchVehicleControlFixedApogeeAltitude._metadata, LaunchVehicleControlFixedApogeeAltitude._get_apogee_altitude_metadata)

    _set_apogee_altitude_metadata = { "offset" : _set_apogee_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @apogee_altitude.setter
    def apogee_altitude(self, apogee_alt:float) -> None:
        return self._intf.set_property(LaunchVehicleControlFixedApogeeAltitude._metadata, LaunchVehicleControlFixedApogeeAltitude._set_apogee_altitude_metadata, apogee_alt)

    _property_names[apogee_altitude] = "apogee_altitude"

    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicleControlFixedApogeeAltitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicleControlFixedApogeeAltitude)
        IVehicleLaunchControl.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLaunchControl._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicleControlFixedApogeeAltitude, [LaunchVehicleControlFixedApogeeAltitude, IVehicleLaunchControl])

agcls.AgClassCatalog.add_catalog_entry((5717316962258779632, 11868320207015420587), LaunchVehicleControlFixedApogeeAltitude)
agcls.AgTypeNameMap["LaunchVehicleControlFixedApogeeAltitude"] = LaunchVehicleControlFixedApogeeAltitude

class LaunchVehicleControlFixedDeltaV(IVehicleLaunchControl, SupportsDeleteCallback):
    """Fixed Delta V interface for missile flight parameters."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_delta_v_method_offset = 1
    _set_delta_v_method_offset = 2
    _metadata = {
        "iid_data" : (4630068230750554908, 16613065273900116651),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicleControlFixedDeltaV)

    _get_delta_v_metadata = { "offset" : _get_delta_v_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def delta_v(self) -> float:
        """Fixed Delta V: the instantaneous thrust to be applied to the vehicle being launched. Uses Rate Dimension."""
        return self._intf.get_property(LaunchVehicleControlFixedDeltaV._metadata, LaunchVehicleControlFixedDeltaV._get_delta_v_metadata)

    _set_delta_v_metadata = { "offset" : _set_delta_v_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @delta_v.setter
    def delta_v(self, delta_v:float) -> None:
        return self._intf.set_property(LaunchVehicleControlFixedDeltaV._metadata, LaunchVehicleControlFixedDeltaV._set_delta_v_metadata, delta_v)

    _property_names[delta_v] = "delta_v"

    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicleControlFixedDeltaV."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicleControlFixedDeltaV)
        IVehicleLaunchControl.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLaunchControl._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicleControlFixedDeltaV, [LaunchVehicleControlFixedDeltaV, IVehicleLaunchControl])

agcls.AgClassCatalog.add_catalog_entry((5690366068525709199, 12213514378364673154), LaunchVehicleControlFixedDeltaV)
agcls.AgTypeNameMap["LaunchVehicleControlFixedDeltaV"] = LaunchVehicleControlFixedDeltaV

class LaunchVehicleControlFixedDeltaVMinimumEccentricity(IVehicleLaunchControl, SupportsDeleteCallback):
    """Fixed Delta V minimum eccentricity interface for missile flight parameters."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_delta_v_min_method_offset = 1
    _set_delta_v_min_method_offset = 2
    _metadata = {
        "iid_data" : (5411944925025696825, 5625152737412498621),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicleControlFixedDeltaVMinimumEccentricity)

    _get_delta_v_min_metadata = { "offset" : _get_delta_v_min_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def delta_v_min(self) -> float:
        """Fixed Delta V minimum eccentricity. Uses Rate Dimension."""
        return self._intf.get_property(LaunchVehicleControlFixedDeltaVMinimumEccentricity._metadata, LaunchVehicleControlFixedDeltaVMinimumEccentricity._get_delta_v_min_metadata)

    _set_delta_v_min_metadata = { "offset" : _set_delta_v_min_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @delta_v_min.setter
    def delta_v_min(self, delta_v_min:float) -> None:
        return self._intf.set_property(LaunchVehicleControlFixedDeltaVMinimumEccentricity._metadata, LaunchVehicleControlFixedDeltaVMinimumEccentricity._set_delta_v_min_metadata, delta_v_min)

    _property_names[delta_v_min] = "delta_v_min"

    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicleControlFixedDeltaVMinimumEccentricity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicleControlFixedDeltaVMinimumEccentricity)
        IVehicleLaunchControl.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLaunchControl._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicleControlFixedDeltaVMinimumEccentricity, [LaunchVehicleControlFixedDeltaVMinimumEccentricity, IVehicleLaunchControl])

agcls.AgClassCatalog.add_catalog_entry((4709605690873064181, 13886943318928712368), LaunchVehicleControlFixedDeltaVMinimumEccentricity)
agcls.AgTypeNameMap["LaunchVehicleControlFixedDeltaVMinimumEccentricity"] = LaunchVehicleControlFixedDeltaVMinimumEccentricity

class LaunchVehicleControlFixedTimeOfFlight(IVehicleLaunchControl, SupportsDeleteCallback):
    """Fixed time of flight interface for missile flight parameters."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_of_flight_method_offset = 1
    _set_time_of_flight_method_offset = 2
    _metadata = {
        "iid_data" : (5093866019905544183, 13821356380259651971),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicleControlFixedTimeOfFlight)

    _get_time_of_flight_metadata = { "offset" : _get_time_of_flight_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_of_flight(self) -> float:
        """Fixed time of flight: duration of the vehicle's flight. Uses Time Dimension."""
        return self._intf.get_property(LaunchVehicleControlFixedTimeOfFlight._metadata, LaunchVehicleControlFixedTimeOfFlight._get_time_of_flight_metadata)

    _set_time_of_flight_metadata = { "offset" : _set_time_of_flight_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_of_flight.setter
    def time_of_flight(self, time_of_flight:float) -> None:
        return self._intf.set_property(LaunchVehicleControlFixedTimeOfFlight._metadata, LaunchVehicleControlFixedTimeOfFlight._set_time_of_flight_metadata, time_of_flight)

    _property_names[time_of_flight] = "time_of_flight"

    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicleControlFixedTimeOfFlight."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicleControlFixedTimeOfFlight)
        IVehicleLaunchControl.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLaunchControl._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicleControlFixedTimeOfFlight, [LaunchVehicleControlFixedTimeOfFlight, IVehicleLaunchControl])

agcls.AgClassCatalog.add_catalog_entry((4656350238765471755, 8207351727399701688), LaunchVehicleControlFixedTimeOfFlight)
agcls.AgTypeNameMap["LaunchVehicleControlFixedTimeOfFlight"] = LaunchVehicleControlFixedTimeOfFlight

class VehicleImpactLocationLaunchAzEl(IVehicleImpactLocation, SupportsDeleteCallback):
    """Launch AzEl interface for missile impact location. All properties on this interface should be set explicitly."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_delta_v_method_offset = 1
    _set_delta_v_method_offset = 2
    _get_elevation_method_offset = 3
    _set_elevation_method_offset = 4
    _get_azimuth_method_offset = 5
    _set_azimuth_method_offset = 6
    _metadata = {
        "iid_data" : (5607457720872686482, 1251355529680926375),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleImpactLocationLaunchAzEl)

    _get_delta_v_metadata = { "offset" : _get_delta_v_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def delta_v(self) -> float:
        """Fixed Delta V. Uses Rate Dimension. If this property is set, please set the other properties of this interface explicitly."""
        return self._intf.get_property(VehicleImpactLocationLaunchAzEl._metadata, VehicleImpactLocationLaunchAzEl._get_delta_v_metadata)

    _set_delta_v_metadata = { "offset" : _set_delta_v_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @delta_v.setter
    def delta_v(self, delta_v:float) -> None:
        return self._intf.set_property(VehicleImpactLocationLaunchAzEl._metadata, VehicleImpactLocationLaunchAzEl._set_delta_v_metadata, delta_v)

    _get_elevation_metadata = { "offset" : _get_elevation_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation(self) -> float:
        """Launch elevation. Uses Angle Dimension. If this property is set, please set the other properties of this interface explicitly."""
        return self._intf.get_property(VehicleImpactLocationLaunchAzEl._metadata, VehicleImpactLocationLaunchAzEl._get_elevation_metadata)

    _set_elevation_metadata = { "offset" : _set_elevation_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @elevation.setter
    def elevation(self, elevation:float) -> None:
        return self._intf.set_property(VehicleImpactLocationLaunchAzEl._metadata, VehicleImpactLocationLaunchAzEl._set_elevation_metadata, elevation)

    _get_azimuth_metadata = { "offset" : _get_azimuth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth(self) -> float:
        """Launch azimuth. Uses Angle Dimension. If this property is set, please set the other properties of this interface explicitly."""
        return self._intf.get_property(VehicleImpactLocationLaunchAzEl._metadata, VehicleImpactLocationLaunchAzEl._get_azimuth_metadata)

    _set_azimuth_metadata = { "offset" : _set_azimuth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth.setter
    def azimuth(self, azimuth:float) -> None:
        return self._intf.set_property(VehicleImpactLocationLaunchAzEl._metadata, VehicleImpactLocationLaunchAzEl._set_azimuth_metadata, azimuth)

    _property_names[delta_v] = "delta_v"
    _property_names[elevation] = "elevation"
    _property_names[azimuth] = "azimuth"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleImpactLocationLaunchAzEl."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleImpactLocationLaunchAzEl)
        IVehicleImpactLocation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleImpactLocation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleImpactLocationLaunchAzEl, [VehicleImpactLocationLaunchAzEl, IVehicleImpactLocation])

agcls.AgClassCatalog.add_catalog_entry((5008114126854575099, 12708317488007132552), VehicleImpactLocationLaunchAzEl)
agcls.AgTypeNameMap["VehicleImpactLocationLaunchAzEl"] = VehicleImpactLocationLaunchAzEl

class VehicleImpactLocationPoint(IVehicleImpactLocation, SupportsDeleteCallback):
    """Missile impact point interface."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_impact_type_method_offset = 1
    _set_impact_type_method_offset = 2
    _is_impact_type_supported_method_offset = 3
    _get_impact_supported_types_method_offset = 4
    _get_impact_method_offset = 5
    _get_launch_control_type_method_offset = 6
    _set_launch_control_type_method_offset = 7
    _is_launch_control_type_supported_method_offset = 8
    _get_launch_control_supported_types_method_offset = 9
    _get_launch_control_method_offset = 10
    _metadata = {
        "iid_data" : (4908023920055380804, 9755555976352568225),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleImpactLocationPoint)

    _get_impact_type_metadata = { "offset" : _get_impact_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleImpact),) }
    @property
    def impact_type(self) -> "VehicleImpact":
        """Get the impact type."""
        return self._intf.get_property(VehicleImpactLocationPoint._metadata, VehicleImpactLocationPoint._get_impact_type_metadata)

    _set_impact_type_metadata = { "offset" : _set_impact_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleImpact),) }
    def set_impact_type(self, impact:"VehicleImpact") -> None:
        """Set the impact type."""
        return self._intf.invoke(VehicleImpactLocationPoint._metadata, VehicleImpactLocationPoint._set_impact_type_metadata, impact)

    _is_impact_type_supported_metadata = { "offset" : _is_impact_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleImpact), agmarshall.VariantBoolArg,) }
    def is_impact_type_supported(self, impact:"VehicleImpact") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleImpactLocationPoint._metadata, VehicleImpactLocationPoint._is_impact_type_supported_metadata, impact, OutArg())

    _get_impact_supported_types_metadata = { "offset" : _get_impact_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def impact_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleImpactLocationPoint._metadata, VehicleImpactLocationPoint._get_impact_supported_types_metadata)

    _get_impact_metadata = { "offset" : _get_impact_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def impact(self) -> "IVehicleImpact":
        """Get the impact point."""
        return self._intf.get_property(VehicleImpactLocationPoint._metadata, VehicleImpactLocationPoint._get_impact_metadata)

    _get_launch_control_type_metadata = { "offset" : _get_launch_control_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleLaunchControl),) }
    @property
    def launch_control_type(self) -> "VehicleLaunchControl":
        """Get the flight parameter type."""
        return self._intf.get_property(VehicleImpactLocationPoint._metadata, VehicleImpactLocationPoint._get_launch_control_type_metadata)

    _set_launch_control_type_metadata = { "offset" : _set_launch_control_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleLaunchControl),) }
    def set_launch_control_type(self, launch_control:"VehicleLaunchControl") -> None:
        """Set the flight parameter type."""
        return self._intf.invoke(VehicleImpactLocationPoint._metadata, VehicleImpactLocationPoint._set_launch_control_type_metadata, launch_control)

    _is_launch_control_type_supported_metadata = { "offset" : _is_launch_control_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleLaunchControl), agmarshall.VariantBoolArg,) }
    def is_launch_control_type_supported(self, launch_control:"VehicleLaunchControl") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleImpactLocationPoint._metadata, VehicleImpactLocationPoint._is_launch_control_type_supported_metadata, launch_control, OutArg())

    _get_launch_control_supported_types_metadata = { "offset" : _get_launch_control_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def launch_control_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleImpactLocationPoint._metadata, VehicleImpactLocationPoint._get_launch_control_supported_types_metadata)

    _get_launch_control_metadata = { "offset" : _get_launch_control_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def launch_control(self) -> "IVehicleLaunchControl":
        """Get the flight parameters."""
        return self._intf.get_property(VehicleImpactLocationPoint._metadata, VehicleImpactLocationPoint._get_launch_control_metadata)

    _property_names[impact_type] = "impact_type"
    _property_names[impact_supported_types] = "impact_supported_types"
    _property_names[impact] = "impact"
    _property_names[launch_control_type] = "launch_control_type"
    _property_names[launch_control_supported_types] = "launch_control_supported_types"
    _property_names[launch_control] = "launch_control"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleImpactLocationPoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleImpactLocationPoint)
        IVehicleImpactLocation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleImpactLocation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleImpactLocationPoint, [VehicleImpactLocationPoint, IVehicleImpactLocation])

agcls.AgClassCatalog.add_catalog_entry((5743784589146246160, 16834594185980067731), VehicleImpactLocationPoint)
agcls.AgTypeNameMap["VehicleImpactLocationPoint"] = VehicleImpactLocationPoint

class PropagatorBallistic(IPropagator, SupportsDeleteCallback):
    """Ballistic propagator interface."""

    _num_methods = 14
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_launch_type_method_offset = 4
    _set_launch_type_method_offset = 5
    _is_launch_type_supported_method_offset = 6
    _get_launch_supported_types_method_offset = 7
    _get_launch_method_offset = 8
    _get_impact_location_type_method_offset = 9
    _set_impact_location_type_method_offset = 10
    _is_impact_location_type_supported_method_offset = 11
    _get_impact_location_supported_types_method_offset = 12
    _get_impact_location_method_offset = 13
    _get_ephemeris_interval_method_offset = 14
    _metadata = {
        "iid_data" : (5444198652468672381, 6375365193273779621),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorBallistic)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the missile's path using the specified time interval."""
        return self._intf.invoke(PropagatorBallistic._metadata, PropagatorBallistic._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorBallistic._metadata, PropagatorBallistic._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorBallistic._metadata, PropagatorBallistic._set_step_metadata, step)

    _get_launch_type_metadata = { "offset" : _get_launch_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleLaunch),) }
    @property
    def launch_type(self) -> "VehicleLaunch":
        """Get flight parameters type."""
        return self._intf.get_property(PropagatorBallistic._metadata, PropagatorBallistic._get_launch_type_metadata)

    _set_launch_type_metadata = { "offset" : _set_launch_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleLaunch),) }
    def set_launch_type(self, launch:"VehicleLaunch") -> None:
        """Set flight parameters type."""
        return self._intf.invoke(PropagatorBallistic._metadata, PropagatorBallistic._set_launch_type_metadata, launch)

    _is_launch_type_supported_metadata = { "offset" : _is_launch_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleLaunch), agmarshall.VariantBoolArg,) }
    def is_launch_type_supported(self, launch:"VehicleLaunch") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(PropagatorBallistic._metadata, PropagatorBallistic._is_launch_type_supported_metadata, launch, OutArg())

    _get_launch_supported_types_metadata = { "offset" : _get_launch_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def launch_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(PropagatorBallistic._metadata, PropagatorBallistic._get_launch_supported_types_metadata)

    _get_launch_metadata = { "offset" : _get_launch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def launch(self) -> "IVehicleLaunch":
        """Get launch parameters."""
        return self._intf.get_property(PropagatorBallistic._metadata, PropagatorBallistic._get_launch_metadata)

    _get_impact_location_type_metadata = { "offset" : _get_impact_location_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleImpactLocation),) }
    @property
    def impact_location_type(self) -> "VehicleImpactLocation":
        """Get impact location type."""
        return self._intf.get_property(PropagatorBallistic._metadata, PropagatorBallistic._get_impact_location_type_metadata)

    _set_impact_location_type_metadata = { "offset" : _set_impact_location_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleImpactLocation),) }
    def set_impact_location_type(self, impact_location:"VehicleImpactLocation") -> None:
        """Set the impact location type."""
        return self._intf.invoke(PropagatorBallistic._metadata, PropagatorBallistic._set_impact_location_type_metadata, impact_location)

    _is_impact_location_type_supported_metadata = { "offset" : _is_impact_location_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleImpactLocation), agmarshall.VariantBoolArg,) }
    def is_impact_location_type_supported(self, impact_location:"VehicleImpactLocation") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(PropagatorBallistic._metadata, PropagatorBallistic._is_impact_location_type_supported_metadata, impact_location, OutArg())

    _get_impact_location_supported_types_metadata = { "offset" : _get_impact_location_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def impact_location_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(PropagatorBallistic._metadata, PropagatorBallistic._get_impact_location_supported_types_metadata)

    _get_impact_location_metadata = { "offset" : _get_impact_location_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def impact_location(self) -> "IVehicleImpactLocation":
        """Get the impact location."""
        return self._intf.get_property(PropagatorBallistic._metadata, PropagatorBallistic._get_impact_location_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorBallistic._metadata, PropagatorBallistic._get_ephemeris_interval_metadata)

    _property_names[step] = "step"
    _property_names[launch_type] = "launch_type"
    _property_names[launch_supported_types] = "launch_supported_types"
    _property_names[launch] = "launch"
    _property_names[impact_location_type] = "impact_location_type"
    _property_names[impact_location_supported_types] = "impact_location_supported_types"
    _property_names[impact_location] = "impact_location"
    _property_names[ephemeris_interval] = "ephemeris_interval"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorBallistic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorBallistic)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorBallistic, [PropagatorBallistic, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((4842098833419269048, 10199561327891888822), PropagatorBallistic)
agcls.AgTypeNameMap["PropagatorBallistic"] = PropagatorBallistic

class PropagatorGreatArc(IPropagator, SupportsDeleteCallback):
    """Great arc propagator interface."""

    _num_methods = 22
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_method_method_offset = 2
    _set_method_method_offset = 3
    _get_altitude_reference_type_method_offset = 4
    _set_altitude_reference_type_method_offset = 5
    _is_altitude_reference_type_supported_method_offset = 6
    _get_altitude_reference_supported_types_method_offset = 7
    _get_altitude_reference_method_offset = 8
    _get_arc_granularity_method_offset = 9
    _set_arc_granularity_method_offset = 10
    _get_waypoints_method_offset = 11
    _import_waypoints_from_file_method_offset = 12
    _set_points_specify_time_and_propagate_method_offset = 13
    _set_points_specify_velocity_and_propagate_method_offset = 14
    _set_points_smooth_rate_and_propagate_method_offset = 15
    _get_ephemeris_interval_method_offset = 16
    _get_default_altitude_method_offset = 17
    _set_default_altitude_method_offset = 18
    _get_default_rate_method_offset = 19
    _set_default_rate_method_offset = 20
    _get_default_turn_radius_method_offset = 21
    _set_default_turn_radius_method_offset = 22
    _metadata = {
        "iid_data" : (4790097454403555140, 18185216684939469709),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorGreatArc)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the vehicle's path using the specified time interval."""
        return self._intf.invoke(PropagatorGreatArc._metadata, PropagatorGreatArc._propagate_metadata, )

    _get_method_metadata = { "offset" : _get_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleWaypointComputationMethod),) }
    @property
    def method(self) -> "VehicleWaypointComputationMethod":
        """Compute waypoints."""
        return self._intf.get_property(PropagatorGreatArc._metadata, PropagatorGreatArc._get_method_metadata)

    _set_method_metadata = { "offset" : _set_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleWaypointComputationMethod),) }
    @method.setter
    def method(self, method:"VehicleWaypointComputationMethod") -> None:
        return self._intf.set_property(PropagatorGreatArc._metadata, PropagatorGreatArc._set_method_metadata, method)

    _get_altitude_reference_type_metadata = { "offset" : _get_altitude_reference_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleAltitudeReference),) }
    @property
    def altitude_reference_type(self) -> "VehicleAltitudeReference":
        """Reference altitude for waypoints."""
        return self._intf.get_property(PropagatorGreatArc._metadata, PropagatorGreatArc._get_altitude_reference_type_metadata)

    _set_altitude_reference_type_metadata = { "offset" : _set_altitude_reference_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleAltitudeReference),) }
    def set_altitude_reference_type(self, altitude_ref:"VehicleAltitudeReference") -> None:
        """Specify Waypoint Altitude Reference."""
        return self._intf.invoke(PropagatorGreatArc._metadata, PropagatorGreatArc._set_altitude_reference_type_metadata, altitude_ref)

    _is_altitude_reference_type_supported_metadata = { "offset" : _is_altitude_reference_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleAltitudeReference), agmarshall.VariantBoolArg,) }
    def is_altitude_reference_type_supported(self, altitude_ref:"VehicleAltitudeReference") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(PropagatorGreatArc._metadata, PropagatorGreatArc._is_altitude_reference_type_supported_metadata, altitude_ref, OutArg())

    _get_altitude_reference_supported_types_metadata = { "offset" : _get_altitude_reference_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def altitude_reference_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(PropagatorGreatArc._metadata, PropagatorGreatArc._get_altitude_reference_supported_types_metadata)

    _get_altitude_reference_metadata = { "offset" : _get_altitude_reference_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def altitude_reference(self) -> "IVehicleWaypointAltitudeReference":
        """Get the altitude reference."""
        return self._intf.get_property(PropagatorGreatArc._metadata, PropagatorGreatArc._get_altitude_reference_metadata)

    _get_arc_granularity_metadata = { "offset" : _get_arc_granularity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def arc_granularity(self) -> float:
        """Get or set the frequency of interpolated points. Uses Angle Dimension."""
        return self._intf.get_property(PropagatorGreatArc._metadata, PropagatorGreatArc._get_arc_granularity_metadata)

    _set_arc_granularity_metadata = { "offset" : _set_arc_granularity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @arc_granularity.setter
    def arc_granularity(self, arc_granularity:float) -> None:
        return self._intf.set_property(PropagatorGreatArc._metadata, PropagatorGreatArc._set_arc_granularity_metadata, arc_granularity)

    _get_waypoints_metadata = { "offset" : _get_waypoints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def waypoints(self) -> "VehicleWaypointsCollection":
        """Get the waypoints."""
        return self._intf.get_property(PropagatorGreatArc._metadata, PropagatorGreatArc._get_waypoints_metadata)

    _import_waypoints_from_file_metadata = { "offset" : _import_waypoints_from_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def import_waypoints_from_file(self, filename:str) -> None:
        """Import waypoints from the filename specified.  The filename must be an absolute path."""
        return self._intf.invoke(PropagatorGreatArc._metadata, PropagatorGreatArc._import_waypoints_from_file_metadata, filename)

    _set_points_specify_time_and_propagate_metadata = { "offset" : _set_points_specify_time_and_propagate_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def set_points_specify_time_and_propagate(self, array_of_way_points:list) -> None:
        """Set waypoints from the array and propagates the route. The array is two-dimensional where each sub-array contains waypoint's Time, Latitude, Longitude, Altitude and Turn Radius. The array must be in non-decreasing order with respect to time."""
        return self._intf.invoke(PropagatorGreatArc._metadata, PropagatorGreatArc._set_points_specify_time_and_propagate_metadata, array_of_way_points)

    _set_points_specify_velocity_and_propagate_metadata = { "offset" : _set_points_specify_velocity_and_propagate_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def set_points_specify_velocity_and_propagate(self, array_of_way_points:list) -> None:
        """Set waypoints from the array and propagates the route. The array is two-dimensional where each sub-array contains waypoint's Latitude, Longitude, Altitude, Velocity, Acceleration and Turn Radius."""
        return self._intf.invoke(PropagatorGreatArc._metadata, PropagatorGreatArc._set_points_specify_velocity_and_propagate_metadata, array_of_way_points)

    _set_points_smooth_rate_and_propagate_metadata = { "offset" : _set_points_smooth_rate_and_propagate_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def set_points_smooth_rate_and_propagate(self, array_of_way_points:list) -> None:
        """Set waypoints from the array and propagates the route. The array is two-dimensional where each sub-array contains waypoint's Latitude, Longitude, Altitude, Velocity and Turn Radius."""
        return self._intf.invoke(PropagatorGreatArc._metadata, PropagatorGreatArc._set_points_smooth_rate_and_propagate_metadata, array_of_way_points)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorGreatArc._metadata, PropagatorGreatArc._get_ephemeris_interval_metadata)

    _get_default_altitude_metadata = { "offset" : _get_default_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def default_altitude(self) -> float:
        """Get or set the default altitude used when the first waypoint is added. Uses Distance Dimension."""
        return self._intf.get_property(PropagatorGreatArc._metadata, PropagatorGreatArc._get_default_altitude_metadata)

    _set_default_altitude_metadata = { "offset" : _set_default_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @default_altitude.setter
    def default_altitude(self, default_altitude:float) -> None:
        return self._intf.set_property(PropagatorGreatArc._metadata, PropagatorGreatArc._set_default_altitude_metadata, default_altitude)

    _get_default_rate_metadata = { "offset" : _get_default_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def default_rate(self) -> float:
        """Get or set the default rate used when the first waypoint is added. Uses Rate Dimension."""
        return self._intf.get_property(PropagatorGreatArc._metadata, PropagatorGreatArc._get_default_rate_metadata)

    _set_default_rate_metadata = { "offset" : _set_default_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @default_rate.setter
    def default_rate(self, default_rate:float) -> None:
        return self._intf.set_property(PropagatorGreatArc._metadata, PropagatorGreatArc._set_default_rate_metadata, default_rate)

    _get_default_turn_radius_metadata = { "offset" : _get_default_turn_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def default_turn_radius(self) -> float:
        """Get or set the default turn radius used when the first waypoint is added. Uses Distance Dimension."""
        return self._intf.get_property(PropagatorGreatArc._metadata, PropagatorGreatArc._get_default_turn_radius_metadata)

    _set_default_turn_radius_metadata = { "offset" : _set_default_turn_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @default_turn_radius.setter
    def default_turn_radius(self, default_turn_radius:float) -> None:
        return self._intf.set_property(PropagatorGreatArc._metadata, PropagatorGreatArc._set_default_turn_radius_metadata, default_turn_radius)

    _property_names[method] = "method"
    _property_names[altitude_reference_type] = "altitude_reference_type"
    _property_names[altitude_reference_supported_types] = "altitude_reference_supported_types"
    _property_names[altitude_reference] = "altitude_reference"
    _property_names[arc_granularity] = "arc_granularity"
    _property_names[waypoints] = "waypoints"
    _property_names[ephemeris_interval] = "ephemeris_interval"
    _property_names[default_altitude] = "default_altitude"
    _property_names[default_rate] = "default_rate"
    _property_names[default_turn_radius] = "default_turn_radius"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorGreatArc."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorGreatArc)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorGreatArc, [PropagatorGreatArc, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((5453517480636385040, 16468861623969845430), PropagatorGreatArc)
agcls.AgTypeNameMap["PropagatorGreatArc"] = PropagatorGreatArc

class PropagatorSGP4SegmentCollection(SupportsDeleteCallback):
    """Set of Trajectories."""

    _num_methods = 16
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _add_segment_method_offset = 4
    _get_load_method_type_method_offset = 5
    _set_load_method_type_method_offset = 6
    _get_load_method_method_offset = 7
    _get_routine_type_method_offset = 8
    _set_routine_type_method_offset = 9
    _remove_segment_method_offset = 10
    _remove_all_segments_method_offset = 11
    _get_available_routines_method_offset = 12
    _get_maximum_number_of_elements_method_offset = 13
    _set_maximum_number_of_elements_method_offset = 14
    _get_ssc_number_method_offset = 15
    _set_ssc_number_method_offset = 16
    _metadata = {
        "iid_data" : (4840062391153401622, 10283655206503183546),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4SegmentCollection)
    def __iter__(self):
        """Create an iterator for the PropagatorSGP4SegmentCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "PropagatorSGP4Segment":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Get the size of the collection."""
        return self._intf.get_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "PropagatorSGP4Segment":
        """Get the item for the specified index."""
        return self._intf.invoke(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates the elements of the collection."""
        return self._intf.get_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._get__new_enum_metadata)

    _add_segment_metadata = { "offset" : _add_segment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add_segment(self) -> "PropagatorSGP4Segment":
        """Add a default segment."""
        return self._intf.invoke(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._add_segment_metadata, OutArg())

    _get_load_method_type_metadata = { "offset" : _get_load_method_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LoadMethod),) }
    @property
    def load_method_type(self) -> "LoadMethod":
        """File Load Type."""
        return self._intf.get_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._get_load_method_type_metadata)

    _set_load_method_type_metadata = { "offset" : _set_load_method_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LoadMethod),) }
    @load_method_type.setter
    def load_method_type(self, value:"LoadMethod") -> None:
        return self._intf.set_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._set_load_method_type_metadata, value)

    _get_load_method_metadata = { "offset" : _get_load_method_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def load_method(self) -> "IPropagatorSGP4LoadData":
        """File Load Data."""
        return self._intf.get_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._get_load_method_metadata)

    _get_routine_type_metadata = { "offset" : _get_routine_type_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def routine_type(self) -> str:
        """Get or set whether a routine type being used."""
        return self._intf.get_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._get_routine_type_metadata)

    _set_routine_type_metadata = { "offset" : _set_routine_type_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @routine_type.setter
    def routine_type(self, value:str) -> None:
        return self._intf.set_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._set_routine_type_metadata, value)

    _remove_segment_metadata = { "offset" : _remove_segment_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_segment(self, index:int) -> None:
        """Remove a Segment given an index."""
        return self._intf.invoke(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._remove_segment_metadata, index)

    _remove_all_segments_metadata = { "offset" : _remove_all_segments_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all_segments(self) -> None:
        """Remove all the segments in the collection."""
        return self._intf.invoke(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._remove_all_segments_metadata, )

    _get_available_routines_metadata = { "offset" : _get_available_routines_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_routines(self) -> list:
        """An array of strings returning all available routine types."""
        return self._intf.get_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._get_available_routines_metadata)

    _get_maximum_number_of_elements_metadata = { "offset" : _get_maximum_number_of_elements_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_number_of_elements(self) -> int:
        """Max number of elements. Dimensionless."""
        return self._intf.get_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._get_maximum_number_of_elements_metadata)

    _set_maximum_number_of_elements_metadata = { "offset" : _set_maximum_number_of_elements_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_number_of_elements.setter
    def maximum_number_of_elements(self, value:int) -> None:
        return self._intf.set_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._set_maximum_number_of_elements_metadata, value)

    _get_ssc_number_metadata = { "offset" : _get_ssc_number_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def ssc_number(self) -> str:
        """Catalog number of the spacecraft. Note that any changes to the SSCNumber will reset the element set collection. Importing elements from file or online storage will also reset the SSCNumber."""
        return self._intf.get_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._get_ssc_number_metadata)

    _set_ssc_number_metadata = { "offset" : _set_ssc_number_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @ssc_number.setter
    def ssc_number(self, value:str) -> None:
        return self._intf.set_property(PropagatorSGP4SegmentCollection._metadata, PropagatorSGP4SegmentCollection._set_ssc_number_metadata, value)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[load_method_type] = "load_method_type"
    _property_names[load_method] = "load_method"
    _property_names[routine_type] = "routine_type"
    _property_names[available_routines] = "available_routines"
    _property_names[maximum_number_of_elements] = "maximum_number_of_elements"
    _property_names[ssc_number] = "ssc_number"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4SegmentCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4SegmentCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4SegmentCollection, [PropagatorSGP4SegmentCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5580355252872577769, 17199909252255600809), PropagatorSGP4SegmentCollection)
agcls.AgTypeNameMap["PropagatorSGP4SegmentCollection"] = PropagatorSGP4SegmentCollection

class PropagatorSGP4Segment(SupportsDeleteCallback):
    """Interface for SGP4 propagator."""

    _num_methods = 32
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ssc_number_method_offset = 1
    _get_revolution_number_method_offset = 2
    _set_revolution_number_method_offset = 3
    _get_epoch_method_offset = 4
    _set_epoch_method_offset = 5
    _get_inclination_method_offset = 6
    _set_inclination_method_offset = 7
    _get_argument_of_periapsis_method_offset = 8
    _set_argument_of_periapsis_method_offset = 9
    _get_right_ascension_ascending_node_method_offset = 10
    _set_right_ascension_ascending_node_method_offset = 11
    _get_eccentricity_method_offset = 12
    _set_eccentricity_method_offset = 13
    _get_mean_motion_method_offset = 14
    _set_mean_motion_method_offset = 15
    _get_mean_anomaly_method_offset = 16
    _set_mean_anomaly_method_offset = 17
    _get_mean_motion_dot_method_offset = 18
    _get_motion_dot_dot_method_offset = 19
    _get_bstar_method_offset = 20
    _set_bstar_method_offset = 21
    _get_classification_method_offset = 22
    _set_classification_method_offset = 23
    _get_international_designator_method_offset = 24
    _set_international_designator_method_offset = 25
    _get_switching_method_method_offset = 26
    _set_switching_method_method_offset = 27
    _get_range_method_offset = 28
    _get_switch_time_method_offset = 29
    _set_switch_time_method_offset = 30
    _get_enabled_method_offset = 31
    _set_enabled_method_offset = 32
    _metadata = {
        "iid_data" : (5282214596610511911, 5041191889618421933),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4Segment)

    _get_ssc_number_metadata = { "offset" : _get_ssc_number_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def ssc_number(self) -> str:
        """Catalog number of the spacecraft, if created by a 2-line element set."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_ssc_number_metadata)

    _get_revolution_number_metadata = { "offset" : _get_revolution_number_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def revolution_number(self) -> int:
        """Rev. Number. Dimensionless."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_revolution_number_metadata)

    _set_revolution_number_metadata = { "offset" : _set_revolution_number_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @revolution_number.setter
    def revolution_number(self, value:int) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_revolution_number_metadata, value)

    _get_epoch_metadata = { "offset" : _get_epoch_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def epoch(self) -> float:
        """Universal date and time at which the specified orbit elements are true. Dimensionless."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_epoch_metadata)

    _set_epoch_metadata = { "offset" : _set_epoch_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @epoch.setter
    def epoch(self, epoch:float) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_epoch_metadata, epoch)

    _get_inclination_metadata = { "offset" : _get_inclination_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def inclination(self) -> typing.Any:
        """Angle between the angular momentum vector (perpendicular to the plane of the orbit) and the inertial Z-axis. Uses Angle Dimension."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_inclination_metadata)

    _set_inclination_metadata = { "offset" : _set_inclination_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @inclination.setter
    def inclination(self, inc:typing.Any) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_inclination_metadata, inc)

    _get_argument_of_periapsis_metadata = { "offset" : _get_argument_of_periapsis_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def argument_of_periapsis(self) -> typing.Any:
        """Angle from the ascending node to the eccentricity vector (lowest point of orbit) measured in the direction of the satellite's motion. Uses Angle Dimension."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_argument_of_periapsis_metadata)

    _set_argument_of_periapsis_metadata = { "offset" : _set_argument_of_periapsis_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @argument_of_periapsis.setter
    def argument_of_periapsis(self, argument_of_perigee:typing.Any) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_argument_of_periapsis_metadata, argument_of_perigee)

    _get_right_ascension_ascending_node_metadata = { "offset" : _get_right_ascension_ascending_node_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def right_ascension_ascending_node(self) -> typing.Any:
        """Angle from the inertial X-axis to the ascending node. Uses Angle Dimension."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_right_ascension_ascending_node_metadata)

    _set_right_ascension_ascending_node_metadata = { "offset" : _set_right_ascension_ascending_node_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @right_ascension_ascending_node.setter
    def right_ascension_ascending_node(self, raan:typing.Any) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_right_ascension_ascending_node_metadata, raan)

    _get_eccentricity_metadata = { "offset" : _get_eccentricity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def eccentricity(self) -> float:
        """Value between 1 and 0 representing the ellipticality of the orbit. Dimensionless."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_eccentricity_metadata)

    _set_eccentricity_metadata = { "offset" : _set_eccentricity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @eccentricity.setter
    def eccentricity(self, ecc:float) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_eccentricity_metadata, ecc)

    _get_mean_motion_metadata = { "offset" : _get_mean_motion_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def mean_motion(self) -> typing.Any:
        """A measure of the osculating period of the orbit, expressed as an angular rate. Uses AngleRate Dimension."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_mean_motion_metadata)

    _set_mean_motion_metadata = { "offset" : _set_mean_motion_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @mean_motion.setter
    def mean_motion(self, mm:typing.Any) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_mean_motion_metadata, mm)

    _get_mean_anomaly_metadata = { "offset" : _get_mean_anomaly_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def mean_anomaly(self) -> typing.Any:
        """Angle from the eccentricity vector to a position vector where the satellite would be if it were always moving at its average angular rate. Uses Angle Dimension."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_mean_anomaly_metadata)

    _set_mean_anomaly_metadata = { "offset" : _set_mean_anomaly_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @mean_anomaly.setter
    def mean_anomaly(self, ma:typing.Any) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_mean_anomaly_metadata, ma)

    _get_mean_motion_dot_metadata = { "offset" : _get_mean_motion_dot_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mean_motion_dot(self) -> float:
        """First time derivative of mean motion. Dimensionless."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_mean_motion_dot_metadata)

    _get_motion_dot_dot_metadata = { "offset" : _get_motion_dot_dot_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def motion_dot_dot(self) -> float:
        """Second time derivative of mean motion. Dimensionless."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_motion_dot_dot_metadata)

    _get_bstar_metadata = { "offset" : _get_bstar_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bstar(self) -> float:
        """Drag term for the satellite."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_bstar_metadata)

    _set_bstar_metadata = { "offset" : _set_bstar_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bstar.setter
    def bstar(self, star:float) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_bstar_metadata, star)

    _get_classification_metadata = { "offset" : _get_classification_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def classification(self) -> str:
        """One-letter classification indicator. U - Unclassified, C - Classified, S - Secret."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_classification_metadata)

    _set_classification_metadata = { "offset" : _set_classification_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @classification.setter
    def classification(self, classification:str) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_classification_metadata, classification)

    _get_international_designator_metadata = { "offset" : _get_international_designator_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def international_designator(self) -> str:
        """International designation of the satellite."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_international_designator_metadata)

    _set_international_designator_metadata = { "offset" : _set_international_designator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @international_designator.setter
    def international_designator(self, designator:str) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_international_designator_metadata, designator)

    _get_switching_method_metadata = { "offset" : _get_switching_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorSGP4SwitchMethod),) }
    @property
    def switching_method(self) -> "PropagatorSGP4SwitchMethod":
        """Method used to switch between element sets."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_switching_method_metadata)

    _set_switching_method_metadata = { "offset" : _set_switching_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorSGP4SwitchMethod),) }
    @switching_method.setter
    def switching_method(self, method:"PropagatorSGP4SwitchMethod") -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_switching_method_metadata, method)

    _get_range_metadata = { "offset" : _get_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def range(self) -> float:
        """How far apart the satellites are when switching occurs."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_range_metadata)

    _get_switch_time_metadata = { "offset" : _get_switch_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def switch_time(self) -> typing.Any:
        """Get or set the time of the switch between one element set and a second set. Not used when the Switching Method is Disabled."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_switch_time_metadata)

    _set_switch_time_metadata = { "offset" : _set_switch_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @switch_time.setter
    def switch_time(self, switch_time:typing.Any) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_switch_time_metadata, switch_time)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Enable/disable the segment."""
        return self._intf.get_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._get_enabled_metadata)

    _set_enabled_metadata = { "offset" : _set_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enabled.setter
    def enabled(self, enabled:bool) -> None:
        return self._intf.set_property(PropagatorSGP4Segment._metadata, PropagatorSGP4Segment._set_enabled_metadata, enabled)

    _property_names[ssc_number] = "ssc_number"
    _property_names[revolution_number] = "revolution_number"
    _property_names[epoch] = "epoch"
    _property_names[inclination] = "inclination"
    _property_names[argument_of_periapsis] = "argument_of_periapsis"
    _property_names[right_ascension_ascending_node] = "right_ascension_ascending_node"
    _property_names[eccentricity] = "eccentricity"
    _property_names[mean_motion] = "mean_motion"
    _property_names[mean_anomaly] = "mean_anomaly"
    _property_names[mean_motion_dot] = "mean_motion_dot"
    _property_names[motion_dot_dot] = "motion_dot_dot"
    _property_names[bstar] = "bstar"
    _property_names[classification] = "classification"
    _property_names[international_designator] = "international_designator"
    _property_names[switching_method] = "switching_method"
    _property_names[range] = "range"
    _property_names[switch_time] = "switch_time"
    _property_names[enabled] = "enabled"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4Segment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4Segment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4Segment, [PropagatorSGP4Segment, ])

agcls.AgClassCatalog.add_catalog_entry((5509301923903129403, 11452054954934709175), PropagatorSGP4Segment)
agcls.AgTypeNameMap["PropagatorSGP4Segment"] = PropagatorSGP4Segment

class PropagatorLOPThirdBodyGravity(SupportsDeleteCallback):
    """Third body gravity interface options for Long-range Orbit Predictor (LOP) propagator."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_solar_gravity_method_offset = 1
    _set_use_solar_gravity_method_offset = 2
    _get_use_lunar_gravity_method_offset = 3
    _set_use_lunar_gravity_method_offset = 4
    _metadata = {
        "iid_data" : (4798012885642041867, 5741835590082231973),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorLOPThirdBodyGravity)

    _get_use_solar_gravity_metadata = { "offset" : _get_use_solar_gravity_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_solar_gravity(self) -> bool:
        """Opt whether to use solar gravity."""
        return self._intf.get_property(PropagatorLOPThirdBodyGravity._metadata, PropagatorLOPThirdBodyGravity._get_use_solar_gravity_metadata)

    _set_use_solar_gravity_metadata = { "offset" : _set_use_solar_gravity_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_solar_gravity.setter
    def use_solar_gravity(self, use_solar_gravity:bool) -> None:
        return self._intf.set_property(PropagatorLOPThirdBodyGravity._metadata, PropagatorLOPThirdBodyGravity._set_use_solar_gravity_metadata, use_solar_gravity)

    _get_use_lunar_gravity_metadata = { "offset" : _get_use_lunar_gravity_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_lunar_gravity(self) -> bool:
        """Opt whether to use lunar gravity."""
        return self._intf.get_property(PropagatorLOPThirdBodyGravity._metadata, PropagatorLOPThirdBodyGravity._get_use_lunar_gravity_metadata)

    _set_use_lunar_gravity_metadata = { "offset" : _set_use_lunar_gravity_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_lunar_gravity.setter
    def use_lunar_gravity(self, use_lunar_gravity:bool) -> None:
        return self._intf.set_property(PropagatorLOPThirdBodyGravity._metadata, PropagatorLOPThirdBodyGravity._set_use_lunar_gravity_metadata, use_lunar_gravity)

    _property_names[use_solar_gravity] = "use_solar_gravity"
    _property_names[use_lunar_gravity] = "use_lunar_gravity"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorLOPThirdBodyGravity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorLOPThirdBodyGravity)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorLOPThirdBodyGravity, [PropagatorLOPThirdBodyGravity, ])

agcls.AgClassCatalog.add_catalog_entry((4888506165528203240, 14844184459801106573), PropagatorLOPThirdBodyGravity)
agcls.AgTypeNameMap["PropagatorLOPThirdBodyGravity"] = PropagatorLOPThirdBodyGravity

class VehicleConsiderAnalysisCollectionElement(SupportsDeleteCallback):
    """Item in Consider Analysis list for HPOP covariance."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _get_name_method_offset = 2
    _get_value_method_offset = 3
    _set_value_method_offset = 4
    _get_x_method_offset = 5
    _set_x_method_offset = 6
    _get_y_method_offset = 7
    _set_y_method_offset = 8
    _get_z_method_offset = 9
    _set_z_method_offset = 10
    _get_vx_method_offset = 11
    _set_vx_method_offset = 12
    _get_vy_method_offset = 13
    _set_vy_method_offset = 14
    _get_vz_method_offset = 15
    _set_vz_method_offset = 16
    _metadata = {
        "iid_data" : (4675709035080146271, 17853674564356229308),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleConsiderAnalysisCollectionElement)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleConsiderAnalysisType),) }
    @property
    def type(self) -> "VehicleConsiderAnalysisType":
        """Parameter type."""
        return self._intf.get_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._get_type_metadata)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the consider parameter."""
        return self._intf.get_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._get_name_metadata)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Self-covariance value of the consider parameter. Dimensionless."""
        return self._intf.get_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._set_value_metadata, value)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x(self) -> float:
        """X position covariance.Dimensionless."""
        return self._intf.get_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._get_x_metadata)

    _set_x_metadata = { "offset" : _set_x_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x.setter
    def x(self, value:float) -> None:
        return self._intf.set_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._set_x_metadata, value)

    _get_y_metadata = { "offset" : _get_y_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y(self) -> float:
        """Y position covariance. Dimensionless."""
        return self._intf.get_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._get_y_metadata)

    _set_y_metadata = { "offset" : _set_y_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y.setter
    def y(self, value:float) -> None:
        return self._intf.set_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._set_y_metadata, value)

    _get_z_metadata = { "offset" : _get_z_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z(self) -> float:
        """Z position covariance. Dimensionless."""
        return self._intf.get_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._get_z_metadata)

    _set_z_metadata = { "offset" : _set_z_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z.setter
    def z(self, value:float) -> None:
        return self._intf.set_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._set_z_metadata, value)

    _get_vx_metadata = { "offset" : _get_vx_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def vx(self) -> float:
        """X velocity covariance. Dimensionless."""
        return self._intf.get_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._get_vx_metadata)

    _set_vx_metadata = { "offset" : _set_vx_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @vx.setter
    def vx(self, vx:float) -> None:
        return self._intf.set_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._set_vx_metadata, vx)

    _get_vy_metadata = { "offset" : _get_vy_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def vy(self) -> float:
        """Y velocity covariance. Dimensionless."""
        return self._intf.get_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._get_vy_metadata)

    _set_vy_metadata = { "offset" : _set_vy_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @vy.setter
    def vy(self, vy:float) -> None:
        return self._intf.set_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._set_vy_metadata, vy)

    _get_vz_metadata = { "offset" : _get_vz_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def vz(self) -> float:
        """Z velocity covariance. Dimensionless."""
        return self._intf.get_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._get_vz_metadata)

    _set_vz_metadata = { "offset" : _set_vz_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @vz.setter
    def vz(self, vz:float) -> None:
        return self._intf.set_property(VehicleConsiderAnalysisCollectionElement._metadata, VehicleConsiderAnalysisCollectionElement._set_vz_metadata, vz)

    _property_names[type] = "type"
    _property_names[name] = "name"
    _property_names[value] = "value"
    _property_names[x] = "x"
    _property_names[y] = "y"
    _property_names[z] = "z"
    _property_names[vx] = "vx"
    _property_names[vy] = "vy"
    _property_names[vz] = "vz"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleConsiderAnalysisCollectionElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleConsiderAnalysisCollectionElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleConsiderAnalysisCollectionElement, [VehicleConsiderAnalysisCollectionElement, ])

agcls.AgClassCatalog.add_catalog_entry((4827678194288676880, 11411160290189781943), VehicleConsiderAnalysisCollectionElement)
agcls.AgTypeNameMap["VehicleConsiderAnalysisCollectionElement"] = VehicleConsiderAnalysisCollectionElement

class VehicleConsiderAnalysisCollection(SupportsDeleteCallback):
    """VehicleConsiderAnalysisCollection."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _remove_by_type_method_offset = 7
    _metadata = {
        "iid_data" : (5725618141586763874, 14436061802635070863),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleConsiderAnalysisCollection)
    def __iter__(self):
        """Create an iterator for the VehicleConsiderAnalysisCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleConsiderAnalysisCollectionElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleConsiderAnalysisCollection._metadata, VehicleConsiderAnalysisCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleConsiderAnalysisCollectionElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleConsiderAnalysisCollection._metadata, VehicleConsiderAnalysisCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleConsiderAnalysisCollection._metadata, VehicleConsiderAnalysisCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleConsiderAnalysisCollection._metadata, VehicleConsiderAnalysisCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleConsiderAnalysisCollection._metadata, VehicleConsiderAnalysisCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(VehicleConsiderAnalysisType), agmarshall.InterfaceOutArg,) }
    def add(self, param_type:"VehicleConsiderAnalysisType") -> "VehicleConsiderAnalysisCollectionElement":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleConsiderAnalysisCollection._metadata, VehicleConsiderAnalysisCollection._add_metadata, param_type, OutArg())

    _remove_by_type_metadata = { "offset" : _remove_by_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleConsiderAnalysisType),) }
    def remove_by_type(self, param_type:"VehicleConsiderAnalysisType") -> None:
        """Remove an element from the collection using the VehicleConsiderAnalysisType type."""
        return self._intf.invoke(VehicleConsiderAnalysisCollection._metadata, VehicleConsiderAnalysisCollection._remove_by_type_metadata, param_type)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleConsiderAnalysisCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleConsiderAnalysisCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleConsiderAnalysisCollection, [VehicleConsiderAnalysisCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5432244908522730508, 11166787264625781670), VehicleConsiderAnalysisCollection)
agcls.AgTypeNameMap["VehicleConsiderAnalysisCollection"] = VehicleConsiderAnalysisCollection

class PropagatorSPICESegment(SupportsDeleteCallback):
    """Interface for SPICE propagator segment."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_segment_name_method_offset = 1
    _get_segment_type_method_offset = 2
    _get_frame_method_offset = 3
    _get_central_body_method_offset = 4
    _get_start_time_method_offset = 5
    _get_stop_time_method_offset = 6
    _metadata = {
        "iid_data" : (5297856098187170339, 10848640787237555133),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSPICESegment)

    _get_segment_name_metadata = { "offset" : _get_segment_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def segment_name(self) -> str:
        """Get the segment name."""
        return self._intf.get_property(PropagatorSPICESegment._metadata, PropagatorSPICESegment._get_segment_name_metadata)

    _get_segment_type_metadata = { "offset" : _get_segment_type_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def segment_type(self) -> str:
        """Get the segment type."""
        return self._intf.get_property(PropagatorSPICESegment._metadata, PropagatorSPICESegment._get_segment_type_metadata)

    _get_frame_metadata = { "offset" : _get_frame_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def frame(self) -> str:
        """Get the coordinate axes."""
        return self._intf.get_property(PropagatorSPICESegment._metadata, PropagatorSPICESegment._get_frame_metadata)

    _get_central_body_metadata = { "offset" : _get_central_body_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body(self) -> str:
        """Get the central body."""
        return self._intf.get_property(PropagatorSPICESegment._metadata, PropagatorSPICESegment._get_central_body_metadata)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Get the start time. Uses DateFormat Dimension."""
        return self._intf.get_property(PropagatorSPICESegment._metadata, PropagatorSPICESegment._get_start_time_metadata)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Get the stop time. Uses DateFormat Dimension."""
        return self._intf.get_property(PropagatorSPICESegment._metadata, PropagatorSPICESegment._get_stop_time_metadata)

    _property_names[segment_name] = "segment_name"
    _property_names[segment_type] = "segment_type"
    _property_names[frame] = "frame"
    _property_names[central_body] = "central_body"
    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSPICESegment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSPICESegment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSPICESegment, [PropagatorSPICESegment, ])

agcls.AgClassCatalog.add_catalog_entry((4813317348174361026, 15240268906894736536), PropagatorSPICESegment)
agcls.AgTypeNameMap["PropagatorSPICESegment"] = PropagatorSPICESegment

class VehicleWaypointAltitudeReferenceTerrain(IVehicleWaypointAltitudeReference, SupportsDeleteCallback):
    """Interface for terrain altitude reference."""

    _num_methods = 4
    _vtable_offset = IVehicleWaypointAltitudeReference._vtable_offset + IVehicleWaypointAltitudeReference._num_methods
    _get_granularity_method_offset = 1
    _set_granularity_method_offset = 2
    _get_interpolation_method_method_offset = 3
    _set_interpolation_method_method_offset = 4
    _metadata = {
        "iid_data" : (5467488536635086445, 8372907082652194736),
        "vtable_reference" : IVehicleWaypointAltitudeReference._vtable_offset + IVehicleWaypointAltitudeReference._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleWaypointAltitudeReferenceTerrain)

    _get_granularity_metadata = { "offset" : _get_granularity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def granularity(self) -> float:
        """Define the distance between sampling points along a vehicle route, used when waypoint altitudes are referenced to terrain. Uses Distance Dimension."""
        return self._intf.get_property(VehicleWaypointAltitudeReferenceTerrain._metadata, VehicleWaypointAltitudeReferenceTerrain._get_granularity_metadata)

    _set_granularity_metadata = { "offset" : _set_granularity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @granularity.setter
    def granularity(self, granularity:float) -> None:
        return self._intf.set_property(VehicleWaypointAltitudeReferenceTerrain._metadata, VehicleWaypointAltitudeReferenceTerrain._set_granularity_metadata, granularity)

    _get_interpolation_method_metadata = { "offset" : _get_interpolation_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleWaypointInterpolationMethod),) }
    @property
    def interpolation_method(self) -> "VehicleWaypointInterpolationMethod":
        """Get or set the terrain interpolation method to be used to define the height of the vehicle with respect to terrain data."""
        return self._intf.get_property(VehicleWaypointAltitudeReferenceTerrain._metadata, VehicleWaypointAltitudeReferenceTerrain._get_interpolation_method_metadata)

    _set_interpolation_method_metadata = { "offset" : _set_interpolation_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleWaypointInterpolationMethod),) }
    @interpolation_method.setter
    def interpolation_method(self, interp_method:"VehicleWaypointInterpolationMethod") -> None:
        return self._intf.set_property(VehicleWaypointAltitudeReferenceTerrain._metadata, VehicleWaypointAltitudeReferenceTerrain._set_interpolation_method_metadata, interp_method)

    _property_names[granularity] = "granularity"
    _property_names[interpolation_method] = "interpolation_method"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleWaypointAltitudeReferenceTerrain."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleWaypointAltitudeReferenceTerrain)
        IVehicleWaypointAltitudeReference.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleWaypointAltitudeReference._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleWaypointAltitudeReferenceTerrain, [VehicleWaypointAltitudeReferenceTerrain, IVehicleWaypointAltitudeReference])

agcls.AgClassCatalog.add_catalog_entry((5359373337668878149, 4117179035233685124), VehicleWaypointAltitudeReferenceTerrain)
agcls.AgTypeNameMap["VehicleWaypointAltitudeReferenceTerrain"] = VehicleWaypointAltitudeReferenceTerrain

class VehicleWaypointAltitudeReference(IVehicleWaypointAltitudeReference, SupportsDeleteCallback):
    """Altitude references."""
    def __init__(self, source_object=None):
        """Construct an object of type VehicleWaypointAltitudeReference."""
        SupportsDeleteCallback.__init__(self)
        IVehicleWaypointAltitudeReference.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleWaypointAltitudeReference._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleWaypointAltitudeReference, [IVehicleWaypointAltitudeReference])

agcls.AgClassCatalog.add_catalog_entry((5392889779416279646, 7630624023762349221), VehicleWaypointAltitudeReference)
agcls.AgTypeNameMap["VehicleWaypointAltitudeReference"] = VehicleWaypointAltitudeReference

class PropagatorSGP4LoadFile(IPropagatorSGP4LoadData, SupportsDeleteCallback):
    """Interface for SGP4 propagator."""

    _num_methods = 5
    _vtable_offset = IPropagatorSGP4LoadData._vtable_offset + IPropagatorSGP4LoadData._num_methods
    _get_file_method_offset = 1
    _set_file_method_offset = 2
    _get_ssc_numbers_from_file_method_offset = 3
    _get_segments_from_file_method_offset = 4
    _add_segments_from_file_method_offset = 5
    _metadata = {
        "iid_data" : (4626111601544397262, 6952924831583180713),
        "vtable_reference" : IPropagatorSGP4LoadData._vtable_offset + IPropagatorSGP4LoadData._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4LoadFile)

    _get_file_metadata = { "offset" : _get_file_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file(self) -> str:
        """File name."""
        return self._intf.get_property(PropagatorSGP4LoadFile._metadata, PropagatorSGP4LoadFile._get_file_metadata)

    _set_file_metadata = { "offset" : _set_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @file.setter
    def file(self, value:str) -> None:
        return self._intf.set_property(PropagatorSGP4LoadFile._metadata, PropagatorSGP4LoadFile._set_file_metadata, value)

    _get_ssc_numbers_from_file_metadata = { "offset" : _get_ssc_numbers_from_file_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_ssc_numbers_from_file(self) -> list:
        """Return an array of SSC Numbers from the file selected."""
        return self._intf.invoke(PropagatorSGP4LoadFile._metadata, PropagatorSGP4LoadFile._get_ssc_numbers_from_file_metadata, OutArg())

    _get_segments_from_file_metadata = { "offset" : _get_segments_from_file_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.LPSafearrayArg,) }
    def get_segments_from_file(self, ssc_num:str) -> list:
        """Return an array of available segments from a file using the specified SSC Number."""
        return self._intf.invoke(PropagatorSGP4LoadFile._metadata, PropagatorSGP4LoadFile._get_segments_from_file_metadata, ssc_num, OutArg())

    _add_segments_from_file_metadata = { "offset" : _add_segments_from_file_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def add_segments_from_file(self, segments:list) -> None:
        """Add multiple segments from the array returned in GetSegsFromFile."""
        return self._intf.invoke(PropagatorSGP4LoadFile._metadata, PropagatorSGP4LoadFile._add_segments_from_file_metadata, segments)

    _property_names[file] = "file"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4LoadFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4LoadFile)
        IPropagatorSGP4LoadData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagatorSGP4LoadData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4LoadFile, [PropagatorSGP4LoadFile, IPropagatorSGP4LoadData])

agcls.AgClassCatalog.add_catalog_entry((4669106895319061068, 4864745393157996677), PropagatorSGP4LoadFile)
agcls.AgTypeNameMap["PropagatorSGP4LoadFile"] = PropagatorSGP4LoadFile

class PropagatorSGP4OnlineLoad(IPropagatorSGP4LoadData, SupportsDeleteCallback):
    """Interface for SGP4 propagator. Loads segments from online."""

    _num_methods = 8
    _vtable_offset = IPropagatorSGP4LoadData._vtable_offset + IPropagatorSGP4LoadData._num_methods
    _get_load_newest_method_offset = 1
    _set_load_newest_method_offset = 2
    _get_start_time_method_offset = 3
    _set_start_time_method_offset = 4
    _get_stop_time_method_offset = 5
    _set_stop_time_method_offset = 6
    _get_segments_from_online_method_offset = 7
    _add_segments_from_online_method_offset = 8
    _metadata = {
        "iid_data" : (5275672175343063365, 1777779266419878292),
        "vtable_reference" : IPropagatorSGP4LoadData._vtable_offset + IPropagatorSGP4LoadData._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4OnlineLoad)

    _get_load_newest_metadata = { "offset" : _get_load_newest_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def load_newest(self) -> bool:
        """Use this is you want to grab the latest segment with the given SSC number."""
        return self._intf.get_property(PropagatorSGP4OnlineLoad._metadata, PropagatorSGP4OnlineLoad._get_load_newest_metadata)

    _set_load_newest_metadata = { "offset" : _set_load_newest_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @load_newest.setter
    def load_newest(self, value:bool) -> None:
        return self._intf.set_property(PropagatorSGP4OnlineLoad._metadata, PropagatorSGP4OnlineLoad._set_load_newest_metadata, value)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Start time to look for segments. Uses DateFormat Dimension."""
        return self._intf.get_property(PropagatorSGP4OnlineLoad._metadata, PropagatorSGP4OnlineLoad._get_start_time_metadata)

    _set_start_time_metadata = { "offset" : _set_start_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_time.setter
    def start_time(self, value:typing.Any) -> None:
        return self._intf.set_property(PropagatorSGP4OnlineLoad._metadata, PropagatorSGP4OnlineLoad._set_start_time_metadata, value)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Stop time to look for segments. Uses DateFormat Dimension."""
        return self._intf.get_property(PropagatorSGP4OnlineLoad._metadata, PropagatorSGP4OnlineLoad._get_stop_time_metadata)

    _set_stop_time_metadata = { "offset" : _set_stop_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop_time.setter
    def stop_time(self, value:typing.Any) -> None:
        return self._intf.set_property(PropagatorSGP4OnlineLoad._metadata, PropagatorSGP4OnlineLoad._set_stop_time_metadata, value)

    _get_segments_from_online_metadata = { "offset" : _get_segments_from_online_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.LPSafearrayArg,) }
    def get_segments_from_online(self, ssc_num:str) -> list:
        """Return an array with all segments related to the supplied SSC number."""
        return self._intf.invoke(PropagatorSGP4OnlineLoad._metadata, PropagatorSGP4OnlineLoad._get_segments_from_online_metadata, ssc_num, OutArg())

    _add_segments_from_online_metadata = { "offset" : _add_segments_from_online_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def add_segments_from_online(self, segments:list) -> None:
        """Accept an array of segments to add."""
        return self._intf.invoke(PropagatorSGP4OnlineLoad._metadata, PropagatorSGP4OnlineLoad._add_segments_from_online_metadata, segments)

    _property_names[load_newest] = "load_newest"
    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4OnlineLoad."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4OnlineLoad)
        IPropagatorSGP4LoadData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagatorSGP4LoadData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4OnlineLoad, [PropagatorSGP4OnlineLoad, IPropagatorSGP4LoadData])

agcls.AgClassCatalog.add_catalog_entry((5218492479084973139, 4356834641110141330), PropagatorSGP4OnlineLoad)
agcls.AgTypeNameMap["PropagatorSGP4OnlineLoad"] = PropagatorSGP4OnlineLoad

class PropagatorSGP4OnlineAutoLoad(IPropagatorSGP4LoadData, SupportsDeleteCallback):
    """Do not use this interface, as it is deprecated. Use PropagatorSGP4OnlineLoad instead. Interface for SGP4 propagator. Loads the most current segment from online."""

    _num_methods = 1
    _vtable_offset = IPropagatorSGP4LoadData._vtable_offset + IPropagatorSGP4LoadData._num_methods
    _add_latest_segment_from_online_method_offset = 1
    _metadata = {
        "iid_data" : (4737651251597674145, 6992812804798218152),
        "vtable_reference" : IPropagatorSGP4LoadData._vtable_offset + IPropagatorSGP4LoadData._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4OnlineAutoLoad)

    _add_latest_segment_from_online_metadata = { "offset" : _add_latest_segment_from_online_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add_latest_segment_from_online(self, ssc_number:str) -> None:
        """Do not use this method, as it is deprecated. Use AddSegsFromOnline on PropagatorSGP4OnlineLoad instead. Adds the latest segment from Online given an SSC number."""
        return self._intf.invoke(PropagatorSGP4OnlineAutoLoad._metadata, PropagatorSGP4OnlineAutoLoad._add_latest_segment_from_online_metadata, ssc_number)


    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4OnlineAutoLoad."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4OnlineAutoLoad)
        IPropagatorSGP4LoadData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagatorSGP4LoadData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4OnlineAutoLoad, [PropagatorSGP4OnlineAutoLoad, IPropagatorSGP4LoadData])

agcls.AgClassCatalog.add_catalog_entry((5618066797086090820, 2671040987261146503), PropagatorSGP4OnlineAutoLoad)
agcls.AgTypeNameMap["PropagatorSGP4OnlineAutoLoad"] = PropagatorSGP4OnlineAutoLoad

class VehicleGroundEllipsesCollection(SupportsDeleteCallback):
    """Ground Ellipses."""

    _num_methods = 8
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _remove_ellipse_set_method_offset = 7
    _get_ellipse_set_method_offset = 8
    _metadata = {
        "iid_data" : (4637230881481505656, 15747116862814649506),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGroundEllipsesCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGroundEllipsesCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGroundEllipseElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGroundEllipsesCollection._metadata, VehicleGroundEllipsesCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGroundEllipseElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGroundEllipsesCollection._metadata, VehicleGroundEllipsesCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGroundEllipsesCollection._metadata, VehicleGroundEllipsesCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleGroundEllipsesCollection._metadata, VehicleGroundEllipsesCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleGroundEllipsesCollection._metadata, VehicleGroundEllipsesCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, name:str) -> "VehicleGroundEllipseElement":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleGroundEllipsesCollection._metadata, VehicleGroundEllipsesCollection._add_metadata, name, OutArg())

    _remove_ellipse_set_metadata = { "offset" : _remove_ellipse_set_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_ellipse_set(self, ellipse_set_name:str) -> None:
        """Remove an element from the collection using the Ellipse Set name."""
        return self._intf.invoke(VehicleGroundEllipsesCollection._metadata, VehicleGroundEllipsesCollection._remove_ellipse_set_metadata, ellipse_set_name)

    _get_ellipse_set_metadata = { "offset" : _get_ellipse_set_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_ellipse_set(self, ellipse_set_name:str) -> "VehicleGroundEllipseElement":
        """Get an element from the collection using the Ellipse Set name."""
        return self._intf.invoke(VehicleGroundEllipsesCollection._metadata, VehicleGroundEllipsesCollection._get_ellipse_set_metadata, ellipse_set_name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGroundEllipsesCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGroundEllipsesCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGroundEllipsesCollection, [VehicleGroundEllipsesCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5536652972483659493, 14749338659371248274), VehicleGroundEllipsesCollection)
agcls.AgTypeNameMap["VehicleGroundEllipsesCollection"] = VehicleGroundEllipsesCollection

class Satellite(ISTKObject, ILifetimeInformation, IProvideSpatialInfo, SupportsDeleteCallback):
    r"""
    Satellite properties.

    Examples
    --------
    Set satellite attitude external:
    >>> # Satellite satellite: Satellite object
    >>> if os.name == "nt":
    >>>     installPath = r"C:\Program Files\AGI\STK 12"
    >>> else:
    >>>     installPath = os.environ["STK_INSTALL_DIR"]
    >>> satellite.attitude.external.load(
    >>>     os.path.join(installPath, "Data", "Resources", "stktraining", "text", "AttitudeTimeEulerAngles_Example.a")
    >>> )

    Set satellite attitude targeting:
    >>> # Satellite satellite: Satellite object
    >>> attitudePointing = satellite.attitude.pointing
    >>> attitudePointing.use_target_pointing = True
    >>> attitudePointing.targets.remove_all()
    >>> attitudePointing.targets.add("AreaTarget/MyAreaTarget")
    >>> attitudePointing.target_times.use_access_times = True

    Set satellite attitude basic spinning:
    >>> # Satellite satellite: Satellite object
    >>> basic = satellite.attitude.basic
    >>> basic.set_profile_type(AttitudeProfile.SPINNING)
    >>> basic.profile.body.assign_xyz(0, 0, 1)
    >>> basic.profile.inertial.assign_xyz(0, 1, 0)
    >>> basic.profile.rate = 6  # rev/sec

    Create a satellite (on the current scenario central body):
    >>> # STKObjectRoot root: STK Object Model Root
    >>> satellite = root.current_scenario.children.new(STKObjectType.SATELLITE, "MySatellite")
    """

    _num_methods = 31
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_propagator_type_method_offset = 1
    _set_propagator_type_method_offset = 2
    _get_propagator_method_offset = 3
    _get_attitude_type_method_offset = 4
    _set_attitude_type_method_offset = 5
    _is_attitude_type_supported_method_offset = 6
    _get_attitude_supported_types_method_offset = 7
    _get_attitude_method_offset = 8
    _get_mass_properties_method_offset = 9
    _get_pass_break_method_offset = 10
    _get_ground_ellipses_method_offset = 11
    _get_graphics_method_offset = 12
    _get_graphics_3d_method_offset = 13
    _get_access_constraints_method_offset = 14
    _get_eclipse_bodies_method_offset = 15
    _is_propagator_type_supported_method_offset = 16
    _get_propagator_supported_types_method_offset = 17
    _get_export_tools_method_offset = 18
    _get_space_environment_method_offset = 19
    _get_reference_vehicle_method_offset = 20
    _get_radar_clutter_map_method_offset = 21
    _get_radar_cross_section_method_offset = 22
    _get_use_terrain_in_lighting_computations_method_offset = 23
    _set_use_terrain_in_lighting_computations_method_offset = 24
    _get_lighting_maximum_step_method_offset = 25
    _set_lighting_maximum_step_method_offset = 26
    _get_lighting_maximum_step_terrain_method_offset = 27
    _set_lighting_maximum_step_terrain_method_offset = 28
    _get_lighting_maximum_step_central_body_shape_method_offset = 29
    _set_lighting_maximum_step_central_body_shape_method_offset = 30
    _get_get_eoir_settings_method_offset = 31
    _metadata = {
        "iid_data" : (5085516170720515145, 16796522308492607113),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Satellite)

    _get_propagator_type_metadata = { "offset" : _get_propagator_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorType),) }
    @property
    def propagator_type(self) -> "PropagatorType":
        """Get the type of propagator used to define the satellite's orbit."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_propagator_type_metadata)

    _set_propagator_type_metadata = { "offset" : _set_propagator_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorType),) }
    def set_propagator_type(self, propagator:"PropagatorType") -> None:
        """Set the propagator type."""
        return self._intf.invoke(Satellite._metadata, Satellite._set_propagator_type_metadata, propagator)

    _get_propagator_metadata = { "offset" : _get_propagator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def propagator(self) -> "IPropagator":
        """Get information for the propagator."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_propagator_metadata)

    _get_attitude_type_metadata = { "offset" : _get_attitude_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude),) }
    @property
    def attitude_type(self) -> "VehicleAttitude":
        """Get the type of the satellite's attitude."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_attitude_type_metadata)

    _set_attitude_type_metadata = { "offset" : _set_attitude_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude),) }
    def set_attitude_type(self, attitude:"VehicleAttitude") -> None:
        """Set the attitude type."""
        return self._intf.invoke(Satellite._metadata, Satellite._set_attitude_type_metadata, attitude)

    _is_attitude_type_supported_metadata = { "offset" : _is_attitude_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude), agmarshall.VariantBoolArg,) }
    def is_attitude_type_supported(self, attitude:"VehicleAttitude") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(Satellite._metadata, Satellite._is_attitude_type_supported_metadata, attitude, OutArg())

    _get_attitude_supported_types_metadata = { "offset" : _get_attitude_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attitude_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_attitude_supported_types_metadata)

    _get_attitude_metadata = { "offset" : _get_attitude_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attitude(self) -> "IVehicleAttitude":
        """Get the Attitude properties of the satellite."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_attitude_metadata)

    _get_mass_properties_metadata = { "offset" : _get_mass_properties_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def mass_properties(self) -> "VehicleMassProperties":
        """Get the Mass properties of the satellite."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_mass_properties_metadata)

    _get_pass_break_metadata = { "offset" : _get_pass_break_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pass_break(self) -> "PassBreak":
        """Get the Pass Break properties of the satellite."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_pass_break_metadata)

    _get_ground_ellipses_metadata = { "offset" : _get_ground_ellipses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_ellipses(self) -> "VehicleGroundEllipsesCollection":
        """Get the Ground Ellipses properties of the satellite."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_ground_ellipses_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "SatelliteGraphics":
        """Get the 2D Graphics properties of the satellite."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "SatelliteGraphics3D":
        """Get the 3D Graphics properties of the satellite."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_graphics_3d_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the satellite."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_access_constraints_metadata)

    _get_eclipse_bodies_metadata = { "offset" : _get_eclipse_bodies_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def eclipse_bodies(self) -> "VehicleEclipseBodies":
        """Get the customized list of Eclipse Bodies, which are central bodies used in lighting computations."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_eclipse_bodies_metadata)

    _is_propagator_type_supported_metadata = { "offset" : _is_propagator_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(PropagatorType), agmarshall.VariantBoolArg,) }
    def is_propagator_type_supported(self, propagator:"PropagatorType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(Satellite._metadata, Satellite._is_propagator_type_supported_metadata, propagator, OutArg())

    _get_propagator_supported_types_metadata = { "offset" : _get_propagator_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def propagator_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_propagator_supported_types_metadata)

    _get_export_tools_metadata = { "offset" : _get_export_tools_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def export_tools(self) -> "SatelliteExportTools":
        """Return the SatelliteExportTools interface."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_export_tools_metadata)

    _get_space_environment_metadata = { "offset" : _get_space_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def space_environment(self) -> "SpaceEnvironment":
        """Get the SpaceEnvironment properties of the satellite."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_space_environment_metadata)

    _get_reference_vehicle_metadata = { "offset" : _get_reference_vehicle_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def reference_vehicle(self) -> "LinkToObject":
        """Get the reference vehicle of the satellite."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_reference_vehicle_metadata)

    _get_radar_clutter_map_metadata = { "offset" : _get_radar_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_clutter_map(self) -> "IRadarClutterMapInheritable":
        """Return the radar clutter map."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_radar_clutter_map_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionInheritable":
        """Return the radar cross sectoin."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_radar_cross_section_metadata)

    _get_use_terrain_in_lighting_computations_metadata = { "offset" : _get_use_terrain_in_lighting_computations_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain_in_lighting_computations(self) -> bool:
        """Opt whether to compute lighting using terrain data."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_use_terrain_in_lighting_computations_metadata)

    _set_use_terrain_in_lighting_computations_metadata = { "offset" : _set_use_terrain_in_lighting_computations_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain_in_lighting_computations.setter
    def use_terrain_in_lighting_computations(self, value:bool) -> None:
        return self._intf.set_property(Satellite._metadata, Satellite._set_use_terrain_in_lighting_computations_metadata, value)

    _get_lighting_maximum_step_metadata = { "offset" : _get_lighting_maximum_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step(self) -> float:
        """Do not use this property, as it is deprecated. Use LightingMaxStepTerrain or LightingMaxStepCbShape as appropriate. The maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_lighting_maximum_step_metadata)

    _set_lighting_maximum_step_metadata = { "offset" : _set_lighting_maximum_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step.setter
    def lighting_maximum_step(self, max_step:float) -> None:
        return self._intf.set_property(Satellite._metadata, Satellite._set_lighting_maximum_step_metadata, max_step)

    _get_lighting_maximum_step_terrain_metadata = { "offset" : _get_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_terrain(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_lighting_maximum_step_terrain_metadata)

    _set_lighting_maximum_step_terrain_metadata = { "offset" : _set_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_terrain.setter
    def lighting_maximum_step_terrain(self, max_step:float) -> None:
        return self._intf.set_property(Satellite._metadata, Satellite._set_lighting_maximum_step_terrain_metadata, max_step)

    _get_lighting_maximum_step_central_body_shape_metadata = { "offset" : _get_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_central_body_shape(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is false. Uses Time Dimension."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_lighting_maximum_step_central_body_shape_metadata)

    _set_lighting_maximum_step_central_body_shape_metadata = { "offset" : _set_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_central_body_shape.setter
    def lighting_maximum_step_central_body_shape(self, max_step:float) -> None:
        return self._intf.set_property(Satellite._metadata, Satellite._set_lighting_maximum_step_central_body_shape_metadata, max_step)

    _get_get_eoir_settings_metadata = { "offset" : _get_get_eoir_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def get_eoir_settings(self) -> "IEOIR":
        """Get the EOIR properties of the satellite."""
        return self._intf.get_property(Satellite._metadata, Satellite._get_get_eoir_settings_metadata)

    _property_names[propagator_type] = "propagator_type"
    _property_names[propagator] = "propagator"
    _property_names[attitude_type] = "attitude_type"
    _property_names[attitude_supported_types] = "attitude_supported_types"
    _property_names[attitude] = "attitude"
    _property_names[mass_properties] = "mass_properties"
    _property_names[pass_break] = "pass_break"
    _property_names[ground_ellipses] = "ground_ellipses"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[access_constraints] = "access_constraints"
    _property_names[eclipse_bodies] = "eclipse_bodies"
    _property_names[propagator_supported_types] = "propagator_supported_types"
    _property_names[export_tools] = "export_tools"
    _property_names[space_environment] = "space_environment"
    _property_names[reference_vehicle] = "reference_vehicle"
    _property_names[radar_clutter_map] = "radar_clutter_map"
    _property_names[radar_cross_section] = "radar_cross_section"
    _property_names[use_terrain_in_lighting_computations] = "use_terrain_in_lighting_computations"
    _property_names[lighting_maximum_step] = "lighting_maximum_step"
    _property_names[lighting_maximum_step_terrain] = "lighting_maximum_step_terrain"
    _property_names[lighting_maximum_step_central_body_shape] = "lighting_maximum_step_central_body_shape"
    _property_names[get_eoir_settings] = "get_eoir_settings"

    def __init__(self, source_object=None):
        """Construct an object of type Satellite."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Satellite)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IProvideSpatialInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IProvideSpatialInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Satellite, [Satellite, ISTKObject, ILifetimeInformation, IProvideSpatialInfo])

agcls.AgClassCatalog.add_catalog_entry((5026068117036217179, 15727230682905955736), Satellite)
agcls.AgTypeNameMap["Satellite"] = Satellite

class VehicleInertia(SupportsDeleteCallback):
    """Satellite inertia matrix parameters."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ixx_method_offset = 1
    _set_ixx_method_offset = 2
    _get_iyy_method_offset = 3
    _set_iyy_method_offset = 4
    _get_izz_method_offset = 5
    _set_izz_method_offset = 6
    _get_ixy_method_offset = 7
    _set_ixy_method_offset = 8
    _get_ixz_method_offset = 9
    _set_ixz_method_offset = 10
    _get_iyz_method_offset = 11
    _set_iyz_method_offset = 12
    _metadata = {
        "iid_data" : (5499536788668914934, 5612531303730735280),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleInertia)

    _get_ixx_metadata = { "offset" : _get_ixx_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ixx(self) -> float:
        """Moment of Inertia about the X body axis. Uses MomentOfInertia Dimension."""
        return self._intf.get_property(VehicleInertia._metadata, VehicleInertia._get_ixx_metadata)

    _set_ixx_metadata = { "offset" : _set_ixx_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ixx.setter
    def ixx(self, ixx:float) -> None:
        return self._intf.set_property(VehicleInertia._metadata, VehicleInertia._set_ixx_metadata, ixx)

    _get_iyy_metadata = { "offset" : _get_iyy_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def iyy(self) -> float:
        """Moment of Inertia about the Y body axis. Uses MomentOfInertia Dimension."""
        return self._intf.get_property(VehicleInertia._metadata, VehicleInertia._get_iyy_metadata)

    _set_iyy_metadata = { "offset" : _set_iyy_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @iyy.setter
    def iyy(self, iyy:float) -> None:
        return self._intf.set_property(VehicleInertia._metadata, VehicleInertia._set_iyy_metadata, iyy)

    _get_izz_metadata = { "offset" : _get_izz_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def izz(self) -> float:
        """Moment of Inertia about the Z body axis. Uses MomentOfInertia Dimension."""
        return self._intf.get_property(VehicleInertia._metadata, VehicleInertia._get_izz_metadata)

    _set_izz_metadata = { "offset" : _set_izz_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @izz.setter
    def izz(self, izz:float) -> None:
        return self._intf.set_property(VehicleInertia._metadata, VehicleInertia._set_izz_metadata, izz)

    _get_ixy_metadata = { "offset" : _get_ixy_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ixy(self) -> float:
        """Product of Inertia between the X and Y body axes. Uses MomentOfInertia Dimension."""
        return self._intf.get_property(VehicleInertia._metadata, VehicleInertia._get_ixy_metadata)

    _set_ixy_metadata = { "offset" : _set_ixy_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ixy.setter
    def ixy(self, ixy:float) -> None:
        return self._intf.set_property(VehicleInertia._metadata, VehicleInertia._set_ixy_metadata, ixy)

    _get_ixz_metadata = { "offset" : _get_ixz_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ixz(self) -> float:
        """Product of Inertia between the X and Z body axes. Uses MomentOfInertia Dimension."""
        return self._intf.get_property(VehicleInertia._metadata, VehicleInertia._get_ixz_metadata)

    _set_ixz_metadata = { "offset" : _set_ixz_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ixz.setter
    def ixz(self, ixz:float) -> None:
        return self._intf.set_property(VehicleInertia._metadata, VehicleInertia._set_ixz_metadata, ixz)

    _get_iyz_metadata = { "offset" : _get_iyz_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def iyz(self) -> float:
        """Product of Inertia between the Y and Z body axes. Uses MomentOfInertia Dimension."""
        return self._intf.get_property(VehicleInertia._metadata, VehicleInertia._get_iyz_metadata)

    _set_iyz_metadata = { "offset" : _set_iyz_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @iyz.setter
    def iyz(self, iyz:float) -> None:
        return self._intf.set_property(VehicleInertia._metadata, VehicleInertia._set_iyz_metadata, iyz)

    _property_names[ixx] = "ixx"
    _property_names[iyy] = "iyy"
    _property_names[izz] = "izz"
    _property_names[ixy] = "ixy"
    _property_names[ixz] = "ixz"
    _property_names[iyz] = "iyz"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleInertia."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleInertia)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleInertia, [VehicleInertia, ])

agcls.AgClassCatalog.add_catalog_entry((4783969785944680957, 3671459207894636188), VehicleInertia)
agcls.AgTypeNameMap["VehicleInertia"] = VehicleInertia

class VehicleMassProperties(SupportsDeleteCallback):
    """Satellite Mass properties."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mass_method_offset = 1
    _set_mass_method_offset = 2
    _get_inertia_method_offset = 3
    _metadata = {
        "iid_data" : (4735171100892383877, 4670309768371807109),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleMassProperties)

    _get_mass_metadata = { "offset" : _get_mass_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mass(self) -> float:
        """Get or set the satellite mass. Uses Mass Dimension."""
        return self._intf.get_property(VehicleMassProperties._metadata, VehicleMassProperties._get_mass_metadata)

    _set_mass_metadata = { "offset" : _set_mass_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mass.setter
    def mass(self, mass:float) -> None:
        return self._intf.set_property(VehicleMassProperties._metadata, VehicleMassProperties._set_mass_metadata, mass)

    _get_inertia_metadata = { "offset" : _get_inertia_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def inertia(self) -> "VehicleInertia":
        """Get the satellite inertia matrix."""
        return self._intf.get_property(VehicleMassProperties._metadata, VehicleMassProperties._get_inertia_metadata)

    _property_names[mass] = "mass"
    _property_names[inertia] = "inertia"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleMassProperties."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleMassProperties)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleMassProperties, [VehicleMassProperties, ])

agcls.AgClassCatalog.add_catalog_entry((5473592971510833345, 6271028699346970012), VehicleMassProperties)
agcls.AgTypeNameMap["VehicleMassProperties"] = VehicleMassProperties

class VehicleBreakAngleBreakByLatitude(SupportsDeleteCallback):
    """Pass break latitude."""

    _num_methods = 2
    _vtable_offset = IVehicleBreakAngle._vtable_offset + IVehicleBreakAngle._num_methods
    _get_latitude_method_offset = 1
    _set_latitude_method_offset = 2
    _metadata = {
        "iid_data" : (4998127347780375487, 11439220920888154274),
        "vtable_reference" : IVehicleBreakAngle._vtable_offset + IVehicleBreakAngle._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleBreakAngleBreakByLatitude)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Get or set the value of the latitude crossing at which a new pass begins. Uses Latitude Dimension."""
        return self._intf.get_property(VehicleBreakAngleBreakByLatitude._metadata, VehicleBreakAngleBreakByLatitude._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude.setter
    def latitude(self, latitude:float) -> None:
        return self._intf.set_property(VehicleBreakAngleBreakByLatitude._metadata, VehicleBreakAngleBreakByLatitude._set_latitude_metadata, latitude)

    _property_names[latitude] = "latitude"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleBreakAngleBreakByLatitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleBreakAngleBreakByLatitude)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleBreakAngleBreakByLatitude, [VehicleBreakAngleBreakByLatitude, ])

agcls.AgClassCatalog.add_catalog_entry((5757735463448735517, 12193552261629125550), VehicleBreakAngleBreakByLatitude)
agcls.AgTypeNameMap["VehicleBreakAngleBreakByLatitude"] = VehicleBreakAngleBreakByLatitude

class VehicleBreakAngleBreakByLongitude(SupportsDeleteCallback):
    """Pass break longitude."""

    _num_methods = 2
    _vtable_offset = IVehicleBreakAngle._vtable_offset + IVehicleBreakAngle._num_methods
    _get_longitude_method_offset = 1
    _set_longitude_method_offset = 2
    _metadata = {
        "iid_data" : (4650014881884338122, 14169210867555738553),
        "vtable_reference" : IVehicleBreakAngle._vtable_offset + IVehicleBreakAngle._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleBreakAngleBreakByLongitude)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Get or set the value of the longitude crossing at which a new pass will begin. Uses Longitude Dimension."""
        return self._intf.get_property(VehicleBreakAngleBreakByLongitude._metadata, VehicleBreakAngleBreakByLongitude._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, longitude:float) -> None:
        return self._intf.set_property(VehicleBreakAngleBreakByLongitude._metadata, VehicleBreakAngleBreakByLongitude._set_longitude_metadata, longitude)

    _property_names[longitude] = "longitude"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleBreakAngleBreakByLongitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleBreakAngleBreakByLongitude)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleBreakAngleBreakByLongitude, [VehicleBreakAngleBreakByLongitude, ])

agcls.AgClassCatalog.add_catalog_entry((5346294841428253167, 14049763652350331033), VehicleBreakAngleBreakByLongitude)
agcls.AgTypeNameMap["VehicleBreakAngleBreakByLongitude"] = VehicleBreakAngleBreakByLongitude

class VehicleDefinition(SupportsDeleteCallback):
    """Pass break definition properties."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_break_angle_type_method_offset = 1
    _set_break_angle_type_method_offset = 2
    _get_break_angle_method_offset = 3
    _get_direction_method_offset = 4
    _set_direction_method_offset = 5
    _metadata = {
        "iid_data" : (5090990958194699464, 12162519638716469666),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleDefinition)

    _get_break_angle_type_metadata = { "offset" : _get_break_angle_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleBreakAngleType),) }
    @property
    def break_angle_type(self) -> "VehicleBreakAngleType":
        """Latitude or longitude."""
        return self._intf.get_property(VehicleDefinition._metadata, VehicleDefinition._get_break_angle_type_metadata)

    _set_break_angle_type_metadata = { "offset" : _set_break_angle_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleBreakAngleType),) }
    def set_break_angle_type(self, break_angle_type:"VehicleBreakAngleType") -> None:
        """Set the Break Angle type."""
        return self._intf.invoke(VehicleDefinition._metadata, VehicleDefinition._set_break_angle_type_metadata, break_angle_type)

    _get_break_angle_metadata = { "offset" : _get_break_angle_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def break_angle(self) -> "IVehicleBreakAngle":
        """Value of latitude or longitude used for defining pass break."""
        return self._intf.get_property(VehicleDefinition._metadata, VehicleDefinition._get_break_angle_metadata)

    _get_direction_metadata = { "offset" : _get_direction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleDirection),) }
    @property
    def direction(self) -> "VehicleDirection":
        """Descending or ascending."""
        return self._intf.get_property(VehicleDefinition._metadata, VehicleDefinition._get_direction_metadata)

    _set_direction_metadata = { "offset" : _set_direction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleDirection),) }
    @direction.setter
    def direction(self, direction:"VehicleDirection") -> None:
        return self._intf.set_property(VehicleDefinition._metadata, VehicleDefinition._set_direction_metadata, direction)

    _property_names[break_angle_type] = "break_angle_type"
    _property_names[break_angle] = "break_angle"
    _property_names[direction] = "direction"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleDefinition."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleDefinition)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleDefinition, [VehicleDefinition, ])

agcls.AgClassCatalog.add_catalog_entry((4988051537158043085, 4624137163897430173), VehicleDefinition)
agcls.AgTypeNameMap["VehicleDefinition"] = VehicleDefinition

class RepeatGroundTrackNumbering(SupportsDeleteCallback):
    """Repeat ground track numbering: The path number in the repeat ground track cycle corresponding to the initial conditions and the number of revolutions in the repeat cycle."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_first_pass_number_method_offset = 1
    _set_first_pass_number_method_offset = 2
    _get_revolutions_to_repeat_method_offset = 3
    _set_revolutions_to_repeat_method_offset = 4
    _metadata = {
        "iid_data" : (5102348835284191884, 13366311212289753508),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RepeatGroundTrackNumbering)

    _get_first_pass_number_metadata = { "offset" : _get_first_pass_number_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def first_pass_number(self) -> int:
        """Path numbers are incremented concurrently with pass numbers, but are limited to a range of 1 to the number of revolutions in the repeat cycle. Dimensionless."""
        return self._intf.get_property(RepeatGroundTrackNumbering._metadata, RepeatGroundTrackNumbering._get_first_pass_number_metadata)

    _set_first_pass_number_metadata = { "offset" : _set_first_pass_number_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @first_pass_number.setter
    def first_pass_number(self, first_path_num:int) -> None:
        return self._intf.set_property(RepeatGroundTrackNumbering._metadata, RepeatGroundTrackNumbering._set_first_pass_number_metadata, first_path_num)

    _get_revolutions_to_repeat_metadata = { "offset" : _get_revolutions_to_repeat_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def revolutions_to_repeat(self) -> int:
        """Once the path number reaches the number of revolutions in the repeat cycle, the next path number is 1. Dimensionless."""
        return self._intf.get_property(RepeatGroundTrackNumbering._metadata, RepeatGroundTrackNumbering._get_revolutions_to_repeat_metadata)

    _set_revolutions_to_repeat_metadata = { "offset" : _set_revolutions_to_repeat_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @revolutions_to_repeat.setter
    def revolutions_to_repeat(self, revs_to_repeat:int) -> None:
        return self._intf.set_property(RepeatGroundTrackNumbering._metadata, RepeatGroundTrackNumbering._set_revolutions_to_repeat_metadata, revs_to_repeat)

    _property_names[first_pass_number] = "first_pass_number"
    _property_names[revolutions_to_repeat] = "revolutions_to_repeat"

    def __init__(self, source_object=None):
        """Construct an object of type RepeatGroundTrackNumbering."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RepeatGroundTrackNumbering)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RepeatGroundTrackNumbering, [RepeatGroundTrackNumbering, ])

agcls.AgClassCatalog.add_catalog_entry((5388491281922884746, 1716504494609660337), RepeatGroundTrackNumbering)
agcls.AgTypeNameMap["RepeatGroundTrackNumbering"] = RepeatGroundTrackNumbering

class PassBreakNumberingDateOfFirstPass(SupportsDeleteCallback):
    """Date of first pass for pass numbering."""

    _num_methods = 3
    _vtable_offset = IVehiclePassNumbering._vtable_offset + IVehiclePassNumbering._num_methods
    _get_first_pass_number_method_offset = 1
    _set_first_pass_number_method_offset = 2
    _get_pass_data_epoch_method_offset = 3
    _metadata = {
        "iid_data" : (5359733052269497307, 17675984346609101758),
        "vtable_reference" : IVehiclePassNumbering._vtable_offset + IVehiclePassNumbering._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PassBreakNumberingDateOfFirstPass)

    _get_first_pass_number_metadata = { "offset" : _get_first_pass_number_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def first_pass_number(self) -> int:
        """Get or set the number at which pass numbering begins. Dimensionless."""
        return self._intf.get_property(PassBreakNumberingDateOfFirstPass._metadata, PassBreakNumberingDateOfFirstPass._get_first_pass_number_metadata)

    _set_first_pass_number_metadata = { "offset" : _set_first_pass_number_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @first_pass_number.setter
    def first_pass_number(self, first_pass_num:int) -> None:
        return self._intf.set_property(PassBreakNumberingDateOfFirstPass._metadata, PassBreakNumberingDateOfFirstPass._set_first_pass_number_metadata, first_pass_num)

    _get_pass_data_epoch_metadata = { "offset" : _get_pass_data_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pass_data_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Get the start time of the first pass."""
        return self._intf.get_property(PassBreakNumberingDateOfFirstPass._metadata, PassBreakNumberingDateOfFirstPass._get_pass_data_epoch_metadata)

    _property_names[first_pass_number] = "first_pass_number"
    _property_names[pass_data_epoch] = "pass_data_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type PassBreakNumberingDateOfFirstPass."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PassBreakNumberingDateOfFirstPass)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PassBreakNumberingDateOfFirstPass, [PassBreakNumberingDateOfFirstPass, ])

agcls.AgClassCatalog.add_catalog_entry((5400528723358676901, 1329169053561725881), PassBreakNumberingDateOfFirstPass)
agcls.AgTypeNameMap["PassBreakNumberingDateOfFirstPass"] = PassBreakNumberingDateOfFirstPass

class PassBreakNumberingFirstPassNumber(SupportsDeleteCallback):
    """First pass number."""

    _num_methods = 2
    _vtable_offset = IVehiclePassNumbering._vtable_offset + IVehiclePassNumbering._num_methods
    _get_first_pass_number_method_offset = 1
    _set_first_pass_number_method_offset = 2
    _metadata = {
        "iid_data" : (5265737017875756659, 15627209243845068172),
        "vtable_reference" : IVehiclePassNumbering._vtable_offset + IVehiclePassNumbering._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PassBreakNumberingFirstPassNumber)

    _get_first_pass_number_metadata = { "offset" : _get_first_pass_number_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def first_pass_number(self) -> int:
        """Get or set the number at which pass numbering begins. Dimensionless."""
        return self._intf.get_property(PassBreakNumberingFirstPassNumber._metadata, PassBreakNumberingFirstPassNumber._get_first_pass_number_metadata)

    _set_first_pass_number_metadata = { "offset" : _set_first_pass_number_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @first_pass_number.setter
    def first_pass_number(self, first_pass_num:int) -> None:
        return self._intf.set_property(PassBreakNumberingFirstPassNumber._metadata, PassBreakNumberingFirstPassNumber._set_first_pass_number_metadata, first_pass_num)

    _property_names[first_pass_number] = "first_pass_number"

    def __init__(self, source_object=None):
        """Construct an object of type PassBreakNumberingFirstPassNumber."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PassBreakNumberingFirstPassNumber)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PassBreakNumberingFirstPassNumber, [PassBreakNumberingFirstPassNumber, ])

agcls.AgClassCatalog.add_catalog_entry((5666843171938733096, 1055601287234891648), PassBreakNumberingFirstPassNumber)
agcls.AgTypeNameMap["PassBreakNumberingFirstPassNumber"] = PassBreakNumberingFirstPassNumber

class PassBreak(SupportsDeleteCallback):
    """Satellite Pass Break properties."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_definition_method_offset = 1
    _get_partial_pass_measurement_method_offset = 2
    _set_partial_pass_measurement_method_offset = 3
    _get_coordinate_system_method_offset = 4
    _set_coordinate_system_method_offset = 5
    _get_repeat_ground_track_numbering_method_offset = 6
    _get_pass_numbering_type_method_offset = 7
    _set_pass_numbering_type_method_offset = 8
    _get_pass_numbering_method_offset = 9
    _get_supported_coordinate_systems_method_offset = 10
    _metadata = {
        "iid_data" : (5284192951007601600, 16010571119905964440),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PassBreak)

    _get_definition_metadata = { "offset" : _get_definition_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def definition(self) -> "VehicleDefinition":
        """Get the break angle type and, in the case of latitude, the direction at latitiude crossing."""
        return self._intf.get_property(PassBreak._metadata, PassBreak._get_definition_metadata)

    _get_partial_pass_measurement_metadata = { "offset" : _get_partial_pass_measurement_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehiclePartialPassMeasurement),) }
    @property
    def partial_pass_measurement(self) -> "VehiclePartialPassMeasurement":
        """Get or set the method for calculating partial passes."""
        return self._intf.get_property(PassBreak._metadata, PassBreak._get_partial_pass_measurement_metadata)

    _set_partial_pass_measurement_metadata = { "offset" : _set_partial_pass_measurement_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehiclePartialPassMeasurement),) }
    @partial_pass_measurement.setter
    def partial_pass_measurement(self, partial_pass_measurement:"VehiclePartialPassMeasurement") -> None:
        return self._intf.set_property(PassBreak._metadata, PassBreak._set_partial_pass_measurement_metadata, partial_pass_measurement)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleCoordinateSystem),) }
    @property
    def coordinate_system(self) -> "VehicleCoordinateSystem":
        """Get or set the coordinate system in which latitude and longitude are to be measured."""
        return self._intf.get_property(PassBreak._metadata, PassBreak._get_coordinate_system_metadata)

    _set_coordinate_system_metadata = { "offset" : _set_coordinate_system_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleCoordinateSystem),) }
    @coordinate_system.setter
    def coordinate_system(self, coordinate_system:"VehicleCoordinateSystem") -> None:
        return self._intf.set_property(PassBreak._metadata, PassBreak._set_coordinate_system_metadata, coordinate_system)

    _get_repeat_ground_track_numbering_metadata = { "offset" : _get_repeat_ground_track_numbering_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def repeat_ground_track_numbering(self) -> "RepeatGroundTrackNumbering":
        """Get data on repeat ground track numbering."""
        return self._intf.get_property(PassBreak._metadata, PassBreak._get_repeat_ground_track_numbering_metadata)

    _get_pass_numbering_type_metadata = { "offset" : _get_pass_numbering_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehiclePassNumbering),) }
    @property
    def pass_numbering_type(self) -> "VehiclePassNumbering":
        """Get the criterion for pass numbering."""
        return self._intf.get_property(PassBreak._metadata, PassBreak._get_pass_numbering_type_metadata)

    _set_pass_numbering_type_metadata = { "offset" : _set_pass_numbering_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehiclePassNumbering),) }
    def set_pass_numbering_type(self, pass_numbering:"VehiclePassNumbering") -> None:
        """Set the pass number corresponding to the initial conditions of the satellite."""
        return self._intf.invoke(PassBreak._metadata, PassBreak._set_pass_numbering_type_metadata, pass_numbering)

    _get_pass_numbering_metadata = { "offset" : _get_pass_numbering_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pass_numbering(self) -> "IVehiclePassNumbering":
        """Get pass numbering data."""
        return self._intf.get_property(PassBreak._metadata, PassBreak._get_pass_numbering_metadata)

    _get_supported_coordinate_systems_metadata = { "offset" : _get_supported_coordinate_systems_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_coordinate_systems(self) -> list:
        """Return supported coordinate systems."""
        return self._intf.get_property(PassBreak._metadata, PassBreak._get_supported_coordinate_systems_metadata)

    _property_names[definition] = "definition"
    _property_names[partial_pass_measurement] = "partial_pass_measurement"
    _property_names[coordinate_system] = "coordinate_system"
    _property_names[repeat_ground_track_numbering] = "repeat_ground_track_numbering"
    _property_names[pass_numbering_type] = "pass_numbering_type"
    _property_names[pass_numbering] = "pass_numbering"
    _property_names[supported_coordinate_systems] = "supported_coordinate_systems"

    def __init__(self, source_object=None):
        """Construct an object of type PassBreak."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PassBreak)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PassBreak, [PassBreak, ])

agcls.AgClassCatalog.add_catalog_entry((5219680515600807525, 7929929023551933099), PassBreak)
agcls.AgTypeNameMap["PassBreak"] = PassBreak

class VehicleCentralBodies(SupportsDeleteCallback):
    """Satellite Central Bodies interface."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_available_central_bodies_method_offset = 1
    _is_central_body_assigned_method_offset = 2
    _get_assigned_central_bodies_method_offset = 3
    _assign_central_body_method_offset = 4
    _remove_central_body_method_offset = 5
    _remove_all_method_offset = 6
    _metadata = {
        "iid_data" : (5009050673890490656, 9785193654592503432),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleCentralBodies)

    _get_available_central_bodies_metadata = { "offset" : _get_available_central_bodies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_central_bodies(self) -> list:
        """Return an array of available Central Bodies."""
        return self._intf.get_property(VehicleCentralBodies._metadata, VehicleCentralBodies._get_available_central_bodies_metadata)

    _is_central_body_assigned_metadata = { "offset" : _is_central_body_assigned_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_central_body_assigned(self, central_body:str) -> bool:
        """Check whether a central body is already assigned."""
        return self._intf.invoke(VehicleCentralBodies._metadata, VehicleCentralBodies._is_central_body_assigned_metadata, central_body, OutArg())

    _get_assigned_central_bodies_metadata = { "offset" : _get_assigned_central_bodies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def assigned_central_bodies(self) -> list:
        """Return an array of all assigned central bodies."""
        return self._intf.get_property(VehicleCentralBodies._metadata, VehicleCentralBodies._get_assigned_central_bodies_metadata)

    _assign_central_body_metadata = { "offset" : _assign_central_body_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def assign_central_body(self, central_body:str) -> None:
        """Assign a central body."""
        return self._intf.invoke(VehicleCentralBodies._metadata, VehicleCentralBodies._assign_central_body_metadata, central_body)

    _remove_central_body_metadata = { "offset" : _remove_central_body_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_central_body(self, central_body:str) -> None:
        """Remove a central body."""
        return self._intf.invoke(VehicleCentralBodies._metadata, VehicleCentralBodies._remove_central_body_metadata, central_body)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all the central bodies."""
        return self._intf.invoke(VehicleCentralBodies._metadata, VehicleCentralBodies._remove_all_metadata, )

    _property_names[available_central_bodies] = "available_central_bodies"
    _property_names[assigned_central_bodies] = "assigned_central_bodies"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleCentralBodies."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleCentralBodies)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleCentralBodies, [VehicleCentralBodies, ])

agcls.AgClassCatalog.add_catalog_entry((5032867537943688307, 12582294474328194736), VehicleCentralBodies)
agcls.AgTypeNameMap["VehicleCentralBodies"] = VehicleCentralBodies

class SatelliteGraphics(SupportsDeleteCallback):
    """
    Satellite 2D Graphics properties.

    Examples
    --------
    Change the Display Label of the vehicle:
    >>> # Satellite satellite: Satellite object
    >>> satellite.graphics.use_instance_name_label = False
    >>> satellite.graphics.label_name = "Python Satellite"
    """

    _num_methods = 24
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_attributes_type_method_offset = 1
    _set_attributes_type_method_offset = 2
    _is_attributes_type_supported_method_offset = 3
    _get_attributes_supported_types_method_offset = 4
    _get_attributes_method_offset = 5
    _get_time_events_method_offset = 6
    _get_passes_method_offset = 7
    _get_pass_data_method_offset = 8
    _get_resolution_method_offset = 9
    _get_elevation_contours_method_offset = 10
    _get_saa_method_offset = 11
    _get_range_contours_method_offset = 12
    _get_lighting_method_offset = 13
    _get_swath_method_offset = 14
    _get_ground_ellipses_method_offset = 15
    _get_label_notes_method_offset = 16
    _get_ground_track_central_body_display_method_offset = 17
    _get_use_instance_name_label_method_offset = 18
    _set_use_instance_name_label_method_offset = 19
    _get_label_name_method_offset = 20
    _set_label_name_method_offset = 21
    _get_show_graphics_method_offset = 22
    _set_show_graphics_method_offset = 23
    _get_radar_cross_section_method_offset = 24
    _metadata = {
        "iid_data" : (5210285439463116102, 11241017557030234553),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SatelliteGraphics)

    _get_attributes_type_metadata = { "offset" : _get_attributes_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType),) }
    @property
    def attributes_type(self) -> "VehicleGraphics2DAttributeType":
        """Type of 2D Graphics attributes: basic, access intervals or custom intervals."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_attributes_type_metadata)

    _set_attributes_type_metadata = { "offset" : _set_attributes_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType),) }
    def set_attributes_type(self, attributes:"VehicleGraphics2DAttributeType") -> None:
        """Set the attributes type."""
        return self._intf.invoke(SatelliteGraphics._metadata, SatelliteGraphics._set_attributes_type_metadata, attributes)

    _is_attributes_type_supported_metadata = { "offset" : _is_attributes_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType), agmarshall.VariantBoolArg,) }
    def is_attributes_type_supported(self, attributes:"VehicleGraphics2DAttributeType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(SatelliteGraphics._metadata, SatelliteGraphics._is_attributes_type_supported_metadata, attributes, OutArg())

    _get_attributes_supported_types_metadata = { "offset" : _get_attributes_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attributes_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_attributes_supported_types_metadata)

    _get_attributes_metadata = { "offset" : _get_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attributes(self) -> "IVehicleGraphics2DAttributes":
        """Get the satellite's 2D Graphics Attributes."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_attributes_metadata)

    _get_time_events_metadata = { "offset" : _get_time_events_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_events(self) -> "VehicleGraphics2DTimeEventsCollection":
        """Get the satellite's TimeEvents properties."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_time_events_metadata)

    _get_passes_metadata = { "offset" : _get_passes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def passes(self) -> "VehicleGraphics2DPasses":
        """Get the pass display settings of the satellite's Pass properties."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_passes_metadata)

    _get_pass_data_metadata = { "offset" : _get_pass_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pass_data(self) -> "VehicleGraphics2DOrbitPassData":
        """Get the leading/trailing ground track and orbit settings of the satellite's Pass properties."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_pass_data_metadata)

    _get_resolution_metadata = { "offset" : _get_resolution_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def resolution(self) -> "VehicleGraphics2DPassResolution":
        """Get the path resolution settings of the satellite's Pass properties."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_resolution_metadata)

    _get_elevation_contours_metadata = { "offset" : _get_elevation_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elevation_contours(self) -> "VehicleGraphics2DElevationContours":
        """Get the satellite's Elevation Contours properties."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_elevation_contours_metadata)

    _get_saa_metadata = { "offset" : _get_saa_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def saa(self) -> "VehicleGraphics2DSAA":
        """Get the satellite's South Atlantic Anomaly Contour properties."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_saa_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics2DRangeContours":
        """Get the satellite's Range Contours properties."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_range_contours_metadata)

    _get_lighting_metadata = { "offset" : _get_lighting_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def lighting(self) -> "VehicleGraphics2DLighting":
        """Get the satellite's Lighting properties."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_lighting_metadata)

    _get_swath_metadata = { "offset" : _get_swath_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def swath(self) -> "VehicleGraphics2DSwath":
        """Get the satellite's Swath properties."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_swath_metadata)

    _get_ground_ellipses_metadata = { "offset" : _get_ground_ellipses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_ellipses(self) -> "VehicleGraphics2DGroundEllipsesCollection":
        """Get the satellite's Ground Ellipses properties."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_ground_ellipses_metadata)

    _get_label_notes_metadata = { "offset" : _get_label_notes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_notes(self) -> "LabelNoteCollection":
        """Notes attached to the object and displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_label_notes_metadata)

    _get_ground_track_central_body_display_metadata = { "offset" : _get_ground_track_central_body_display_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_track_central_body_display(self) -> "VehicleCentralBodies":
        """Get the ground track display central bodies."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_ground_track_central_body_display_metadata)

    _get_use_instance_name_label_metadata = { "offset" : _get_use_instance_name_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_instance_name_label(self) -> bool:
        """Specify whether to use the name of the satellite (as shown in the Object Browser) as its label."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_use_instance_name_label_metadata)

    _set_use_instance_name_label_metadata = { "offset" : _set_use_instance_name_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_instance_name_label.setter
    def use_instance_name_label(self, use_inst_name:bool) -> None:
        return self._intf.set_property(SatelliteGraphics._metadata, SatelliteGraphics._set_use_instance_name_label_metadata, use_inst_name)

    _get_label_name_metadata = { "offset" : _get_label_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label_name(self) -> str:
        """The user-specified name to use as a label for the satellite."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_label_name_metadata)

    _set_label_name_metadata = { "offset" : _set_label_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label_name.setter
    def label_name(self, value:str) -> None:
        return self._intf.set_property(SatelliteGraphics._metadata, SatelliteGraphics._set_label_name_metadata, value)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the satellite are visible."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(SatelliteGraphics._metadata, SatelliteGraphics._set_show_graphics_metadata, is_visible)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(SatelliteGraphics._metadata, SatelliteGraphics._get_radar_cross_section_metadata)

    _property_names[attributes_type] = "attributes_type"
    _property_names[attributes_supported_types] = "attributes_supported_types"
    _property_names[attributes] = "attributes"
    _property_names[time_events] = "time_events"
    _property_names[passes] = "passes"
    _property_names[pass_data] = "pass_data"
    _property_names[resolution] = "resolution"
    _property_names[elevation_contours] = "elevation_contours"
    _property_names[saa] = "saa"
    _property_names[range_contours] = "range_contours"
    _property_names[lighting] = "lighting"
    _property_names[swath] = "swath"
    _property_names[ground_ellipses] = "ground_ellipses"
    _property_names[label_notes] = "label_notes"
    _property_names[ground_track_central_body_display] = "ground_track_central_body_display"
    _property_names[use_instance_name_label] = "use_instance_name_label"
    _property_names[label_name] = "label_name"
    _property_names[show_graphics] = "show_graphics"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type SatelliteGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SatelliteGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SatelliteGraphics, [SatelliteGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((4951767889910006419, 11610175154613566120), SatelliteGraphics)
agcls.AgTypeNameMap["SatelliteGraphics"] = SatelliteGraphics

class SatelliteGraphics3D(SupportsDeleteCallback):
    """3D Graphics properties of a satellite."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_model_method_offset = 1
    _get_orbit_systems_method_offset = 2
    _get_proximity_method_offset = 3
    _get_elevation_contours_method_offset = 4
    _get_saa_method_offset = 5
    _get_covariance_pointing_contour_method_offset = 6
    _get_satellite_pass_method_offset = 7
    _get_offsets_method_offset = 8
    _get_range_contours_method_offset = 9
    _get_covariance_method_offset = 10
    _get_vector_method_offset = 11
    _get_data_display_method_offset = 12
    _get_model_pointing_method_offset = 13
    _get_drop_lines_method_offset = 14
    _get_b_planes_method_offset = 15
    _get_vapor_trail_method_offset = 16
    _get_velocity_covariance_method_offset = 17
    _get_radar_cross_section_method_offset = 18
    _metadata = {
        "iid_data" : (4665023845485354343, 13230676353735195557),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SatelliteGraphics3D)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "SatelliteGraphics3DModel":
        """Get the satellite's Model properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_model_metadata)

    _get_orbit_systems_metadata = { "offset" : _get_orbit_systems_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orbit_systems(self) -> "VehicleGraphics3DSystemsCollection":
        """Get the satellite's OrbitSystem properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_orbit_systems_metadata)

    _get_proximity_metadata = { "offset" : _get_proximity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def proximity(self) -> "VehicleGraphics3DOrbitProximity":
        """Get the satellite's Proximity properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_proximity_metadata)

    _get_elevation_contours_metadata = { "offset" : _get_elevation_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elevation_contours(self) -> "VehicleGraphics3DElevationContours":
        """Get the satellite's Elevation Contours properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_elevation_contours_metadata)

    _get_saa_metadata = { "offset" : _get_saa_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def saa(self) -> "VehicleGraphics3DSAA":
        """Get the satellite's South Atlantic Anomaly Contour properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_saa_metadata)

    _get_covariance_pointing_contour_metadata = { "offset" : _get_covariance_pointing_contour_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def covariance_pointing_contour(self) -> "VehicleGraphics3DCovariancePointingContour":
        """Get the satellite's Covariance Pointing Contour properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_covariance_pointing_contour_metadata)

    _get_satellite_pass_metadata = { "offset" : _get_satellite_pass_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def satellite_pass(self) -> "VehicleGraphics3DPass":
        """Get the satellite's Pass properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_satellite_pass_metadata)

    _get_offsets_metadata = { "offset" : _get_offsets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def offsets(self) -> "Graphics3DOffset":
        """Get the satellite's Offsets properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_offsets_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics3DRangeContours":
        """Get the satellite's Range Contours properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_range_contours_metadata)

    _get_covariance_metadata = { "offset" : _get_covariance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def covariance(self) -> "VehicleGraphics3DCovariance":
        """Get the satellite's Covariance properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_covariance_metadata)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get the satellite's Vector properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_vector_metadata)

    _get_data_display_metadata = { "offset" : _get_data_display_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_display(self) -> "Graphics3DDataDisplayCollection":
        """Get the satellite's Data Display properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_data_display_metadata)

    _get_model_pointing_metadata = { "offset" : _get_model_pointing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_pointing(self) -> "Graphics3DModelPointing":
        """Get the satellite's Model Pointing properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_model_pointing_metadata)

    _get_drop_lines_metadata = { "offset" : _get_drop_lines_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drop_lines(self) -> "VehicleGraphics3DOrbitDropLines":
        """Get the satellite's Droplines properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_drop_lines_metadata)

    _get_b_planes_metadata = { "offset" : _get_b_planes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def b_planes(self) -> "VehicleGraphics3DBPlanes":
        """Get the BPlane."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_b_planes_metadata)

    _get_vapor_trail_metadata = { "offset" : _get_vapor_trail_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vapor_trail(self) -> "Graphics3DVaporTrail":
        """Vapor trail attributes."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_vapor_trail_metadata)

    _get_velocity_covariance_metadata = { "offset" : _get_velocity_covariance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def velocity_covariance(self) -> "VehicleGraphics3DVelocityCovariance":
        """Get the satellite's 3D velocity covariance properties."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_velocity_covariance_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics3D":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(SatelliteGraphics3D._metadata, SatelliteGraphics3D._get_radar_cross_section_metadata)

    _property_names[model] = "model"
    _property_names[orbit_systems] = "orbit_systems"
    _property_names[proximity] = "proximity"
    _property_names[elevation_contours] = "elevation_contours"
    _property_names[saa] = "saa"
    _property_names[covariance_pointing_contour] = "covariance_pointing_contour"
    _property_names[satellite_pass] = "satellite_pass"
    _property_names[offsets] = "offsets"
    _property_names[range_contours] = "range_contours"
    _property_names[covariance] = "covariance"
    _property_names[vector] = "vector"
    _property_names[data_display] = "data_display"
    _property_names[model_pointing] = "model_pointing"
    _property_names[drop_lines] = "drop_lines"
    _property_names[b_planes] = "b_planes"
    _property_names[vapor_trail] = "vapor_trail"
    _property_names[velocity_covariance] = "velocity_covariance"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type SatelliteGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SatelliteGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SatelliteGraphics3D, [SatelliteGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5287169933905164665, 1045579530036635783), SatelliteGraphics3D)
agcls.AgTypeNameMap["SatelliteGraphics3D"] = SatelliteGraphics3D

class VehicleEllipseDataElement(SupportsDeleteCallback):
    """Ground ellipse data."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_method_offset = 1
    _set_time_method_offset = 2
    _get_custom_position_method_offset = 3
    _set_custom_position_method_offset = 4
    _get_latitude_method_offset = 5
    _set_latitude_method_offset = 6
    _get_longitude_method_offset = 7
    _set_longitude_method_offset = 8
    _get_semi_major_axis_method_offset = 9
    _set_semi_major_axis_method_offset = 10
    _get_semi_minor_axis_method_offset = 11
    _set_semi_minor_axis_method_offset = 12
    _get_bearing_method_offset = 13
    _set_bearing_method_offset = 14
    _metadata = {
        "iid_data" : (4697827351610353690, 2819140773991717529),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEllipseDataElement)

    _get_time_metadata = { "offset" : _get_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def time(self) -> typing.Any:
        """Time of the ellipse. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._get_time_metadata)

    _set_time_metadata = { "offset" : _set_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @time.setter
    def time(self, value:typing.Any) -> None:
        return self._intf.set_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._set_time_metadata, value)

    _get_custom_position_metadata = { "offset" : _get_custom_position_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def custom_position(self) -> bool:
        """Opt whether to specify a custom position for the center of the ellipse. Otherwise the object's center is used."""
        return self._intf.get_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._get_custom_position_metadata)

    _set_custom_position_metadata = { "offset" : _set_custom_position_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @custom_position.setter
    def custom_position(self, value:bool) -> None:
        return self._intf.set_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._set_custom_position_metadata, value)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def latitude(self) -> typing.Any:
        """Get or set the latitude of the center of the ellipse. Read-only unless you opt to specify a custom position. Uses Latitude Dimension."""
        return self._intf.get_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @latitude.setter
    def latitude(self, value:typing.Any) -> None:
        return self._intf.set_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._set_latitude_metadata, value)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def longitude(self) -> typing.Any:
        """Get or set the longitude of the center of the ellipse. Read-only unless you opt to specify a custom position. Uses Longitude Dimension."""
        return self._intf.get_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @longitude.setter
    def longitude(self, value:typing.Any) -> None:
        return self._intf.set_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._set_longitude_metadata, value)

    _get_semi_major_axis_metadata = { "offset" : _get_semi_major_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def semi_major_axis(self) -> float:
        """Get or set the semimajor axis of the ellipse. Uses Distance Dimension."""
        return self._intf.get_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._get_semi_major_axis_metadata)

    _set_semi_major_axis_metadata = { "offset" : _set_semi_major_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @semi_major_axis.setter
    def semi_major_axis(self, value:float) -> None:
        return self._intf.set_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._set_semi_major_axis_metadata, value)

    _get_semi_minor_axis_metadata = { "offset" : _get_semi_minor_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def semi_minor_axis(self) -> float:
        """Get or set the semiminor axis of the ellipse. Uses Distance Dimension."""
        return self._intf.get_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._get_semi_minor_axis_metadata)

    _set_semi_minor_axis_metadata = { "offset" : _set_semi_minor_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @semi_minor_axis.setter
    def semi_minor_axis(self, value:float) -> None:
        return self._intf.set_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._set_semi_minor_axis_metadata, value)

    _get_bearing_metadata = { "offset" : _get_bearing_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def bearing(self) -> typing.Any:
        """Get or set the bearing of the ellipse: the angle, measured in an easterly direction, between the major axis and the local North direction. Uses Angle Dimension."""
        return self._intf.get_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._get_bearing_metadata)

    _set_bearing_metadata = { "offset" : _set_bearing_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @bearing.setter
    def bearing(self, value:typing.Any) -> None:
        return self._intf.set_property(VehicleEllipseDataElement._metadata, VehicleEllipseDataElement._set_bearing_metadata, value)

    _property_names[time] = "time"
    _property_names[custom_position] = "custom_position"
    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[semi_major_axis] = "semi_major_axis"
    _property_names[semi_minor_axis] = "semi_minor_axis"
    _property_names[bearing] = "bearing"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEllipseDataElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEllipseDataElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEllipseDataElement, [VehicleEllipseDataElement, ])

agcls.AgClassCatalog.add_catalog_entry((5191925157587954463, 11511833372192712851), VehicleEllipseDataElement)
agcls.AgTypeNameMap["VehicleEllipseDataElement"] = VehicleEllipseDataElement

class VehicleEllipseDataCollection(SupportsDeleteCallback):
    """Ellipse Data Collection."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (4641301248990929838, 18000079425626887563),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEllipseDataCollection)
    def __iter__(self):
        """Create an iterator for the VehicleEllipseDataCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleEllipseDataElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleEllipseDataCollection._metadata, VehicleEllipseDataCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleEllipseDataElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleEllipseDataCollection._metadata, VehicleEllipseDataCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleEllipseDataCollection._metadata, VehicleEllipseDataCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleEllipseDataCollection._metadata, VehicleEllipseDataCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleEllipseDataCollection._metadata, VehicleEllipseDataCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "VehicleEllipseDataElement":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleEllipseDataCollection._metadata, VehicleEllipseDataCollection._add_metadata, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEllipseDataCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEllipseDataCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEllipseDataCollection, [VehicleEllipseDataCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4747762972206273993, 12607290696116422825), VehicleEllipseDataCollection)
agcls.AgTypeNameMap["VehicleEllipseDataCollection"] = VehicleEllipseDataCollection

class VehicleGroundEllipseElement(SupportsDeleteCallback):
    """Ground ellipse."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ellipse_name_method_offset = 1
    _set_ellipse_name_method_offset = 2
    _get_ellipse_data_method_offset = 3
    _metadata = {
        "iid_data" : (5481735586323263558, 14519041452323563452),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGroundEllipseElement)

    _get_ellipse_name_metadata = { "offset" : _get_ellipse_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def ellipse_name(self) -> str:
        """Get or set the name of the ground ellipse."""
        return self._intf.get_property(VehicleGroundEllipseElement._metadata, VehicleGroundEllipseElement._get_ellipse_name_metadata)

    _set_ellipse_name_metadata = { "offset" : _set_ellipse_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @ellipse_name.setter
    def ellipse_name(self, value:str) -> None:
        return self._intf.set_property(VehicleGroundEllipseElement._metadata, VehicleGroundEllipseElement._set_ellipse_name_metadata, value)

    _get_ellipse_data_metadata = { "offset" : _get_ellipse_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ellipse_data(self) -> "VehicleEllipseDataCollection":
        """Get the ground ellipse data."""
        return self._intf.get_property(VehicleGroundEllipseElement._metadata, VehicleGroundEllipseElement._get_ellipse_data_metadata)

    _property_names[ellipse_name] = "ellipse_name"
    _property_names[ellipse_data] = "ellipse_data"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGroundEllipseElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGroundEllipseElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGroundEllipseElement, [VehicleGroundEllipseElement, ])

agcls.AgClassCatalog.add_catalog_entry((5588596824396649969, 3194280168910404747), VehicleGroundEllipseElement)
agcls.AgTypeNameMap["VehicleGroundEllipseElement"] = VehicleGroundEllipseElement

class SatelliteGraphics3DModel(IGraphics3DModel, SupportsDeleteCallback):
    r"""
    Interface SatelliteGraphics3DModel exposes all Satellite's VO Model properties.

    Examples
    --------
    Change the 3D Model and marker properties:
    >>> # Satellite satellite: Satellite object
    >>> model = satellite.graphics_3d.model
    >>> model.model_data.filename = r"STKData\VO\Models\Space\dsp.glb"
    >>> orbitmarker = model.orbit_marker
    >>> if os.name == "nt":
    >>>     installPath = r"C:\Program Files\AGI\STK 12"
    >>> else:
    >>>     installPath = os.environ["STK_INSTALL_DIR"]
    >>> orbitmarker.set_marker_image_filename(os.path.join(installPath, "STKData", "VO", "Markers", "Satellite.ppm"))
    >>> orbitmarker.marker_data.is_transparent = True
    >>> orbitmarker.pixel_size = 18
    >>> orbitmarker.orientation_mode = Graphics3DMarkerOrientation.FOLLOW_DIRECTION
    """

    _num_methods = 11
    _vtable_offset = IGraphics3DModel._vtable_offset + IGraphics3DModel._num_methods
    _get_orbit_marker_method_offset = 1
    _get_ground_marker_method_offset = 2
    _get_solar_panels_point_at_sun_method_offset = 3
    _set_solar_panels_point_at_sun_method_offset = 4
    _get_show_point_method_offset = 5
    _set_show_point_method_offset = 6
    _get_point_size_method_offset = 7
    _set_point_size_method_offset = 8
    _get_gltf_reflection_map_type_method_offset = 9
    _set_gltf_reflection_map_type_method_offset = 10
    _get_gltf_image_based_method_offset = 11
    _metadata = {
        "iid_data" : (5247815230901064128, 4506731541816812990),
        "vtable_reference" : IGraphics3DModel._vtable_offset + IGraphics3DModel._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SatelliteGraphics3DModel)

    _get_orbit_marker_metadata = { "offset" : _get_orbit_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orbit_marker(self) -> "Graphics3DMarker":
        """Define the display of the marker to represent the selected vehicle while traveling along its actual orbit, separate from that of its ground track. The orbit is the actual path that a vehicle follows."""
        return self._intf.get_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._get_orbit_marker_metadata)

    _get_ground_marker_metadata = { "offset" : _get_ground_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_marker(self) -> "Graphics3DMarker":
        """Define the display of the marker to represent the vehicle's position along its ground track, separate from that of its orbit. The ground track of a vehicle is the portion of the central body's surface that it covers while traveling along its track."""
        return self._intf.get_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._get_ground_marker_metadata)

    _get_solar_panels_point_at_sun_metadata = { "offset" : _get_solar_panels_point_at_sun_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def solar_panels_point_at_sun(self) -> bool:
        """The model's solar panels are defaulted to point toward the sun."""
        return self._intf.get_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._get_solar_panels_point_at_sun_metadata)

    _set_solar_panels_point_at_sun_metadata = { "offset" : _set_solar_panels_point_at_sun_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @solar_panels_point_at_sun.setter
    def solar_panels_point_at_sun(self, value:bool) -> None:
        return self._intf.set_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._set_solar_panels_point_at_sun_metadata, value)

    _get_show_point_metadata = { "offset" : _get_show_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_point(self) -> bool:
        """Whether the point that is shown at certain viewing distances to represent an object, is visible."""
        return self._intf.get_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._get_show_point_metadata)

    _set_show_point_metadata = { "offset" : _set_show_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_point.setter
    def show_point(self, show_point:bool) -> None:
        return self._intf.set_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._set_show_point_metadata, show_point)

    _get_point_size_metadata = { "offset" : _get_point_size_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def point_size(self) -> typing.Any:
        """A size of the point (in pixels). Dimensionless."""
        return self._intf.get_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._get_point_size_metadata)

    _set_point_size_metadata = { "offset" : _set_point_size_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @point_size.setter
    def point_size(self, point_size:typing.Any) -> None:
        return self._intf.set_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._set_point_size_metadata, point_size)

    _get_gltf_reflection_map_type_metadata = { "offset" : _get_gltf_reflection_map_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ModelGltfReflectionMapType),) }
    @property
    def gltf_reflection_map_type(self) -> "ModelGltfReflectionMapType":
        """Get or set the glTF reflection map type property. A member of the ModelGltfReflectionMapType enumeration."""
        return self._intf.get_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._get_gltf_reflection_map_type_metadata)

    _set_gltf_reflection_map_type_metadata = { "offset" : _set_gltf_reflection_map_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ModelGltfReflectionMapType),) }
    @gltf_reflection_map_type.setter
    def gltf_reflection_map_type(self, type:"ModelGltfReflectionMapType") -> None:
        return self._intf.set_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._set_gltf_reflection_map_type_metadata, type)

    _get_gltf_image_based_metadata = { "offset" : _get_gltf_image_based_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def gltf_image_based(self) -> "Graphics3DModelglTFImageBased":
        """Get glTF Image Based properties."""
        return self._intf.get_property(SatelliteGraphics3DModel._metadata, SatelliteGraphics3DModel._get_gltf_image_based_metadata)

    _property_names[orbit_marker] = "orbit_marker"
    _property_names[ground_marker] = "ground_marker"
    _property_names[solar_panels_point_at_sun] = "solar_panels_point_at_sun"
    _property_names[show_point] = "show_point"
    _property_names[point_size] = "point_size"
    _property_names[gltf_reflection_map_type] = "gltf_reflection_map_type"
    _property_names[gltf_image_based] = "gltf_image_based"

    def __init__(self, source_object=None):
        """Construct an object of type SatelliteGraphics3DModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SatelliteGraphics3DModel)
        IGraphics3DModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SatelliteGraphics3DModel, [SatelliteGraphics3DModel, IGraphics3DModel])

agcls.AgClassCatalog.add_catalog_entry((5505199541901067347, 18223356080371960744), SatelliteGraphics3DModel)
agcls.AgTypeNameMap["SatelliteGraphics3DModel"] = SatelliteGraphics3DModel

class VehicleEclipseBodies(SupportsDeleteCallback):
    """Satellite Eclipse Bodies interface, for defining the eclipse central body list used for lighting computations."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_customized_list_method_offset = 1
    _set_use_customized_list_method_offset = 2
    _get_available_central_bodies_method_offset = 3
    _is_central_body_assigned_method_offset = 4
    _get_assigned_central_bodies_method_offset = 5
    _assign_central_body_method_offset = 6
    _remove_central_body_method_offset = 7
    _remove_all_method_offset = 8
    _metadata = {
        "iid_data" : (4706214847095640195, 16087937660625798074),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEclipseBodies)

    _get_use_customized_list_metadata = { "offset" : _get_use_customized_list_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_customized_list(self) -> bool:
        """Property used to specify whether or not to use the customized list of central bodies."""
        return self._intf.get_property(VehicleEclipseBodies._metadata, VehicleEclipseBodies._get_use_customized_list_metadata)

    _set_use_customized_list_metadata = { "offset" : _set_use_customized_list_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_customized_list.setter
    def use_customized_list(self, value:bool) -> None:
        return self._intf.set_property(VehicleEclipseBodies._metadata, VehicleEclipseBodies._set_use_customized_list_metadata, value)

    _get_available_central_bodies_metadata = { "offset" : _get_available_central_bodies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_central_bodies(self) -> list:
        """Return an array of available Central Bodies."""
        return self._intf.get_property(VehicleEclipseBodies._metadata, VehicleEclipseBodies._get_available_central_bodies_metadata)

    _is_central_body_assigned_metadata = { "offset" : _is_central_body_assigned_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_central_body_assigned(self, central_body:str) -> bool:
        """Check whether a central body is already assigned."""
        return self._intf.invoke(VehicleEclipseBodies._metadata, VehicleEclipseBodies._is_central_body_assigned_metadata, central_body, OutArg())

    _get_assigned_central_bodies_metadata = { "offset" : _get_assigned_central_bodies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def assigned_central_bodies(self) -> list:
        """Return an array of all assigned central bodies."""
        return self._intf.get_property(VehicleEclipseBodies._metadata, VehicleEclipseBodies._get_assigned_central_bodies_metadata)

    _assign_central_body_metadata = { "offset" : _assign_central_body_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def assign_central_body(self, central_body:str) -> None:
        """Assign a central body."""
        return self._intf.invoke(VehicleEclipseBodies._metadata, VehicleEclipseBodies._assign_central_body_metadata, central_body)

    _remove_central_body_metadata = { "offset" : _remove_central_body_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_central_body(self, central_body:str) -> None:
        """Remove a central body."""
        return self._intf.invoke(VehicleEclipseBodies._metadata, VehicleEclipseBodies._remove_central_body_metadata, central_body)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all the central bodies."""
        return self._intf.invoke(VehicleEclipseBodies._metadata, VehicleEclipseBodies._remove_all_metadata, )

    _property_names[use_customized_list] = "use_customized_list"
    _property_names[available_central_bodies] = "available_central_bodies"
    _property_names[assigned_central_bodies] = "assigned_central_bodies"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEclipseBodies."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEclipseBodies)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEclipseBodies, [VehicleEclipseBodies, ])

agcls.AgClassCatalog.add_catalog_entry((4787322765276063182, 11937815526403859612), VehicleEclipseBodies)
agcls.AgTypeNameMap["VehicleEclipseBodies"] = VehicleEclipseBodies

class VehicleVector(SupportsDeleteCallback):
    """Aligned and Constrained attitude profile."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_body_method_offset = 1
    _get_reference_vector_method_offset = 2
    _set_reference_vector_method_offset = 3
    _get_available_reference_vectors_method_offset = 4
    _metadata = {
        "iid_data" : (5274941090544921156, 4813086538182816139),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleVector)

    _get_body_metadata = { "offset" : _get_body_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def body(self) -> "IDirection":
        """Get the body-fixed vector that is aligned or constrained with respect to the reference vector."""
        return self._intf.get_property(VehicleVector._metadata, VehicleVector._get_body_metadata)

    _get_reference_vector_metadata = { "offset" : _get_reference_vector_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reference_vector(self) -> str:
        """Get or set the reference vector with respect to which the body-fixed vector is aligned or constrained."""
        return self._intf.get_property(VehicleVector._metadata, VehicleVector._get_reference_vector_metadata)

    _set_reference_vector_metadata = { "offset" : _set_reference_vector_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @reference_vector.setter
    def reference_vector(self, value:str) -> None:
        return self._intf.set_property(VehicleVector._metadata, VehicleVector._set_reference_vector_metadata, value)

    _get_available_reference_vectors_metadata = { "offset" : _get_available_reference_vectors_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_reference_vectors(self) -> list:
        """Return the available reference vectors."""
        return self._intf.get_property(VehicleVector._metadata, VehicleVector._get_available_reference_vectors_metadata)

    _property_names[body] = "body"
    _property_names[reference_vector] = "reference_vector"
    _property_names[available_reference_vectors] = "available_reference_vectors"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleVector."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleVector)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleVector, [VehicleVector, ])

agcls.AgClassCatalog.add_catalog_entry((4651337808163122468, 14052332656577273488), VehicleVector)
agcls.AgTypeNameMap["VehicleVector"] = VehicleVector

class RotationRateAndOffset(SupportsDeleteCallback):
    """Rate and offset interface for precession and spin."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_rate_method_offset = 1
    _set_rate_method_offset = 2
    _get_offset_method_offset = 3
    _set_offset_method_offset = 4
    _metadata = {
        "iid_data" : (5389808815954893458, 2101605665527567246),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RotationRateAndOffset)

    _get_rate_metadata = { "offset" : _get_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def rate(self) -> float:
        """Rate of precession or spin. Uses AngleRate Dimension."""
        return self._intf.get_property(RotationRateAndOffset._metadata, RotationRateAndOffset._get_rate_metadata)

    _set_rate_metadata = { "offset" : _set_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @rate.setter
    def rate(self, rate:float) -> None:
        return self._intf.set_property(RotationRateAndOffset._metadata, RotationRateAndOffset._set_rate_metadata, rate)

    _get_offset_metadata = { "offset" : _get_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def offset(self) -> float:
        """Initial offset of precession. Uses Angle Dimension."""
        return self._intf.get_property(RotationRateAndOffset._metadata, RotationRateAndOffset._get_offset_metadata)

    _set_offset_metadata = { "offset" : _set_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @offset.setter
    def offset(self, offset:float) -> None:
        return self._intf.set_property(RotationRateAndOffset._metadata, RotationRateAndOffset._set_offset_metadata, offset)

    _property_names[rate] = "rate"
    _property_names[offset] = "offset"

    def __init__(self, source_object=None):
        """Construct an object of type RotationRateAndOffset."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RotationRateAndOffset)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RotationRateAndOffset, [RotationRateAndOffset, ])

agcls.AgClassCatalog.add_catalog_entry((5594275835270444217, 3602559622278388627), RotationRateAndOffset)
agcls.AgTypeNameMap["RotationRateAndOffset"] = RotationRateAndOffset

class AttitudeProfileAlignedAndConstrained(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """Aligned and Constrained attitude profile."""

    _num_methods = 4
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_aligned_vector_method_offset = 1
    _get_constrained_vector_method_offset = 2
    _get_displayed_aligned_vector_type_method_offset = 3
    _get_displayed_constrained_vector_type_method_offset = 4
    _metadata = {
        "iid_data" : (5171481877987496577, 1532501936353728430),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileAlignedAndConstrained)

    _get_aligned_vector_metadata = { "offset" : _get_aligned_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def aligned_vector(self) -> "VehicleVector":
        """Get the aligned vector pair. Vectors dependent on the satellite's body axes are invalid for this attitude profile; all other vectors are valid choices."""
        return self._intf.get_property(AttitudeProfileAlignedAndConstrained._metadata, AttitudeProfileAlignedAndConstrained._get_aligned_vector_metadata)

    _get_constrained_vector_metadata = { "offset" : _get_constrained_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def constrained_vector(self) -> "VehicleVector":
        """Get the constrained vector pair. Vectors dependent on the satellite's body axes are invalid for this attitude profile; all other vectors are valid choices."""
        return self._intf.get_property(AttitudeProfileAlignedAndConstrained._metadata, AttitudeProfileAlignedAndConstrained._get_constrained_vector_metadata)

    _get_displayed_aligned_vector_type_metadata = { "offset" : _get_displayed_aligned_vector_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DirectionType),) }
    @property
    def displayed_aligned_vector_type(self) -> "DirectionType":
        """Aligned vector type displayed on GUI."""
        return self._intf.get_property(AttitudeProfileAlignedAndConstrained._metadata, AttitudeProfileAlignedAndConstrained._get_displayed_aligned_vector_type_metadata)

    _get_displayed_constrained_vector_type_metadata = { "offset" : _get_displayed_constrained_vector_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DirectionType),) }
    @property
    def displayed_constrained_vector_type(self) -> "DirectionType":
        """Constrained vector type displayed on GUI."""
        return self._intf.get_property(AttitudeProfileAlignedAndConstrained._metadata, AttitudeProfileAlignedAndConstrained._get_displayed_constrained_vector_type_metadata)

    _property_names[aligned_vector] = "aligned_vector"
    _property_names[constrained_vector] = "constrained_vector"
    _property_names[displayed_aligned_vector_type] = "displayed_aligned_vector_type"
    _property_names[displayed_constrained_vector_type] = "displayed_constrained_vector_type"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileAlignedAndConstrained."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileAlignedAndConstrained)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileAlignedAndConstrained, [AttitudeProfileAlignedAndConstrained, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((5150386431410948037, 18437465990185225088), AttitudeProfileAlignedAndConstrained)
agcls.AgTypeNameMap["AttitudeProfileAlignedAndConstrained"] = AttitudeProfileAlignedAndConstrained

class AttitudeProfileInertial(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """Inertially fixed attitude profile: maintains a constant orientation of the body-fixed axes with respect to the inertial axes, using the selected coordinate type."""

    _num_methods = 1
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_inertial_method_offset = 1
    _metadata = {
        "iid_data" : (5751415908736730352, 3120473383477115780),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileInertial)

    _get_inertial_metadata = { "offset" : _get_inertial_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def inertial(self) -> "IOrientation":
        """Get inertial axes."""
        return self._intf.get_property(AttitudeProfileInertial._metadata, AttitudeProfileInertial._get_inertial_metadata)

    _property_names[inertial] = "inertial"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileInertial."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileInertial)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileInertial, [AttitudeProfileInertial, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((5019374825023081394, 4565397551751322287), AttitudeProfileInertial)
agcls.AgTypeNameMap["AttitudeProfileInertial"] = AttitudeProfileInertial

class AttitudeProfileConstraintOffset(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """Interface for constraint offset for various attitude profiles."""

    _num_methods = 2
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_constraint_offset_method_offset = 1
    _set_constraint_offset_method_offset = 2
    _metadata = {
        "iid_data" : (4788052709625157653, 1197182303932510857),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileConstraintOffset)

    _get_constraint_offset_metadata = { "offset" : _get_constraint_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def constraint_offset(self) -> float:
        """Value of offset angle. Uses Angle Dimension."""
        return self._intf.get_property(AttitudeProfileConstraintOffset._metadata, AttitudeProfileConstraintOffset._get_constraint_offset_metadata)

    _set_constraint_offset_metadata = { "offset" : _set_constraint_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @constraint_offset.setter
    def constraint_offset(self, constraint_offset:float) -> None:
        return self._intf.set_property(AttitudeProfileConstraintOffset._metadata, AttitudeProfileConstraintOffset._set_constraint_offset_metadata, constraint_offset)

    _property_names[constraint_offset] = "constraint_offset"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileConstraintOffset."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileConstraintOffset)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileConstraintOffset, [AttitudeProfileConstraintOffset, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((5742424004385490824, 13861649382504913591), AttitudeProfileConstraintOffset)
agcls.AgTypeNameMap["AttitudeProfileConstraintOffset"] = AttitudeProfileConstraintOffset

class AttitudeProfileFixedInAxes(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """Fixed in Axes attitude profile: maintains a constant orientation of the body-fixed axes with respect to the specified reference axes, using the selected coordinate type."""

    _num_methods = 4
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_orientation_method_offset = 1
    _get_reference_axes_method_offset = 2
    _set_reference_axes_method_offset = 3
    _get_available_reference_axes_method_offset = 4
    _metadata = {
        "iid_data" : (5387348293213402092, 13626808468169542309),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileFixedInAxes)

    _get_orientation_metadata = { "offset" : _get_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orientation(self) -> "IOrientation":
        """Get the orientation of the body-fixed axes."""
        return self._intf.get_property(AttitudeProfileFixedInAxes._metadata, AttitudeProfileFixedInAxes._get_orientation_metadata)

    _get_reference_axes_metadata = { "offset" : _get_reference_axes_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reference_axes(self) -> str:
        """Reference axes with respect to which the body-fixed axes are oriented. The satellite's body axes or any axes dependent upon the satellite's body axes are invalid for this attitude profile; all other axes are valid choices for the reference axes."""
        return self._intf.get_property(AttitudeProfileFixedInAxes._metadata, AttitudeProfileFixedInAxes._get_reference_axes_metadata)

    _set_reference_axes_metadata = { "offset" : _set_reference_axes_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @reference_axes.setter
    def reference_axes(self, reference_axes:str) -> None:
        return self._intf.set_property(AttitudeProfileFixedInAxes._metadata, AttitudeProfileFixedInAxes._set_reference_axes_metadata, reference_axes)

    _get_available_reference_axes_metadata = { "offset" : _get_available_reference_axes_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_reference_axes(self) -> list:
        """Return the available reference axes."""
        return self._intf.get_property(AttitudeProfileFixedInAxes._metadata, AttitudeProfileFixedInAxes._get_available_reference_axes_metadata)

    _property_names[orientation] = "orientation"
    _property_names[reference_axes] = "reference_axes"
    _property_names[available_reference_axes] = "available_reference_axes"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileFixedInAxes."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileFixedInAxes)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileFixedInAxes, [AttitudeProfileFixedInAxes, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((5146037210827471323, 3609302957385609880), AttitudeProfileFixedInAxes)
agcls.AgTypeNameMap["AttitudeProfileFixedInAxes"] = AttitudeProfileFixedInAxes

class AttitudeProfilePrecessingSpin(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """Precessing Spin attitude profile, in which the spin axis of the satellite specified in the body frame is offset through the nutation angle away from the angular momentum direction specified in the inertial frame."""

    _num_methods = 9
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_body_method_offset = 1
    _get_inertial_precession_method_offset = 2
    _get_precession_method_offset = 3
    _get_spin_method_offset = 4
    _get_nutation_angle_method_offset = 5
    _set_nutation_angle_method_offset = 6
    _get_reference_axes_method_offset = 7
    _set_reference_axes_method_offset = 8
    _get_smart_epoch_method_offset = 9
    _metadata = {
        "iid_data" : (4890816825110994824, 14658342080838958989),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfilePrecessingSpin)

    _get_body_metadata = { "offset" : _get_body_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def body(self) -> "IDirection":
        """Get the spin axis in the body frame."""
        return self._intf.get_property(AttitudeProfilePrecessingSpin._metadata, AttitudeProfilePrecessingSpin._get_body_metadata)

    _get_inertial_precession_metadata = { "offset" : _get_inertial_precession_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def inertial_precession(self) -> "IDirection":
        """Get the precession in the inertial frame."""
        return self._intf.get_property(AttitudeProfilePrecessingSpin._metadata, AttitudeProfilePrecessingSpin._get_inertial_precession_metadata)

    _get_precession_metadata = { "offset" : _get_precession_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def precession(self) -> "RotationRateAndOffset":
        """Get the precession rate and offset."""
        return self._intf.get_property(AttitudeProfilePrecessingSpin._metadata, AttitudeProfilePrecessingSpin._get_precession_metadata)

    _get_spin_metadata = { "offset" : _get_spin_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def spin(self) -> "RotationRateAndOffset":
        """Get the spin rate and offset."""
        return self._intf.get_property(AttitudeProfilePrecessingSpin._metadata, AttitudeProfilePrecessingSpin._get_spin_metadata)

    _get_nutation_angle_metadata = { "offset" : _get_nutation_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def nutation_angle(self) -> float:
        """Nutation angle by which the spin axis is offset from the angular momentum direction defined in the inertial frame. Uses Angle Dimension."""
        return self._intf.get_property(AttitudeProfilePrecessingSpin._metadata, AttitudeProfilePrecessingSpin._get_nutation_angle_metadata)

    _set_nutation_angle_metadata = { "offset" : _set_nutation_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @nutation_angle.setter
    def nutation_angle(self, nutation_angle:float) -> None:
        return self._intf.set_property(AttitudeProfilePrecessingSpin._metadata, AttitudeProfilePrecessingSpin._set_nutation_angle_metadata, nutation_angle)

    _get_reference_axes_metadata = { "offset" : _get_reference_axes_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reference_axes(self) -> str:
        """Reference axes with respect to which precessing spin is defined. The satellite's body axes or any axes dependent upon the satellite's body axes are invalid for this attitude profile; all other axes are valid choices for the reference axes."""
        return self._intf.get_property(AttitudeProfilePrecessingSpin._metadata, AttitudeProfilePrecessingSpin._get_reference_axes_metadata)

    _set_reference_axes_metadata = { "offset" : _set_reference_axes_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @reference_axes.setter
    def reference_axes(self, reference_axes:str) -> None:
        return self._intf.set_property(AttitudeProfilePrecessingSpin._metadata, AttitudeProfilePrecessingSpin._set_reference_axes_metadata, reference_axes)

    _get_smart_epoch_metadata = { "offset" : _get_smart_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def smart_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Get the epoch of the attitude profile."""
        return self._intf.get_property(AttitudeProfilePrecessingSpin._metadata, AttitudeProfilePrecessingSpin._get_smart_epoch_metadata)

    _property_names[body] = "body"
    _property_names[inertial_precession] = "inertial_precession"
    _property_names[precession] = "precession"
    _property_names[spin] = "spin"
    _property_names[nutation_angle] = "nutation_angle"
    _property_names[reference_axes] = "reference_axes"
    _property_names[smart_epoch] = "smart_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfilePrecessingSpin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfilePrecessingSpin)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfilePrecessingSpin, [AttitudeProfilePrecessingSpin, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((4818200334243960816, 12300901930685926820), AttitudeProfilePrecessingSpin)
agcls.AgTypeNameMap["AttitudeProfilePrecessingSpin"] = AttitudeProfilePrecessingSpin

class AttitudeProfileSpinAboutSettings(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """Shared interface for Spin About Nadir and Spin About Sun Vector profile parameters."""

    _num_methods = 5
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_rate_method_offset = 1
    _set_rate_method_offset = 2
    _get_offset_method_offset = 3
    _set_offset_method_offset = 4
    _get_smart_epoch_method_offset = 5
    _metadata = {
        "iid_data" : (4775958350286630844, 5525256844036529049),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileSpinAboutSettings)

    _get_rate_metadata = { "offset" : _get_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def rate(self) -> float:
        """Get or set the spin rate in revolutions per minute; positive values indicate rotation in a right-handed sense with respect to the spin axis. Uses AngleRate Dimension."""
        return self._intf.get_property(AttitudeProfileSpinAboutSettings._metadata, AttitudeProfileSpinAboutSettings._get_rate_metadata)

    _set_rate_metadata = { "offset" : _set_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @rate.setter
    def rate(self, rate:float) -> None:
        return self._intf.set_property(AttitudeProfileSpinAboutSettings._metadata, AttitudeProfileSpinAboutSettings._set_rate_metadata, rate)

    _get_offset_metadata = { "offset" : _get_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def offset(self) -> float:
        """Get or set the initial spin offset as an angular measure of the difference between the satellite orientation at the offset epoch and the orientation achieved by orienting the spin axis. Uses Angle Dimension."""
        return self._intf.get_property(AttitudeProfileSpinAboutSettings._metadata, AttitudeProfileSpinAboutSettings._get_offset_metadata)

    _set_offset_metadata = { "offset" : _set_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @offset.setter
    def offset(self, offset:float) -> None:
        return self._intf.set_property(AttitudeProfileSpinAboutSettings._metadata, AttitudeProfileSpinAboutSettings._set_offset_metadata, offset)

    _get_smart_epoch_metadata = { "offset" : _get_smart_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def smart_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Epoch of the offset."""
        return self._intf.get_property(AttitudeProfileSpinAboutSettings._metadata, AttitudeProfileSpinAboutSettings._get_smart_epoch_metadata)

    _property_names[rate] = "rate"
    _property_names[offset] = "offset"
    _property_names[smart_epoch] = "smart_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileSpinAboutSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileSpinAboutSettings)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileSpinAboutSettings, [AttitudeProfileSpinAboutSettings, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((4992926805215250268, 2838694368400316050), AttitudeProfileSpinAboutSettings)
agcls.AgTypeNameMap["AttitudeProfileSpinAboutSettings"] = AttitudeProfileSpinAboutSettings

class AttitudeProfileSpinning(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """Spinning attitude profile."""

    _num_methods = 7
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_body_method_offset = 1
    _get_inertial_method_offset = 2
    _get_rate_method_offset = 3
    _set_rate_method_offset = 4
    _get_offset_method_offset = 5
    _set_offset_method_offset = 6
    _get_smart_epoch_method_offset = 7
    _metadata = {
        "iid_data" : (4763817056404849308, 4839072522729676456),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileSpinning)

    _get_body_metadata = { "offset" : _get_body_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def body(self) -> "IDirection":
        """Get the spin axis in the body frame."""
        return self._intf.get_property(AttitudeProfileSpinning._metadata, AttitudeProfileSpinning._get_body_metadata)

    _get_inertial_metadata = { "offset" : _get_inertial_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def inertial(self) -> "IDirection":
        """Get the spin axis in the inertial frame."""
        return self._intf.get_property(AttitudeProfileSpinning._metadata, AttitudeProfileSpinning._get_inertial_metadata)

    _get_rate_metadata = { "offset" : _get_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def rate(self) -> float:
        """Spin rate: specified in revolutions per minute; positive values indicate rotation in a right-handed sense with respect to the spin axis. Uses AngleRate Dimension."""
        return self._intf.get_property(AttitudeProfileSpinning._metadata, AttitudeProfileSpinning._get_rate_metadata)

    _set_rate_metadata = { "offset" : _set_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @rate.setter
    def rate(self, rate:float) -> None:
        return self._intf.set_property(AttitudeProfileSpinning._metadata, AttitudeProfileSpinning._set_rate_metadata, rate)

    _get_offset_metadata = { "offset" : _get_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def offset(self) -> float:
        """Initial spin offset: an angular measure of the difference between the satellite orientation at the offset epoch from the orientation achieved by orienting the spin axis. Uses Angle Dimension."""
        return self._intf.get_property(AttitudeProfileSpinning._metadata, AttitudeProfileSpinning._get_offset_metadata)

    _set_offset_metadata = { "offset" : _set_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @offset.setter
    def offset(self, offset:float) -> None:
        return self._intf.set_property(AttitudeProfileSpinning._metadata, AttitudeProfileSpinning._set_offset_metadata, offset)

    _get_smart_epoch_metadata = { "offset" : _get_smart_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def smart_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Epoch of the offset."""
        return self._intf.get_property(AttitudeProfileSpinning._metadata, AttitudeProfileSpinning._get_smart_epoch_metadata)

    _property_names[body] = "body"
    _property_names[inertial] = "inertial"
    _property_names[rate] = "rate"
    _property_names[offset] = "offset"
    _property_names[smart_epoch] = "smart_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileSpinning."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileSpinning)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileSpinning, [AttitudeProfileSpinning, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((4732408585460747208, 8536241823435662245), AttitudeProfileSpinning)
agcls.AgTypeNameMap["AttitudeProfileSpinning"] = AttitudeProfileSpinning

class AttitudeProfileAlignmentOffset(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """Interface for alignment offset for various attitude profiles."""

    _num_methods = 2
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_alignment_offset_method_offset = 1
    _set_alignment_offset_method_offset = 2
    _metadata = {
        "iid_data" : (5677206994723170909, 4458060572985798843),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileAlignmentOffset)

    _get_alignment_offset_metadata = { "offset" : _get_alignment_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def alignment_offset(self) -> float:
        """Value of offset angle. Uses Angle Dimension."""
        return self._intf.get_property(AttitudeProfileAlignmentOffset._metadata, AttitudeProfileAlignmentOffset._get_alignment_offset_metadata)

    _set_alignment_offset_metadata = { "offset" : _set_alignment_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @alignment_offset.setter
    def alignment_offset(self, alignment_offset:float) -> None:
        return self._intf.set_property(AttitudeProfileAlignmentOffset._metadata, AttitudeProfileAlignmentOffset._set_alignment_offset_metadata, alignment_offset)

    _property_names[alignment_offset] = "alignment_offset"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileAlignmentOffset."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileAlignmentOffset)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileAlignmentOffset, [AttitudeProfileAlignmentOffset, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((5133499831689419331, 8555914645424905128), AttitudeProfileAlignmentOffset)
agcls.AgTypeNameMap["AttitudeProfileAlignmentOffset"] = AttitudeProfileAlignmentOffset

class AttitudeScheduleTimesCollection(SupportsDeleteCallback):
    """List of scheduled accesses."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _get_available_targets_method_offset = 7
    _metadata = {
        "iid_data" : (4973056497183756581, 17082388746228760448),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeScheduleTimesCollection)
    def __iter__(self):
        """Create an iterator for the AttitudeScheduleTimesCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "AttitudeScheduleTimesElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(AttitudeScheduleTimesCollection._metadata, AttitudeScheduleTimesCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "AttitudeScheduleTimesElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(AttitudeScheduleTimesCollection._metadata, AttitudeScheduleTimesCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(AttitudeScheduleTimesCollection._metadata, AttitudeScheduleTimesCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(AttitudeScheduleTimesCollection._metadata, AttitudeScheduleTimesCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(AttitudeScheduleTimesCollection._metadata, AttitudeScheduleTimesCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, target_path:str) -> "AttitudeScheduleTimesElement":
        """Add a new element to the collection."""
        return self._intf.invoke(AttitudeScheduleTimesCollection._metadata, AttitudeScheduleTimesCollection._add_metadata, target_path, OutArg())

    _get_available_targets_metadata = { "offset" : _get_available_targets_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_targets(self) -> list:
        """Return a list of available targets."""
        return self._intf.get_property(AttitudeScheduleTimesCollection._metadata, AttitudeScheduleTimesCollection._get_available_targets_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[available_targets] = "available_targets"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeScheduleTimesCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeScheduleTimesCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeScheduleTimesCollection, [AttitudeScheduleTimesCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4684824482284561495, 4721648005101126277), AttitudeScheduleTimesCollection)
agcls.AgTypeNameMap["AttitudeScheduleTimesCollection"] = AttitudeScheduleTimesCollection

class VehicleTargetTimes(SupportsDeleteCallback):
    """Target times for target pointing attitude."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_access_times_method_offset = 1
    _set_use_access_times_method_offset = 2
    _get_access_times_method_offset = 3
    _get_schedule_times_method_offset = 4
    _deconflict_method_offset = 5
    _metadata = {
        "iid_data" : (5615412247015591162, 141892995346685602),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleTargetTimes)

    _get_use_access_times_metadata = { "offset" : _get_use_access_times_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_access_times(self) -> bool:
        """Opt whether to use access times as target times; otherwise, scheduled times are used."""
        return self._intf.get_property(VehicleTargetTimes._metadata, VehicleTargetTimes._get_use_access_times_metadata)

    _set_use_access_times_metadata = { "offset" : _set_use_access_times_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_access_times.setter
    def use_access_times(self, use_access_times:bool) -> None:
        return self._intf.set_property(VehicleTargetTimes._metadata, VehicleTargetTimes._set_use_access_times_metadata, use_access_times)

    _get_access_times_metadata = { "offset" : _get_access_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_times(self) -> "AccessTargetTimesCollection":
        """Get the access times."""
        return self._intf.get_property(VehicleTargetTimes._metadata, VehicleTargetTimes._get_access_times_metadata)

    _get_schedule_times_metadata = { "offset" : _get_schedule_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def schedule_times(self) -> "AttitudeScheduleTimesCollection":
        """Get the scheduled times."""
        return self._intf.get_property(VehicleTargetTimes._metadata, VehicleTargetTimes._get_schedule_times_metadata)

    _deconflict_metadata = { "offset" : _deconflict_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def deconflict(self) -> None:
        """Deconflict intervals."""
        return self._intf.invoke(VehicleTargetTimes._metadata, VehicleTargetTimes._deconflict_metadata, )

    _property_names[use_access_times] = "use_access_times"
    _property_names[access_times] = "access_times"
    _property_names[schedule_times] = "schedule_times"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleTargetTimes."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleTargetTimes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleTargetTimes, [VehicleTargetTimes, ])

agcls.AgClassCatalog.add_catalog_entry((4613075274928777839, 8127080499794939070), VehicleTargetTimes)
agcls.AgTypeNameMap["VehicleTargetTimes"] = VehicleTargetTimes

class VehicleAttitudePointing(IVehiclePointing, SupportsDeleteCallback):
    """Target pointing attitude parameters."""

    _num_methods = 2
    _vtable_offset = IVehiclePointing._vtable_offset + IVehiclePointing._num_methods
    _get_advanced_method_offset = 1
    _get_target_slew_method_offset = 2
    _metadata = {
        "iid_data" : (5217975701505685555, 6282039708180966327),
        "vtable_reference" : IVehiclePointing._vtable_offset + IVehiclePointing._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudePointing)

    _get_advanced_metadata = { "offset" : _get_advanced_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def advanced(self) -> "VehicleAccessAdvancedSettings":
        """Return advanced targeting access computation properties."""
        return self._intf.get_property(VehicleAttitudePointing._metadata, VehicleAttitudePointing._get_advanced_metadata)

    _get_target_slew_metadata = { "offset" : _get_target_slew_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def target_slew(self) -> "VehicleAttitudeTargetSlew":
        """Define the time required for the vehicle to move from its basic attitude to its target pointing attitude, and to change from the target pointing attitude back to the basic attitude."""
        return self._intf.get_property(VehicleAttitudePointing._metadata, VehicleAttitudePointing._get_target_slew_metadata)

    _property_names[advanced] = "advanced"
    _property_names[target_slew] = "target_slew"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudePointing."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudePointing)
        IVehiclePointing.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehiclePointing._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudePointing, [VehicleAttitudePointing, IVehiclePointing])

agcls.AgClassCatalog.add_catalog_entry((4980177498527324404, 14688875163144107940), VehicleAttitudePointing)
agcls.AgTypeNameMap["VehicleAttitudePointing"] = VehicleAttitudePointing

class VehicleDuration(SupportsDeleteCallback):
    """Look ahead and look behind duration options."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_look_ahead_method_offset = 1
    _set_look_ahead_method_offset = 2
    _get_look_behind_method_offset = 3
    _set_look_behind_method_offset = 4
    _metadata = {
        "iid_data" : (5442534727893602258, 4336656424175423362),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleDuration)

    _get_look_ahead_metadata = { "offset" : _get_look_ahead_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def look_ahead(self) -> float:
        """Look ahead duration: STK calculates attitude at a future point in time defined by adding the look ahead duration to the time of the most current data point. Uses Time Dimension. Valid value is between 1.0 and 1000000.0 seconds."""
        return self._intf.get_property(VehicleDuration._metadata, VehicleDuration._get_look_ahead_metadata)

    _set_look_ahead_metadata = { "offset" : _set_look_ahead_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @look_ahead.setter
    def look_ahead(self, look_ahead:float) -> None:
        return self._intf.set_property(VehicleDuration._metadata, VehicleDuration._set_look_ahead_metadata, look_ahead)

    _get_look_behind_metadata = { "offset" : _get_look_behind_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def look_behind(self) -> float:
        """Look behind duration: specifies how long the temporary data points are to be stored by subtracting the look behind duration from the time of the most current data point. Uses Time Dimension."""
        return self._intf.get_property(VehicleDuration._metadata, VehicleDuration._get_look_behind_metadata)

    _set_look_behind_metadata = { "offset" : _set_look_behind_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @look_behind.setter
    def look_behind(self, look_behind:float) -> None:
        return self._intf.set_property(VehicleDuration._metadata, VehicleDuration._set_look_behind_metadata, look_behind)

    _property_names[look_ahead] = "look_ahead"
    _property_names[look_behind] = "look_behind"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleDuration."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleDuration)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleDuration, [VehicleDuration, ])

agcls.AgClassCatalog.add_catalog_entry((4910977087165924627, 6864093077709085328), VehicleDuration)
agcls.AgTypeNameMap["VehicleDuration"] = VehicleDuration

class AttitudeStandardBasic(SupportsDeleteCallback):
    """Basic attitude profile."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_profile_type_method_offset = 1
    _set_profile_type_method_offset = 2
    _is_profile_type_supported_method_offset = 3
    _get_profile_supported_types_method_offset = 4
    _get_profile_method_offset = 5
    _metadata = {
        "iid_data" : (4830944278769913351, 18044549518765760447),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeStandardBasic)

    _get_profile_type_metadata = { "offset" : _get_profile_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AttitudeProfile),) }
    @property
    def profile_type(self) -> "AttitudeProfile":
        """Get basic attitude profile type."""
        return self._intf.get_property(AttitudeStandardBasic._metadata, AttitudeStandardBasic._get_profile_type_metadata)

    _set_profile_type_metadata = { "offset" : _set_profile_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AttitudeProfile),) }
    def set_profile_type(self, profile:"AttitudeProfile") -> None:
        """Set basic attitude profile type."""
        return self._intf.invoke(AttitudeStandardBasic._metadata, AttitudeStandardBasic._set_profile_type_metadata, profile)

    _is_profile_type_supported_metadata = { "offset" : _is_profile_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(AttitudeProfile), agmarshall.VariantBoolArg,) }
    def is_profile_type_supported(self, profile:"AttitudeProfile") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(AttitudeStandardBasic._metadata, AttitudeStandardBasic._is_profile_type_supported_metadata, profile, OutArg())

    _get_profile_supported_types_metadata = { "offset" : _get_profile_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def profile_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(AttitudeStandardBasic._metadata, AttitudeStandardBasic._get_profile_supported_types_metadata)

    _get_profile_metadata = { "offset" : _get_profile_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def profile(self) -> "IVehicleAttitudeProfile":
        """Return the profile interface."""
        return self._intf.get_property(AttitudeStandardBasic._metadata, AttitudeStandardBasic._get_profile_metadata)

    _property_names[profile_type] = "profile_type"
    _property_names[profile_supported_types] = "profile_supported_types"
    _property_names[profile] = "profile"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeStandardBasic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeStandardBasic)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeStandardBasic, [AttitudeStandardBasic, ])

agcls.AgClassCatalog.add_catalog_entry((5373804418187763268, 16009112810832444571), AttitudeStandardBasic)
agcls.AgTypeNameMap["AttitudeStandardBasic"] = AttitudeStandardBasic

class VehicleAttitudeExternal(SupportsDeleteCallback):
    """Interface for using an external attitude (.a) file."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enabled_method_offset = 1
    _get_start_time_method_offset = 2
    _get_stop_time_method_offset = 3
    _get_filename_method_offset = 4
    _reload_method_offset = 5
    _load_method_offset = 6
    _disable_method_offset = 7
    _get_file_path_method_offset = 8
    _get_override_method_offset = 9
    _set_override_method_offset = 10
    _get_attitude_start_epoch_method_offset = 11
    _get_message_level_method_offset = 12
    _set_message_level_method_offset = 13
    _metadata = {
        "iid_data" : (5495037991053655062, 18320956007123260317),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeExternal)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Opt whether to use an external attitude file."""
        return self._intf.get_property(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._get_enabled_metadata)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Get the start time for the external attitude data. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._get_start_time_metadata)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Get the stop time for the external attitude data. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._get_stop_time_metadata)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """External (.a) file name containing attitude data."""
        return self._intf.get_property(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._get_filename_metadata)

    _reload_metadata = { "offset" : _reload_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reload(self) -> None:
        """Reload the file."""
        return self._intf.invoke(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._reload_metadata, )

    _load_metadata = { "offset" : _load_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def load(self, filename:str) -> None:
        """Load the file."""
        return self._intf.invoke(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._load_metadata, filename)

    _disable_metadata = { "offset" : _disable_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def disable(self) -> None:
        """Unload the file."""
        return self._intf.invoke(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._disable_metadata, )

    _get_file_path_metadata = { "offset" : _get_file_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file_path(self) -> str:
        """External (.a) full file name and path containing attitude data."""
        return self._intf.get_property(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._get_file_path_metadata)

    _get_override_metadata = { "offset" : _get_override_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override(self) -> bool:
        """Opt whether to override times contained in the external file."""
        return self._intf.get_property(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._get_override_metadata)

    _set_override_metadata = { "offset" : _set_override_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override.setter
    def override(self, override:bool) -> None:
        return self._intf.set_property(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._set_override_metadata, override)

    _get_attitude_start_epoch_metadata = { "offset" : _get_attitude_start_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attitude_start_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """If overriding the times contained in the external file, specifies the time of the first attitude point."""
        return self._intf.get_property(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._get_attitude_start_epoch_metadata)

    _get_message_level_metadata = { "offset" : _get_message_level_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ExternalFileMessageLevelType),) }
    @property
    def message_level(self) -> "ExternalFileMessageLevelType":
        """Message level used to report messages during file loading."""
        return self._intf.get_property(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._get_message_level_metadata)

    _set_message_level_metadata = { "offset" : _set_message_level_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ExternalFileMessageLevelType),) }
    @message_level.setter
    def message_level(self, msg_level:"ExternalFileMessageLevelType") -> None:
        return self._intf.set_property(VehicleAttitudeExternal._metadata, VehicleAttitudeExternal._set_message_level_metadata, msg_level)

    _property_names[enabled] = "enabled"
    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[filename] = "filename"
    _property_names[file_path] = "file_path"
    _property_names[override] = "override"
    _property_names[attitude_start_epoch] = "attitude_start_epoch"
    _property_names[message_level] = "message_level"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeExternal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeExternal)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeExternal, [VehicleAttitudeExternal, ])

agcls.AgClassCatalog.add_catalog_entry((5136002629264173866, 7706128913602470560), VehicleAttitudeExternal)
agcls.AgTypeNameMap["VehicleAttitudeExternal"] = VehicleAttitudeExternal

class VehicleAttitudeRealTime(IVehicleAttitude, SupportsDeleteCallback):
    """Real time attitude interface."""

    _num_methods = 12
    _vtable_offset = IVehicleAttitude._vtable_offset + IVehicleAttitude._num_methods
    _get_look_ahead_method_method_offset = 1
    _set_look_ahead_method_method_offset = 2
    _get_duration_method_offset = 3
    _add_quaternion_relative_to_central_body_fixed_method_offset = 4
    _add_quaternion_method_offset = 5
    _add_ypl_angles_method_offset = 6
    _add_ypr_angles_relative_to_central_body_inertial_method_offset = 7
    _add_euler_angles_method_offset = 8
    _clear_all_method_offset = 9
    _get_data_reference_method_offset = 10
    _get_block_factor_method_offset = 11
    _set_block_factor_method_offset = 12
    _metadata = {
        "iid_data" : (5445787534430994862, 534826666182112183),
        "vtable_reference" : IVehicleAttitude._vtable_offset + IVehicleAttitude._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeRealTime)

    _get_look_ahead_method_metadata = { "offset" : _get_look_ahead_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleLookAheadMethod),) }
    @property
    def look_ahead_method(self) -> "VehicleLookAheadMethod":
        """Look ahead method can be extrapolate or hold."""
        return self._intf.get_property(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._get_look_ahead_method_metadata)

    _set_look_ahead_method_metadata = { "offset" : _set_look_ahead_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleLookAheadMethod),) }
    @look_ahead_method.setter
    def look_ahead_method(self, look_ahead_method:"VehicleLookAheadMethod") -> None:
        return self._intf.set_property(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._set_look_ahead_method_metadata, look_ahead_method)

    _get_duration_metadata = { "offset" : _get_duration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def duration(self) -> "VehicleDuration":
        """Get look ahead/look behind duration."""
        return self._intf.get_property(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._get_duration_metadata)

    _add_quaternion_relative_to_central_body_fixed_metadata = { "offset" : _add_quaternion_relative_to_central_body_fixed_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add_quaternion_relative_to_central_body_fixed(self, time:typing.Any, q1:float, q2:float, q3:float, q4:float) -> None:
        """Add attitude data based on a time-ordered set of quaternions interpreted relative to CBF."""
        return self._intf.invoke(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._add_quaternion_relative_to_central_body_fixed_metadata, time, q1, q2, q3, q4)

    _add_quaternion_metadata = { "offset" : _add_quaternion_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add_quaternion(self, time:typing.Any, q1:float, q2:float, q3:float, q4:float) -> None:
        """Add attitude data based on a time-ordered set of quaternions."""
        return self._intf.invoke(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._add_quaternion_metadata, time, q1, q2, q3, q4)

    _add_ypl_angles_metadata = { "offset" : _add_ypl_angles_method_offset,
            "arg_types" : (agcom.Variant, agcom.BSTR, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.BStrArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add_ypl_angles(self, time:typing.Any, sequence:str, yaw:float, pitch:float, roll:float) -> None:
        """Add attitude data based on a time-ordered set of yaw, pitch and roll angles."""
        return self._intf.invoke(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._add_ypl_angles_metadata, time, sequence, yaw, pitch, roll)

    _add_ypr_angles_relative_to_central_body_inertial_metadata = { "offset" : _add_ypr_angles_relative_to_central_body_inertial_method_offset,
            "arg_types" : (agcom.Variant, agcom.BSTR, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.BStrArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add_ypr_angles_relative_to_central_body_inertial(self, time:typing.Any, sequence:str, yaw:float, pitch:float, roll:float) -> None:
        """Add attitude data based on a time-ordered set of yaw, pitch, roll angles in the J2000 ECI coordinate system."""
        return self._intf.invoke(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._add_ypr_angles_relative_to_central_body_inertial_metadata, time, sequence, yaw, pitch, roll)

    _add_euler_angles_metadata = { "offset" : _add_euler_angles_method_offset,
            "arg_types" : (agcom.Variant, agcom.BSTR, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.BStrArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add_euler_angles(self, time:typing.Any, sequence:str, angle1:float, angle2:float, angle3:float) -> None:
        """Add attitude data based on a time-ordered set of Euler angles."""
        return self._intf.invoke(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._add_euler_angles_metadata, time, sequence, angle1, angle2, angle3)

    _clear_all_metadata = { "offset" : _clear_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear_all(self) -> None:
        """Clear attitude data created using AddXXX commands."""
        return self._intf.invoke(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._clear_all_metadata, )

    _get_data_reference_metadata = { "offset" : _get_data_reference_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_reference(self) -> "VehicleAttitudeRealTimeDataReference":
        """Return a reference attitude profile for incoming attitude data."""
        return self._intf.get_property(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._get_data_reference_metadata)

    _get_block_factor_metadata = { "offset" : _get_block_factor_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def block_factor(self) -> int:
        """A block factor used to help size allocated memory used to hold the history."""
        return self._intf.get_property(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._get_block_factor_metadata)

    _set_block_factor_metadata = { "offset" : _set_block_factor_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @block_factor.setter
    def block_factor(self, block_factor:int) -> None:
        return self._intf.set_property(VehicleAttitudeRealTime._metadata, VehicleAttitudeRealTime._set_block_factor_metadata, block_factor)

    _property_names[look_ahead_method] = "look_ahead_method"
    _property_names[duration] = "duration"
    _property_names[data_reference] = "data_reference"
    _property_names[block_factor] = "block_factor"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeRealTime."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeRealTime)
        IVehicleAttitude.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitude._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeRealTime, [VehicleAttitudeRealTime, IVehicleAttitude])

agcls.AgClassCatalog.add_catalog_entry((5595534453667211955, 15925922992531907716), VehicleAttitudeRealTime)
agcls.AgTypeNameMap["VehicleAttitudeRealTime"] = VehicleAttitudeRealTime

class AttitudeProfileCoordinatedTurn(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """Coordinated turn attitude profile for aircraft."""

    _num_methods = 2
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_time_offset_method_offset = 1
    _set_time_offset_method_offset = 2
    _metadata = {
        "iid_data" : (5161986973699217198, 10107671500725553083),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileCoordinatedTurn)

    _get_time_offset_metadata = { "offset" : _get_time_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_offset(self) -> float:
        """Offset used to shift all basic attitude segments in time. Uses Time Dimension."""
        return self._intf.get_property(AttitudeProfileCoordinatedTurn._metadata, AttitudeProfileCoordinatedTurn._get_time_offset_metadata)

    _set_time_offset_metadata = { "offset" : _set_time_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_offset.setter
    def time_offset(self, time_offset:float) -> None:
        return self._intf.set_property(AttitudeProfileCoordinatedTurn._metadata, AttitudeProfileCoordinatedTurn._set_time_offset_metadata, time_offset)

    _property_names[time_offset] = "time_offset"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileCoordinatedTurn."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileCoordinatedTurn)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileCoordinatedTurn, [AttitudeProfileCoordinatedTurn, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((4794133001446107875, 7254238717305669544), AttitudeProfileCoordinatedTurn)
agcls.AgTypeNameMap["AttitudeProfileCoordinatedTurn"] = AttitudeProfileCoordinatedTurn

class AttitudeProfileYawToNadir(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """A profile useful for satellites with highly elliptical orbits."""

    _num_methods = 1
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_inertial_method_offset = 1
    _metadata = {
        "iid_data" : (5332784833375021308, 7665032463699316629),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileYawToNadir)

    _get_inertial_metadata = { "offset" : _get_inertial_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def inertial(self) -> "IDirection":
        """Get the body-fixed Z axis is fixed in inertial space using the selected coordinate type. The X axis is then constrained, via motion in the yaw sense about the body-fixed Z axis, toward the nadir direction."""
        return self._intf.get_property(AttitudeProfileYawToNadir._metadata, AttitudeProfileYawToNadir._get_inertial_metadata)

    _property_names[inertial] = "inertial"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileYawToNadir."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileYawToNadir)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileYawToNadir, [AttitudeProfileYawToNadir, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((4856498043952207622, 15020980744527166601), AttitudeProfileYawToNadir)
agcls.AgTypeNameMap["AttitudeProfileYawToNadir"] = AttitudeProfileYawToNadir

class VehicleAttitudeTrendingControlAviator(SupportsDeleteCallback):
    """Trending controls for Aviator attitude."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_trends_method_offset = 1
    _set_compute_trends_method_offset = 2
    _get_time_tolerance_method_offset = 3
    _set_time_tolerance_method_offset = 4
    _get_angle_rate_tolerance_method_offset = 5
    _set_angle_rate_tolerance_method_offset = 6
    _get_kink_angle_method_offset = 7
    _set_kink_angle_method_offset = 8
    _get_use_yaw_trend_method_offset = 9
    _set_use_yaw_trend_method_offset = 10
    _get_use_pitch_trend_method_offset = 11
    _set_use_pitch_trend_method_offset = 12
    _get_use_roll_trend_method_offset = 13
    _set_use_roll_trend_method_offset = 14
    _metadata = {
        "iid_data" : (5722498670821478107, 13639223068683654828),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeTrendingControlAviator)

    _get_compute_trends_metadata = { "offset" : _get_compute_trends_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_trends(self) -> bool:
        """Flag controlling whether trends in the attitude angles should be detected and included as trending control times."""
        return self._intf.get_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._get_compute_trends_metadata)

    _set_compute_trends_metadata = { "offset" : _set_compute_trends_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_trends.setter
    def compute_trends(self, value:bool) -> None:
        return self._intf.set_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._set_compute_trends_metadata, value)

    _get_time_tolerance_metadata = { "offset" : _get_time_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_tolerance(self) -> float:
        """Minimum time allowed between each trending control time. Uses Time Dimension."""
        return self._intf.get_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._get_time_tolerance_metadata)

    _set_time_tolerance_metadata = { "offset" : _set_time_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_tolerance.setter
    def time_tolerance(self, value:float) -> None:
        return self._intf.set_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._set_time_tolerance_metadata, value)

    _get_angle_rate_tolerance_metadata = { "offset" : _get_angle_rate_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def angle_rate_tolerance(self) -> float:
        """Minimum angle rate used to detect an increasing/decreasing trend. Rates lower than this treat the angle trend as flat. Uses AngleRate Dimension."""
        return self._intf.get_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._get_angle_rate_tolerance_metadata)

    _set_angle_rate_tolerance_metadata = { "offset" : _set_angle_rate_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @angle_rate_tolerance.setter
    def angle_rate_tolerance(self, value:float) -> None:
        return self._intf.set_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._set_angle_rate_tolerance_metadata, value)

    _get_kink_angle_metadata = { "offset" : _get_kink_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def kink_angle(self) -> float:
        """Minimum angle between the linear trends in the samples that indicates sufficient rate change to warrant creation of a trending control time. Uses Angle Dimension."""
        return self._intf.get_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._get_kink_angle_metadata)

    _set_kink_angle_metadata = { "offset" : _set_kink_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @kink_angle.setter
    def kink_angle(self, value:float) -> None:
        return self._intf.set_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._set_kink_angle_metadata, value)

    _get_use_yaw_trend_metadata = { "offset" : _get_use_yaw_trend_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_yaw_trend(self) -> bool:
        """Flag controlling whether yaw is considered when computing trends in attitude angles."""
        return self._intf.get_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._get_use_yaw_trend_metadata)

    _set_use_yaw_trend_metadata = { "offset" : _set_use_yaw_trend_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_yaw_trend.setter
    def use_yaw_trend(self, value:bool) -> None:
        return self._intf.set_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._set_use_yaw_trend_metadata, value)

    _get_use_pitch_trend_metadata = { "offset" : _get_use_pitch_trend_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_pitch_trend(self) -> bool:
        """Flag controlling whether pitch is considered when computing trends in attitude angles."""
        return self._intf.get_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._get_use_pitch_trend_metadata)

    _set_use_pitch_trend_metadata = { "offset" : _set_use_pitch_trend_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_pitch_trend.setter
    def use_pitch_trend(self, value:bool) -> None:
        return self._intf.set_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._set_use_pitch_trend_metadata, value)

    _get_use_roll_trend_metadata = { "offset" : _get_use_roll_trend_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_roll_trend(self) -> bool:
        """Flag controlling whether roll is considered when computing trends in attitude angles."""
        return self._intf.get_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._get_use_roll_trend_metadata)

    _set_use_roll_trend_metadata = { "offset" : _set_use_roll_trend_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_roll_trend.setter
    def use_roll_trend(self, value:bool) -> None:
        return self._intf.set_property(VehicleAttitudeTrendingControlAviator._metadata, VehicleAttitudeTrendingControlAviator._set_use_roll_trend_metadata, value)

    _property_names[compute_trends] = "compute_trends"
    _property_names[time_tolerance] = "time_tolerance"
    _property_names[angle_rate_tolerance] = "angle_rate_tolerance"
    _property_names[kink_angle] = "kink_angle"
    _property_names[use_yaw_trend] = "use_yaw_trend"
    _property_names[use_pitch_trend] = "use_pitch_trend"
    _property_names[use_roll_trend] = "use_roll_trend"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeTrendingControlAviator."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeTrendingControlAviator)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeTrendingControlAviator, [VehicleAttitudeTrendingControlAviator, ])

agcls.AgClassCatalog.add_catalog_entry((5086459229248744098, 16180262731394590856), VehicleAttitudeTrendingControlAviator)
agcls.AgTypeNameMap["VehicleAttitudeTrendingControlAviator"] = VehicleAttitudeTrendingControlAviator

class AttitudeProfileAviator(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """The profile used for Aviator aircraft."""

    _num_methods = 1
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_trending_controls_method_offset = 1
    _metadata = {
        "iid_data" : (4989702103745672235, 5347317185612814525),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileAviator)

    _get_trending_controls_metadata = { "offset" : _get_trending_controls_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trending_controls(self) -> "VehicleAttitudeTrendingControlAviator":
        """Get the attitude trending controls."""
        return self._intf.get_property(AttitudeProfileAviator._metadata, AttitudeProfileAviator._get_trending_controls_metadata)

    _property_names[trending_controls] = "trending_controls"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileAviator."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileAviator)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileAviator, [AttitudeProfileAviator, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((5466268294286373500, 10551845880242455482), AttitudeProfileAviator)
agcls.AgTypeNameMap["AttitudeProfileAviator"] = AttitudeProfileAviator

class VehicleTargetPointingElement(SupportsDeleteCallback):
    """Target pointing data for target pointing attitude."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_target_method_offset = 1
    _get_aligned_vector_method_offset = 2
    _get_constrained_vector_method_offset = 3
    _get_constrained_vector_reference_method_offset = 4
    _set_constrained_vector_reference_method_offset = 5
    _reset_constrained_vector_reference_method_offset = 6
    _get_available_constrained_vectors_method_offset = 7
    _get_latitude_method_offset = 8
    _get_longitude_method_offset = 9
    _get_altitude_method_offset = 10
    _get_intervals_method_offset = 11
    _metadata = {
        "iid_data" : (4627611220034062924, 11320642161098339758),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleTargetPointingElement)

    _get_target_metadata = { "offset" : _get_target_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def target(self) -> "LinkToObject":
        """Get a reference to the targeted object."""
        return self._intf.get_property(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._get_target_metadata)

    _get_aligned_vector_metadata = { "offset" : _get_aligned_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def aligned_vector(self) -> "IDirection":
        """Get the aligned vector."""
        return self._intf.get_property(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._get_aligned_vector_metadata)

    _get_constrained_vector_metadata = { "offset" : _get_constrained_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def constrained_vector(self) -> "IDirection":
        """Get the constrained vector."""
        return self._intf.get_property(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._get_constrained_vector_metadata)

    _get_constrained_vector_reference_metadata = { "offset" : _get_constrained_vector_reference_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def constrained_vector_reference(self) -> str:
        """Get or set the reference for the constrained vector."""
        return self._intf.get_property(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._get_constrained_vector_reference_metadata)

    _set_constrained_vector_reference_metadata = { "offset" : _set_constrained_vector_reference_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @constrained_vector_reference.setter
    def constrained_vector_reference(self, reference_vec:str) -> None:
        return self._intf.set_property(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._set_constrained_vector_reference_metadata, reference_vec)

    _reset_constrained_vector_reference_metadata = { "offset" : _reset_constrained_vector_reference_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    def reset_constrained_vector_reference(self) -> bool:
        """Set the constrained vector reference to a default value. Returns true if succeeded, otherwise return false."""
        return self._intf.invoke(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._reset_constrained_vector_reference_metadata, OutArg())

    _get_available_constrained_vectors_metadata = { "offset" : _get_available_constrained_vectors_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_constrained_vectors(self) -> list:
        """Return the available constrained vectors."""
        return self._intf.get_property(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._get_available_constrained_vectors_metadata)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Get the LLA position's latitude. Uses Latitude Dimension."""
        return self._intf.get_property(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._get_latitude_metadata)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Get the LLA position's longitude. Uses Longitude Dimension."""
        return self._intf.get_property(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._get_longitude_metadata)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Get the LLA position's altitude. Uses Distance Dimension."""
        return self._intf.get_property(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._get_altitude_metadata)

    _get_intervals_metadata = { "offset" : _get_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def intervals(self) -> "VehicleTargetPointingIntervalCollection":
        """Return a list of scheduled time intervals for the current target."""
        return self._intf.get_property(VehicleTargetPointingElement._metadata, VehicleTargetPointingElement._get_intervals_metadata)

    _property_names[target] = "target"
    _property_names[aligned_vector] = "aligned_vector"
    _property_names[constrained_vector] = "constrained_vector"
    _property_names[constrained_vector_reference] = "constrained_vector_reference"
    _property_names[available_constrained_vectors] = "available_constrained_vectors"
    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[altitude] = "altitude"
    _property_names[intervals] = "intervals"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleTargetPointingElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleTargetPointingElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleTargetPointingElement, [VehicleTargetPointingElement, ])

agcls.AgClassCatalog.add_catalog_entry((4871716649799471985, 4150838039911986876), VehicleTargetPointingElement)
agcls.AgTypeNameMap["VehicleTargetPointingElement"] = VehicleTargetPointingElement

class VehicleTargetPointingCollection(SupportsDeleteCallback):
    """Attitude Targets."""

    _num_methods = 10
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _get_available_targets_method_offset = 7
    _contains_method_offset = 8
    _remove_method_offset = 9
    _add_position_as_target_method_offset = 10
    _metadata = {
        "iid_data" : (5680026561082206252, 14693581563211916700),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleTargetPointingCollection)
    def __iter__(self):
        """Create an iterator for the VehicleTargetPointingCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleTargetPointingElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleTargetPointingCollection._metadata, VehicleTargetPointingCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleTargetPointingElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleTargetPointingCollection._metadata, VehicleTargetPointingCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleTargetPointingCollection._metadata, VehicleTargetPointingCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleTargetPointingCollection._metadata, VehicleTargetPointingCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleTargetPointingCollection._metadata, VehicleTargetPointingCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, short_path:str) -> "VehicleTargetPointingElement":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleTargetPointingCollection._metadata, VehicleTargetPointingCollection._add_metadata, short_path, OutArg())

    _get_available_targets_metadata = { "offset" : _get_available_targets_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_targets(self) -> list:
        """Return an array of available targets."""
        return self._intf.get_property(VehicleTargetPointingCollection._metadata, VehicleTargetPointingCollection._get_available_targets_metadata)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def contains(self, path:str) -> bool:
        """Return true if the collection contains the specified target."""
        return self._intf.invoke(VehicleTargetPointingCollection._metadata, VehicleTargetPointingCollection._contains_metadata, path, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove(self, path:str) -> None:
        """Remove the element using the object path."""
        return self._intf.invoke(VehicleTargetPointingCollection._metadata, VehicleTargetPointingCollection._remove_metadata, path)

    _add_position_as_target_metadata = { "offset" : _add_position_as_target_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add_position_as_target(self, latitude:float, longitude:float, altitude:float) -> "VehicleTargetPointingElement":
        """Add the specified LLA position to the collection of targets. Latitude param uses Latitude Dimension, Longitude param uses Longitude Dimension. Alt param uses Distance Dimension."""
        return self._intf.invoke(VehicleTargetPointingCollection._metadata, VehicleTargetPointingCollection._add_position_as_target_metadata, latitude, longitude, altitude, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[available_targets] = "available_targets"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleTargetPointingCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleTargetPointingCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleTargetPointingCollection, [VehicleTargetPointingCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5568156758963049278, 18277234930407092368), VehicleTargetPointingCollection)
agcls.AgTypeNameMap["VehicleTargetPointingCollection"] = VehicleTargetPointingCollection

class AttitudeTorque(SupportsDeleteCallback):
    """Torque file to use in defining integrated attitude."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_torque_file_method_offset = 1
    _set_use_torque_file_method_offset = 2
    _get_torque_filename_method_offset = 3
    _set_torque_filename_method_offset = 4
    _metadata = {
        "iid_data" : (4770965185860388024, 5197381863378985107),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeTorque)

    _get_use_torque_file_metadata = { "offset" : _get_use_torque_file_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_torque_file(self) -> bool:
        """Opt whether to use an external torque file."""
        return self._intf.get_property(AttitudeTorque._metadata, AttitudeTorque._get_use_torque_file_metadata)

    _set_use_torque_file_metadata = { "offset" : _set_use_torque_file_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_torque_file.setter
    def use_torque_file(self, use_torque_file:bool) -> None:
        return self._intf.set_property(AttitudeTorque._metadata, AttitudeTorque._set_use_torque_file_metadata, use_torque_file)

    _get_torque_filename_metadata = { "offset" : _get_torque_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def torque_filename(self) -> str:
        """Name of external torque (.tq) file. Torque files define a time-ordered list of body-fixed torques to be applied to the satellite."""
        return self._intf.get_property(AttitudeTorque._metadata, AttitudeTorque._get_torque_filename_metadata)

    _set_torque_filename_metadata = { "offset" : _set_torque_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @torque_filename.setter
    def torque_filename(self, torque_file:str) -> None:
        return self._intf.set_property(AttitudeTorque._metadata, AttitudeTorque._set_torque_filename_metadata, torque_file)

    _property_names[use_torque_file] = "use_torque_file"
    _property_names[torque_filename] = "torque_filename"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeTorque."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeTorque)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeTorque, [AttitudeTorque, ])

agcls.AgClassCatalog.add_catalog_entry((4876202678965163098, 217561276813178270), AttitudeTorque)
agcls.AgTypeNameMap["AttitudeTorque"] = AttitudeTorque

class VehicleIntegratedAttitude(SupportsDeleteCallback):
    """Integrated Attitude interface generates an external attitude file for a satellite by numerically integrating Euler's equations for the current satellite."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_time_method_offset = 1
    _set_start_time_method_offset = 2
    _get_stop_time_method_offset = 3
    _set_stop_time_method_offset = 4
    _get_epoch_method_offset = 5
    _set_epoch_method_offset = 6
    _get_orientation_method_offset = 7
    _get_wx_method_offset = 8
    _set_wx_method_offset = 9
    _get_wy_method_offset = 10
    _set_wy_method_offset = 11
    _get_wz_method_offset = 12
    _set_wz_method_offset = 13
    _get_torque_method_offset = 14
    _initialize_from_attitude_method_offset = 15
    _save_to_file_method_offset = 16
    _metadata = {
        "iid_data" : (4779962754780677161, 1345606234568293026),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleIntegratedAttitude)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Start time for the attitude file. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._get_start_time_metadata)

    _set_start_time_metadata = { "offset" : _set_start_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_time.setter
    def start_time(self, start_time:typing.Any) -> None:
        return self._intf.set_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._set_start_time_metadata, start_time)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Stop time for the attitude file. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._get_stop_time_metadata)

    _set_stop_time_metadata = { "offset" : _set_stop_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop_time.setter
    def stop_time(self, stop_time:typing.Any) -> None:
        return self._intf.set_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._set_stop_time_metadata, stop_time)

    _get_epoch_metadata = { "offset" : _get_epoch_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def epoch(self) -> typing.Any:
        """Epoch of the attitude file. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._get_epoch_metadata)

    _set_epoch_metadata = { "offset" : _set_epoch_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @epoch.setter
    def epoch(self, epoch:typing.Any) -> None:
        return self._intf.set_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._set_epoch_metadata, epoch)

    _get_orientation_metadata = { "offset" : _get_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orientation(self) -> "IOrientation":
        """Get the initial orientation of the satellite in the Earth Inertial (ECI) frame."""
        return self._intf.get_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._get_orientation_metadata)

    _get_wx_metadata = { "offset" : _get_wx_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def wx(self) -> float:
        """Body fixed wx rate: initial angular velocity rate about the satellite's X axis. Uses AngleRate Dimension."""
        return self._intf.get_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._get_wx_metadata)

    _set_wx_metadata = { "offset" : _set_wx_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @wx.setter
    def wx(self, wx:float) -> None:
        return self._intf.set_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._set_wx_metadata, wx)

    _get_wy_metadata = { "offset" : _get_wy_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def wy(self) -> float:
        """Body fixed wy rate:  initial angular velocity rate about the satellite's Y axis. Uses AngleRate Dimension."""
        return self._intf.get_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._get_wy_metadata)

    _set_wy_metadata = { "offset" : _set_wy_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @wy.setter
    def wy(self, wy:float) -> None:
        return self._intf.set_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._set_wy_metadata, wy)

    _get_wz_metadata = { "offset" : _get_wz_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def wz(self) -> float:
        """Body fixed wz rate:  initial angular velocity rate about the satellite's Z axis. Uses AngleRate Dimension."""
        return self._intf.get_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._get_wz_metadata)

    _set_wz_metadata = { "offset" : _set_wz_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @wz.setter
    def wz(self, wz:float) -> None:
        return self._intf.set_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._set_wz_metadata, wz)

    _get_torque_metadata = { "offset" : _get_torque_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def torque(self) -> "AttitudeTorque":
        """Get the external torque data."""
        return self._intf.get_property(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._get_torque_metadata)

    _initialize_from_attitude_metadata = { "offset" : _initialize_from_attitude_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def initialize_from_attitude(self) -> None:
        """Initialize the parameters using a satellite's attitude."""
        return self._intf.invoke(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._initialize_from_attitude_metadata, )

    _save_to_file_metadata = { "offset" : _save_to_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def save_to_file(self, filename:str) -> None:
        """Generate an external attitude file for a satellite by numerically integrating Euler's equations for the current satellite and save results to the specified file."""
        return self._intf.invoke(VehicleIntegratedAttitude._metadata, VehicleIntegratedAttitude._save_to_file_metadata, filename)

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[epoch] = "epoch"
    _property_names[orientation] = "orientation"
    _property_names[wx] = "wx"
    _property_names[wy] = "wy"
    _property_names[wz] = "wz"
    _property_names[torque] = "torque"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleIntegratedAttitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleIntegratedAttitude)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleIntegratedAttitude, [VehicleIntegratedAttitude, ])

agcls.AgClassCatalog.add_catalog_entry((5142503977850423706, 10455311225574409859), VehicleIntegratedAttitude)
agcls.AgTypeNameMap["VehicleIntegratedAttitude"] = VehicleIntegratedAttitude

class AttitudeScheduleTimesElement(SupportsDeleteCallback):
    """Parameters for scheduled times for target pointing attitude."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_method_offset = 1
    _set_start_method_offset = 2
    _get_stop_method_offset = 3
    _set_stop_method_offset = 4
    _get_target_method_offset = 5
    _metadata = {
        "iid_data" : (4867236641792499261, 6695529821614462338),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeScheduleTimesElement)

    _get_start_metadata = { "offset" : _get_start_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start(self) -> typing.Any:
        """Start time. Uses DateFormat Dimension."""
        return self._intf.get_property(AttitudeScheduleTimesElement._metadata, AttitudeScheduleTimesElement._get_start_metadata)

    _set_start_metadata = { "offset" : _set_start_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start.setter
    def start(self, start:typing.Any) -> None:
        return self._intf.set_property(AttitudeScheduleTimesElement._metadata, AttitudeScheduleTimesElement._set_start_metadata, start)

    _get_stop_metadata = { "offset" : _get_stop_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop(self) -> typing.Any:
        """Stop time. Uses DateFormat Dimension."""
        return self._intf.get_property(AttitudeScheduleTimesElement._metadata, AttitudeScheduleTimesElement._get_stop_metadata)

    _set_stop_metadata = { "offset" : _set_stop_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop.setter
    def stop(self, stop:typing.Any) -> None:
        return self._intf.set_property(AttitudeScheduleTimesElement._metadata, AttitudeScheduleTimesElement._set_stop_metadata, stop)

    _get_target_metadata = { "offset" : _get_target_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def target(self) -> "LinkToObject":
        """Get the target."""
        return self._intf.get_property(AttitudeScheduleTimesElement._metadata, AttitudeScheduleTimesElement._get_target_metadata)

    _property_names[start] = "start"
    _property_names[stop] = "stop"
    _property_names[target] = "target"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeScheduleTimesElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeScheduleTimesElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeScheduleTimesElement, [AttitudeScheduleTimesElement, ])

agcls.AgClassCatalog.add_catalog_entry((4752415359491846949, 5431968374160633753), AttitudeScheduleTimesElement)
agcls.AgTypeNameMap["AttitudeScheduleTimesElement"] = AttitudeScheduleTimesElement

class AttitudeStandardTrajectory(IVehicleAttitudeStandard, IVehicleAttitude, SupportsDeleteCallback):
    """Standard attitude profile for launch vehicle or missile."""

    _num_methods = 3
    _vtable_offset = IVehicleAttitudeStandard._vtable_offset + IVehicleAttitudeStandard._num_methods
    _get_basic_method_offset = 1
    _get_pointing_method_offset = 2
    _get_external_method_offset = 3
    _metadata = {
        "iid_data" : (5506324035690256616, 11971281229452725142),
        "vtable_reference" : IVehicleAttitudeStandard._vtable_offset + IVehicleAttitudeStandard._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeStandardTrajectory)

    _get_basic_metadata = { "offset" : _get_basic_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def basic(self) -> "AttitudeStandardBasic":
        """Get the basic attitude properties."""
        return self._intf.get_property(AttitudeStandardTrajectory._metadata, AttitudeStandardTrajectory._get_basic_metadata)

    _get_pointing_metadata = { "offset" : _get_pointing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pointing(self) -> "VehicleAttitudePointing":
        """Get the target pointing attitude properties."""
        return self._intf.get_property(AttitudeStandardTrajectory._metadata, AttitudeStandardTrajectory._get_pointing_metadata)

    _get_external_metadata = { "offset" : _get_external_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def external(self) -> "VehicleAttitudeExternal":
        """Get the precomputed (external) attitude properties."""
        return self._intf.get_property(AttitudeStandardTrajectory._metadata, AttitudeStandardTrajectory._get_external_metadata)

    _property_names[basic] = "basic"
    _property_names[pointing] = "pointing"
    _property_names[external] = "external"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeStandardTrajectory."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeStandardTrajectory)
        IVehicleAttitudeStandard.__init__(self, source_object)
        IVehicleAttitude.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeStandard._private_init(self, intf)
        IVehicleAttitude._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeStandardTrajectory, [AttitudeStandardTrajectory, IVehicleAttitudeStandard, IVehicleAttitude])

agcls.AgClassCatalog.add_catalog_entry((5672879501674568722, 13107194455831860914), AttitudeStandardTrajectory)
agcls.AgTypeNameMap["AttitudeStandardTrajectory"] = AttitudeStandardTrajectory

class AttitudeStandardOrbit(IVehicleAttitudeStandard, IVehicleAttitude, SupportsDeleteCallback):
    r"""
    Standard attitude profile for satellite.

    Examples
    --------
    Set satellite attitude external:
    >>> # Satellite satellite: Satellite object
    >>> if os.name == "nt":
    >>>     installPath = r"C:\Program Files\AGI\STK 12"
    >>> else:
    >>>     installPath = os.environ["STK_INSTALL_DIR"]
    >>> satellite.attitude.external.load(
    >>>     os.path.join(installPath, "Data", "Resources", "stktraining", "text", "AttitudeTimeEulerAngles_Example.a")
    >>> )

    Set satellite attitude targeting:
    >>> # Satellite satellite: Satellite object
    >>> attitudePointing = satellite.attitude.pointing
    >>> attitudePointing.use_target_pointing = True
    >>> attitudePointing.targets.remove_all()
    >>> attitudePointing.targets.add("AreaTarget/MyAreaTarget")
    >>> attitudePointing.target_times.use_access_times = True

    Set satellite attitude basic spinning:
    >>> # Satellite satellite: Satellite object
    >>> basic = satellite.attitude.basic
    >>> basic.set_profile_type(AttitudeProfile.SPINNING)
    >>> basic.profile.body.assign_xyz(0, 0, 1)
    >>> basic.profile.inertial.assign_xyz(0, 1, 0)
    >>> basic.profile.rate = 6  # rev/sec
    """

    _num_methods = 4
    _vtable_offset = IVehicleAttitudeStandard._vtable_offset + IVehicleAttitudeStandard._num_methods
    _get_basic_method_offset = 1
    _get_pointing_method_offset = 2
    _get_external_method_offset = 3
    _get_integrated_attitude_method_offset = 4
    _metadata = {
        "iid_data" : (5019477910278926182, 6243452858091953047),
        "vtable_reference" : IVehicleAttitudeStandard._vtable_offset + IVehicleAttitudeStandard._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeStandardOrbit)

    _get_basic_metadata = { "offset" : _get_basic_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def basic(self) -> "AttitudeStandardBasic":
        """Get the basic attitude properties."""
        return self._intf.get_property(AttitudeStandardOrbit._metadata, AttitudeStandardOrbit._get_basic_metadata)

    _get_pointing_metadata = { "offset" : _get_pointing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pointing(self) -> "VehicleAttitudePointing":
        """Get the target pointing attitude properties."""
        return self._intf.get_property(AttitudeStandardOrbit._metadata, AttitudeStandardOrbit._get_pointing_metadata)

    _get_external_metadata = { "offset" : _get_external_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def external(self) -> "VehicleAttitudeExternal":
        """Get the precomputed (external) attitude properties."""
        return self._intf.get_property(AttitudeStandardOrbit._metadata, AttitudeStandardOrbit._get_external_metadata)

    _get_integrated_attitude_metadata = { "offset" : _get_integrated_attitude_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def integrated_attitude(self) -> "VehicleIntegratedAttitude":
        """Return a reference to the Integrated Attitude Tool."""
        return self._intf.get_property(AttitudeStandardOrbit._metadata, AttitudeStandardOrbit._get_integrated_attitude_metadata)

    _property_names[basic] = "basic"
    _property_names[pointing] = "pointing"
    _property_names[external] = "external"
    _property_names[integrated_attitude] = "integrated_attitude"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeStandardOrbit."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeStandardOrbit)
        IVehicleAttitudeStandard.__init__(self, source_object)
        IVehicleAttitude.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeStandard._private_init(self, intf)
        IVehicleAttitude._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeStandardOrbit, [AttitudeStandardOrbit, IVehicleAttitudeStandard, IVehicleAttitude])

agcls.AgClassCatalog.add_catalog_entry((5249791551862307573, 17550924054016959415), AttitudeStandardOrbit)
agcls.AgTypeNameMap["AttitudeStandardOrbit"] = AttitudeStandardOrbit

class AttitudeStandardRoute(IVehicleAttitudeStandard, IVehicleAttitude, SupportsDeleteCallback):
    """Standard attitude profile for aircraft."""

    _num_methods = 2
    _vtable_offset = IVehicleAttitudeStandard._vtable_offset + IVehicleAttitudeStandard._num_methods
    _get_basic_method_offset = 1
    _get_external_method_offset = 2
    _metadata = {
        "iid_data" : (5670861750638134073, 6683772198273714623),
        "vtable_reference" : IVehicleAttitudeStandard._vtable_offset + IVehicleAttitudeStandard._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeStandardRoute)

    _get_basic_metadata = { "offset" : _get_basic_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def basic(self) -> "AttitudeStandardBasic":
        """Get the basic attitude properties."""
        return self._intf.get_property(AttitudeStandardRoute._metadata, AttitudeStandardRoute._get_basic_metadata)

    _get_external_metadata = { "offset" : _get_external_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def external(self) -> "VehicleAttitudeExternal":
        """Get the precomputed (external) attitude properties."""
        return self._intf.get_property(AttitudeStandardRoute._metadata, AttitudeStandardRoute._get_external_metadata)

    _property_names[basic] = "basic"
    _property_names[external] = "external"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeStandardRoute."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeStandardRoute)
        IVehicleAttitudeStandard.__init__(self, source_object)
        IVehicleAttitude.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeStandard._private_init(self, intf)
        IVehicleAttitude._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeStandardRoute, [AttitudeStandardRoute, IVehicleAttitudeStandard, IVehicleAttitude])

agcls.AgClassCatalog.add_catalog_entry((5541612245032043109, 4076534815073205680), AttitudeStandardRoute)
agcls.AgTypeNameMap["AttitudeStandardRoute"] = AttitudeStandardRoute

class VehicleGraphics2DLine(SupportsDeleteCallback):
    """Line Style and Line Width properties used in displaying vehicle tracks."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_style_method_offset = 1
    _set_style_method_offset = 2
    _get_width_method_offset = 3
    _set_width_method_offset = 4
    _metadata = {
        "iid_data" : (5353226943978200287, 6760126419196000658),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DLine)

    _get_style_metadata = { "offset" : _get_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def style(self) -> "LineStyle":
        """Line style to use in displaying vehicle tracks."""
        return self._intf.get_property(VehicleGraphics2DLine._metadata, VehicleGraphics2DLine._get_style_metadata)

    _set_style_metadata = { "offset" : _set_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @style.setter
    def style(self, line_style:"LineStyle") -> None:
        return self._intf.set_property(VehicleGraphics2DLine._metadata, VehicleGraphics2DLine._set_style_metadata, line_style)

    _get_width_metadata = { "offset" : _get_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def width(self) -> "LineWidth":
        """Line width to use in displaying vehicle tracks."""
        return self._intf.get_property(VehicleGraphics2DLine._metadata, VehicleGraphics2DLine._get_width_metadata)

    _set_width_metadata = { "offset" : _set_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @width.setter
    def width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics2DLine._metadata, VehicleGraphics2DLine._set_width_metadata, line_width)

    _property_names[style] = "style"
    _property_names[width] = "width"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DLine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DLine)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DLine, [VehicleGraphics2DLine, ])

agcls.AgClassCatalog.add_catalog_entry((5381826634297883122, 6249319223392267957), VehicleGraphics2DLine)
agcls.AgTypeNameMap["VehicleGraphics2DLine"] = VehicleGraphics2DLine

class VehicleGraphics2DIntervalsCollection(SupportsDeleteCallback):
    """Custom Intervals Graphics List."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5541329143072869058, 9065493846236124801),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DIntervalsCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics2DIntervalsCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics2DInterval":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics2DIntervalsCollection._metadata, VehicleGraphics2DIntervalsCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics2DInterval":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics2DIntervalsCollection._metadata, VehicleGraphics2DIntervalsCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics2DIntervalsCollection._metadata, VehicleGraphics2DIntervalsCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleGraphics2DIntervalsCollection._metadata, VehicleGraphics2DIntervalsCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleGraphics2DIntervalsCollection._metadata, VehicleGraphics2DIntervalsCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def add(self, start:typing.Any, stop:typing.Any) -> "VehicleGraphics2DInterval":
        """Add a new element to the collection. Start/Stop params use DateFormat Dimension."""
        return self._intf.invoke(VehicleGraphics2DIntervalsCollection._metadata, VehicleGraphics2DIntervalsCollection._add_metadata, start, stop, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DIntervalsCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DIntervalsCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DIntervalsCollection, [VehicleGraphics2DIntervalsCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4957662087709070039, 2135597069106487989), VehicleGraphics2DIntervalsCollection)
agcls.AgTypeNameMap["VehicleGraphics2DIntervalsCollection"] = VehicleGraphics2DIntervalsCollection

class VehicleGraphics2DAttributesAccess(IVehicleGraphics2DAttributes, IVehicleGraphics2DAttributesDisplayState, SupportsDeleteCallback):
    """Vehicle 2D Graphics display based on access intervals."""

    _num_methods = 3
    _vtable_offset = IVehicleGraphics2DAttributes._vtable_offset + IVehicleGraphics2DAttributes._num_methods
    _get_access_objects_method_offset = 1
    _get_during_access_method_offset = 2
    _get_no_access_method_offset = 3
    _metadata = {
        "iid_data" : (5581982033479322327, 11437262781922827167),
        "vtable_reference" : IVehicleGraphics2DAttributes._vtable_offset + IVehicleGraphics2DAttributes._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DAttributesAccess)

    _get_access_objects_metadata = { "offset" : _get_access_objects_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_objects(self) -> "ObjectLinkCollection":
        """Return the collection of objects used for the access."""
        return self._intf.get_property(VehicleGraphics2DAttributesAccess._metadata, VehicleGraphics2DAttributesAccess._get_access_objects_metadata)

    _get_during_access_metadata = { "offset" : _get_during_access_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def during_access(self) -> "IVehicleGraphics2DAttributesBasic":
        """Return the collection of gfx attributes used during the access."""
        return self._intf.get_property(VehicleGraphics2DAttributesAccess._metadata, VehicleGraphics2DAttributesAccess._get_during_access_metadata)

    _get_no_access_metadata = { "offset" : _get_no_access_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def no_access(self) -> "IVehicleGraphics2DAttributesBasic":
        """Return the collection of gfx attributes used when there is no access."""
        return self._intf.get_property(VehicleGraphics2DAttributesAccess._metadata, VehicleGraphics2DAttributesAccess._get_no_access_metadata)

    _property_names[access_objects] = "access_objects"
    _property_names[during_access] = "during_access"
    _property_names[no_access] = "no_access"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DAttributesAccess."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DAttributesAccess)
        IVehicleGraphics2DAttributes.__init__(self, source_object)
        IVehicleGraphics2DAttributesDisplayState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DAttributes._private_init(self, intf)
        IVehicleGraphics2DAttributesDisplayState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DAttributesAccess, [VehicleGraphics2DAttributesAccess, IVehicleGraphics2DAttributes, IVehicleGraphics2DAttributesDisplayState])

agcls.AgClassCatalog.add_catalog_entry((5550842749142792840, 1652776820225781415), VehicleGraphics2DAttributesAccess)
agcls.AgTypeNameMap["VehicleGraphics2DAttributesAccess"] = VehicleGraphics2DAttributesAccess

class VehicleGraphics2DAttributesCustom(IVehicleGraphics2DAttributes, IVehicleGraphics2DAttributesDisplayState, SupportsDeleteCallback):
    """
    Vehicle 2D graphics display based on custom intervals.

    Examples
    --------
    Set 2D Display times to Custom and add intervals:
    >>> # STKObjectRoot root: STK Object Model root
    >>> # Satellite satellite: Satellite object
    >>> root.units_preferences.item("DateFormat").set_current_unit("EpSec")
    >>> graphics = satellite.graphics
    >>> graphics.set_attributes_type(VehicleGraphics2DAttributeType.CUSTOM)
    >>> graphics.attributes.default.show_graphics = False
    >>>
    >>> interval1 = graphics.attributes.intervals.add(0, 3600)
    >>> interval1.graphics_2d_attributes.show_graphics = True
    >>> interval1.graphics_2d_attributes.inherit = False
    >>> interval1.graphics_2d_attributes.line.width = LineWidth.WIDTH2
    >>> interval1.graphics_2d_attributes.line.style = LineStyle.LONG_DASH
    >>> interval1.graphics_2d_attributes.color = Colors.Fuchsia
    >>> interval1.graphics_2d_attributes.marker_style = "X"
    >>>
    >>> interval2 = satellite.graphics.attributes.intervals.add(7200, 86400)
    >>> interval2.graphics_2d_attributes.show_graphics = True
    >>> interval2.graphics_2d_attributes.inherit = False
    >>> interval2.graphics_2d_attributes.line.width = LineWidth.WIDTH2
    >>> interval2.graphics_2d_attributes.line.style = LineStyle.DASHED
    >>> interval2.graphics_2d_attributes.color = Colors.Lime
    >>> interval2.graphics_2d_attributes.marker_style = "Point"
    """

    _num_methods = 5
    _vtable_offset = IVehicleGraphics2DAttributes._vtable_offset + IVehicleGraphics2DAttributes._num_methods
    _get_default_method_offset = 1
    _get_intervals_method_offset = 2
    _deconflict_method_offset = 3
    _get_preemptive_intervals_method_offset = 4
    _set_preemptive_intervals_method_offset = 5
    _metadata = {
        "iid_data" : (5009740531620186721, 6736559535684817031),
        "vtable_reference" : IVehicleGraphics2DAttributes._vtable_offset + IVehicleGraphics2DAttributes._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DAttributesCustom)

    _get_default_metadata = { "offset" : _get_default_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def default(self) -> "IVehicleGraphics2DAttributesBasic":
        """Get the default attributes."""
        return self._intf.get_property(VehicleGraphics2DAttributesCustom._metadata, VehicleGraphics2DAttributesCustom._get_default_metadata)

    _get_intervals_metadata = { "offset" : _get_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def intervals(self) -> "VehicleGraphics2DIntervalsCollection":
        """Get the custom intervals."""
        return self._intf.get_property(VehicleGraphics2DAttributesCustom._metadata, VehicleGraphics2DAttributesCustom._get_intervals_metadata)

    _deconflict_metadata = { "offset" : _deconflict_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def deconflict(self) -> None:
        """Deconflict the custom intervals."""
        return self._intf.invoke(VehicleGraphics2DAttributesCustom._metadata, VehicleGraphics2DAttributesCustom._deconflict_metadata, )

    _get_preemptive_intervals_metadata = { "offset" : _get_preemptive_intervals_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def preemptive_intervals(self) -> bool:
        """Opt whether the hiding of graphics for a given interval affects that interval alone or causes the entire path display for that vehicle to disappear when you animate through the selected interval."""
        return self._intf.get_property(VehicleGraphics2DAttributesCustom._metadata, VehicleGraphics2DAttributesCustom._get_preemptive_intervals_metadata)

    _set_preemptive_intervals_metadata = { "offset" : _set_preemptive_intervals_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @preemptive_intervals.setter
    def preemptive_intervals(self, show_intervals:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesCustom._metadata, VehicleGraphics2DAttributesCustom._set_preemptive_intervals_metadata, show_intervals)

    _property_names[default] = "default"
    _property_names[intervals] = "intervals"
    _property_names[preemptive_intervals] = "preemptive_intervals"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DAttributesCustom."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DAttributesCustom)
        IVehicleGraphics2DAttributes.__init__(self, source_object)
        IVehicleGraphics2DAttributesDisplayState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DAttributes._private_init(self, intf)
        IVehicleGraphics2DAttributesDisplayState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DAttributesCustom, [VehicleGraphics2DAttributesCustom, IVehicleGraphics2DAttributes, IVehicleGraphics2DAttributesDisplayState])

agcls.AgClassCatalog.add_catalog_entry((5063528998799024978, 8424736502659100823), VehicleGraphics2DAttributesCustom)
agcls.AgTypeNameMap["VehicleGraphics2DAttributesCustom"] = VehicleGraphics2DAttributesCustom

class VehicleGraphics2DAttributesRealtime(IVehicleGraphics2DAttributes, SupportsDeleteCallback):
    """2D Graphics attributes for a vehicle based on real time data state."""

    _num_methods = 4
    _vtable_offset = IVehicleGraphics2DAttributes._vtable_offset + IVehicleGraphics2DAttributes._num_methods
    _get_history_method_offset = 1
    _get_spline_method_offset = 2
    _get_look_ahead_method_offset = 3
    _get_drop_out_method_offset = 4
    _metadata = {
        "iid_data" : (4657092033972385582, 12659842613775968186),
        "vtable_reference" : IVehicleGraphics2DAttributes._vtable_offset + IVehicleGraphics2DAttributes._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DAttributesRealtime)

    _get_history_metadata = { "offset" : _get_history_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def history(self) -> "IVehicleGraphics2DAttributesBasic":
        """Get the historical data, consisting of all data points received from the time of the most current data point back to the last point within the look behind duration."""
        return self._intf.get_property(VehicleGraphics2DAttributesRealtime._metadata, VehicleGraphics2DAttributesRealtime._get_history_metadata)

    _get_spline_metadata = { "offset" : _get_spline_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def spline(self) -> "IVehicleGraphics2DAttributesBasic":
        """Get the spline between the last point received and the new point."""
        return self._intf.get_property(VehicleGraphics2DAttributesRealtime._metadata, VehicleGraphics2DAttributesRealtime._get_spline_metadata)

    _get_look_ahead_metadata = { "offset" : _get_look_ahead_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def look_ahead(self) -> "IVehicleGraphics2DAttributesBasic":
        """Get the look ahead data, calculated on the basis of the last received data point."""
        return self._intf.get_property(VehicleGraphics2DAttributesRealtime._metadata, VehicleGraphics2DAttributesRealtime._get_look_ahead_metadata)

    _get_drop_out_metadata = { "offset" : _get_drop_out_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drop_out(self) -> "IVehicleGraphics2DAttributesBasic":
        """Get the drop out, i.e. data that is outside the time out gap."""
        return self._intf.get_property(VehicleGraphics2DAttributesRealtime._metadata, VehicleGraphics2DAttributesRealtime._get_drop_out_metadata)

    _property_names[history] = "history"
    _property_names[spline] = "spline"
    _property_names[look_ahead] = "look_ahead"
    _property_names[drop_out] = "drop_out"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DAttributesRealtime."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DAttributesRealtime)
        IVehicleGraphics2DAttributes.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DAttributes._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DAttributesRealtime, [VehicleGraphics2DAttributesRealtime, IVehicleGraphics2DAttributes])

agcls.AgClassCatalog.add_catalog_entry((5142963713975689149, 17913761915589878941), VehicleGraphics2DAttributesRealtime)
agcls.AgTypeNameMap["VehicleGraphics2DAttributesRealtime"] = VehicleGraphics2DAttributesRealtime

class VehicleGraphics2DLightingElement(SupportsDeleteCallback):
    """Lighting condition properties."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_visible_method_offset = 1
    _set_visible_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_marker_style_method_offset = 5
    _set_marker_style_method_offset = 6
    _get_line_style_method_offset = 7
    _set_line_style_method_offset = 8
    _get_line_width_method_offset = 9
    _set_line_width_method_offset = 10
    _metadata = {
        "iid_data" : (5010494250297649880, 1093494447628182712),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DLightingElement)

    _get_visible_metadata = { "offset" : _get_visible_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def visible(self) -> bool:
        """Opt whether to display the orbit and/or ground track in the color assigned to the specified lighting condition."""
        return self._intf.get_property(VehicleGraphics2DLightingElement._metadata, VehicleGraphics2DLightingElement._get_visible_metadata)

    _set_visible_metadata = { "offset" : _set_visible_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @visible.setter
    def visible(self, show_sunlight:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DLightingElement._metadata, VehicleGraphics2DLightingElement._set_visible_metadata, show_sunlight)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the color of the line that will mark the region representing the selected lighting condition."""
        return self._intf.get_property(VehicleGraphics2DLightingElement._metadata, VehicleGraphics2DLightingElement._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics2DLightingElement._metadata, VehicleGraphics2DLightingElement._set_color_metadata, color)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """Get or set the object marker while the vehicle is within a particular region representing the selected lighting condition."""
        return self._intf.get_property(VehicleGraphics2DLightingElement._metadata, VehicleGraphics2DLightingElement._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, bstr:str) -> None:
        return self._intf.set_property(VehicleGraphics2DLightingElement._metadata, VehicleGraphics2DLightingElement._set_marker_style_metadata, bstr)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Get or set the type of line that will mark the region representing the selected lighting condition."""
        return self._intf.get_property(VehicleGraphics2DLightingElement._metadata, VehicleGraphics2DLightingElement._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, line_style:"LineStyle") -> None:
        return self._intf.set_property(VehicleGraphics2DLightingElement._metadata, VehicleGraphics2DLightingElement._set_line_style_metadata, line_style)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Get or set the width of the line that will mark the region representing the selected lighting condition."""
        return self._intf.get_property(VehicleGraphics2DLightingElement._metadata, VehicleGraphics2DLightingElement._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics2DLightingElement._metadata, VehicleGraphics2DLightingElement._set_line_width_metadata, line_width)

    _property_names[visible] = "visible"
    _property_names[color] = "color"
    _property_names[marker_style] = "marker_style"
    _property_names[line_style] = "line_style"
    _property_names[line_width] = "line_width"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DLightingElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DLightingElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DLightingElement, [VehicleGraphics2DLightingElement, ])

agcls.AgClassCatalog.add_catalog_entry((5121619348883815924, 12503278292715381695), VehicleGraphics2DLightingElement)
agcls.AgTypeNameMap["VehicleGraphics2DLightingElement"] = VehicleGraphics2DLightingElement

class VehicleGraphics2DLighting(SupportsDeleteCallback):
    """Lighting."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sunlight_method_offset = 1
    _get_penumbra_method_offset = 2
    _get_umbra_method_offset = 3
    _get_show_sunlight_penumbra_divider_method_offset = 4
    _set_show_sunlight_penumbra_divider_method_offset = 5
    _get_show_penumbra_umbra_divider_method_offset = 6
    _set_show_penumbra_umbra_divider_method_offset = 7
    _get_show_solar_specular_reflection_point_method_offset = 8
    _set_show_solar_specular_reflection_point_method_offset = 9
    _metadata = {
        "iid_data" : (5195057572133350475, 5714526738901650306),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DLighting)

    _get_sunlight_metadata = { "offset" : _get_sunlight_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sunlight(self) -> "VehicleGraphics2DLightingElement":
        """Get the display options for regions of sunlight."""
        return self._intf.get_property(VehicleGraphics2DLighting._metadata, VehicleGraphics2DLighting._get_sunlight_metadata)

    _get_penumbra_metadata = { "offset" : _get_penumbra_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def penumbra(self) -> "VehicleGraphics2DLightingElement":
        """Get the display options for regions of penumbra."""
        return self._intf.get_property(VehicleGraphics2DLighting._metadata, VehicleGraphics2DLighting._get_penumbra_metadata)

    _get_umbra_metadata = { "offset" : _get_umbra_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def umbra(self) -> "VehicleGraphics2DLightingElement":
        """Get the display options for regions of umbra."""
        return self._intf.get_property(VehicleGraphics2DLighting._metadata, VehicleGraphics2DLighting._get_umbra_metadata)

    _get_show_sunlight_penumbra_divider_metadata = { "offset" : _get_show_sunlight_penumbra_divider_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_sunlight_penumbra_divider(self) -> bool:
        """Opt whether to show the dividing line between regions of sunlight and penumbra at the current altitude of the vehicle."""
        return self._intf.get_property(VehicleGraphics2DLighting._metadata, VehicleGraphics2DLighting._get_show_sunlight_penumbra_divider_metadata)

    _set_show_sunlight_penumbra_divider_metadata = { "offset" : _set_show_sunlight_penumbra_divider_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_sunlight_penumbra_divider.setter
    def show_sunlight_penumbra_divider(self, show_sun_light_penumbra:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DLighting._metadata, VehicleGraphics2DLighting._set_show_sunlight_penumbra_divider_metadata, show_sun_light_penumbra)

    _get_show_penumbra_umbra_divider_metadata = { "offset" : _get_show_penumbra_umbra_divider_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_penumbra_umbra_divider(self) -> bool:
        """Opt whether to show the dividing line between regions of penumbra and umbra at the current altitude of the vehicle."""
        return self._intf.get_property(VehicleGraphics2DLighting._metadata, VehicleGraphics2DLighting._get_show_penumbra_umbra_divider_metadata)

    _set_show_penumbra_umbra_divider_metadata = { "offset" : _set_show_penumbra_umbra_divider_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_penumbra_umbra_divider.setter
    def show_penumbra_umbra_divider(self, show_penumbra_umbra:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DLighting._metadata, VehicleGraphics2DLighting._set_show_penumbra_umbra_divider_metadata, show_penumbra_umbra)

    _get_show_solar_specular_reflection_point_metadata = { "offset" : _get_show_solar_specular_reflection_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_solar_specular_reflection_point(self) -> bool:
        """Opt whether to draw the solar specular reflection point on the surface of the globe as a white '*'."""
        return self._intf.get_property(VehicleGraphics2DLighting._metadata, VehicleGraphics2DLighting._get_show_solar_specular_reflection_point_metadata)

    _set_show_solar_specular_reflection_point_metadata = { "offset" : _set_show_solar_specular_reflection_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_solar_specular_reflection_point.setter
    def show_solar_specular_reflection_point(self, show_glint:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DLighting._metadata, VehicleGraphics2DLighting._set_show_solar_specular_reflection_point_metadata, show_glint)

    _property_names[sunlight] = "sunlight"
    _property_names[penumbra] = "penumbra"
    _property_names[umbra] = "umbra"
    _property_names[show_sunlight_penumbra_divider] = "show_sunlight_penumbra_divider"
    _property_names[show_penumbra_umbra_divider] = "show_penumbra_umbra_divider"
    _property_names[show_solar_specular_reflection_point] = "show_solar_specular_reflection_point"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DLighting."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DLighting)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DLighting, [VehicleGraphics2DLighting, ])

agcls.AgClassCatalog.add_catalog_entry((5649489123168187223, 12639032864799677847), VehicleGraphics2DLighting)
agcls.AgTypeNameMap["VehicleGraphics2DLighting"] = VehicleGraphics2DLighting

class VehicleGraphics2DElevationGroundElevation(IVehicleGraphics2DElevation, SupportsDeleteCallback):
    """Ground elevation interface for vehicle swath."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_angle_method_offset = 1
    _set_angle_method_offset = 2
    _metadata = {
        "iid_data" : (5460920118281156665, 3491514199010629011),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DElevationGroundElevation)

    _get_angle_metadata = { "offset" : _get_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def angle(self) -> float:
        """Ground elevation angle as measured from the ground to the vehicle. Range 0-90. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics2DElevationGroundElevation._metadata, VehicleGraphics2DElevationGroundElevation._get_angle_metadata)

    _set_angle_metadata = { "offset" : _set_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @angle.setter
    def angle(self, angle:float) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationGroundElevation._metadata, VehicleGraphics2DElevationGroundElevation._set_angle_metadata, angle)

    _property_names[angle] = "angle"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DElevationGroundElevation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DElevationGroundElevation)
        IVehicleGraphics2DElevation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DElevation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DElevationGroundElevation, [VehicleGraphics2DElevationGroundElevation, IVehicleGraphics2DElevation])

agcls.AgClassCatalog.add_catalog_entry((4859032663824870956, 16811811191046388665), VehicleGraphics2DElevationGroundElevation)
agcls.AgTypeNameMap["VehicleGraphics2DElevationGroundElevation"] = VehicleGraphics2DElevationGroundElevation

class VehicleGraphics2DElevationSwathHalfWidth(IVehicleGraphics2DElevation, SupportsDeleteCallback):
    """Half width interface for vehicle swath."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_distance_method_offset = 1
    _set_distance_method_offset = 2
    _metadata = {
        "iid_data" : (4746485063515421491, 6918041136574701455),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DElevationSwathHalfWidth)

    _get_distance_metadata = { "offset" : _get_distance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def distance(self) -> float:
        """Half width distance, specifying the swath limits as a distance away from the subsatellite point as measured along the surface of the central body. Range 0-infinity. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics2DElevationSwathHalfWidth._metadata, VehicleGraphics2DElevationSwathHalfWidth._get_distance_metadata)

    _set_distance_metadata = { "offset" : _set_distance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @distance.setter
    def distance(self, distance:float) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationSwathHalfWidth._metadata, VehicleGraphics2DElevationSwathHalfWidth._set_distance_metadata, distance)

    _property_names[distance] = "distance"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DElevationSwathHalfWidth."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DElevationSwathHalfWidth)
        IVehicleGraphics2DElevation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DElevation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DElevationSwathHalfWidth, [VehicleGraphics2DElevationSwathHalfWidth, IVehicleGraphics2DElevation])

agcls.AgClassCatalog.add_catalog_entry((5318810812658450843, 16679888894102700429), VehicleGraphics2DElevationSwathHalfWidth)
agcls.AgTypeNameMap["VehicleGraphics2DElevationSwathHalfWidth"] = VehicleGraphics2DElevationSwathHalfWidth

class VehicleGraphics2DElevationVehicleHalfAngle(IVehicleGraphics2DElevation, SupportsDeleteCallback):
    """Half angle interface for vehicle swath."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_angle_method_offset = 1
    _set_angle_method_offset = 2
    _metadata = {
        "iid_data" : (4839910347352259694, 144229577476641438),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DElevationVehicleHalfAngle)

    _get_angle_metadata = { "offset" : _get_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def angle(self) -> float:
        """Half angle relative to nadir. Range 0-90. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics2DElevationVehicleHalfAngle._metadata, VehicleGraphics2DElevationVehicleHalfAngle._get_angle_metadata)

    _set_angle_metadata = { "offset" : _set_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @angle.setter
    def angle(self, angle:float) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationVehicleHalfAngle._metadata, VehicleGraphics2DElevationVehicleHalfAngle._set_angle_metadata, angle)

    _property_names[angle] = "angle"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DElevationVehicleHalfAngle."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DElevationVehicleHalfAngle)
        IVehicleGraphics2DElevation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DElevation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DElevationVehicleHalfAngle, [VehicleGraphics2DElevationVehicleHalfAngle, IVehicleGraphics2DElevation])

agcls.AgClassCatalog.add_catalog_entry((5117319491454599385, 16811091561192502419), VehicleGraphics2DElevationVehicleHalfAngle)
agcls.AgTypeNameMap["VehicleGraphics2DElevationVehicleHalfAngle"] = VehicleGraphics2DElevationVehicleHalfAngle

class VehicleGraphics2DSwath(SupportsDeleteCallback):
    """
    Vehicle swath interface.

    Examples
    --------
    Set 2D Swath:
    >>> # Satellite satellite: Satellite object
    >>> # Set swath in the 2D properties
    >>> swath = satellite.graphics.swath
    >>> swath.set_elevation_type(VehicleGraphics2DElevation.ELEVATION_GROUND_ELEVATION)
    >>> swath.elevation.angle = 30  # deg
    >>> satellite.graphics.swath.options = VehicleGraphics2DOptionType.OPTIONS_EDGE_LIMITS
    """

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_elevation_type_method_offset = 1
    _set_elevation_type_method_offset = 2
    _is_elevation_type_supported_method_offset = 3
    _get_elevation_supported_types_method_offset = 4
    _get_elevation_method_offset = 5
    _get_options_method_offset = 6
    _set_options_method_offset = 7
    _metadata = {
        "iid_data" : (5711109948726510383, 6659876344703691711),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DSwath)

    _get_elevation_type_metadata = { "offset" : _get_elevation_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DElevation),) }
    @property
    def elevation_type(self) -> "VehicleGraphics2DElevation":
        """Ground elevation, swath half width or vehicle half angle."""
        return self._intf.get_property(VehicleGraphics2DSwath._metadata, VehicleGraphics2DSwath._get_elevation_type_metadata)

    _set_elevation_type_metadata = { "offset" : _set_elevation_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DElevation),) }
    def set_elevation_type(self, elevation:"VehicleGraphics2DElevation") -> None:
        """Set the elevation type."""
        return self._intf.invoke(VehicleGraphics2DSwath._metadata, VehicleGraphics2DSwath._set_elevation_type_metadata, elevation)

    _is_elevation_type_supported_metadata = { "offset" : _is_elevation_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DElevation), agmarshall.VariantBoolArg,) }
    def is_elevation_type_supported(self, elevation:"VehicleGraphics2DElevation") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics2DSwath._metadata, VehicleGraphics2DSwath._is_elevation_type_supported_metadata, elevation, OutArg())

    _get_elevation_supported_types_metadata = { "offset" : _get_elevation_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def elevation_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics2DSwath._metadata, VehicleGraphics2DSwath._get_elevation_supported_types_metadata)

    _get_elevation_metadata = { "offset" : _get_elevation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elevation(self) -> "IVehicleGraphics2DElevation":
        """Get the elevation value."""
        return self._intf.get_property(VehicleGraphics2DSwath._metadata, VehicleGraphics2DSwath._get_elevation_metadata)

    _get_options_metadata = { "offset" : _get_options_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DOptionType),) }
    @property
    def options(self) -> "VehicleGraphics2DOptionType":
        """Options for swath display."""
        return self._intf.get_property(VehicleGraphics2DSwath._metadata, VehicleGraphics2DSwath._get_options_metadata)

    _set_options_metadata = { "offset" : _set_options_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DOptionType),) }
    @options.setter
    def options(self, options:"VehicleGraphics2DOptionType") -> None:
        return self._intf.set_property(VehicleGraphics2DSwath._metadata, VehicleGraphics2DSwath._set_options_metadata, options)

    _property_names[elevation_type] = "elevation_type"
    _property_names[elevation_supported_types] = "elevation_supported_types"
    _property_names[elevation] = "elevation"
    _property_names[options] = "options"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DSwath."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DSwath)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DSwath, [VehicleGraphics2DSwath, ])

agcls.AgClassCatalog.add_catalog_entry((5760653206143831225, 11538224579263825340), VehicleGraphics2DSwath)
agcls.AgTypeNameMap["VehicleGraphics2DSwath"] = VehicleGraphics2DSwath

class VehicleGraphics2DLeadDataFraction(IVehicleLeadTrailData, IVehicleLeadTrailDataFraction, SupportsDeleteCallback):
    """2D Graphics pass: fraction of leading portion of vehicle track to display."""
    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DLeadDataFraction."""
        SupportsDeleteCallback.__init__(self)
        IVehicleLeadTrailData.__init__(self, source_object)
        IVehicleLeadTrailDataFraction.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLeadTrailData._private_init(self, intf)
        IVehicleLeadTrailDataFraction._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DLeadDataFraction, [IVehicleLeadTrailData, IVehicleLeadTrailDataFraction])

agcls.AgClassCatalog.add_catalog_entry((4766972763787543562, 2919743840558860193), VehicleGraphics2DLeadDataFraction)
agcls.AgTypeNameMap["VehicleGraphics2DLeadDataFraction"] = VehicleGraphics2DLeadDataFraction

class VehicleGraphics2DLeadDataTime(IVehicleLeadTrailData, IVehicleLeadTrailDataTime, SupportsDeleteCallback):
    """2D Graphics pass: time-defined segment of leading portion of vehicle track to display."""
    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DLeadDataTime."""
        SupportsDeleteCallback.__init__(self)
        IVehicleLeadTrailData.__init__(self, source_object)
        IVehicleLeadTrailDataTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLeadTrailData._private_init(self, intf)
        IVehicleLeadTrailDataTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DLeadDataTime, [IVehicleLeadTrailData, IVehicleLeadTrailDataTime])

agcls.AgClassCatalog.add_catalog_entry((5733571918658864829, 3094294313330107314), VehicleGraphics2DLeadDataTime)
agcls.AgTypeNameMap["VehicleGraphics2DLeadDataTime"] = VehicleGraphics2DLeadDataTime

class VehicleGraphics2DTrailDataFraction(IVehicleLeadTrailData, IVehicleLeadTrailDataFraction, SupportsDeleteCallback):
    """2D Graphics pass: fraction of trailing portion of vehicle track to display."""
    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTrailDataFraction."""
        SupportsDeleteCallback.__init__(self)
        IVehicleLeadTrailData.__init__(self, source_object)
        IVehicleLeadTrailDataFraction.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLeadTrailData._private_init(self, intf)
        IVehicleLeadTrailDataFraction._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTrailDataFraction, [IVehicleLeadTrailData, IVehicleLeadTrailDataFraction])

agcls.AgClassCatalog.add_catalog_entry((4631138360106491003, 325347809813658263), VehicleGraphics2DTrailDataFraction)
agcls.AgTypeNameMap["VehicleGraphics2DTrailDataFraction"] = VehicleGraphics2DTrailDataFraction

class VehicleGraphics2DTrailDataTime(IVehicleLeadTrailData, IVehicleLeadTrailDataTime, SupportsDeleteCallback):
    """2D Graphics pass: time-defined segment of trailing portion of vehicle track to display."""
    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTrailDataTime."""
        SupportsDeleteCallback.__init__(self)
        IVehicleLeadTrailData.__init__(self, source_object)
        IVehicleLeadTrailDataTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLeadTrailData._private_init(self, intf)
        IVehicleLeadTrailDataTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTrailDataTime, [IVehicleLeadTrailData, IVehicleLeadTrailDataTime])

agcls.AgClassCatalog.add_catalog_entry((5411462640756199278, 4145571154275887788), VehicleGraphics2DTrailDataTime)
agcls.AgTypeNameMap["VehicleGraphics2DTrailDataTime"] = VehicleGraphics2DTrailDataTime

class VehicleGraphics2DRoutePassData(SupportsDeleteCallback):
    """Great arc route pass data."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_route_method_offset = 1
    _metadata = {
        "iid_data" : (5155383406400166266, 184006921647495613),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DRoutePassData)

    _get_route_metadata = { "offset" : _get_route_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def route(self) -> "VehicleGraphics2DLeadTrailData":
        """Leading/trailing route pass data."""
        return self._intf.get_property(VehicleGraphics2DRoutePassData._metadata, VehicleGraphics2DRoutePassData._get_route_metadata)

    _property_names[route] = "route"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DRoutePassData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DRoutePassData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DRoutePassData, [VehicleGraphics2DRoutePassData, ])

agcls.AgClassCatalog.add_catalog_entry((4832101789227742296, 13228573093790672553), VehicleGraphics2DRoutePassData)
agcls.AgTypeNameMap["VehicleGraphics2DRoutePassData"] = VehicleGraphics2DRoutePassData

class VehicleGraphics2DLeadTrailData(SupportsDeleteCallback):
    """2D Graphics pass properties: lead/trail for ground tracks."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_lead_data_type_method_offset = 1
    _set_lead_data_type_method_offset = 2
    _is_lead_data_type_supported_method_offset = 3
    _get_lead_data_supported_types_method_offset = 4
    _get_lead_data_method_offset = 5
    _get_trail_data_type_method_offset = 6
    _set_trail_data_type_method_offset = 7
    _is_trail_data_type_supported_method_offset = 8
    _get_trail_data_supported_types_method_offset = 9
    _get_trail_data_method_offset = 10
    _get_has_lead_data_method_offset = 11
    _get_has_trail_data_method_offset = 12
    _set_trail_same_as_lead_method_offset = 13
    _metadata = {
        "iid_data" : (5074923203728423552, 18405756286329870480),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DLeadTrailData)

    _get_lead_data_type_metadata = { "offset" : _get_lead_data_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData),) }
    @property
    def lead_data_type(self) -> "LeadTrailData":
        """Lead data type."""
        return self._intf.get_property(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._get_lead_data_type_metadata)

    _set_lead_data_type_metadata = { "offset" : _set_lead_data_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData),) }
    def set_lead_data_type(self, lead_data:"LeadTrailData") -> None:
        """Lead data type."""
        return self._intf.invoke(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._set_lead_data_type_metadata, lead_data)

    _is_lead_data_type_supported_metadata = { "offset" : _is_lead_data_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData), agmarshall.VariantBoolArg,) }
    def is_lead_data_type_supported(self, lead_data:"LeadTrailData") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._is_lead_data_type_supported_metadata, lead_data, OutArg())

    _get_lead_data_supported_types_metadata = { "offset" : _get_lead_data_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def lead_data_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._get_lead_data_supported_types_metadata)

    _get_lead_data_metadata = { "offset" : _get_lead_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def lead_data(self) -> "IVehicleLeadTrailData":
        """Lead data."""
        return self._intf.get_property(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._get_lead_data_metadata)

    _get_trail_data_type_metadata = { "offset" : _get_trail_data_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData),) }
    @property
    def trail_data_type(self) -> "LeadTrailData":
        """Trail data type."""
        return self._intf.get_property(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._get_trail_data_type_metadata)

    _set_trail_data_type_metadata = { "offset" : _set_trail_data_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData),) }
    def set_trail_data_type(self, trail_data:"LeadTrailData") -> None:
        """Trail data type."""
        return self._intf.invoke(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._set_trail_data_type_metadata, trail_data)

    _is_trail_data_type_supported_metadata = { "offset" : _is_trail_data_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData), agmarshall.VariantBoolArg,) }
    def is_trail_data_type_supported(self, trail_data:"LeadTrailData") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._is_trail_data_type_supported_metadata, trail_data, OutArg())

    _get_trail_data_supported_types_metadata = { "offset" : _get_trail_data_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def trail_data_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._get_trail_data_supported_types_metadata)

    _get_trail_data_metadata = { "offset" : _get_trail_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trail_data(self) -> "IVehicleLeadTrailData":
        """Trail data."""
        return self._intf.get_property(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._get_trail_data_metadata)

    _get_has_lead_data_metadata = { "offset" : _get_has_lead_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def has_lead_data(self) -> bool:
        """Determine whether the leading display option has value data."""
        return self._intf.get_property(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._get_has_lead_data_metadata)

    _get_has_trail_data_metadata = { "offset" : _get_has_trail_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def has_trail_data(self) -> bool:
        """Determine whether the trailing display option has value data."""
        return self._intf.get_property(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._get_has_trail_data_metadata)

    _set_trail_same_as_lead_metadata = { "offset" : _set_trail_same_as_lead_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def set_trail_same_as_lead(self) -> None:
        """Set the trailing display option (and value, if applicable) to be the same as for the leading portion."""
        return self._intf.invoke(VehicleGraphics2DLeadTrailData._metadata, VehicleGraphics2DLeadTrailData._set_trail_same_as_lead_metadata, )

    _property_names[lead_data_type] = "lead_data_type"
    _property_names[lead_data_supported_types] = "lead_data_supported_types"
    _property_names[lead_data] = "lead_data"
    _property_names[trail_data_type] = "trail_data_type"
    _property_names[trail_data_supported_types] = "trail_data_supported_types"
    _property_names[trail_data] = "trail_data"
    _property_names[has_lead_data] = "has_lead_data"
    _property_names[has_trail_data] = "has_trail_data"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DLeadTrailData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DLeadTrailData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DLeadTrailData, [VehicleGraphics2DLeadTrailData, ])

agcls.AgClassCatalog.add_catalog_entry((4807803963027854032, 4926630524441126064), VehicleGraphics2DLeadTrailData)
agcls.AgTypeNameMap["VehicleGraphics2DLeadTrailData"] = VehicleGraphics2DLeadTrailData

class VehicleGraphics2DOrbitPassData(SupportsDeleteCallback):
    """
    2D Graphics ground track and orbit pass properties.

    Examples
    --------
    Set 2D/3D Pass Display Properties:
    >>> # Satellite satellite: Satellite object
    >>> # Display one pass for ground track and orbit on 2D
    >>> passdata = satellite.graphics.pass_data
    >>> groundTrack = passdata.ground_track
    >>> groundTrack.set_lead_data_type(LeadTrailData.ONE_PASS)
    >>> groundTrack.set_trail_same_as_lead
    >>> orbit = passdata.orbit
    >>> orbit.set_lead_data_type(LeadTrailData.ONE_PASS)
    >>> orbit.set_trail_same_as_lead
    >>> # Display one orbit pass and no ground track on 3D
    >>> passdata3D = satellite.graphics_3d.satellite_pass.track_data.pass_data
    >>> groundTrack3D = passdata3D.ground_track
    >>> groundTrack3D.set_lead_data_type(LeadTrailData.NONE)
    >>> groundTrack3D.set_trail_same_as_lead
    >>> orbit3D = passdata3D.orbit
    >>> orbit3D.set_lead_data_type(LeadTrailData.ONE_PASS)
    >>> orbit3D.set_trail_same_as_lead
    """

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ground_track_method_offset = 1
    _get_orbit_method_offset = 2
    _metadata = {
        "iid_data" : (5624569781407033759, 7574514907256913820),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DOrbitPassData)

    _get_ground_track_metadata = { "offset" : _get_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_track(self) -> "VehicleGraphics2DLeadTrailData":
        """Ground track display properties."""
        return self._intf.get_property(VehicleGraphics2DOrbitPassData._metadata, VehicleGraphics2DOrbitPassData._get_ground_track_metadata)

    _get_orbit_metadata = { "offset" : _get_orbit_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orbit(self) -> "VehicleGraphics2DLeadTrailData":
        """Orbit pass display properties."""
        return self._intf.get_property(VehicleGraphics2DOrbitPassData._metadata, VehicleGraphics2DOrbitPassData._get_orbit_metadata)

    _property_names[ground_track] = "ground_track"
    _property_names[orbit] = "orbit"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DOrbitPassData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DOrbitPassData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DOrbitPassData, [VehicleGraphics2DOrbitPassData, ])

agcls.AgClassCatalog.add_catalog_entry((5720466748541417364, 7310892024948144563), VehicleGraphics2DOrbitPassData)
agcls.AgTypeNameMap["VehicleGraphics2DOrbitPassData"] = VehicleGraphics2DOrbitPassData

class VehicleGraphics2DTrajectoryPassData(SupportsDeleteCallback):
    """2D Graphics ground track and trajectory properties."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ground_track_method_offset = 1
    _get_trajectory_method_offset = 2
    _metadata = {
        "iid_data" : (4974834817416436953, 13180905842569113017),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DTrajectoryPassData)

    _get_ground_track_metadata = { "offset" : _get_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_track(self) -> "VehicleGraphics2DLeadTrailData":
        """Ground track display properties."""
        return self._intf.get_property(VehicleGraphics2DTrajectoryPassData._metadata, VehicleGraphics2DTrajectoryPassData._get_ground_track_metadata)

    _get_trajectory_metadata = { "offset" : _get_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory(self) -> "VehicleGraphics2DLeadTrailData":
        """Trajectory display properties."""
        return self._intf.get_property(VehicleGraphics2DTrajectoryPassData._metadata, VehicleGraphics2DTrajectoryPassData._get_trajectory_metadata)

    _property_names[ground_track] = "ground_track"
    _property_names[trajectory] = "trajectory"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTrajectoryPassData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DTrajectoryPassData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTrajectoryPassData, [VehicleGraphics2DTrajectoryPassData, ])

agcls.AgClassCatalog.add_catalog_entry((5540625501083158149, 7691842501655159178), VehicleGraphics2DTrajectoryPassData)
agcls.AgTypeNameMap["VehicleGraphics2DTrajectoryPassData"] = VehicleGraphics2DTrajectoryPassData

class VehicleGraphics2DTrajectoryResolution(SupportsDeleteCallback):
    """Ground track and trajectory resolution for launch vehicles and missiles in terms of ephemeris steps."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ground_track_method_offset = 1
    _set_ground_track_method_offset = 2
    _get_trajectory_method_offset = 3
    _set_trajectory_method_offset = 4
    _get_minimum_ground_track_method_offset = 5
    _set_minimum_ground_track_method_offset = 6
    _get_minimum_trajectory_method_offset = 7
    _set_minimum_trajectory_method_offset = 8
    _metadata = {
        "iid_data" : (5707739134820506407, 10950685011046665148),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DTrajectoryResolution)

    _get_ground_track_metadata = { "offset" : _get_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ground_track(self) -> float:
        """Ground track resolution in terms of the ephemeris step. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics2DTrajectoryResolution._metadata, VehicleGraphics2DTrajectoryResolution._get_ground_track_metadata)

    _set_ground_track_metadata = { "offset" : _set_ground_track_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ground_track.setter
    def ground_track(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics2DTrajectoryResolution._metadata, VehicleGraphics2DTrajectoryResolution._set_ground_track_metadata, value)

    _get_trajectory_metadata = { "offset" : _get_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def trajectory(self) -> float:
        """Trajectory resolution in terms of the ephemeris step. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics2DTrajectoryResolution._metadata, VehicleGraphics2DTrajectoryResolution._get_trajectory_metadata)

    _set_trajectory_metadata = { "offset" : _set_trajectory_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @trajectory.setter
    def trajectory(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics2DTrajectoryResolution._metadata, VehicleGraphics2DTrajectoryResolution._set_trajectory_metadata, value)

    _get_minimum_ground_track_metadata = { "offset" : _get_minimum_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_ground_track(self) -> float:
        """Minimum ground track resolution defined in terms of the ephemeris step. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics2DTrajectoryResolution._metadata, VehicleGraphics2DTrajectoryResolution._get_minimum_ground_track_metadata)

    _set_minimum_ground_track_metadata = { "offset" : _set_minimum_ground_track_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_ground_track.setter
    def minimum_ground_track(self, min_ground_track:float) -> None:
        return self._intf.set_property(VehicleGraphics2DTrajectoryResolution._metadata, VehicleGraphics2DTrajectoryResolution._set_minimum_ground_track_metadata, min_ground_track)

    _get_minimum_trajectory_metadata = { "offset" : _get_minimum_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_trajectory(self) -> float:
        """Minimum trajectory resolution defined in terms of the ephemeris step. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics2DTrajectoryResolution._metadata, VehicleGraphics2DTrajectoryResolution._get_minimum_trajectory_metadata)

    _set_minimum_trajectory_metadata = { "offset" : _set_minimum_trajectory_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_trajectory.setter
    def minimum_trajectory(self, min_trajectory:float) -> None:
        return self._intf.set_property(VehicleGraphics2DTrajectoryResolution._metadata, VehicleGraphics2DTrajectoryResolution._set_minimum_trajectory_metadata, min_trajectory)

    _property_names[ground_track] = "ground_track"
    _property_names[trajectory] = "trajectory"
    _property_names[minimum_ground_track] = "minimum_ground_track"
    _property_names[minimum_trajectory] = "minimum_trajectory"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTrajectoryResolution."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DTrajectoryResolution)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTrajectoryResolution, [VehicleGraphics2DTrajectoryResolution, ])

agcls.AgClassCatalog.add_catalog_entry((5580517456389882683, 16012145790453030074), VehicleGraphics2DTrajectoryResolution)
agcls.AgTypeNameMap["VehicleGraphics2DTrajectoryResolution"] = VehicleGraphics2DTrajectoryResolution

class VehicleGraphics2DGroundEllipsesCollection(SupportsDeleteCallback):
    """Collection of ground ellipse 2D graphics properties."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5310263094368711289, 9749955343720326300),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DGroundEllipsesCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics2DGroundEllipsesCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics2DGroundEllipsesElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics2DGroundEllipsesCollection._metadata, VehicleGraphics2DGroundEllipsesCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics2DGroundEllipsesElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics2DGroundEllipsesCollection._metadata, VehicleGraphics2DGroundEllipsesCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics2DGroundEllipsesCollection._metadata, VehicleGraphics2DGroundEllipsesCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DGroundEllipsesCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DGroundEllipsesCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DGroundEllipsesCollection, [VehicleGraphics2DGroundEllipsesCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5002235735418604598, 1850998701168670653), VehicleGraphics2DGroundEllipsesCollection)
agcls.AgTypeNameMap["VehicleGraphics2DGroundEllipsesCollection"] = VehicleGraphics2DGroundEllipsesCollection

class VehicleGraphics2DTimeEventTypeLine(IVehicleGraphics2DTimeEventType, SupportsDeleteCallback):
    """2D Graphics time event: line type."""

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_color_method_offset = 1
    _set_color_method_offset = 2
    _get_line_style_method_offset = 3
    _set_line_style_method_offset = 4
    _get_line_width_method_offset = 5
    _set_line_width_method_offset = 6
    _get_unique_identifer_method_offset = 7
    _set_unique_identifer_method_offset = 8
    _get_offset_type_method_offset = 9
    _set_offset_type_method_offset = 10
    _is_offset_type_supported_method_offset = 11
    _get_offset_supported_types_method_offset = 12
    _get_offset_pixels_method_offset = 13
    _set_offset_pixels_method_offset = 14
    _get_event_interval_method_offset = 15
    _metadata = {
        "iid_data" : (5121021473213125679, 17548319590608458428),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DTimeEventTypeLine)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Line color."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._set_color_metadata, color)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Line style."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, line_style:"LineStyle") -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._set_line_style_metadata, line_style)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Line width."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._set_line_width_metadata, line_width)

    _get_unique_identifer_metadata = { "offset" : _get_unique_identifer_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def unique_identifer(self) -> str:
        """User-defined unique ID."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._get_unique_identifer_metadata)

    _set_unique_identifer_metadata = { "offset" : _set_unique_identifer_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @unique_identifer.setter
    def unique_identifer(self, unique_id:str) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._set_unique_identifer_metadata, unique_id)

    _get_offset_type_metadata = { "offset" : _get_offset_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DOffset),) }
    @property
    def offset_type(self) -> "VehicleGraphics2DOffset":
        """Offset direction (left or right)."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._get_offset_type_metadata)

    _set_offset_type_metadata = { "offset" : _set_offset_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DOffset),) }
    def set_offset_type(self, offset:"VehicleGraphics2DOffset") -> None:
        """Offset direction (left or right)."""
        return self._intf.invoke(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._set_offset_type_metadata, offset)

    _is_offset_type_supported_metadata = { "offset" : _is_offset_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DOffset), agmarshall.VariantBoolArg,) }
    def is_offset_type_supported(self, offset:"VehicleGraphics2DOffset") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._is_offset_type_supported_metadata, offset, OutArg())

    _get_offset_supported_types_metadata = { "offset" : _get_offset_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def offset_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._get_offset_supported_types_metadata)

    _get_offset_pixels_metadata = { "offset" : _get_offset_pixels_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def offset_pixels(self) -> int:
        """Offset amount in pixels. Dimensionless."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._get_offset_pixels_metadata)

    _set_offset_pixels_metadata = { "offset" : _set_offset_pixels_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @offset_pixels.setter
    def offset_pixels(self, pixels:int) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._set_offset_pixels_metadata, pixels)

    _get_event_interval_metadata = { "offset" : _get_event_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def event_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Event interval."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeLine._metadata, VehicleGraphics2DTimeEventTypeLine._get_event_interval_metadata)

    _property_names[color] = "color"
    _property_names[line_style] = "line_style"
    _property_names[line_width] = "line_width"
    _property_names[unique_identifer] = "unique_identifer"
    _property_names[offset_type] = "offset_type"
    _property_names[offset_supported_types] = "offset_supported_types"
    _property_names[offset_pixels] = "offset_pixels"
    _property_names[event_interval] = "event_interval"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTimeEventTypeLine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DTimeEventTypeLine)
        IVehicleGraphics2DTimeEventType.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DTimeEventType._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTimeEventTypeLine, [VehicleGraphics2DTimeEventTypeLine, IVehicleGraphics2DTimeEventType])

agcls.AgClassCatalog.add_catalog_entry((4933897555948651648, 12031440418382690205), VehicleGraphics2DTimeEventTypeLine)
agcls.AgTypeNameMap["VehicleGraphics2DTimeEventTypeLine"] = VehicleGraphics2DTimeEventTypeLine

class VehicleGraphics2DTimeEventTypeMarker(IVehicleGraphics2DTimeEventType, SupportsDeleteCallback):
    """2D Graphics time event: marker type."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_color_method_offset = 1
    _set_color_method_offset = 2
    _get_marker_style_method_offset = 3
    _set_marker_style_method_offset = 4
    _get_unique_identifer_method_offset = 5
    _set_unique_identifer_method_offset = 6
    _get_event_interval_method_offset = 7
    _metadata = {
        "iid_data" : (5199049162107850822, 881658863058644659),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DTimeEventTypeMarker)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Marker color."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeMarker._metadata, VehicleGraphics2DTimeEventTypeMarker._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeMarker._metadata, VehicleGraphics2DTimeEventTypeMarker._set_color_metadata, color)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """Marker style."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeMarker._metadata, VehicleGraphics2DTimeEventTypeMarker._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, bstr:str) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeMarker._metadata, VehicleGraphics2DTimeEventTypeMarker._set_marker_style_metadata, bstr)

    _get_unique_identifer_metadata = { "offset" : _get_unique_identifer_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def unique_identifer(self) -> str:
        """Get or set the Unique ID is a unique identifier for each time event. The default is TimeEvent<number>. The unique ID is required when modifying time event data using the Graphics TimeEvent Connect command."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeMarker._metadata, VehicleGraphics2DTimeEventTypeMarker._get_unique_identifer_metadata)

    _set_unique_identifer_metadata = { "offset" : _set_unique_identifer_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @unique_identifer.setter
    def unique_identifer(self, bstr:str) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeMarker._metadata, VehicleGraphics2DTimeEventTypeMarker._set_unique_identifer_metadata, bstr)

    _get_event_interval_metadata = { "offset" : _get_event_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def event_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Event interval."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeMarker._metadata, VehicleGraphics2DTimeEventTypeMarker._get_event_interval_metadata)

    _property_names[color] = "color"
    _property_names[marker_style] = "marker_style"
    _property_names[unique_identifer] = "unique_identifer"
    _property_names[event_interval] = "event_interval"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTimeEventTypeMarker."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DTimeEventTypeMarker)
        IVehicleGraphics2DTimeEventType.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DTimeEventType._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTimeEventTypeMarker, [VehicleGraphics2DTimeEventTypeMarker, IVehicleGraphics2DTimeEventType])

agcls.AgClassCatalog.add_catalog_entry((4760546820503813983, 2552743289440975778), VehicleGraphics2DTimeEventTypeMarker)
agcls.AgTypeNameMap["VehicleGraphics2DTimeEventTypeMarker"] = VehicleGraphics2DTimeEventTypeMarker

class VehicleGraphics2DTimeEventTypeText(IVehicleGraphics2DTimeEventType, SupportsDeleteCallback):
    """2D Graphics time event: text type."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_color_method_offset = 1
    _set_color_method_offset = 2
    _get_text_method_offset = 3
    _set_text_method_offset = 4
    _get_unique_identifer_method_offset = 5
    _set_unique_identifer_method_offset = 6
    _get_offset_type_method_offset = 7
    _set_offset_type_method_offset = 8
    _is_offset_type_supported_method_offset = 9
    _get_offset_supported_types_method_offset = 10
    _get_offset_pixels_method_offset = 11
    _set_offset_pixels_method_offset = 12
    _get_event_interval_method_offset = 13
    _metadata = {
        "iid_data" : (4794918015641477121, 167523798212417413),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DTimeEventTypeText)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Text color."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._set_color_metadata, color)

    _get_text_metadata = { "offset" : _get_text_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def text(self) -> str:
        """Text."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._get_text_metadata)

    _set_text_metadata = { "offset" : _set_text_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @text.setter
    def text(self, text:str) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._set_text_metadata, text)

    _get_unique_identifer_metadata = { "offset" : _get_unique_identifer_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def unique_identifer(self) -> str:
        """User-defined unique ID."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._get_unique_identifer_metadata)

    _set_unique_identifer_metadata = { "offset" : _set_unique_identifer_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @unique_identifer.setter
    def unique_identifer(self, unique_id:str) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._set_unique_identifer_metadata, unique_id)

    _get_offset_type_metadata = { "offset" : _get_offset_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DOffset),) }
    @property
    def offset_type(self) -> "VehicleGraphics2DOffset":
        """Offset direction: left or right."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._get_offset_type_metadata)

    _set_offset_type_metadata = { "offset" : _set_offset_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DOffset),) }
    def set_offset_type(self, offset:"VehicleGraphics2DOffset") -> None:
        """Offset direction: left or right."""
        return self._intf.invoke(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._set_offset_type_metadata, offset)

    _is_offset_type_supported_metadata = { "offset" : _is_offset_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DOffset), agmarshall.VariantBoolArg,) }
    def is_offset_type_supported(self, offset:"VehicleGraphics2DOffset") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._is_offset_type_supported_metadata, offset, OutArg())

    _get_offset_supported_types_metadata = { "offset" : _get_offset_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def offset_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._get_offset_supported_types_metadata)

    _get_offset_pixels_metadata = { "offset" : _get_offset_pixels_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def offset_pixels(self) -> int:
        """Offsets the position of the text to the right or the left of the ground track."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._get_offset_pixels_metadata)

    _set_offset_pixels_metadata = { "offset" : _set_offset_pixels_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @offset_pixels.setter
    def offset_pixels(self, pixels:int) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._set_offset_pixels_metadata, pixels)

    _get_event_interval_metadata = { "offset" : _get_event_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def event_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Event interval."""
        return self._intf.get_property(VehicleGraphics2DTimeEventTypeText._metadata, VehicleGraphics2DTimeEventTypeText._get_event_interval_metadata)

    _property_names[color] = "color"
    _property_names[text] = "text"
    _property_names[unique_identifer] = "unique_identifer"
    _property_names[offset_type] = "offset_type"
    _property_names[offset_supported_types] = "offset_supported_types"
    _property_names[offset_pixels] = "offset_pixels"
    _property_names[event_interval] = "event_interval"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTimeEventTypeText."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DTimeEventTypeText)
        IVehicleGraphics2DTimeEventType.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DTimeEventType._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTimeEventTypeText, [VehicleGraphics2DTimeEventTypeText, IVehicleGraphics2DTimeEventType])

agcls.AgClassCatalog.add_catalog_entry((5268241645623891999, 4963205286189142193), VehicleGraphics2DTimeEventTypeText)
agcls.AgTypeNameMap["VehicleGraphics2DTimeEventTypeText"] = VehicleGraphics2DTimeEventTypeText

class VehicleGraphics2DTimeEventsElement(SupportsDeleteCallback):
    """2D Graphics time event."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_time_event_type_method_offset = 3
    _set_time_event_type_method_offset = 4
    _is_time_event_type_supported_method_offset = 5
    _get_time_event_type_supported_types_method_offset = 6
    _get_time_event_type_data_method_offset = 7
    _metadata = {
        "iid_data" : (5719016951772014751, 452595531896227725),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DTimeEventsElement)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display time event graphics."""
        return self._intf.get_property(VehicleGraphics2DTimeEventsElement._metadata, VehicleGraphics2DTimeEventsElement._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeEventsElement._metadata, VehicleGraphics2DTimeEventsElement._set_show_graphics_metadata, is_visible)

    _get_time_event_type_metadata = { "offset" : _get_time_event_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DTimeEventType),) }
    @property
    def time_event_type(self) -> "VehicleGraphics2DTimeEventType":
        """Type of time event graphics: line, marker or text."""
        return self._intf.get_property(VehicleGraphics2DTimeEventsElement._metadata, VehicleGraphics2DTimeEventsElement._get_time_event_type_metadata)

    _set_time_event_type_metadata = { "offset" : _set_time_event_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DTimeEventType),) }
    def set_time_event_type(self, time_event_type:"VehicleGraphics2DTimeEventType") -> None:
        """Type of time event graphics: line, marker or text."""
        return self._intf.invoke(VehicleGraphics2DTimeEventsElement._metadata, VehicleGraphics2DTimeEventsElement._set_time_event_type_metadata, time_event_type)

    _is_time_event_type_supported_metadata = { "offset" : _is_time_event_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DTimeEventType), agmarshall.VariantBoolArg,) }
    def is_time_event_type_supported(self, time_event_type:"VehicleGraphics2DTimeEventType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics2DTimeEventsElement._metadata, VehicleGraphics2DTimeEventsElement._is_time_event_type_supported_metadata, time_event_type, OutArg())

    _get_time_event_type_supported_types_metadata = { "offset" : _get_time_event_type_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def time_event_type_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics2DTimeEventsElement._metadata, VehicleGraphics2DTimeEventsElement._get_time_event_type_supported_types_metadata)

    _get_time_event_type_data_metadata = { "offset" : _get_time_event_type_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_event_type_data(self) -> "IVehicleGraphics2DTimeEventType":
        """Time event data."""
        return self._intf.get_property(VehicleGraphics2DTimeEventsElement._metadata, VehicleGraphics2DTimeEventsElement._get_time_event_type_data_metadata)

    _property_names[show_graphics] = "show_graphics"
    _property_names[time_event_type] = "time_event_type"
    _property_names[time_event_type_supported_types] = "time_event_type_supported_types"
    _property_names[time_event_type_data] = "time_event_type_data"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTimeEventsElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DTimeEventsElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTimeEventsElement, [VehicleGraphics2DTimeEventsElement, ])

agcls.AgClassCatalog.add_catalog_entry((4802870937334460979, 1892464247872446609), VehicleGraphics2DTimeEventsElement)
agcls.AgTypeNameMap["VehicleGraphics2DTimeEventsElement"] = VehicleGraphics2DTimeEventsElement

class VehicleGraphics2DTimeEventsCollection(SupportsDeleteCallback):
    """A satellite's time events collection."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5456843860413434584, 2153116812277220779),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DTimeEventsCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics2DTimeEventsCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics2DTimeEventsElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics2DTimeEventsCollection._metadata, VehicleGraphics2DTimeEventsCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics2DTimeEventsElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics2DTimeEventsCollection._metadata, VehicleGraphics2DTimeEventsCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics2DTimeEventsCollection._metadata, VehicleGraphics2DTimeEventsCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleGraphics2DTimeEventsCollection._metadata, VehicleGraphics2DTimeEventsCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleGraphics2DTimeEventsCollection._metadata, VehicleGraphics2DTimeEventsCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "VehicleGraphics2DTimeEventsElement":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleGraphics2DTimeEventsCollection._metadata, VehicleGraphics2DTimeEventsCollection._add_metadata, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTimeEventsCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DTimeEventsCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTimeEventsCollection, [VehicleGraphics2DTimeEventsCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4952817716041222045, 13238233501713286026), VehicleGraphics2DTimeEventsCollection)
agcls.AgTypeNameMap["VehicleGraphics2DTimeEventsCollection"] = VehicleGraphics2DTimeEventsCollection

class VehicleGraphics2DPassShowPasses(IVehicleGraphics2DPass, SupportsDeleteCallback):
    """Beginning and end pass numbers to display."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_first_pass_method_offset = 1
    _set_first_pass_method_offset = 2
    _get_last_pass_method_offset = 3
    _set_last_pass_method_offset = 4
    _metadata = {
        "iid_data" : (5566489193447905397, 7340157405408321718),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DPassShowPasses)

    _get_first_pass_metadata = { "offset" : _get_first_pass_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def first_pass(self) -> int:
        """Beginning pass number. Dimensionless."""
        return self._intf.get_property(VehicleGraphics2DPassShowPasses._metadata, VehicleGraphics2DPassShowPasses._get_first_pass_metadata)

    _set_first_pass_metadata = { "offset" : _set_first_pass_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @first_pass.setter
    def first_pass(self, first_pass:int) -> None:
        return self._intf.set_property(VehicleGraphics2DPassShowPasses._metadata, VehicleGraphics2DPassShowPasses._set_first_pass_metadata, first_pass)

    _get_last_pass_metadata = { "offset" : _get_last_pass_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def last_pass(self) -> int:
        """End pass number. Dimensionless."""
        return self._intf.get_property(VehicleGraphics2DPassShowPasses._metadata, VehicleGraphics2DPassShowPasses._get_last_pass_metadata)

    _set_last_pass_metadata = { "offset" : _set_last_pass_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @last_pass.setter
    def last_pass(self, last_pass:int) -> None:
        return self._intf.set_property(VehicleGraphics2DPassShowPasses._metadata, VehicleGraphics2DPassShowPasses._set_last_pass_metadata, last_pass)

    _property_names[first_pass] = "first_pass"
    _property_names[last_pass] = "last_pass"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DPassShowPasses."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DPassShowPasses)
        IVehicleGraphics2DPass.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DPass._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DPassShowPasses, [VehicleGraphics2DPassShowPasses, IVehicleGraphics2DPass])

agcls.AgClassCatalog.add_catalog_entry((5356556726666672725, 1601127774892568463), VehicleGraphics2DPassShowPasses)
agcls.AgTypeNameMap["VehicleGraphics2DPassShowPasses"] = VehicleGraphics2DPassShowPasses

class VehicleGraphics2DPasses(SupportsDeleteCallback):
    """Interface for setting satellite pass display graphics."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pass_type_method_offset = 1
    _set_pass_type_method_offset = 2
    _is_pass_type_supported_method_offset = 3
    _get_pass_supported_types_method_offset = 4
    _get_satellite_pass_method_offset = 5
    _get_visible_sides_method_offset = 6
    _set_visible_sides_method_offset = 7
    _get_show_pass_labels_method_offset = 8
    _set_show_pass_labels_method_offset = 9
    _get_show_path_labels_method_offset = 10
    _set_show_path_labels_method_offset = 11
    _metadata = {
        "iid_data" : (5288787822440762880, 14234891700535145644),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DPasses)

    _get_pass_type_metadata = { "offset" : _get_pass_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DPass),) }
    @property
    def pass_type(self) -> "VehicleGraphics2DPass":
        """Pass display option: show all or those in a user-specified range."""
        return self._intf.get_property(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._get_pass_type_metadata)

    _set_pass_type_metadata = { "offset" : _set_pass_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DPass),) }
    def set_pass_type(self, pass_type:"VehicleGraphics2DPass") -> None:
        """Pass display option: show all or those in a user-specified range."""
        return self._intf.invoke(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._set_pass_type_metadata, pass_type)

    _is_pass_type_supported_metadata = { "offset" : _is_pass_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DPass), agmarshall.VariantBoolArg,) }
    def is_pass_type_supported(self, pass_type:"VehicleGraphics2DPass") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._is_pass_type_supported_metadata, pass_type, OutArg())

    _get_pass_supported_types_metadata = { "offset" : _get_pass_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def pass_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._get_pass_supported_types_metadata)

    _get_satellite_pass_metadata = { "offset" : _get_satellite_pass_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def satellite_pass(self) -> "IVehicleGraphics2DPass":
        """Get the pass property."""
        return self._intf.get_property(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._get_satellite_pass_metadata)

    _get_visible_sides_metadata = { "offset" : _get_visible_sides_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DVisibleSideType),) }
    @property
    def visible_sides(self) -> "VehicleGraphics2DVisibleSideType":
        """Get or set the visible sides option for the pass: ascending, descending, both or none."""
        return self._intf.get_property(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._get_visible_sides_metadata)

    _set_visible_sides_metadata = { "offset" : _set_visible_sides_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DVisibleSideType),) }
    @visible_sides.setter
    def visible_sides(self, visible_sides:"VehicleGraphics2DVisibleSideType") -> None:
        return self._intf.set_property(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._set_visible_sides_metadata, visible_sides)

    _get_show_pass_labels_metadata = { "offset" : _get_show_pass_labels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_pass_labels(self) -> bool:
        """Opt whether to display pass numbers at the pass break locations in the 2D Graphics window."""
        return self._intf.get_property(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._get_show_pass_labels_metadata)

    _set_show_pass_labels_metadata = { "offset" : _set_show_pass_labels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_pass_labels.setter
    def show_pass_labels(self, show_pass_labels:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._set_show_pass_labels_metadata, show_pass_labels)

    _get_show_path_labels_metadata = { "offset" : _get_show_path_labels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_path_labels(self) -> bool:
        """Opt whether to display path numbers within a repeating ground track sequence at the pass break locations in the 2D Graphics window."""
        return self._intf.get_property(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._get_show_path_labels_metadata)

    _set_show_path_labels_metadata = { "offset" : _set_show_path_labels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_path_labels.setter
    def show_path_labels(self, show_path_labels:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DPasses._metadata, VehicleGraphics2DPasses._set_show_path_labels_metadata, show_path_labels)

    _property_names[pass_type] = "pass_type"
    _property_names[pass_supported_types] = "pass_supported_types"
    _property_names[satellite_pass] = "satellite_pass"
    _property_names[visible_sides] = "visible_sides"
    _property_names[show_pass_labels] = "show_pass_labels"
    _property_names[show_path_labels] = "show_path_labels"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DPasses."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DPasses)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DPasses, [VehicleGraphics2DPasses, ])

agcls.AgClassCatalog.add_catalog_entry((5242849382021044905, 9719154724029807281), VehicleGraphics2DPasses)
agcls.AgTypeNameMap["VehicleGraphics2DPasses"] = VehicleGraphics2DPasses

class VehicleGraphics2DSAA(SupportsDeleteCallback):
    """South Atlantic Anomaly contour settings."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_use_vehicle_altitude_method_offset = 3
    _set_use_vehicle_altitude_method_offset = 4
    _get_altitude_method_offset = 5
    _set_altitude_method_offset = 6
    _get_show_filled_contours_method_offset = 7
    _set_show_filled_contours_method_offset = 8
    _get_translucency_method_offset = 9
    _set_translucency_method_offset = 10
    _metadata = {
        "iid_data" : (5437050294762560110, 4496618412636917647),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DSAA)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display South Atlantic Anomaly contours."""
        return self._intf.get_property(VehicleGraphics2DSAA._metadata, VehicleGraphics2DSAA._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DSAA._metadata, VehicleGraphics2DSAA._set_show_graphics_metadata, is_visible)

    _get_use_vehicle_altitude_metadata = { "offset" : _get_use_vehicle_altitude_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_vehicle_altitude(self) -> bool:
        """Opt whether to display South Atlantic Anomaly contours at the satellite's altitude."""
        return self._intf.get_property(VehicleGraphics2DSAA._metadata, VehicleGraphics2DSAA._get_use_vehicle_altitude_metadata)

    _set_use_vehicle_altitude_metadata = { "offset" : _set_use_vehicle_altitude_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_vehicle_altitude.setter
    def use_vehicle_altitude(self, use_vehicle_alt:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DSAA._metadata, VehicleGraphics2DSAA._set_use_vehicle_altitude_metadata, use_vehicle_alt)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Altitude at which South Atlantic Anomaly contours are to display. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics2DSAA._metadata, VehicleGraphics2DSAA._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, altitude:float) -> None:
        return self._intf.set_property(VehicleGraphics2DSAA._metadata, VehicleGraphics2DSAA._set_altitude_metadata, altitude)

    _get_show_filled_contours_metadata = { "offset" : _get_show_filled_contours_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_filled_contours(self) -> bool:
        """Opt whether to display a fill in the region within the South Atlantic Anomaly contours."""
        return self._intf.get_property(VehicleGraphics2DSAA._metadata, VehicleGraphics2DSAA._get_show_filled_contours_metadata)

    _set_show_filled_contours_metadata = { "offset" : _set_show_filled_contours_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_filled_contours.setter
    def show_filled_contours(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DSAA._metadata, VehicleGraphics2DSAA._set_show_filled_contours_metadata, value)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Percent translucency (0 to 100) for South Atlantic Anomaly contours if contours are filled. Dimensionless."""
        return self._intf.get_property(VehicleGraphics2DSAA._metadata, VehicleGraphics2DSAA._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, translucency:float) -> None:
        return self._intf.set_property(VehicleGraphics2DSAA._metadata, VehicleGraphics2DSAA._set_translucency_metadata, translucency)

    _property_names[show_graphics] = "show_graphics"
    _property_names[use_vehicle_altitude] = "use_vehicle_altitude"
    _property_names[altitude] = "altitude"
    _property_names[show_filled_contours] = "show_filled_contours"
    _property_names[translucency] = "translucency"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DSAA."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DSAA)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DSAA, [VehicleGraphics2DSAA, ])

agcls.AgClassCatalog.add_catalog_entry((5623173716945180176, 4910505524558112430), VehicleGraphics2DSAA)
agcls.AgTypeNameMap["VehicleGraphics2DSAA"] = VehicleGraphics2DSAA

class VehicleGraphics2DElevationsElement(SupportsDeleteCallback):
    """2D Graphics settings for elevation contours."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_elevation_method_offset = 1
    _set_elevation_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_line_style_method_offset = 5
    _set_line_style_method_offset = 6
    _get_line_width_method_offset = 7
    _set_line_width_method_offset = 8
    _get_show_distance_label_method_offset = 9
    _set_show_distance_label_method_offset = 10
    _get_show_user_text_visible_method_offset = 11
    _set_show_user_text_visible_method_offset = 12
    _get_user_text_method_offset = 13
    _set_user_text_method_offset = 14
    _get_label_angle_method_offset = 15
    _set_label_angle_method_offset = 16
    _metadata = {
        "iid_data" : (4893913437146031695, 2834110654350760102),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DElevationsElement)

    _get_elevation_metadata = { "offset" : _get_elevation_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation(self) -> float:
        """Elevation level. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._get_elevation_metadata)

    _set_elevation_metadata = { "offset" : _set_elevation_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @elevation.setter
    def elevation(self, elevation:float) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._set_elevation_metadata, elevation)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Contour color."""
        return self._intf.get_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._set_color_metadata, color)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Contour line style."""
        return self._intf.get_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, line_style:"LineStyle") -> None:
        return self._intf.set_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._set_line_style_metadata, line_style)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Contour line width."""
        return self._intf.get_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._set_line_width_metadata, line_width)

    _get_show_distance_label_metadata = { "offset" : _get_show_distance_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_distance_label(self) -> bool:
        """Distance visible."""
        return self._intf.get_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._get_show_distance_label_metadata)

    _set_show_distance_label_metadata = { "offset" : _set_show_distance_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_distance_label.setter
    def show_distance_label(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._set_show_distance_label_metadata, is_visible)

    _get_show_user_text_visible_metadata = { "offset" : _get_show_user_text_visible_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_user_text_visible(self) -> bool:
        """Show User Defined Text on Contour."""
        return self._intf.get_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._get_show_user_text_visible_metadata)

    _set_show_user_text_visible_metadata = { "offset" : _set_show_user_text_visible_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_user_text_visible.setter
    def show_user_text_visible(self, show_user_text:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._set_show_user_text_visible_metadata, show_user_text)

    _get_user_text_metadata = { "offset" : _get_user_text_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def user_text(self) -> str:
        """Opt whether to display user defined text for the contour."""
        return self._intf.get_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._get_user_text_metadata)

    _set_user_text_metadata = { "offset" : _set_user_text_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @user_text.setter
    def user_text(self, user_text:str) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._set_user_text_metadata, user_text)

    _get_label_angle_metadata = { "offset" : _get_label_angle_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def label_angle(self) -> int:
        """Get or set the angle (0-359 deg, starting at 12 o'clock) along the contour at which the label displays."""
        return self._intf.get_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._get_label_angle_metadata)

    _set_label_angle_metadata = { "offset" : _set_label_angle_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @label_angle.setter
    def label_angle(self, label_angle:int) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationsElement._metadata, VehicleGraphics2DElevationsElement._set_label_angle_metadata, label_angle)

    _property_names[elevation] = "elevation"
    _property_names[color] = "color"
    _property_names[line_style] = "line_style"
    _property_names[line_width] = "line_width"
    _property_names[show_distance_label] = "show_distance_label"
    _property_names[show_user_text_visible] = "show_user_text_visible"
    _property_names[user_text] = "user_text"
    _property_names[label_angle] = "label_angle"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DElevationsElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DElevationsElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DElevationsElement, [VehicleGraphics2DElevationsElement, ])

agcls.AgClassCatalog.add_catalog_entry((4876075549162230785, 2269749891941898174), VehicleGraphics2DElevationsElement)
agcls.AgTypeNameMap["VehicleGraphics2DElevationsElement"] = VehicleGraphics2DElevationsElement

class VehicleGraphics2DElevationsCollection(SupportsDeleteCallback):
    """Collection for elevation contours. Used by vehicles."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_level_method_offset = 6
    _add_level_range_method_offset = 7
    _metadata = {
        "iid_data" : (5006813080512059186, 622924212371462310),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DElevationsCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics2DElevationsCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics2DElevationsElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics2DElevationsCollection._metadata, VehicleGraphics2DElevationsCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics2DElevationsElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics2DElevationsCollection._metadata, VehicleGraphics2DElevationsCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics2DElevationsCollection._metadata, VehicleGraphics2DElevationsCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleGraphics2DElevationsCollection._metadata, VehicleGraphics2DElevationsCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleGraphics2DElevationsCollection._metadata, VehicleGraphics2DElevationsCollection._remove_all_metadata, )

    _add_level_metadata = { "offset" : _add_level_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add_level(self, elevation:float) -> "VehicleGraphics2DElevationsElement":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleGraphics2DElevationsCollection._metadata, VehicleGraphics2DElevationsCollection._add_level_metadata, elevation, OutArg())

    _add_level_range_metadata = { "offset" : _add_level_range_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def add_level_range(self, start:typing.Any, stop:typing.Any, step:typing.Any) -> None:
        """Add a range of new levels to the collection."""
        return self._intf.invoke(VehicleGraphics2DElevationsCollection._metadata, VehicleGraphics2DElevationsCollection._add_level_range_metadata, start, stop, step)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DElevationsCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DElevationsCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DElevationsCollection, [VehicleGraphics2DElevationsCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4681111673674702894, 12758759278167995557), VehicleGraphics2DElevationsCollection)
agcls.AgTypeNameMap["VehicleGraphics2DElevationsCollection"] = VehicleGraphics2DElevationsCollection

class VehicleGraphics2DElevationContours(SupportsDeleteCallback):
    """
    General settings regarding display of elevation contours.

    Examples
    --------
    Set 2D/3D Elevation Contours:
    >>> # Satellite satellite: Satellite object
    >>> # Set the contours in the 2D properties
    >>> contours = satellite.graphics.elevation_contours
    >>> contours.show_graphics = True
    >>> contours.number_of_decimal_digits = 0
    >>> contours.elevations.add_level_range(0, 90, 10)  # Min, Max, Step
    >>> # Turn the contours on in the 3D properties
    >>> satellite.graphics_3d.elevation_contours.show_graphics = True
    """

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_show_filled_contours_method_offset = 3
    _set_show_filled_contours_method_offset = 4
    _get_fill_style_method_offset = 5
    _set_fill_style_method_offset = 6
    _get_number_of_decimal_digits_method_offset = 7
    _set_number_of_decimal_digits_method_offset = 8
    _get_elevations_method_offset = 9
    _get_fill_translucency_method_offset = 10
    _set_fill_translucency_method_offset = 11
    _metadata = {
        "iid_data" : (5021251756679618148, 8401716538147440301),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DElevationContours)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display elevation contours."""
        return self._intf.get_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._set_show_graphics_metadata, is_visible)

    _get_show_filled_contours_metadata = { "offset" : _get_show_filled_contours_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_filled_contours(self) -> bool:
        """Opt whether to display a fill over the area within the contours."""
        return self._intf.get_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._get_show_filled_contours_metadata)

    _set_show_filled_contours_metadata = { "offset" : _set_show_filled_contours_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_filled_contours.setter
    def show_filled_contours(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._set_show_filled_contours_metadata, value)

    _get_fill_style_metadata = { "offset" : _get_fill_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FillStyle),) }
    @property
    def fill_style(self) -> "FillStyle":
        """Get or set the type of fill to display."""
        return self._intf.get_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._get_fill_style_metadata)

    _set_fill_style_metadata = { "offset" : _set_fill_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FillStyle),) }
    @fill_style.setter
    def fill_style(self, value:"FillStyle") -> None:
        return self._intf.set_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._set_fill_style_metadata, value)

    _get_number_of_decimal_digits_metadata = { "offset" : _get_number_of_decimal_digits_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_decimal_digits(self) -> int:
        """Number of decimal digits. Dimensionless."""
        return self._intf.get_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._get_number_of_decimal_digits_metadata)

    _set_number_of_decimal_digits_metadata = { "offset" : _set_number_of_decimal_digits_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_decimal_digits.setter
    def number_of_decimal_digits(self, dec_digits:int) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._set_number_of_decimal_digits_metadata, dec_digits)

    _get_elevations_metadata = { "offset" : _get_elevations_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elevations(self) -> "VehicleGraphics2DElevationsCollection":
        """Collection of Levels."""
        return self._intf.get_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._get_elevations_metadata)

    _get_fill_translucency_metadata = { "offset" : _get_fill_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fill_translucency(self) -> float:
        """Specify the fill translucency percentage of the area within the contours. Translucency ranges from 0 to 100 percent, where 100 percent is invisible."""
        return self._intf.get_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._get_fill_translucency_metadata)

    _set_fill_translucency_metadata = { "offset" : _set_fill_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fill_translucency.setter
    def fill_translucency(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics2DElevationContours._metadata, VehicleGraphics2DElevationContours._set_fill_translucency_metadata, value)

    _property_names[show_graphics] = "show_graphics"
    _property_names[show_filled_contours] = "show_filled_contours"
    _property_names[fill_style] = "fill_style"
    _property_names[number_of_decimal_digits] = "number_of_decimal_digits"
    _property_names[elevations] = "elevations"
    _property_names[fill_translucency] = "fill_translucency"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DElevationContours."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DElevationContours)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DElevationContours, [VehicleGraphics2DElevationContours, ])

agcls.AgClassCatalog.add_catalog_entry((4753664148809626817, 7481872348300955036), VehicleGraphics2DElevationContours)
agcls.AgTypeNameMap["VehicleGraphics2DElevationContours"] = VehicleGraphics2DElevationContours

class VehicleGraphics2DRouteResolution(SupportsDeleteCallback):
    """Route resolution for great arc vehicles defined in terms of ephemeris steps."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_route_method_offset = 1
    _set_route_method_offset = 2
    _get_minimum_route_method_offset = 3
    _set_minimum_route_method_offset = 4
    _metadata = {
        "iid_data" : (5151189485756939422, 15018436956993158335),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DRouteResolution)

    _get_route_metadata = { "offset" : _get_route_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def route(self) -> float:
        """Route resolution in terms of the ephemeris step. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics2DRouteResolution._metadata, VehicleGraphics2DRouteResolution._get_route_metadata)

    _set_route_metadata = { "offset" : _set_route_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @route.setter
    def route(self, route:float) -> None:
        return self._intf.set_property(VehicleGraphics2DRouteResolution._metadata, VehicleGraphics2DRouteResolution._set_route_metadata, route)

    _get_minimum_route_metadata = { "offset" : _get_minimum_route_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_route(self) -> float:
        """Minimum route resolution in terms of the ephemeris step. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics2DRouteResolution._metadata, VehicleGraphics2DRouteResolution._get_minimum_route_metadata)

    _set_minimum_route_metadata = { "offset" : _set_minimum_route_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_route.setter
    def minimum_route(self, min_route:float) -> None:
        return self._intf.set_property(VehicleGraphics2DRouteResolution._metadata, VehicleGraphics2DRouteResolution._set_minimum_route_metadata, min_route)

    _property_names[route] = "route"
    _property_names[minimum_route] = "minimum_route"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DRouteResolution."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DRouteResolution)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DRouteResolution, [VehicleGraphics2DRouteResolution, ])

agcls.AgClassCatalog.add_catalog_entry((5524049018064363356, 8084032063019931577), VehicleGraphics2DRouteResolution)
agcls.AgTypeNameMap["VehicleGraphics2DRouteResolution"] = VehicleGraphics2DRouteResolution

class VehicleGraphics2DWaypointMarkersElement(SupportsDeleteCallback):
    """2D Graphics properties of element of waypoint collection."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_method_offset = 1
    _get_show_graphics_method_offset = 2
    _set_show_graphics_method_offset = 3
    _get_show_label_method_offset = 4
    _set_show_label_method_offset = 5
    _get_label_method_offset = 6
    _set_label_method_offset = 7
    _get_use_vehicle_color_method_offset = 8
    _set_use_vehicle_color_method_offset = 9
    _get_color_method_offset = 10
    _set_color_method_offset = 11
    _get_marker_style_method_offset = 12
    _set_marker_style_method_offset = 13
    _metadata = {
        "iid_data" : (5626274319668850250, 12486369343556811698),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DWaypointMarkersElement)

    _get_time_metadata = { "offset" : _get_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def time(self) -> typing.Any:
        """Time of the waypoint. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._get_time_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to show the waypoint."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._set_show_graphics_metadata, is_visible)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Opt whether to display a label for the waypoint."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, show_label:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._set_show_label_metadata, show_label)

    _get_label_metadata = { "offset" : _get_label_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label(self) -> str:
        """Content of the waypoint label."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._get_label_metadata)

    _set_label_metadata = { "offset" : _set_label_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label.setter
    def label(self, label:str) -> None:
        return self._intf.set_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._set_label_metadata, label)

    _get_use_vehicle_color_metadata = { "offset" : _get_use_vehicle_color_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_vehicle_color(self) -> bool:
        """Opt whether to set the waypoint color to the color of the vehicle."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._get_use_vehicle_color_metadata)

    _set_use_vehicle_color_metadata = { "offset" : _set_use_vehicle_color_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_vehicle_color.setter
    def use_vehicle_color(self, use_veh_color:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._set_use_vehicle_color_metadata, use_veh_color)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Color of the waypoint marker."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._set_color_metadata, color)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """Style of the waypoint marker."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, bstr:str) -> None:
        return self._intf.set_property(VehicleGraphics2DWaypointMarkersElement._metadata, VehicleGraphics2DWaypointMarkersElement._set_marker_style_metadata, bstr)

    _property_names[time] = "time"
    _property_names[show_graphics] = "show_graphics"
    _property_names[show_label] = "show_label"
    _property_names[label] = "label"
    _property_names[use_vehicle_color] = "use_vehicle_color"
    _property_names[color] = "color"
    _property_names[marker_style] = "marker_style"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DWaypointMarkersElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DWaypointMarkersElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DWaypointMarkersElement, [VehicleGraphics2DWaypointMarkersElement, ])

agcls.AgClassCatalog.add_catalog_entry((4661295232985867898, 3792576746997086624), VehicleGraphics2DWaypointMarkersElement)
agcls.AgTypeNameMap["VehicleGraphics2DWaypointMarkersElement"] = VehicleGraphics2DWaypointMarkersElement

class VehicleGraphics2DWaypointMarkersCollection(SupportsDeleteCallback):
    """A list of 2D definitions for the vehicle way points."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (4707444744086974346, 9669340683302416044),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DWaypointMarkersCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics2DWaypointMarkersCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics2DWaypointMarkersElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarkersCollection._metadata, VehicleGraphics2DWaypointMarkersCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics2DWaypointMarkersElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics2DWaypointMarkersCollection._metadata, VehicleGraphics2DWaypointMarkersCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarkersCollection._metadata, VehicleGraphics2DWaypointMarkersCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DWaypointMarkersCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DWaypointMarkersCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DWaypointMarkersCollection, [VehicleGraphics2DWaypointMarkersCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5461947160120023102, 14996717476277877892), VehicleGraphics2DWaypointMarkersCollection)
agcls.AgTypeNameMap["VehicleGraphics2DWaypointMarkersCollection"] = VehicleGraphics2DWaypointMarkersCollection

class VehicleGraphics2DWaypointMarker(SupportsDeleteCallback):
    """Display options for waypoint and turn markers in the 2D Graphics window."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_waypoint_markers_method_offset = 1
    _set_show_waypoint_markers_method_offset = 2
    _get_show_turn_markers_method_offset = 3
    _set_show_turn_markers_method_offset = 4
    _get_waypoint_markers_method_offset = 5
    _metadata = {
        "iid_data" : (5157442059507668323, 13229483068239757720),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DWaypointMarker)

    _get_show_waypoint_markers_metadata = { "offset" : _get_show_waypoint_markers_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_waypoint_markers(self) -> bool:
        """Opt whether to display a marker in the 2D Graphics window at each waypoint along the vehicle's route."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarker._metadata, VehicleGraphics2DWaypointMarker._get_show_waypoint_markers_metadata)

    _set_show_waypoint_markers_metadata = { "offset" : _set_show_waypoint_markers_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_waypoint_markers.setter
    def show_waypoint_markers(self, show_waypoint_markers:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DWaypointMarker._metadata, VehicleGraphics2DWaypointMarker._set_show_waypoint_markers_metadata, show_waypoint_markers)

    _get_show_turn_markers_metadata = { "offset" : _get_show_turn_markers_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_turn_markers(self) -> bool:
        """If a turn radius is specified for the waypoint, opt whether to display tic marks at the beginning and end of the turn, together with a mark representing the center point of the turn."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarker._metadata, VehicleGraphics2DWaypointMarker._get_show_turn_markers_metadata)

    _set_show_turn_markers_metadata = { "offset" : _set_show_turn_markers_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_turn_markers.setter
    def show_turn_markers(self, show_turn_markers:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DWaypointMarker._metadata, VehicleGraphics2DWaypointMarker._set_show_turn_markers_metadata, show_turn_markers)

    _get_waypoint_markers_metadata = { "offset" : _get_waypoint_markers_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def waypoint_markers(self) -> "VehicleGraphics2DWaypointMarkersCollection":
        """Get the collection of waypoint markers."""
        return self._intf.get_property(VehicleGraphics2DWaypointMarker._metadata, VehicleGraphics2DWaypointMarker._get_waypoint_markers_metadata)

    _property_names[show_waypoint_markers] = "show_waypoint_markers"
    _property_names[show_turn_markers] = "show_turn_markers"
    _property_names[waypoint_markers] = "waypoint_markers"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DWaypointMarker."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DWaypointMarker)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DWaypointMarker, [VehicleGraphics2DWaypointMarker, ])

agcls.AgClassCatalog.add_catalog_entry((4683785279612058634, 15233125119022095292), VehicleGraphics2DWaypointMarker)
agcls.AgTypeNameMap["VehicleGraphics2DWaypointMarker"] = VehicleGraphics2DWaypointMarker

class VehicleGraphics2DInterval(SupportsDeleteCallback):
    """2D Graphics display based on custom intervals."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_graphics_2d_attributes_method_offset = 1
    _get_start_time_method_offset = 2
    _set_start_time_method_offset = 3
    _get_stop_time_method_offset = 4
    _set_stop_time_method_offset = 5
    _metadata = {
        "iid_data" : (5197973876444573029, 13836162496487067537),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DInterval)

    _get_graphics_2d_attributes_metadata = { "offset" : _get_graphics_2d_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_2d_attributes(self) -> "IVehicleGraphics2DAttributesBasic":
        """Get the 2D Graphics attributes for the interval."""
        return self._intf.get_property(VehicleGraphics2DInterval._metadata, VehicleGraphics2DInterval._get_graphics_2d_attributes_metadata)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Get or set the start time of the custom interval. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleGraphics2DInterval._metadata, VehicleGraphics2DInterval._get_start_time_metadata)

    _set_start_time_metadata = { "offset" : _set_start_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_time.setter
    def start_time(self, value:typing.Any) -> None:
        return self._intf.set_property(VehicleGraphics2DInterval._metadata, VehicleGraphics2DInterval._set_start_time_metadata, value)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Get or set the stop time of the custom interval. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleGraphics2DInterval._metadata, VehicleGraphics2DInterval._get_stop_time_metadata)

    _set_stop_time_metadata = { "offset" : _set_stop_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop_time.setter
    def stop_time(self, value:typing.Any) -> None:
        return self._intf.set_property(VehicleGraphics2DInterval._metadata, VehicleGraphics2DInterval._set_stop_time_metadata, value)

    _property_names[graphics_2d_attributes] = "graphics_2d_attributes"
    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DInterval."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DInterval)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DInterval, [VehicleGraphics2DInterval, ])

agcls.AgClassCatalog.add_catalog_entry((4813996568345811348, 8257020327645308303), VehicleGraphics2DInterval)
agcls.AgTypeNameMap["VehicleGraphics2DInterval"] = VehicleGraphics2DInterval

class VehicleGraphics2DPassResolution(SupportsDeleteCallback):
    """
    Ground track and orbit resolution for satellites defined in terms of ephemeris steps.

    Examples
    --------
    Change the graphics resolution of the orbit for a smooth path:
    >>> # Satellite satellite: Satellite object
    >>> resolution = satellite.graphics.resolution
    >>> resolution.orbit = 60
    """

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ground_track_method_offset = 1
    _set_ground_track_method_offset = 2
    _get_orbit_method_offset = 3
    _set_orbit_method_offset = 4
    _get_minimum_ground_track_method_offset = 5
    _set_minimum_ground_track_method_offset = 6
    _get_minimum_orbit_method_offset = 7
    _set_minimum_orbit_method_offset = 8
    _metadata = {
        "iid_data" : (5556702295705223808, 4280748308879641221),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DPassResolution)

    _get_ground_track_metadata = { "offset" : _get_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ground_track(self) -> float:
        """Ground track resolution defined in terms of the ephemeris step. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics2DPassResolution._metadata, VehicleGraphics2DPassResolution._get_ground_track_metadata)

    _set_ground_track_metadata = { "offset" : _set_ground_track_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ground_track.setter
    def ground_track(self, ground_track:float) -> None:
        return self._intf.set_property(VehicleGraphics2DPassResolution._metadata, VehicleGraphics2DPassResolution._set_ground_track_metadata, ground_track)

    _get_orbit_metadata = { "offset" : _get_orbit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def orbit(self) -> float:
        """Orbit resolution defined in terms of the ephemeris step. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics2DPassResolution._metadata, VehicleGraphics2DPassResolution._get_orbit_metadata)

    _set_orbit_metadata = { "offset" : _set_orbit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @orbit.setter
    def orbit(self, orbit:float) -> None:
        return self._intf.set_property(VehicleGraphics2DPassResolution._metadata, VehicleGraphics2DPassResolution._set_orbit_metadata, orbit)

    _get_minimum_ground_track_metadata = { "offset" : _get_minimum_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_ground_track(self) -> float:
        """Minimum ground track resolution defined in terms of the ephemeris step. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics2DPassResolution._metadata, VehicleGraphics2DPassResolution._get_minimum_ground_track_metadata)

    _set_minimum_ground_track_metadata = { "offset" : _set_minimum_ground_track_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_ground_track.setter
    def minimum_ground_track(self, min_ground_track:float) -> None:
        return self._intf.set_property(VehicleGraphics2DPassResolution._metadata, VehicleGraphics2DPassResolution._set_minimum_ground_track_metadata, min_ground_track)

    _get_minimum_orbit_metadata = { "offset" : _get_minimum_orbit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_orbit(self) -> float:
        """Minimum orbit resolution defined in terms of the ephemeris step. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics2DPassResolution._metadata, VehicleGraphics2DPassResolution._get_minimum_orbit_metadata)

    _set_minimum_orbit_metadata = { "offset" : _set_minimum_orbit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_orbit.setter
    def minimum_orbit(self, min_orbit:float) -> None:
        return self._intf.set_property(VehicleGraphics2DPassResolution._metadata, VehicleGraphics2DPassResolution._set_minimum_orbit_metadata, min_orbit)

    _property_names[ground_track] = "ground_track"
    _property_names[orbit] = "orbit"
    _property_names[minimum_ground_track] = "minimum_ground_track"
    _property_names[minimum_orbit] = "minimum_orbit"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DPassResolution."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DPassResolution)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DPassResolution, [VehicleGraphics2DPassResolution, ])

agcls.AgClassCatalog.add_catalog_entry((5174059140054272473, 10641930857157544595), VehicleGraphics2DPassResolution)
agcls.AgTypeNameMap["VehicleGraphics2DPassResolution"] = VehicleGraphics2DPassResolution

class VehicleGraphics2DGroundEllipsesElement(SupportsDeleteCallback):
    """Ground ellipse 2D graphics properties."""

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ellipse_set_name_method_offset = 1
    _get_static_graphics_2d_method_offset = 2
    _set_static_graphics_2d_method_offset = 3
    _get_dynamic_graphics_2d_method_offset = 4
    _set_dynamic_graphics_2d_method_offset = 5
    _get_interpolate_method_offset = 6
    _set_interpolate_method_offset = 7
    _get_show_name_method_offset = 8
    _set_show_name_method_offset = 9
    _get_show_center_point_marker_method_offset = 10
    _set_show_center_point_marker_method_offset = 11
    _get_color_method_offset = 12
    _set_color_method_offset = 13
    _get_line_width_method_offset = 14
    _set_line_width_method_offset = 15
    _metadata = {
        "iid_data" : (5077545250200895591, 4697700223446065051),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DGroundEllipsesElement)

    _get_ellipse_set_name_metadata = { "offset" : _get_ellipse_set_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def ellipse_set_name(self) -> str:
        """Name of the ellipse set."""
        return self._intf.get_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._get_ellipse_set_name_metadata)

    _get_static_graphics_2d_metadata = { "offset" : _get_static_graphics_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def static_graphics_2d(self) -> bool:
        """Opt whether to display static graphics: all ellipses are displayed in the graphics windows."""
        return self._intf.get_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._get_static_graphics_2d_metadata)

    _set_static_graphics_2d_metadata = { "offset" : _set_static_graphics_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @static_graphics_2d.setter
    def static_graphics_2d(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._set_static_graphics_2d_metadata, value)

    _get_dynamic_graphics_2d_metadata = { "offset" : _get_dynamic_graphics_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def dynamic_graphics_2d(self) -> bool:
        """Opt whether to display dynamic graphics: an ellipse is interpolated between all specified ellipses, linearly interpolating semimajor/minor axes and bearings. Position is interpolated between the ellipses with the closest times to the animation time."""
        return self._intf.get_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._get_dynamic_graphics_2d_metadata)

    _set_dynamic_graphics_2d_metadata = { "offset" : _set_dynamic_graphics_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @dynamic_graphics_2d.setter
    def dynamic_graphics_2d(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._set_dynamic_graphics_2d_metadata, value)

    _get_interpolate_metadata = { "offset" : _get_interpolate_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def interpolate(self) -> bool:
        """Opt whether to interpolate between time points or the last known size and orientation for dynamic graphics."""
        return self._intf.get_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._get_interpolate_metadata)

    _set_interpolate_metadata = { "offset" : _set_interpolate_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @interpolate.setter
    def interpolate(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._set_interpolate_metadata, value)

    _get_show_name_metadata = { "offset" : _get_show_name_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_name(self) -> bool:
        """Opt whether to display the name of the ellipse set at the center of each ellipse in the ellipse set."""
        return self._intf.get_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._get_show_name_metadata)

    _set_show_name_metadata = { "offset" : _set_show_name_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_name.setter
    def show_name(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._set_show_name_metadata, value)

    _get_show_center_point_marker_metadata = { "offset" : _get_show_center_point_marker_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_center_point_marker(self) -> bool:
        """Opt whether to display the point marker for each ellipse in the ellipse set."""
        return self._intf.get_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._get_show_center_point_marker_metadata)

    _set_show_center_point_marker_metadata = { "offset" : _set_show_center_point_marker_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_center_point_marker.setter
    def show_center_point_marker(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._set_show_center_point_marker_metadata, value)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Color of the ellipse set name and ellipse graphics for all ellipses in the set."""
        return self._intf.get_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._set_color_metadata, value)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Line width of ellipses in the set."""
        return self._intf.get_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics2DGroundEllipsesElement._metadata, VehicleGraphics2DGroundEllipsesElement._set_line_width_metadata, value)

    _property_names[ellipse_set_name] = "ellipse_set_name"
    _property_names[static_graphics_2d] = "static_graphics_2d"
    _property_names[dynamic_graphics_2d] = "dynamic_graphics_2d"
    _property_names[interpolate] = "interpolate"
    _property_names[show_name] = "show_name"
    _property_names[show_center_point_marker] = "show_center_point_marker"
    _property_names[color] = "color"
    _property_names[line_width] = "line_width"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DGroundEllipsesElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DGroundEllipsesElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DGroundEllipsesElement, [VehicleGraphics2DGroundEllipsesElement, ])

agcls.AgClassCatalog.add_catalog_entry((5187957241511996499, 18409837444654651297), VehicleGraphics2DGroundEllipsesElement)
agcls.AgTypeNameMap["VehicleGraphics2DGroundEllipsesElement"] = VehicleGraphics2DGroundEllipsesElement

class VehicleGraphics2DAttributesRoute(IVehicleGraphics2DAttributesBasic, IVehicleGraphics2DAttributes, SupportsDeleteCallback):
    """2D Graphics attributes for aircraft, ships and ground vehicles."""

    _num_methods = 6
    _vtable_offset = IVehicleGraphics2DAttributesBasic._vtable_offset + IVehicleGraphics2DAttributesBasic._num_methods
    _get_show_route_method_offset = 1
    _set_show_route_method_offset = 2
    _get_show_route_marker_method_offset = 3
    _set_show_route_marker_method_offset = 4
    _get_pick_string_method_offset = 5
    _set_pick_string_method_offset = 6
    _metadata = {
        "iid_data" : (5483711958418593835, 11006579239510677890),
        "vtable_reference" : IVehicleGraphics2DAttributesBasic._vtable_offset + IVehicleGraphics2DAttributesBasic._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DAttributesRoute)

    _get_show_route_metadata = { "offset" : _get_show_route_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_route(self) -> bool:
        """Opt whether to show the vehicle's route."""
        return self._intf.get_property(VehicleGraphics2DAttributesRoute._metadata, VehicleGraphics2DAttributesRoute._get_show_route_metadata)

    _set_show_route_metadata = { "offset" : _set_show_route_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_route.setter
    def show_route(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesRoute._metadata, VehicleGraphics2DAttributesRoute._set_show_route_metadata, value)

    _get_show_route_marker_metadata = { "offset" : _get_show_route_marker_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_route_marker(self) -> bool:
        """Opt whether to show the vehicle's route marker."""
        return self._intf.get_property(VehicleGraphics2DAttributesRoute._metadata, VehicleGraphics2DAttributesRoute._get_show_route_marker_metadata)

    _set_show_route_marker_metadata = { "offset" : _set_show_route_marker_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_route_marker.setter
    def show_route_marker(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesRoute._metadata, VehicleGraphics2DAttributesRoute._set_show_route_marker_metadata, value)

    _get_pick_string_metadata = { "offset" : _get_pick_string_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def pick_string(self) -> str:
        """String displayed after instance name when the vehicle line is picked in 2D or 3D."""
        return self._intf.get_property(VehicleGraphics2DAttributesRoute._metadata, VehicleGraphics2DAttributesRoute._get_pick_string_metadata)

    _set_pick_string_metadata = { "offset" : _set_pick_string_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @pick_string.setter
    def pick_string(self, value:str) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesRoute._metadata, VehicleGraphics2DAttributesRoute._set_pick_string_metadata, value)

    _property_names[show_route] = "show_route"
    _property_names[show_route_marker] = "show_route_marker"
    _property_names[pick_string] = "pick_string"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DAttributesRoute."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DAttributesRoute)
        IVehicleGraphics2DAttributesBasic.__init__(self, source_object)
        IVehicleGraphics2DAttributes.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DAttributesBasic._private_init(self, intf)
        IVehicleGraphics2DAttributes._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DAttributesRoute, [VehicleGraphics2DAttributesRoute, IVehicleGraphics2DAttributesBasic, IVehicleGraphics2DAttributes])

agcls.AgClassCatalog.add_catalog_entry((4764376633724826279, 10209438080231461544), VehicleGraphics2DAttributesRoute)
agcls.AgTypeNameMap["VehicleGraphics2DAttributesRoute"] = VehicleGraphics2DAttributesRoute

class VehicleGraphics2DAttributesTrajectory(IVehicleGraphics2DAttributesBasic, IVehicleGraphics2DAttributes, SupportsDeleteCallback):
    """2D Graphics attributes for launch vehicles and missiles."""

    _num_methods = 10
    _vtable_offset = IVehicleGraphics2DAttributesBasic._vtable_offset + IVehicleGraphics2DAttributesBasic._num_methods
    _get_show_ground_track_method_offset = 1
    _set_show_ground_track_method_offset = 2
    _get_show_ground_marker_method_offset = 3
    _set_show_ground_marker_method_offset = 4
    _get_show_trajectory_method_offset = 5
    _set_show_trajectory_method_offset = 6
    _get_show_trajectory_marker_method_offset = 7
    _set_show_trajectory_marker_method_offset = 8
    _get_pick_string_method_offset = 9
    _set_pick_string_method_offset = 10
    _metadata = {
        "iid_data" : (5332460526964525294, 7031172391994473863),
        "vtable_reference" : IVehicleGraphics2DAttributesBasic._vtable_offset + IVehicleGraphics2DAttributesBasic._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DAttributesTrajectory)

    _get_show_ground_track_metadata = { "offset" : _get_show_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_ground_track(self) -> bool:
        """Opt whether to show the vehicle's ground track."""
        return self._intf.get_property(VehicleGraphics2DAttributesTrajectory._metadata, VehicleGraphics2DAttributesTrajectory._get_show_ground_track_metadata)

    _set_show_ground_track_metadata = { "offset" : _set_show_ground_track_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_ground_track.setter
    def show_ground_track(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesTrajectory._metadata, VehicleGraphics2DAttributesTrajectory._set_show_ground_track_metadata, value)

    _get_show_ground_marker_metadata = { "offset" : _get_show_ground_marker_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_ground_marker(self) -> bool:
        """Opt whether to show the vehicle's ground marker."""
        return self._intf.get_property(VehicleGraphics2DAttributesTrajectory._metadata, VehicleGraphics2DAttributesTrajectory._get_show_ground_marker_metadata)

    _set_show_ground_marker_metadata = { "offset" : _set_show_ground_marker_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_ground_marker.setter
    def show_ground_marker(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesTrajectory._metadata, VehicleGraphics2DAttributesTrajectory._set_show_ground_marker_metadata, value)

    _get_show_trajectory_metadata = { "offset" : _get_show_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_trajectory(self) -> bool:
        """Opt whether to show the vehicle's trajectory path."""
        return self._intf.get_property(VehicleGraphics2DAttributesTrajectory._metadata, VehicleGraphics2DAttributesTrajectory._get_show_trajectory_metadata)

    _set_show_trajectory_metadata = { "offset" : _set_show_trajectory_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_trajectory.setter
    def show_trajectory(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesTrajectory._metadata, VehicleGraphics2DAttributesTrajectory._set_show_trajectory_metadata, value)

    _get_show_trajectory_marker_metadata = { "offset" : _get_show_trajectory_marker_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_trajectory_marker(self) -> bool:
        """Opt whether to show the vehicle's trajectory marker."""
        return self._intf.get_property(VehicleGraphics2DAttributesTrajectory._metadata, VehicleGraphics2DAttributesTrajectory._get_show_trajectory_marker_metadata)

    _set_show_trajectory_marker_metadata = { "offset" : _set_show_trajectory_marker_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_trajectory_marker.setter
    def show_trajectory_marker(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesTrajectory._metadata, VehicleGraphics2DAttributesTrajectory._set_show_trajectory_marker_metadata, value)

    _get_pick_string_metadata = { "offset" : _get_pick_string_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def pick_string(self) -> str:
        """String displayed after instance name when the vehicle line is picked in 2D or 3D."""
        return self._intf.get_property(VehicleGraphics2DAttributesTrajectory._metadata, VehicleGraphics2DAttributesTrajectory._get_pick_string_metadata)

    _set_pick_string_metadata = { "offset" : _set_pick_string_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @pick_string.setter
    def pick_string(self, value:str) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesTrajectory._metadata, VehicleGraphics2DAttributesTrajectory._set_pick_string_metadata, value)

    _property_names[show_ground_track] = "show_ground_track"
    _property_names[show_ground_marker] = "show_ground_marker"
    _property_names[show_trajectory] = "show_trajectory"
    _property_names[show_trajectory_marker] = "show_trajectory_marker"
    _property_names[pick_string] = "pick_string"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DAttributesTrajectory."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DAttributesTrajectory)
        IVehicleGraphics2DAttributesBasic.__init__(self, source_object)
        IVehicleGraphics2DAttributes.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DAttributesBasic._private_init(self, intf)
        IVehicleGraphics2DAttributes._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DAttributesTrajectory, [VehicleGraphics2DAttributesTrajectory, IVehicleGraphics2DAttributesBasic, IVehicleGraphics2DAttributes])

agcls.AgClassCatalog.add_catalog_entry((5121163665386126313, 1747272582872685464), VehicleGraphics2DAttributesTrajectory)
agcls.AgTypeNameMap["VehicleGraphics2DAttributesTrajectory"] = VehicleGraphics2DAttributesTrajectory

class VehicleGraphics2DAttributesOrbit(IVehicleGraphics2DAttributesBasic, IVehicleGraphics2DAttributes, SupportsDeleteCallback):
    """2D Graphics attributes for a satellite."""

    _num_methods = 10
    _vtable_offset = IVehicleGraphics2DAttributesBasic._vtable_offset + IVehicleGraphics2DAttributesBasic._num_methods
    _get_show_ground_track_method_offset = 1
    _set_show_ground_track_method_offset = 2
    _get_show_ground_marker_method_offset = 3
    _set_show_ground_marker_method_offset = 4
    _get_show_orbit_method_offset = 5
    _set_show_orbit_method_offset = 6
    _get_show_orbit_marker_method_offset = 7
    _set_show_orbit_marker_method_offset = 8
    _get_pick_string_method_offset = 9
    _set_pick_string_method_offset = 10
    _metadata = {
        "iid_data" : (5701170822306428258, 6583800969281647267),
        "vtable_reference" : IVehicleGraphics2DAttributesBasic._vtable_offset + IVehicleGraphics2DAttributesBasic._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DAttributesOrbit)

    _get_show_ground_track_metadata = { "offset" : _get_show_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_ground_track(self) -> bool:
        """Opt whether to show the satellite's ground track."""
        return self._intf.get_property(VehicleGraphics2DAttributesOrbit._metadata, VehicleGraphics2DAttributesOrbit._get_show_ground_track_metadata)

    _set_show_ground_track_metadata = { "offset" : _set_show_ground_track_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_ground_track.setter
    def show_ground_track(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesOrbit._metadata, VehicleGraphics2DAttributesOrbit._set_show_ground_track_metadata, value)

    _get_show_ground_marker_metadata = { "offset" : _get_show_ground_marker_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_ground_marker(self) -> bool:
        """Opt whether to show the satellite's ground marker."""
        return self._intf.get_property(VehicleGraphics2DAttributesOrbit._metadata, VehicleGraphics2DAttributesOrbit._get_show_ground_marker_metadata)

    _set_show_ground_marker_metadata = { "offset" : _set_show_ground_marker_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_ground_marker.setter
    def show_ground_marker(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesOrbit._metadata, VehicleGraphics2DAttributesOrbit._set_show_ground_marker_metadata, value)

    _get_show_orbit_metadata = { "offset" : _get_show_orbit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_orbit(self) -> bool:
        """Opt whether to show the satellite's orbit track."""
        return self._intf.get_property(VehicleGraphics2DAttributesOrbit._metadata, VehicleGraphics2DAttributesOrbit._get_show_orbit_metadata)

    _set_show_orbit_metadata = { "offset" : _set_show_orbit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_orbit.setter
    def show_orbit(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesOrbit._metadata, VehicleGraphics2DAttributesOrbit._set_show_orbit_metadata, value)

    _get_show_orbit_marker_metadata = { "offset" : _get_show_orbit_marker_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_orbit_marker(self) -> bool:
        """Opt whether to show the satellite's orbit marker."""
        return self._intf.get_property(VehicleGraphics2DAttributesOrbit._metadata, VehicleGraphics2DAttributesOrbit._get_show_orbit_marker_metadata)

    _set_show_orbit_marker_metadata = { "offset" : _set_show_orbit_marker_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_orbit_marker.setter
    def show_orbit_marker(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesOrbit._metadata, VehicleGraphics2DAttributesOrbit._set_show_orbit_marker_metadata, value)

    _get_pick_string_metadata = { "offset" : _get_pick_string_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def pick_string(self) -> str:
        """String displayed after instance name when the vehicle line is picked in 2D or 3D."""
        return self._intf.get_property(VehicleGraphics2DAttributesOrbit._metadata, VehicleGraphics2DAttributesOrbit._get_pick_string_metadata)

    _set_pick_string_metadata = { "offset" : _set_pick_string_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @pick_string.setter
    def pick_string(self, value:str) -> None:
        return self._intf.set_property(VehicleGraphics2DAttributesOrbit._metadata, VehicleGraphics2DAttributesOrbit._set_pick_string_metadata, value)

    _property_names[show_ground_track] = "show_ground_track"
    _property_names[show_ground_marker] = "show_ground_marker"
    _property_names[show_orbit] = "show_orbit"
    _property_names[show_orbit_marker] = "show_orbit_marker"
    _property_names[pick_string] = "pick_string"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DAttributesOrbit."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DAttributesOrbit)
        IVehicleGraphics2DAttributesBasic.__init__(self, source_object)
        IVehicleGraphics2DAttributes.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DAttributesBasic._private_init(self, intf)
        IVehicleGraphics2DAttributes._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DAttributesOrbit, [VehicleGraphics2DAttributesOrbit, IVehicleGraphics2DAttributesBasic, IVehicleGraphics2DAttributes])

agcls.AgClassCatalog.add_catalog_entry((5760631352341119687, 18341587254347840674), VehicleGraphics2DAttributesOrbit)
agcls.AgTypeNameMap["VehicleGraphics2DAttributesOrbit"] = VehicleGraphics2DAttributesOrbit

class Graphics3DPointableElementsElement(SupportsDeleteCallback):
    """Pointable elements interface for 3D model pointing."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pointing_name_method_offset = 1
    _set_pointing_name_method_offset = 2
    _get_assigned_target_object_method_offset = 3
    _get_intervals_method_offset = 4
    _metadata = {
        "iid_data" : (4923297044755718827, 12635884417529216161),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DPointableElementsElement)

    _get_pointing_name_metadata = { "offset" : _get_pointing_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def pointing_name(self) -> str:
        """Name of a movable element associated with a pointing parameter."""
        return self._intf.get_property(Graphics3DPointableElementsElement._metadata, Graphics3DPointableElementsElement._get_pointing_name_metadata)

    _set_pointing_name_metadata = { "offset" : _set_pointing_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @pointing_name.setter
    def pointing_name(self, pointing_name:str) -> None:
        return self._intf.set_property(Graphics3DPointableElementsElement._metadata, Graphics3DPointableElementsElement._set_pointing_name_metadata, pointing_name)

    _get_assigned_target_object_metadata = { "offset" : _get_assigned_target_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def assigned_target_object(self) -> "LinkToObject":
        """Get the assigned target for the pointable element."""
        return self._intf.get_property(Graphics3DPointableElementsElement._metadata, Graphics3DPointableElementsElement._get_assigned_target_object_metadata)

    _get_intervals_metadata = { "offset" : _get_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def intervals(self) -> "TimeIntervalCollection":
        """Get a collection of intervals during which an 3d model part points towards selected targets."""
        return self._intf.get_property(Graphics3DPointableElementsElement._metadata, Graphics3DPointableElementsElement._get_intervals_metadata)

    _property_names[pointing_name] = "pointing_name"
    _property_names[assigned_target_object] = "assigned_target_object"
    _property_names[intervals] = "intervals"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DPointableElementsElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DPointableElementsElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DPointableElementsElement, [Graphics3DPointableElementsElement, ])

agcls.AgClassCatalog.add_catalog_entry((4836187546034840735, 7319237528724631426), Graphics3DPointableElementsElement)
agcls.AgTypeNameMap["Graphics3DPointableElementsElement"] = Graphics3DPointableElementsElement

class Graphics3DPointableElementsCollection(SupportsDeleteCallback):
    """List of Pointable Elements."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _sort_method_offset = 7
    _metadata = {
        "iid_data" : (4771544387456196739, 1597016259822963099),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DPointableElementsCollection)
    def __iter__(self):
        """Create an iterator for the Graphics3DPointableElementsCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "Graphics3DPointableElementsElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(Graphics3DPointableElementsCollection._metadata, Graphics3DPointableElementsCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "Graphics3DPointableElementsElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(Graphics3DPointableElementsCollection._metadata, Graphics3DPointableElementsCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(Graphics3DPointableElementsCollection._metadata, Graphics3DPointableElementsCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(Graphics3DPointableElementsCollection._metadata, Graphics3DPointableElementsCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(Graphics3DPointableElementsCollection._metadata, Graphics3DPointableElementsCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "Graphics3DPointableElementsElement":
        """Add a new element to the collection."""
        return self._intf.invoke(Graphics3DPointableElementsCollection._metadata, Graphics3DPointableElementsCollection._add_metadata, OutArg())

    _sort_metadata = { "offset" : _sort_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def sort(self) -> None:
        """Re-orders pointable elements."""
        return self._intf.invoke(Graphics3DPointableElementsCollection._metadata, Graphics3DPointableElementsCollection._sort_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DPointableElementsCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DPointableElementsCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DPointableElementsCollection, [Graphics3DPointableElementsCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4778924704784738010, 11511681262187923086), Graphics3DPointableElementsCollection)
agcls.AgTypeNameMap["Graphics3DPointableElementsCollection"] = Graphics3DPointableElementsCollection

class VehicleGraphics3DSystemsElement(IVehicleGraphics3DSystemsElementBase, SupportsDeleteCallback):
    """Element for reference system used for displaying vehicle orbits and trajectories."""

    _num_methods = 5
    _vtable_offset = IVehicleGraphics3DSystemsElementBase._vtable_offset + IVehicleGraphics3DSystemsElementBase._num_methods
    _get_name_method_offset = 1
    _get_show_graphics_method_offset = 2
    _set_show_graphics_method_offset = 3
    _get_graphics_3d_window_identifiers_method_offset = 4
    _set_graphics_3d_window_identifiers_method_offset = 5
    _metadata = {
        "iid_data" : (4922195132643915706, 17262568415798200716),
        "vtable_reference" : IVehicleGraphics3DSystemsElementBase._vtable_offset + IVehicleGraphics3DSystemsElementBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DSystemsElement)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the name of the reference system."""
        return self._intf.get_property(VehicleGraphics3DSystemsElement._metadata, VehicleGraphics3DSystemsElement._get_name_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Control whether the reference system is visible."""
        return self._intf.get_property(VehicleGraphics3DSystemsElement._metadata, VehicleGraphics3DSystemsElement._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DSystemsElement._metadata, VehicleGraphics3DSystemsElement._set_show_graphics_metadata, value)

    _get_graphics_3d_window_identifiers_metadata = { "offset" : _get_graphics_3d_window_identifiers_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_graphics_3d_window_identifiers(self) -> list:
        """Get the selected 3D Graphics window ids."""
        return self._intf.invoke(VehicleGraphics3DSystemsElement._metadata, VehicleGraphics3DSystemsElement._get_graphics_3d_window_identifiers_metadata, OutArg())

    _set_graphics_3d_window_identifiers_metadata = { "offset" : _set_graphics_3d_window_identifiers_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def set_graphics_3d_window_identifiers(self, window_ids:list) -> None:
        """Select the 3D Graphics window ids."""
        return self._intf.invoke(VehicleGraphics3DSystemsElement._metadata, VehicleGraphics3DSystemsElement._set_graphics_3d_window_identifiers_metadata, window_ids)

    _property_names[name] = "name"
    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DSystemsElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DSystemsElement)
        IVehicleGraphics3DSystemsElementBase.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DSystemsElementBase._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DSystemsElement, [VehicleGraphics3DSystemsElement, IVehicleGraphics3DSystemsElementBase])

agcls.AgClassCatalog.add_catalog_entry((5184965707860954331, 12716582343589601419), VehicleGraphics3DSystemsElement)
agcls.AgTypeNameMap["VehicleGraphics3DSystemsElement"] = VehicleGraphics3DSystemsElement

class VehicleGraphics3DSystemsSpecialElement(IVehicleGraphics3DSystemsElementBase, SupportsDeleteCallback):
    """Define methods and properties to configure 3D properties of Inertial or Fixed reference system used for displaying vehicle orbits and trajectories."""

    _num_methods = 4
    _vtable_offset = IVehicleGraphics3DSystemsElementBase._vtable_offset + IVehicleGraphics3DSystemsElementBase._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_graphics_3d_window_identifiers_method_offset = 3
    _set_graphics_3d_window_identifiers_method_offset = 4
    _metadata = {
        "iid_data" : (5459639670728826214, 9096571867663640216),
        "vtable_reference" : IVehicleGraphics3DSystemsElementBase._vtable_offset + IVehicleGraphics3DSystemsElementBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DSystemsSpecialElement)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Control whether the reference system is visible."""
        return self._intf.get_property(VehicleGraphics3DSystemsSpecialElement._metadata, VehicleGraphics3DSystemsSpecialElement._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DSystemsSpecialElement._metadata, VehicleGraphics3DSystemsSpecialElement._set_show_graphics_metadata, value)

    _get_graphics_3d_window_identifiers_metadata = { "offset" : _get_graphics_3d_window_identifiers_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_graphics_3d_window_identifiers(self) -> list:
        """Get the selected 3D Graphics window ids."""
        return self._intf.invoke(VehicleGraphics3DSystemsSpecialElement._metadata, VehicleGraphics3DSystemsSpecialElement._get_graphics_3d_window_identifiers_metadata, OutArg())

    _set_graphics_3d_window_identifiers_metadata = { "offset" : _set_graphics_3d_window_identifiers_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def set_graphics_3d_window_identifiers(self, window_ids:list) -> None:
        """Select the 3D Graphics window ids."""
        return self._intf.invoke(VehicleGraphics3DSystemsSpecialElement._metadata, VehicleGraphics3DSystemsSpecialElement._set_graphics_3d_window_identifiers_metadata, window_ids)

    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DSystemsSpecialElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DSystemsSpecialElement)
        IVehicleGraphics3DSystemsElementBase.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DSystemsElementBase._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DSystemsSpecialElement, [VehicleGraphics3DSystemsSpecialElement, IVehicleGraphics3DSystemsElementBase])

agcls.AgClassCatalog.add_catalog_entry((4672015162889111173, 1840849451535758475), VehicleGraphics3DSystemsSpecialElement)
agcls.AgTypeNameMap["VehicleGraphics3DSystemsSpecialElement"] = VehicleGraphics3DSystemsSpecialElement

class VehicleGraphics3DSystemsCollection(SupportsDeleteCallback):
    """
    List of Systems.

    Examples
    --------
    Add Fixed System Orbit System in 3D Display:
    >>> # Satellite satellite: Satellite object
    >>> orbitsystems = satellite.graphics_3d.orbit_systems
    >>> orbitsystems.fixed_by_window.show_graphics = True
    >>> orbitsystems.fixed_by_window.inherit = False
    >>> orbitsystems.fixed_by_window.color = Colors.Yellow
    """

    _num_methods = 11
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _get_supported_systems_method_offset = 7
    _contains_method_offset = 8
    _get_inertial_by_window_method_offset = 9
    _get_fixed_by_window_method_offset = 10
    _remove_method_offset = 11
    _metadata = {
        "iid_data" : (4851148503584203033, 16741762222499311286),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DSystemsCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics3DSystemsCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics3DSystemsElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics3DSystemsElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, system_name:str) -> "VehicleGraphics3DSystemsElement":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._add_metadata, system_name, OutArg())

    _get_supported_systems_metadata = { "offset" : _get_supported_systems_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_systems(self) -> list:
        """Return a list of element types that can be added to the collection."""
        return self._intf.get_property(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._get_supported_systems_metadata)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def contains(self, system_name:str) -> bool:
        """Check whether the given frame is already in the list."""
        return self._intf.invoke(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._contains_metadata, system_name, OutArg())

    _get_inertial_by_window_metadata = { "offset" : _get_inertial_by_window_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def inertial_by_window(self) -> "VehicleGraphics3DSystemsSpecialElement":
        """Get the Inertial By Window System."""
        return self._intf.get_property(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._get_inertial_by_window_metadata)

    _get_fixed_by_window_metadata = { "offset" : _get_fixed_by_window_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def fixed_by_window(self) -> "VehicleGraphics3DSystemsSpecialElement":
        """Get the Fixed By Window System."""
        return self._intf.get_property(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._get_fixed_by_window_metadata)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove(self, system_name:str) -> None:
        """Remove a system by name."""
        return self._intf.invoke(VehicleGraphics3DSystemsCollection._metadata, VehicleGraphics3DSystemsCollection._remove_metadata, system_name)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[supported_systems] = "supported_systems"
    _property_names[inertial_by_window] = "inertial_by_window"
    _property_names[fixed_by_window] = "fixed_by_window"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DSystemsCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DSystemsCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DSystemsCollection, [VehicleGraphics3DSystemsCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5548322640607610332, 11890352630946292155), VehicleGraphics3DSystemsCollection)
agcls.AgTypeNameMap["VehicleGraphics3DSystemsCollection"] = VehicleGraphics3DSystemsCollection

class VehicleGraphics3DEllipsoid(IVehicleGraphics3DProximityAreaObject, SupportsDeleteCallback):
    """Define an ellipsoid around the vehicle object."""

    _num_methods = 20
    _vtable_offset = IVehicleGraphics3DProximityAreaObject._vtable_offset + IVehicleGraphics3DProximityAreaObject._num_methods
    _get_x_semiaxis_length_method_offset = 1
    _set_x_semiaxis_length_method_offset = 2
    _get_y_semiaxis_length_method_offset = 3
    _set_y_semiaxis_length_method_offset = 4
    _get_z_semiaxis_length_method_offset = 5
    _set_z_semiaxis_length_method_offset = 6
    _get_x_axis_offset_method_offset = 7
    _set_x_axis_offset_method_offset = 8
    _get_y_axis_offset_method_offset = 9
    _set_y_axis_offset_method_offset = 10
    _get_z_axis_offset_method_offset = 11
    _set_z_axis_offset_method_offset = 12
    _get_use_translucency_method_offset = 13
    _set_use_translucency_method_offset = 14
    _get_translucency_method_offset = 15
    _set_translucency_method_offset = 16
    _get_granularity_method_offset = 17
    _set_granularity_method_offset = 18
    _get_reference_frame_method_offset = 19
    _set_reference_frame_method_offset = 20
    _metadata = {
        "iid_data" : (5289659803765155260, 4062431208129027476),
        "vtable_reference" : IVehicleGraphics3DProximityAreaObject._vtable_offset + IVehicleGraphics3DProximityAreaObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DEllipsoid)

    _get_x_semiaxis_length_metadata = { "offset" : _get_x_semiaxis_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_semiaxis_length(self) -> float:
        """Indicate how far along the X axis of the reference frame the box extends. Value must be greater than 0."""
        return self._intf.get_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._get_x_semiaxis_length_metadata)

    _set_x_semiaxis_length_metadata = { "offset" : _set_x_semiaxis_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_semiaxis_length.setter
    def x_semiaxis_length(self, x_semi_axis_length:float) -> None:
        """Indicate how far along the X axis of the reference frame the box extends. Value must be greater than 0."""
        return self._intf.set_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._set_x_semiaxis_length_metadata, x_semi_axis_length)

    _get_y_semiaxis_length_metadata = { "offset" : _get_y_semiaxis_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_semiaxis_length(self) -> float:
        """Indicate how far along the Y axis of the reference frame the box extends. Value must be greater than 0."""
        return self._intf.get_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._get_y_semiaxis_length_metadata)

    _set_y_semiaxis_length_metadata = { "offset" : _set_y_semiaxis_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_semiaxis_length.setter
    def y_semiaxis_length(self, y_semi_axis_length:float) -> None:
        """Indicate how far along the Y axis of the reference frame the box extends. Value must be greater than 0."""
        return self._intf.set_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._set_y_semiaxis_length_metadata, y_semi_axis_length)

    _get_z_semiaxis_length_metadata = { "offset" : _get_z_semiaxis_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z_semiaxis_length(self) -> float:
        """Indicate how far along the Z axis of the reference frame the box extends. Value must be greater than 0."""
        return self._intf.get_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._get_z_semiaxis_length_metadata)

    _set_z_semiaxis_length_metadata = { "offset" : _set_z_semiaxis_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z_semiaxis_length.setter
    def z_semiaxis_length(self, z_semi_axis_length:float) -> None:
        """Indicate how far along the Z axis of the reference frame the box extends. Value must be greater than 0."""
        return self._intf.set_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._set_z_semiaxis_length_metadata, z_semi_axis_length)

    _get_x_axis_offset_metadata = { "offset" : _get_x_axis_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_axis_offset(self) -> float:
        """Get or set the distance to offset the box (positive or negative) along the X axis of the reference frame."""
        return self._intf.get_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._get_x_axis_offset_metadata)

    _set_x_axis_offset_metadata = { "offset" : _set_x_axis_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_axis_offset.setter
    def x_axis_offset(self, x_axis_offset:float) -> None:
        """Get or set the distance to offset the box (positive or negative) along the X axis of the reference frame."""
        return self._intf.set_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._set_x_axis_offset_metadata, x_axis_offset)

    _get_y_axis_offset_metadata = { "offset" : _get_y_axis_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_axis_offset(self) -> float:
        """Get or set the distance to offset the box (positive or negative) along the Y axis of the reference frame."""
        return self._intf.get_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._get_y_axis_offset_metadata)

    _set_y_axis_offset_metadata = { "offset" : _set_y_axis_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_axis_offset.setter
    def y_axis_offset(self, y_axis_offset:float) -> None:
        """Get or set the distance to offset the box (positive or negative) along the Y axis of the reference frame."""
        return self._intf.set_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._set_y_axis_offset_metadata, y_axis_offset)

    _get_z_axis_offset_metadata = { "offset" : _get_z_axis_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z_axis_offset(self) -> float:
        """Get or set the distance to offset the box (positive or negative) along the Z axis of the reference frame."""
        return self._intf.get_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._get_z_axis_offset_metadata)

    _set_z_axis_offset_metadata = { "offset" : _set_z_axis_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z_axis_offset.setter
    def z_axis_offset(self, z_axis_offset:float) -> None:
        """Get or set the distance to offset the box (positive or negative) along the Z axis of the reference frame."""
        return self._intf.set_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._set_z_axis_offset_metadata, z_axis_offset)

    _get_use_translucency_metadata = { "offset" : _get_use_translucency_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_translucency(self) -> bool:
        """Specify a translucency of the object."""
        return self._intf.get_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._get_use_translucency_metadata)

    _set_use_translucency_metadata = { "offset" : _set_use_translucency_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_translucency.setter
    def use_translucency(self, use_translucency:bool) -> None:
        """Specify a translucency of the object."""
        return self._intf.set_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._set_use_translucency_metadata, use_translucency)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Get or set the translucency of the object. Valid values are 0 - 100, where 0 is opaque and 100 is transparent."""
        return self._intf.get_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, translucency:float) -> None:
        """Get or set the translucency of the object. Valid values are 0 - 100, where 0 is opaque and 100 is transparent."""
        return self._intf.set_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._set_translucency_metadata, translucency)

    _get_granularity_metadata = { "offset" : _get_granularity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def granularity(self) -> float:
        """Indicate the number of points used to draw the ellipsoid. Lower numbers create a better ellipsoid and higher numbers make the ellipsoid draw faster."""
        return self._intf.get_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._get_granularity_metadata)

    _set_granularity_metadata = { "offset" : _set_granularity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @granularity.setter
    def granularity(self, granularity:float) -> None:
        """Indicate the number of points used to draw the ellipsoid. Lower numbers create a better ellipsoid and higher numbers make the ellipsoid draw faster."""
        return self._intf.set_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._set_granularity_metadata, granularity)

    _get_reference_frame_metadata = { "offset" : _get_reference_frame_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def reference_frame(self) -> "IVectorGeometryToolAxes":
        """Get or set the reference axes that is used to align the ellipsoid."""
        return self._intf.get_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._get_reference_frame_metadata)

    _set_reference_frame_metadata = { "offset" : _set_reference_frame_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("IVectorGeometryToolAxes"),) }
    @reference_frame.setter
    def reference_frame(self, reference_frame:"IVectorGeometryToolAxes") -> None:
        """Get or set the reference axes that is used to align the ellipsoid."""
        return self._intf.set_property(VehicleGraphics3DEllipsoid._metadata, VehicleGraphics3DEllipsoid._set_reference_frame_metadata, reference_frame)

    _property_names[x_semiaxis_length] = "x_semiaxis_length"
    _property_names[y_semiaxis_length] = "y_semiaxis_length"
    _property_names[z_semiaxis_length] = "z_semiaxis_length"
    _property_names[x_axis_offset] = "x_axis_offset"
    _property_names[y_axis_offset] = "y_axis_offset"
    _property_names[z_axis_offset] = "z_axis_offset"
    _property_names[use_translucency] = "use_translucency"
    _property_names[translucency] = "translucency"
    _property_names[granularity] = "granularity"
    _property_names[reference_frame] = "reference_frame"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DEllipsoid."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DEllipsoid)
        IVehicleGraphics3DProximityAreaObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DProximityAreaObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DEllipsoid, [VehicleGraphics3DEllipsoid, IVehicleGraphics3DProximityAreaObject])

agcls.AgClassCatalog.add_catalog_entry((5333759315763983342, 15583659368402505653), VehicleGraphics3DEllipsoid)
agcls.AgTypeNameMap["VehicleGraphics3DEllipsoid"] = VehicleGraphics3DEllipsoid

class VehicleGraphics3DControlBox(IVehicleGraphics3DProximityAreaObject, SupportsDeleteCallback):
    """Define a volume around the object that moves with the object."""

    _num_methods = 18
    _vtable_offset = IVehicleGraphics3DProximityAreaObject._vtable_offset + IVehicleGraphics3DProximityAreaObject._num_methods
    _get_use_translucency_method_offset = 1
    _set_use_translucency_method_offset = 2
    _get_translucency_method_offset = 3
    _set_translucency_method_offset = 4
    _get_reference_frame_method_offset = 5
    _set_reference_frame_method_offset = 6
    _get_x_axis_length_method_offset = 7
    _set_x_axis_length_method_offset = 8
    _get_y_axis_length_method_offset = 9
    _set_y_axis_length_method_offset = 10
    _get_z_axis_length_method_offset = 11
    _set_z_axis_length_method_offset = 12
    _get_x_offset_method_offset = 13
    _set_x_offset_method_offset = 14
    _get_y_offset_method_offset = 15
    _set_y_offset_method_offset = 16
    _get_z_offset_method_offset = 17
    _set_z_offset_method_offset = 18
    _metadata = {
        "iid_data" : (4942367440567561460, 16056795204251301550),
        "vtable_reference" : IVehicleGraphics3DProximityAreaObject._vtable_offset + IVehicleGraphics3DProximityAreaObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DControlBox)

    _get_use_translucency_metadata = { "offset" : _get_use_translucency_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_translucency(self) -> bool:
        """Specify a translucency of the object."""
        return self._intf.get_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._get_use_translucency_metadata)

    _set_use_translucency_metadata = { "offset" : _set_use_translucency_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_translucency.setter
    def use_translucency(self, use_translucency:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._set_use_translucency_metadata, use_translucency)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Get or set the translucency of the object. Valid values are 0 - 100, where 0 is opaque and 100 is transparent. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, translucency:float) -> None:
        return self._intf.set_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._set_translucency_metadata, translucency)

    _get_reference_frame_metadata = { "offset" : _get_reference_frame_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def reference_frame(self) -> "IVectorGeometryToolAxes":
        """Get or set the reference axes that is used to align the ellipsoid."""
        return self._intf.get_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._get_reference_frame_metadata)

    _set_reference_frame_metadata = { "offset" : _set_reference_frame_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("IVectorGeometryToolAxes"),) }
    @reference_frame.setter
    def reference_frame(self, reference_frame:"IVectorGeometryToolAxes") -> None:
        """Get or set the reference axes that is used to align the ellipsoid."""
        return self._intf.set_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._set_reference_frame_metadata, reference_frame)

    _get_x_axis_length_metadata = { "offset" : _get_x_axis_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_axis_length(self) -> float:
        """Indicate how far along the velocity vector the box extends. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._get_x_axis_length_metadata)

    _set_x_axis_length_metadata = { "offset" : _set_x_axis_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_axis_length.setter
    def x_axis_length(self, x_axis_length:float) -> None:
        return self._intf.set_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._set_x_axis_length_metadata, x_axis_length)

    _get_y_axis_length_metadata = { "offset" : _get_y_axis_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_axis_length(self) -> float:
        """Indicate how far along the orbit normal the box extends. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._get_y_axis_length_metadata)

    _set_y_axis_length_metadata = { "offset" : _set_y_axis_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_axis_length.setter
    def y_axis_length(self, y_axis_length:float) -> None:
        return self._intf.set_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._set_y_axis_length_metadata, y_axis_length)

    _get_z_axis_length_metadata = { "offset" : _get_z_axis_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z_axis_length(self) -> float:
        """Indicate how far along the orbit plane the box extends. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._get_z_axis_length_metadata)

    _set_z_axis_length_metadata = { "offset" : _set_z_axis_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z_axis_length.setter
    def z_axis_length(self, z_axis_length:float) -> None:
        return self._intf.set_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._set_z_axis_length_metadata, z_axis_length)

    _get_x_offset_metadata = { "offset" : _get_x_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_offset(self) -> float:
        """Get or set the distance to offset the box (forward or backward) along the velocity vector. A positive value moves the box forward along the velocity vector. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._get_x_offset_metadata)

    _set_x_offset_metadata = { "offset" : _set_x_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_offset.setter
    def x_offset(self, x_offset:float) -> None:
        return self._intf.set_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._set_x_offset_metadata, x_offset)

    _get_y_offset_metadata = { "offset" : _get_y_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_offset(self) -> float:
        """Get or set the distance to offset the box (left or right) along the velocity vector. A positive value moves the box right along the vector 90 degrees clockwise from the velocity vector. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._get_y_offset_metadata)

    _set_y_offset_metadata = { "offset" : _set_y_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_offset.setter
    def y_offset(self, y_offset:float) -> None:
        return self._intf.set_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._set_y_offset_metadata, y_offset)

    _get_z_offset_metadata = { "offset" : _get_z_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z_offset(self) -> float:
        """Get or set the distance to offset the box (up or down). A positive value moves the box down, towards the ground. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._get_z_offset_metadata)

    _set_z_offset_metadata = { "offset" : _set_z_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z_offset.setter
    def z_offset(self, z_offset:float) -> None:
        return self._intf.set_property(VehicleGraphics3DControlBox._metadata, VehicleGraphics3DControlBox._set_z_offset_metadata, z_offset)

    _property_names[use_translucency] = "use_translucency"
    _property_names[translucency] = "translucency"
    _property_names[reference_frame] = "reference_frame"
    _property_names[x_axis_length] = "x_axis_length"
    _property_names[y_axis_length] = "y_axis_length"
    _property_names[z_axis_length] = "z_axis_length"
    _property_names[x_offset] = "x_offset"
    _property_names[y_offset] = "y_offset"
    _property_names[z_offset] = "z_offset"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DControlBox."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DControlBox)
        IVehicleGraphics3DProximityAreaObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DProximityAreaObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DControlBox, [VehicleGraphics3DControlBox, IVehicleGraphics3DProximityAreaObject])

agcls.AgClassCatalog.add_catalog_entry((4836115752922990852, 8734965575025378730), VehicleGraphics3DControlBox)
agcls.AgTypeNameMap["VehicleGraphics3DControlBox"] = VehicleGraphics3DControlBox

class VehicleGraphics3DBearingBox(IVehicleGraphics3DProximityAreaObject, SupportsDeleteCallback):
    """Define a volume, relative to a bearing from the North, around an object."""

    _num_methods = 18
    _vtable_offset = IVehicleGraphics3DProximityAreaObject._vtable_offset + IVehicleGraphics3DProximityAreaObject._num_methods
    _get_bearing_method_offset = 1
    _set_bearing_method_offset = 2
    _get_length_method_offset = 3
    _set_length_method_offset = 4
    _get_width_method_offset = 5
    _set_width_method_offset = 6
    _get_height_method_offset = 7
    _set_height_method_offset = 8
    _get_length_offset_method_offset = 9
    _set_length_offset_method_offset = 10
    _get_width_offset_method_offset = 11
    _set_width_offset_method_offset = 12
    _get_height_offset_method_offset = 13
    _set_height_offset_method_offset = 14
    _get_use_translucency_method_offset = 15
    _set_use_translucency_method_offset = 16
    _get_translucency_method_offset = 17
    _set_translucency_method_offset = 18
    _metadata = {
        "iid_data" : (4909690965971328931, 14339634612843438000),
        "vtable_reference" : IVehicleGraphics3DProximityAreaObject._vtable_offset + IVehicleGraphics3DProximityAreaObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBearingBox)

    _get_bearing_metadata = { "offset" : _get_bearing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bearing(self) -> float:
        """Get or set the bearing value, relative to North. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._get_bearing_metadata)

    _set_bearing_metadata = { "offset" : _set_bearing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bearing.setter
    def bearing(self, bearing:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._set_bearing_metadata, bearing)

    _get_length_metadata = { "offset" : _get_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def length(self) -> float:
        """Indicate the length of the box, along the bearing. The value must be greater than 0. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._get_length_metadata)

    _set_length_metadata = { "offset" : _set_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @length.setter
    def length(self, length:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._set_length_metadata, length)

    _get_width_metadata = { "offset" : _get_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def width(self) -> float:
        """Indicate the width of the box, across the bearing. The value must be greater than 0. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._get_width_metadata)

    _set_width_metadata = { "offset" : _set_width_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @width.setter
    def width(self, width:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._set_width_metadata, width)

    _get_height_metadata = { "offset" : _get_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height(self) -> float:
        """Indicate the Height of the box. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._get_height_metadata)

    _set_height_metadata = { "offset" : _set_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @height.setter
    def height(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._set_height_metadata, value)

    _get_length_offset_metadata = { "offset" : _get_length_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def length_offset(self) -> float:
        """Get or set the distance to offset the box (forward or backward) along the bearing. A positive LengthOffset value moves the box forward. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._get_length_offset_metadata)

    _set_length_offset_metadata = { "offset" : _set_length_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @length_offset.setter
    def length_offset(self, length_offset:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._set_length_offset_metadata, length_offset)

    _get_width_offset_metadata = { "offset" : _get_width_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def width_offset(self) -> float:
        """Get or set the distance to offset the box (left or right) along the bearing. A positive value moves the box to the right. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._get_width_offset_metadata)

    _set_width_offset_metadata = { "offset" : _set_width_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @width_offset.setter
    def width_offset(self, width_offset:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._set_width_offset_metadata, width_offset)

    _get_height_offset_metadata = { "offset" : _get_height_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height_offset(self) -> float:
        """Get or set the distance to offset the box (up or down). A positive value moves the box down, towards the ground. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._get_height_offset_metadata)

    _set_height_offset_metadata = { "offset" : _set_height_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @height_offset.setter
    def height_offset(self, height_offset:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._set_height_offset_metadata, height_offset)

    _get_use_translucency_metadata = { "offset" : _get_use_translucency_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_translucency(self) -> bool:
        """Specify a translucency of the object."""
        return self._intf.get_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._get_use_translucency_metadata)

    _set_use_translucency_metadata = { "offset" : _set_use_translucency_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_translucency.setter
    def use_translucency(self, use_translucency:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._set_use_translucency_metadata, use_translucency)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Get or set the translucency of the object. Valid values are 0 - 100, where 0 is opaque and 100 is transparent. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, translucency:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingBox._metadata, VehicleGraphics3DBearingBox._set_translucency_metadata, translucency)

    _property_names[bearing] = "bearing"
    _property_names[length] = "length"
    _property_names[width] = "width"
    _property_names[height] = "height"
    _property_names[length_offset] = "length_offset"
    _property_names[width_offset] = "width_offset"
    _property_names[height_offset] = "height_offset"
    _property_names[use_translucency] = "use_translucency"
    _property_names[translucency] = "translucency"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBearingBox."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBearingBox)
        IVehicleGraphics3DProximityAreaObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DProximityAreaObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBearingBox, [VehicleGraphics3DBearingBox, IVehicleGraphics3DProximityAreaObject])

agcls.AgClassCatalog.add_catalog_entry((4731931630321059230, 5745848241757879225), VehicleGraphics3DBearingBox)
agcls.AgTypeNameMap["VehicleGraphics3DBearingBox"] = VehicleGraphics3DBearingBox

class VehicleGraphics3DBearingEllipse(IVehicleGraphics3DProximityAreaObject, SupportsDeleteCallback):
    """Define an ellipse, relative to a bearing from the North, around the object."""

    _num_methods = 12
    _vtable_offset = IVehicleGraphics3DProximityAreaObject._vtable_offset + IVehicleGraphics3DProximityAreaObject._num_methods
    _get_bearing_method_offset = 1
    _set_bearing_method_offset = 2
    _get_semi_major_axis_method_offset = 3
    _set_semi_major_axis_method_offset = 4
    _get_semi_minor_axis_method_offset = 5
    _set_semi_minor_axis_method_offset = 6
    _get_granularity_method_offset = 7
    _set_granularity_method_offset = 8
    _get_major_axis_offset_method_offset = 9
    _set_major_axis_offset_method_offset = 10
    _get_minor_axis_offset_method_offset = 11
    _set_minor_axis_offset_method_offset = 12
    _metadata = {
        "iid_data" : (5010335699838744370, 14597651649468426151),
        "vtable_reference" : IVehicleGraphics3DProximityAreaObject._vtable_offset + IVehicleGraphics3DProximityAreaObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBearingEllipse)

    _get_bearing_metadata = { "offset" : _get_bearing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bearing(self) -> float:
        """Get or set the bearing value, relative to North. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._get_bearing_metadata)

    _set_bearing_metadata = { "offset" : _set_bearing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bearing.setter
    def bearing(self, bearing:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._set_bearing_metadata, bearing)

    _get_semi_major_axis_metadata = { "offset" : _get_semi_major_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def semi_major_axis(self) -> float:
        """Define the major axis for the ellipse. The value must be greater than 0. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._get_semi_major_axis_metadata)

    _set_semi_major_axis_metadata = { "offset" : _set_semi_major_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @semi_major_axis.setter
    def semi_major_axis(self, semi_major_axis:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._set_semi_major_axis_metadata, semi_major_axis)

    _get_semi_minor_axis_metadata = { "offset" : _get_semi_minor_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def semi_minor_axis(self) -> float:
        """Define the minor axis for the ellipse. The value must be greater than 0. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._get_semi_minor_axis_metadata)

    _set_semi_minor_axis_metadata = { "offset" : _set_semi_minor_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @semi_minor_axis.setter
    def semi_minor_axis(self, semi_minor_axis:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._set_semi_minor_axis_metadata, semi_minor_axis)

    _get_granularity_metadata = { "offset" : _get_granularity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def granularity(self) -> float:
        """Indicate the number of points used to draw the ellipse. Lower numbers create a better ellipse and higher numbers make the ellipse draw faster. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._get_granularity_metadata)

    _set_granularity_metadata = { "offset" : _set_granularity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @granularity.setter
    def granularity(self, granularity:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._set_granularity_metadata, granularity)

    _get_major_axis_offset_metadata = { "offset" : _get_major_axis_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def major_axis_offset(self) -> float:
        """Get or set the distance to offset the box (forward or backward) along the bearing. A positive MajorAxisOffset value moves the box forward. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._get_major_axis_offset_metadata)

    _set_major_axis_offset_metadata = { "offset" : _set_major_axis_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @major_axis_offset.setter
    def major_axis_offset(self, major_axis_offset:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._set_major_axis_offset_metadata, major_axis_offset)

    _get_minor_axis_offset_metadata = { "offset" : _get_minor_axis_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minor_axis_offset(self) -> float:
        """Get or set the distance to offset the box (left or right) along the bearing. A positive MinorAxisOffset value moves the box to the right. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._get_minor_axis_offset_metadata)

    _set_minor_axis_offset_metadata = { "offset" : _set_minor_axis_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minor_axis_offset.setter
    def minor_axis_offset(self, minor_axis_offset:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBearingEllipse._metadata, VehicleGraphics3DBearingEllipse._set_minor_axis_offset_metadata, minor_axis_offset)

    _property_names[bearing] = "bearing"
    _property_names[semi_major_axis] = "semi_major_axis"
    _property_names[semi_minor_axis] = "semi_minor_axis"
    _property_names[granularity] = "granularity"
    _property_names[major_axis_offset] = "major_axis_offset"
    _property_names[minor_axis_offset] = "minor_axis_offset"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBearingEllipse."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBearingEllipse)
        IVehicleGraphics3DProximityAreaObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DProximityAreaObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBearingEllipse, [VehicleGraphics3DBearingEllipse, IVehicleGraphics3DProximityAreaObject])

agcls.AgClassCatalog.add_catalog_entry((4916103475604509341, 13471534692284598174), VehicleGraphics3DBearingEllipse)
agcls.AgTypeNameMap["VehicleGraphics3DBearingEllipse"] = VehicleGraphics3DBearingEllipse

class VehicleGraphics3DLineOfBearing(IVehicleGraphics3DProximityAreaObject, SupportsDeleteCallback):
    """Define a line of bearing which is drawn from an origin in the direction of a bearing."""

    _num_methods = 16
    _vtable_offset = IVehicleGraphics3DProximityAreaObject._vtable_offset + IVehicleGraphics3DProximityAreaObject._num_methods
    _get_bearing_method_offset = 1
    _set_bearing_method_offset = 2
    _get_origin_latitude_method_offset = 3
    _set_origin_latitude_method_offset = 4
    _get_origin_longitude_method_offset = 5
    _set_origin_longitude_method_offset = 6
    _get_origin_altitude_method_offset = 7
    _set_origin_altitude_method_offset = 8
    _get_length_method_offset = 9
    _set_length_method_offset = 10
    _get_bearing_error_method_offset = 11
    _set_bearing_error_method_offset = 12
    _get_error_color_method_offset = 13
    _set_error_color_method_offset = 14
    _get_error_line_width_method_offset = 15
    _set_error_line_width_method_offset = 16
    _metadata = {
        "iid_data" : (4901900027962811143, 6188845528730866330),
        "vtable_reference" : IVehicleGraphics3DProximityAreaObject._vtable_offset + IVehicleGraphics3DProximityAreaObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DLineOfBearing)

    _get_bearing_metadata = { "offset" : _get_bearing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bearing(self) -> float:
        """Get or set the bearing value, relative to North. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._get_bearing_metadata)

    _set_bearing_metadata = { "offset" : _set_bearing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bearing.setter
    def bearing(self, bearing:float) -> None:
        return self._intf.set_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._set_bearing_metadata, bearing)

    _get_origin_latitude_metadata = { "offset" : _get_origin_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def origin_latitude(self) -> float:
        """Specify the latitude for the origin of the line of bearing. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._get_origin_latitude_metadata)

    _set_origin_latitude_metadata = { "offset" : _set_origin_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @origin_latitude.setter
    def origin_latitude(self, origin_latitude:float) -> None:
        return self._intf.set_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._set_origin_latitude_metadata, origin_latitude)

    _get_origin_longitude_metadata = { "offset" : _get_origin_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def origin_longitude(self) -> float:
        """Specify the longitude for the origin of the line of bearing. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._get_origin_longitude_metadata)

    _set_origin_longitude_metadata = { "offset" : _set_origin_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @origin_longitude.setter
    def origin_longitude(self, origin_longitude:float) -> None:
        return self._intf.set_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._set_origin_longitude_metadata, origin_longitude)

    _get_origin_altitude_metadata = { "offset" : _get_origin_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def origin_altitude(self) -> float:
        """Specify the altitude for the origin of the line of bearing. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._get_origin_altitude_metadata)

    _set_origin_altitude_metadata = { "offset" : _set_origin_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @origin_altitude.setter
    def origin_altitude(self, origin_altitude:float) -> None:
        return self._intf.set_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._set_origin_altitude_metadata, origin_altitude)

    _get_length_metadata = { "offset" : _get_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def length(self) -> float:
        """Get or set the length of the line of bearing. The value must be greater than 0. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._get_length_metadata)

    _set_length_metadata = { "offset" : _set_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @length.setter
    def length(self, length:float) -> None:
        return self._intf.set_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._set_length_metadata, length)

    _get_bearing_error_metadata = { "offset" : _get_bearing_error_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bearing_error(self) -> float:
        """Get or set the margin of error in either direction of the Line of Bearing."""
        return self._intf.get_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._get_bearing_error_metadata)

    _set_bearing_error_metadata = { "offset" : _set_bearing_error_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bearing_error.setter
    def bearing_error(self, bearing_error:float) -> None:
        return self._intf.set_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._set_bearing_error_metadata, bearing_error)

    _get_error_color_metadata = { "offset" : _get_error_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def error_color(self) -> agcolor.Color:
        """Get or set the color of the bearing error lines. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._get_error_color_metadata)

    _set_error_color_metadata = { "offset" : _set_error_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @error_color.setter
    def error_color(self, error_color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._set_error_color_metadata, error_color)

    _get_error_line_width_metadata = { "offset" : _get_error_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def error_line_width(self) -> "LineWidth":
        """Get or set the line width of the bearing error lines."""
        return self._intf.get_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._get_error_line_width_metadata)

    _set_error_line_width_metadata = { "offset" : _set_error_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @error_line_width.setter
    def error_line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics3DLineOfBearing._metadata, VehicleGraphics3DLineOfBearing._set_error_line_width_metadata, line_width)

    _property_names[bearing] = "bearing"
    _property_names[origin_latitude] = "origin_latitude"
    _property_names[origin_longitude] = "origin_longitude"
    _property_names[origin_altitude] = "origin_altitude"
    _property_names[length] = "length"
    _property_names[bearing_error] = "bearing_error"
    _property_names[error_color] = "error_color"
    _property_names[error_line_width] = "error_line_width"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DLineOfBearing."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DLineOfBearing)
        IVehicleGraphics3DProximityAreaObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DProximityAreaObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DLineOfBearing, [VehicleGraphics3DLineOfBearing, IVehicleGraphics3DProximityAreaObject])

agcls.AgClassCatalog.add_catalog_entry((4729572802099571290, 5357117598562673053), VehicleGraphics3DLineOfBearing)
agcls.AgTypeNameMap["VehicleGraphics3DLineOfBearing"] = VehicleGraphics3DLineOfBearing

class VehicleGraphics3DGeoBox(SupportsDeleteCallback):
    """Interface for geostationary box, a fixed plane used to visually check that a GEO satellite stays within a certain area."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_longitude_method_offset = 3
    _set_longitude_method_offset = 4
    _get_north_south_method_offset = 5
    _set_north_south_method_offset = 6
    _get_east_west_method_offset = 7
    _set_east_west_method_offset = 8
    _get_radius_method_offset = 9
    _set_radius_method_offset = 10
    _get_color_method_offset = 11
    _set_color_method_offset = 12
    _reposition_method_offset = 13
    _metadata = {
        "iid_data" : (5423935560954287876, 12571490360567700396),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DGeoBox)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to show the plane."""
        return self._intf.get_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._set_show_graphics_metadata, value)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Center longitude of the plane at the initial condition of the satellite at epoch. Uses Longitude Dimension."""
        return self._intf.get_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._set_longitude_metadata, value)

    _get_north_south_metadata = { "offset" : _get_north_south_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def north_south(self) -> float:
        """Angular length of the plane from North to South. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._get_north_south_metadata)

    _set_north_south_metadata = { "offset" : _set_north_south_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @north_south.setter
    def north_south(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._set_north_south_metadata, value)

    _get_east_west_metadata = { "offset" : _get_east_west_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def east_west(self) -> float:
        """Angular length of the plane from East to West. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._get_east_west_metadata)

    _set_east_west_metadata = { "offset" : _set_east_west_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @east_west.setter
    def east_west(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._set_east_west_metadata, value)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """Get or set the radius from the center of the Earth to the center of the plane. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._get_radius_metadata)

    _set_radius_metadata = { "offset" : _set_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius.setter
    def radius(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._set_radius_metadata, value)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Color of the lines defining the plane."""
        return self._intf.get_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._set_color_metadata, value)

    _reposition_metadata = { "offset" : _reposition_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reposition(self) -> None:
        """Reposition the geostationary box."""
        return self._intf.invoke(VehicleGraphics3DGeoBox._metadata, VehicleGraphics3DGeoBox._reposition_metadata, )

    _property_names[show_graphics] = "show_graphics"
    _property_names[longitude] = "longitude"
    _property_names[north_south] = "north_south"
    _property_names[east_west] = "east_west"
    _property_names[radius] = "radius"
    _property_names[color] = "color"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DGeoBox."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DGeoBox)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DGeoBox, [VehicleGraphics3DGeoBox, ])

agcls.AgClassCatalog.add_catalog_entry((5053809811216447886, 8651838483967424929), VehicleGraphics3DGeoBox)
agcls.AgTypeNameMap["VehicleGraphics3DGeoBox"] = VehicleGraphics3DGeoBox

class VehicleGraphics3DRouteProximity(IVehicleGraphics3DProximity, SupportsDeleteCallback):
    """Proximity graphics interface for GreatArc Vehicles."""

    _num_methods = 6
    _vtable_offset = IVehicleGraphics3DProximity._vtable_offset + IVehicleGraphics3DProximity._num_methods
    _get_control_box_method_offset = 1
    _get_bearing_box_method_offset = 2
    _get_bearing_ellipse_method_offset = 3
    _get_line_of_bearing_method_offset = 4
    _get_uncertainty_area_label_swap_distance_method_offset = 5
    _get_ellipsoid_method_offset = 6
    _metadata = {
        "iid_data" : (5198688759530404926, 60691221929776020),
        "vtable_reference" : IVehicleGraphics3DProximity._vtable_offset + IVehicleGraphics3DProximity._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DRouteProximity)

    _get_control_box_metadata = { "offset" : _get_control_box_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def control_box(self) -> "VehicleGraphics3DControlBox":
        """Get the control box parameters."""
        return self._intf.get_property(VehicleGraphics3DRouteProximity._metadata, VehicleGraphics3DRouteProximity._get_control_box_metadata)

    _get_bearing_box_metadata = { "offset" : _get_bearing_box_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def bearing_box(self) -> "VehicleGraphics3DBearingBox":
        """Get the bearing box parameters."""
        return self._intf.get_property(VehicleGraphics3DRouteProximity._metadata, VehicleGraphics3DRouteProximity._get_bearing_box_metadata)

    _get_bearing_ellipse_metadata = { "offset" : _get_bearing_ellipse_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def bearing_ellipse(self) -> "VehicleGraphics3DBearingEllipse":
        """Get the bearing ellipse parameters."""
        return self._intf.get_property(VehicleGraphics3DRouteProximity._metadata, VehicleGraphics3DRouteProximity._get_bearing_ellipse_metadata)

    _get_line_of_bearing_metadata = { "offset" : _get_line_of_bearing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def line_of_bearing(self) -> "VehicleGraphics3DLineOfBearing":
        """Get the line of bearing parameters."""
        return self._intf.get_property(VehicleGraphics3DRouteProximity._metadata, VehicleGraphics3DRouteProximity._get_line_of_bearing_metadata)

    _get_uncertainty_area_label_swap_distance_metadata = { "offset" : _get_uncertainty_area_label_swap_distance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def uncertainty_area_label_swap_distance(self) -> "Graphics3DLabelSwapDistance":
        """Area of uncertainty label swap distance."""
        return self._intf.get_property(VehicleGraphics3DRouteProximity._metadata, VehicleGraphics3DRouteProximity._get_uncertainty_area_label_swap_distance_metadata)

    _get_ellipsoid_metadata = { "offset" : _get_ellipsoid_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ellipsoid(self) -> "VehicleGraphics3DEllipsoid":
        """Define the ellipsoid parameters."""
        return self._intf.get_property(VehicleGraphics3DRouteProximity._metadata, VehicleGraphics3DRouteProximity._get_ellipsoid_metadata)

    _property_names[control_box] = "control_box"
    _property_names[bearing_box] = "bearing_box"
    _property_names[bearing_ellipse] = "bearing_ellipse"
    _property_names[line_of_bearing] = "line_of_bearing"
    _property_names[uncertainty_area_label_swap_distance] = "uncertainty_area_label_swap_distance"
    _property_names[ellipsoid] = "ellipsoid"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DRouteProximity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DRouteProximity)
        IVehicleGraphics3DProximity.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DProximity._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DRouteProximity, [VehicleGraphics3DRouteProximity, IVehicleGraphics3DProximity])

agcls.AgClassCatalog.add_catalog_entry((5602119180354141745, 14494703699304388244), VehicleGraphics3DRouteProximity)
agcls.AgTypeNameMap["VehicleGraphics3DRouteProximity"] = VehicleGraphics3DRouteProximity

class VehicleGraphics3DOrbitProximity(IVehicleGraphics3DProximity, SupportsDeleteCallback):
    """Proximity graphics interface."""

    _num_methods = 7
    _vtable_offset = IVehicleGraphics3DProximity._vtable_offset + IVehicleGraphics3DProximity._num_methods
    _get_geo_box_method_offset = 1
    _get_control_box_method_offset = 2
    _get_bearing_box_method_offset = 3
    _get_bearing_ellipse_method_offset = 4
    _get_line_of_bearing_method_offset = 5
    _get_uncertainty_area_label_swap_distance_method_offset = 6
    _get_ellipsoid_method_offset = 7
    _metadata = {
        "iid_data" : (5623407294084706346, 77183503141832320),
        "vtable_reference" : IVehicleGraphics3DProximity._vtable_offset + IVehicleGraphics3DProximity._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DOrbitProximity)

    _get_geo_box_metadata = { "offset" : _get_geo_box_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def geo_box(self) -> "VehicleGraphics3DGeoBox":
        """Get the parameters for a geostationary box, a planar rectangle centered at a fixed longitude in space and used to visually check that a GEO satellite stays within a certain area."""
        return self._intf.get_property(VehicleGraphics3DOrbitProximity._metadata, VehicleGraphics3DOrbitProximity._get_geo_box_metadata)

    _get_control_box_metadata = { "offset" : _get_control_box_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def control_box(self) -> "VehicleGraphics3DControlBox":
        """Get the parameters for a control box, defining a volume around the object that moves with the object."""
        return self._intf.get_property(VehicleGraphics3DOrbitProximity._metadata, VehicleGraphics3DOrbitProximity._get_control_box_metadata)

    _get_bearing_box_metadata = { "offset" : _get_bearing_box_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def bearing_box(self) -> "VehicleGraphics3DBearingBox":
        """Get the parameters for a bearing box, defining a volume, relative to a bearing from the North, around an object."""
        return self._intf.get_property(VehicleGraphics3DOrbitProximity._metadata, VehicleGraphics3DOrbitProximity._get_bearing_box_metadata)

    _get_bearing_ellipse_metadata = { "offset" : _get_bearing_ellipse_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def bearing_ellipse(self) -> "VehicleGraphics3DBearingEllipse":
        """Get the parameters for a bearing ellipse, defining an ellipse, relative to a bearing from the North, around the object."""
        return self._intf.get_property(VehicleGraphics3DOrbitProximity._metadata, VehicleGraphics3DOrbitProximity._get_bearing_ellipse_metadata)

    _get_line_of_bearing_metadata = { "offset" : _get_line_of_bearing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def line_of_bearing(self) -> "VehicleGraphics3DLineOfBearing":
        """Get the parameters for a line of bearing parameters drawn from an origin in the direction of a bearing."""
        return self._intf.get_property(VehicleGraphics3DOrbitProximity._metadata, VehicleGraphics3DOrbitProximity._get_line_of_bearing_metadata)

    _get_uncertainty_area_label_swap_distance_metadata = { "offset" : _get_uncertainty_area_label_swap_distance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def uncertainty_area_label_swap_distance(self) -> "Graphics3DLabelSwapDistance":
        """Area of uncertainty label swap distance."""
        return self._intf.get_property(VehicleGraphics3DOrbitProximity._metadata, VehicleGraphics3DOrbitProximity._get_uncertainty_area_label_swap_distance_metadata)

    _get_ellipsoid_metadata = { "offset" : _get_ellipsoid_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ellipsoid(self) -> "VehicleGraphics3DEllipsoid":
        """Define the ellipsoid parameters."""
        return self._intf.get_property(VehicleGraphics3DOrbitProximity._metadata, VehicleGraphics3DOrbitProximity._get_ellipsoid_metadata)

    _property_names[geo_box] = "geo_box"
    _property_names[control_box] = "control_box"
    _property_names[bearing_box] = "bearing_box"
    _property_names[bearing_ellipse] = "bearing_ellipse"
    _property_names[line_of_bearing] = "line_of_bearing"
    _property_names[uncertainty_area_label_swap_distance] = "uncertainty_area_label_swap_distance"
    _property_names[ellipsoid] = "ellipsoid"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DOrbitProximity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DOrbitProximity)
        IVehicleGraphics3DProximity.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DProximity._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DOrbitProximity, [VehicleGraphics3DOrbitProximity, IVehicleGraphics3DProximity])

agcls.AgClassCatalog.add_catalog_entry((5726469590553451981, 9452425662232549275), VehicleGraphics3DOrbitProximity)
agcls.AgTypeNameMap["VehicleGraphics3DOrbitProximity"] = VehicleGraphics3DOrbitProximity

class VehicleGraphics3DElevationContours(SupportsDeleteCallback):
    """Interface for 3D elevation angle contours."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_show_filled_cones_method_offset = 3
    _set_show_filled_cones_method_offset = 4
    _get_translucency_method_offset = 5
    _set_translucency_method_offset = 6
    _get_fill_method_offset = 7
    _set_fill_method_offset = 8
    _get_fill_translucency_method_offset = 9
    _set_fill_translucency_method_offset = 10
    _metadata = {
        "iid_data" : (5752753330365194937, 13898301838538363010),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DElevationContours)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display elevation angle contours."""
        return self._intf.get_property(VehicleGraphics3DElevationContours._metadata, VehicleGraphics3DElevationContours._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DElevationContours._metadata, VehicleGraphics3DElevationContours._set_show_graphics_metadata, is_visible)

    _get_show_filled_cones_metadata = { "offset" : _get_show_filled_cones_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_filled_cones(self) -> bool:
        """Opt whether to display elevation angle contours as filled cones in space."""
        return self._intf.get_property(VehicleGraphics3DElevationContours._metadata, VehicleGraphics3DElevationContours._get_show_filled_cones_metadata)

    _set_show_filled_cones_metadata = { "offset" : _set_show_filled_cones_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_filled_cones.setter
    def show_filled_cones(self, show_cones:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DElevationContours._metadata, VehicleGraphics3DElevationContours._set_show_filled_cones_metadata, show_cones)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Translucency of elevation contour cone. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DElevationContours._metadata, VehicleGraphics3DElevationContours._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, translucency:float) -> None:
        return self._intf.set_property(VehicleGraphics3DElevationContours._metadata, VehicleGraphics3DElevationContours._set_translucency_metadata, translucency)

    _get_fill_metadata = { "offset" : _get_fill_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def fill(self) -> bool:
        """Opt whether to display elevation angle contours as a filled polygon on the surface of the central body."""
        return self._intf.get_property(VehicleGraphics3DElevationContours._metadata, VehicleGraphics3DElevationContours._get_fill_metadata)

    _set_fill_metadata = { "offset" : _set_fill_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @fill.setter
    def fill(self, fill:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DElevationContours._metadata, VehicleGraphics3DElevationContours._set_fill_metadata, fill)

    _get_fill_translucency_metadata = { "offset" : _get_fill_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fill_translucency(self) -> float:
        """Translucency of the filled polygon. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DElevationContours._metadata, VehicleGraphics3DElevationContours._get_fill_translucency_metadata)

    _set_fill_translucency_metadata = { "offset" : _set_fill_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fill_translucency.setter
    def fill_translucency(self, fill_translucency:float) -> None:
        return self._intf.set_property(VehicleGraphics3DElevationContours._metadata, VehicleGraphics3DElevationContours._set_fill_translucency_metadata, fill_translucency)

    _property_names[show_graphics] = "show_graphics"
    _property_names[show_filled_cones] = "show_filled_cones"
    _property_names[translucency] = "translucency"
    _property_names[fill] = "fill"
    _property_names[fill_translucency] = "fill_translucency"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DElevationContours."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DElevationContours)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DElevationContours, [VehicleGraphics3DElevationContours, ])

agcls.AgClassCatalog.add_catalog_entry((5747647312036603117, 18120498111227793537), VehicleGraphics3DElevationContours)
agcls.AgTypeNameMap["VehicleGraphics3DElevationContours"] = VehicleGraphics3DElevationContours

class VehicleGraphics3DSAA(SupportsDeleteCallback):
    """Interface for 3D South Atlantic Anomaly contours."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _metadata = {
        "iid_data" : (4781366257019105197, 222154020346910084),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DSAA)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display South Atlantic Anomaly contours."""
        return self._intf.get_property(VehicleGraphics3DSAA._metadata, VehicleGraphics3DSAA._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DSAA._metadata, VehicleGraphics3DSAA._set_show_graphics_metadata, is_visible)

    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DSAA."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DSAA)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DSAA, [VehicleGraphics3DSAA, ])

agcls.AgClassCatalog.add_catalog_entry((5174173943386462855, 9705932251844382361), VehicleGraphics3DSAA)
agcls.AgTypeNameMap["VehicleGraphics3DSAA"] = VehicleGraphics3DSAA

class VehicleGraphics3DSigmaScaleProbability(IVehicleGraphics3DSigmaScale, SupportsDeleteCallback):
    """Interface for sigma probability for indirect sizing of covariance pointing contours."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_probability_method_offset = 1
    _set_probability_method_offset = 2
    _metadata = {
        "iid_data" : (5436898991257609446, 10495855507257716159),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DSigmaScaleProbability)

    _get_probability_metadata = { "offset" : _get_probability_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def probability(self) -> float:
        """Get or set the contour is sized indirectly by specifying the probability encompassed by the ellipsoid as a percent. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DSigmaScaleProbability._metadata, VehicleGraphics3DSigmaScaleProbability._get_probability_metadata)

    _set_probability_metadata = { "offset" : _set_probability_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @probability.setter
    def probability(self, probability:float) -> None:
        return self._intf.set_property(VehicleGraphics3DSigmaScaleProbability._metadata, VehicleGraphics3DSigmaScaleProbability._set_probability_metadata, probability)

    _property_names[probability] = "probability"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DSigmaScaleProbability."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DSigmaScaleProbability)
        IVehicleGraphics3DSigmaScale.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DSigmaScale._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DSigmaScaleProbability, [VehicleGraphics3DSigmaScaleProbability, IVehicleGraphics3DSigmaScale])

agcls.AgClassCatalog.add_catalog_entry((5143577287314007475, 1549311673142227340), VehicleGraphics3DSigmaScaleProbability)
agcls.AgTypeNameMap["VehicleGraphics3DSigmaScaleProbability"] = VehicleGraphics3DSigmaScaleProbability

class VehicleGraphics3DSigmaScaleScale(IVehicleGraphics3DSigmaScale, SupportsDeleteCallback):
    """Interface for sigma scale for direct sizing of covariance pointing contours."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_scale_value_method_offset = 1
    _set_scale_value_method_offset = 2
    _metadata = {
        "iid_data" : (4646700409259861420, 15349162881822045373),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DSigmaScaleScale)

    _get_scale_value_metadata = { "offset" : _get_scale_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scale_value(self) -> float:
        """Scale: the contour is sized directly by specifying the scale. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DSigmaScaleScale._metadata, VehicleGraphics3DSigmaScaleScale._get_scale_value_metadata)

    _set_scale_value_metadata = { "offset" : _set_scale_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scale_value.setter
    def scale_value(self, scale:float) -> None:
        return self._intf.set_property(VehicleGraphics3DSigmaScaleScale._metadata, VehicleGraphics3DSigmaScaleScale._set_scale_value_metadata, scale)

    _property_names[scale_value] = "scale_value"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DSigmaScaleScale."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DSigmaScaleScale)
        IVehicleGraphics3DSigmaScale.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DSigmaScale._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DSigmaScaleScale, [VehicleGraphics3DSigmaScaleScale, IVehicleGraphics3DSigmaScale])

agcls.AgClassCatalog.add_catalog_entry((5416538866724142114, 5588630531465338783), VehicleGraphics3DSigmaScaleScale)
agcls.AgTypeNameMap["VehicleGraphics3DSigmaScaleScale"] = VehicleGraphics3DSigmaScaleScale

class VehicleGraphics3DDefaultAttributes(SupportsDeleteCallback):
    """Default graphics attributes for covariance pointing contours."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_line_width_method_offset = 5
    _set_line_width_method_offset = 6
    _get_translucency_method_offset = 7
    _set_translucency_method_offset = 8
    _metadata = {
        "iid_data" : (5160716048123459534, 10536843738972226216),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DDefaultAttributes)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to show the graphics attributes."""
        return self._intf.get_property(VehicleGraphics3DDefaultAttributes._metadata, VehicleGraphics3DDefaultAttributes._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DDefaultAttributes._metadata, VehicleGraphics3DDefaultAttributes._set_show_graphics_metadata, is_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the line color."""
        return self._intf.get_property(VehicleGraphics3DDefaultAttributes._metadata, VehicleGraphics3DDefaultAttributes._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DDefaultAttributes._metadata, VehicleGraphics3DDefaultAttributes._set_color_metadata, color)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Get or set the line width."""
        return self._intf.get_property(VehicleGraphics3DDefaultAttributes._metadata, VehicleGraphics3DDefaultAttributes._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics3DDefaultAttributes._metadata, VehicleGraphics3DDefaultAttributes._set_line_width_metadata, line_width)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Get or set the translucency. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DDefaultAttributes._metadata, VehicleGraphics3DDefaultAttributes._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, translucency:float) -> None:
        return self._intf.set_property(VehicleGraphics3DDefaultAttributes._metadata, VehicleGraphics3DDefaultAttributes._set_translucency_metadata, translucency)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[line_width] = "line_width"
    _property_names[translucency] = "translucency"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DDefaultAttributes."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DDefaultAttributes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DDefaultAttributes, [VehicleGraphics3DDefaultAttributes, ])

agcls.AgClassCatalog.add_catalog_entry((5716495927115469548, 5940689550289563267), VehicleGraphics3DDefaultAttributes)
agcls.AgTypeNameMap["VehicleGraphics3DDefaultAttributes"] = VehicleGraphics3DDefaultAttributes

class VehicleGraphics3DIntervalsElement(SupportsDeleteCallback):
    """Intervals graphics interface for covariance pointing contour."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_time_method_offset = 1
    _set_start_time_method_offset = 2
    _get_stop_time_method_offset = 3
    _set_stop_time_method_offset = 4
    _get_show_graphics_method_offset = 5
    _set_show_graphics_method_offset = 6
    _get_color_method_offset = 7
    _set_color_method_offset = 8
    _get_line_width_method_offset = 9
    _set_line_width_method_offset = 10
    _get_translucency_method_offset = 11
    _set_translucency_method_offset = 12
    _metadata = {
        "iid_data" : (5749832779671691731, 4221124787168118415),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DIntervalsElement)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Time at which the interval begins and the selected graphics display in the 3D window. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._get_start_time_metadata)

    _set_start_time_metadata = { "offset" : _set_start_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_time.setter
    def start_time(self, start_time:typing.Any) -> None:
        return self._intf.set_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._set_start_time_metadata, start_time)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Time at which the interval ends. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._get_stop_time_metadata)

    _set_stop_time_metadata = { "offset" : _set_stop_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop_time.setter
    def stop_time(self, stop_time:typing.Any) -> None:
        return self._intf.set_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._set_stop_time_metadata, stop_time)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display the object during the selected time using the selected graphics properties."""
        return self._intf.get_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._set_show_graphics_metadata, is_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the line color."""
        return self._intf.get_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._set_color_metadata, color)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Get or set the line width."""
        return self._intf.get_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._set_line_width_metadata, line_width)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Get or set the translucency. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, translucency:float) -> None:
        return self._intf.set_property(VehicleGraphics3DIntervalsElement._metadata, VehicleGraphics3DIntervalsElement._set_translucency_metadata, translucency)

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[line_width] = "line_width"
    _property_names[translucency] = "translucency"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DIntervalsElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DIntervalsElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DIntervalsElement, [VehicleGraphics3DIntervalsElement, ])

agcls.AgClassCatalog.add_catalog_entry((4764911941851572717, 15173915126868920254), VehicleGraphics3DIntervalsElement)
agcls.AgTypeNameMap["VehicleGraphics3DIntervalsElement"] = VehicleGraphics3DIntervalsElement

class VehicleGraphics3DIntervalsCollection(SupportsDeleteCallback):
    """Intervals."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5535502841932166977, 16320546280368307624),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DIntervalsCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics3DIntervalsCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics3DIntervalsElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics3DIntervalsCollection._metadata, VehicleGraphics3DIntervalsCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics3DIntervalsElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics3DIntervalsCollection._metadata, VehicleGraphics3DIntervalsCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics3DIntervalsCollection._metadata, VehicleGraphics3DIntervalsCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleGraphics3DIntervalsCollection._metadata, VehicleGraphics3DIntervalsCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleGraphics3DIntervalsCollection._metadata, VehicleGraphics3DIntervalsCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def add(self, start:typing.Any, stop:typing.Any) -> "VehicleGraphics3DIntervalsElement":
        """Add a new element to the collection. Start/Stop use DateFormat Dimension."""
        return self._intf.invoke(VehicleGraphics3DIntervalsCollection._metadata, VehicleGraphics3DIntervalsCollection._add_metadata, start, stop, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DIntervalsCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DIntervalsCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DIntervalsCollection, [VehicleGraphics3DIntervalsCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4979359508121390880, 16055255438724837760), VehicleGraphics3DIntervalsCollection)
agcls.AgTypeNameMap["VehicleGraphics3DIntervalsCollection"] = VehicleGraphics3DIntervalsCollection

class VehicleGraphics3DAttributesBasic(IVehicleGraphics3DAttributes, SupportsDeleteCallback):
    """Interface for basic 3D graphics for covariance pointing contours."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_line_width_method_offset = 5
    _set_line_width_method_offset = 6
    _get_translucency_method_offset = 7
    _set_translucency_method_offset = 8
    _get_use_custom_color_method_offset = 9
    _set_use_custom_color_method_offset = 10
    _metadata = {
        "iid_data" : (4784882944579035364, 433405640230089093),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DAttributesBasic)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt to display the selected graphics properties instead of using those defined in terms of intervals."""
        return self._intf.get_property(VehicleGraphics3DAttributesBasic._metadata, VehicleGraphics3DAttributesBasic._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DAttributesBasic._metadata, VehicleGraphics3DAttributesBasic._set_show_graphics_metadata, is_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the line color used when UseCustomColor is true."""
        return self._intf.get_property(VehicleGraphics3DAttributesBasic._metadata, VehicleGraphics3DAttributesBasic._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DAttributesBasic._metadata, VehicleGraphics3DAttributesBasic._set_color_metadata, color)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Get or set the line width."""
        return self._intf.get_property(VehicleGraphics3DAttributesBasic._metadata, VehicleGraphics3DAttributesBasic._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics3DAttributesBasic._metadata, VehicleGraphics3DAttributesBasic._set_line_width_metadata, line_width)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Get or set the translucency. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DAttributesBasic._metadata, VehicleGraphics3DAttributesBasic._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, translucency:float) -> None:
        return self._intf.set_property(VehicleGraphics3DAttributesBasic._metadata, VehicleGraphics3DAttributesBasic._set_translucency_metadata, translucency)

    _get_use_custom_color_metadata = { "offset" : _get_use_custom_color_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_custom_color(self) -> bool:
        """Use custom color for lines if true, otherwise use the vehicle color for the line color."""
        return self._intf.get_property(VehicleGraphics3DAttributesBasic._metadata, VehicleGraphics3DAttributesBasic._get_use_custom_color_metadata)

    _set_use_custom_color_metadata = { "offset" : _set_use_custom_color_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_custom_color.setter
    def use_custom_color(self, use_custom_color:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DAttributesBasic._metadata, VehicleGraphics3DAttributesBasic._set_use_custom_color_metadata, use_custom_color)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[line_width] = "line_width"
    _property_names[translucency] = "translucency"
    _property_names[use_custom_color] = "use_custom_color"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DAttributesBasic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DAttributesBasic)
        IVehicleGraphics3DAttributes.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DAttributes._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DAttributesBasic, [VehicleGraphics3DAttributesBasic, IVehicleGraphics3DAttributes])

agcls.AgClassCatalog.add_catalog_entry((5711272694541057228, 18065617347847819451), VehicleGraphics3DAttributesBasic)
agcls.AgTypeNameMap["VehicleGraphics3DAttributesBasic"] = VehicleGraphics3DAttributesBasic

class VehicleGraphics3DAttributesIntervals(IVehicleGraphics3DAttributes, SupportsDeleteCallback):
    """Interface for 3D graphics based on intervals for covariance pointing contours."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_default_attributes_method_offset = 1
    _get_intervals_method_offset = 2
    _metadata = {
        "iid_data" : (5612477707738016305, 14379322262829375408),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DAttributesIntervals)

    _get_default_attributes_metadata = { "offset" : _get_default_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def default_attributes(self) -> "VehicleGraphics3DDefaultAttributes":
        """Get the default 3D graphics properties."""
        return self._intf.get_property(VehicleGraphics3DAttributesIntervals._metadata, VehicleGraphics3DAttributesIntervals._get_default_attributes_metadata)

    _get_intervals_metadata = { "offset" : _get_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def intervals(self) -> "VehicleGraphics3DIntervalsCollection":
        """Get the 3D graphics properties based on intervals."""
        return self._intf.get_property(VehicleGraphics3DAttributesIntervals._metadata, VehicleGraphics3DAttributesIntervals._get_intervals_metadata)

    _property_names[default_attributes] = "default_attributes"
    _property_names[intervals] = "intervals"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DAttributesIntervals."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DAttributesIntervals)
        IVehicleGraphics3DAttributes.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DAttributes._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DAttributesIntervals, [VehicleGraphics3DAttributesIntervals, IVehicleGraphics3DAttributes])

agcls.AgClassCatalog.add_catalog_entry((4702140265612383819, 17736632668944765836), VehicleGraphics3DAttributesIntervals)
agcls.AgTypeNameMap["VehicleGraphics3DAttributesIntervals"] = VehicleGraphics3DAttributesIntervals

class VehicleGraphics3DSize(SupportsDeleteCallback):
    """3D graphics vector size interface."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_scale_to_attitude_sphere_method_offset = 1
    _set_scale_to_attitude_sphere_method_offset = 2
    _get_scale_value_method_offset = 3
    _set_scale_value_method_offset = 4
    _metadata = {
        "iid_data" : (5146676962237479379, 6160870308758696844),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DSize)

    _get_scale_to_attitude_sphere_metadata = { "offset" : _get_scale_to_attitude_sphere_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def scale_to_attitude_sphere(self) -> bool:
        """Opt whether to scale the size of the vector to the attitude sphere."""
        return self._intf.get_property(VehicleGraphics3DSize._metadata, VehicleGraphics3DSize._get_scale_to_attitude_sphere_metadata)

    _set_scale_to_attitude_sphere_metadata = { "offset" : _set_scale_to_attitude_sphere_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @scale_to_attitude_sphere.setter
    def scale_to_attitude_sphere(self, scale_to_attitude_sphere:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DSize._metadata, VehicleGraphics3DSize._set_scale_to_attitude_sphere_metadata, scale_to_attitude_sphere)

    _get_scale_value_metadata = { "offset" : _get_scale_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scale_value(self) -> float:
        """A scale value for the vector (either absolute or relative to the model scale). Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DSize._metadata, VehicleGraphics3DSize._get_scale_value_metadata)

    _set_scale_value_metadata = { "offset" : _set_scale_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scale_value.setter
    def scale_value(self, scale:float) -> None:
        return self._intf.set_property(VehicleGraphics3DSize._metadata, VehicleGraphics3DSize._set_scale_value_metadata, scale)

    _property_names[scale_to_attitude_sphere] = "scale_to_attitude_sphere"
    _property_names[scale_value] = "scale_value"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DSize."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DSize)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DSize, [VehicleGraphics3DSize, ])

agcls.AgClassCatalog.add_catalog_entry((5076032256020138200, 4205427835193832579), VehicleGraphics3DSize)
agcls.AgTypeNameMap["VehicleGraphics3DSize"] = VehicleGraphics3DSize

class VehicleGraphics3DCovariancePointingContour(SupportsDeleteCallback):
    """Interface for covariance pointing contours."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sigma_scale_type_method_offset = 1
    _set_sigma_scale_type_method_offset = 2
    _is_sigma_scale_type_supported_method_offset = 3
    _get_sigma_scale_supported_types_method_offset = 4
    _get_sigma_scale_method_offset = 5
    _get_attributes_type_method_offset = 6
    _set_attributes_type_method_offset = 7
    _is_attributes_type_supported_method_offset = 8
    _get_attributes_supported_types_method_offset = 9
    _get_attributes_method_offset = 10
    _get_show_cone_method_offset = 11
    _set_show_cone_method_offset = 12
    _get_size_method_offset = 13
    _get_to_object_method_offset = 14
    _metadata = {
        "iid_data" : (5152197236771986814, 10004900271534633866),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DCovariancePointingContour)

    _get_sigma_scale_type_metadata = { "offset" : _get_sigma_scale_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DSigmaScale),) }
    @property
    def sigma_scale_type(self) -> "VehicleGraphics3DSigmaScale":
        """Opt whether to size the contour indirectly by specifying a probability or directly by specifying a scale."""
        return self._intf.get_property(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._get_sigma_scale_type_metadata)

    _set_sigma_scale_type_metadata = { "offset" : _set_sigma_scale_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DSigmaScale),) }
    def set_sigma_scale_type(self, sigma_scale:"VehicleGraphics3DSigmaScale") -> None:
        """Set the sigma scale type."""
        return self._intf.invoke(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._set_sigma_scale_type_metadata, sigma_scale)

    _is_sigma_scale_type_supported_metadata = { "offset" : _is_sigma_scale_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DSigmaScale), agmarshall.VariantBoolArg,) }
    def is_sigma_scale_type_supported(self, sigma_scale:"VehicleGraphics3DSigmaScale") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._is_sigma_scale_type_supported_metadata, sigma_scale, OutArg())

    _get_sigma_scale_supported_types_metadata = { "offset" : _get_sigma_scale_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def sigma_scale_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._get_sigma_scale_supported_types_metadata)

    _get_sigma_scale_metadata = { "offset" : _get_sigma_scale_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sigma_scale(self) -> "IVehicleGraphics3DSigmaScale":
        """Get the sigma scale."""
        return self._intf.get_property(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._get_sigma_scale_metadata)

    _get_attributes_type_metadata = { "offset" : _get_attributes_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DAttributeType),) }
    @property
    def attributes_type(self) -> "VehicleGraphics3DAttributeType":
        """Get the graphics attributes type."""
        return self._intf.get_property(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._get_attributes_type_metadata)

    _set_attributes_type_metadata = { "offset" : _set_attributes_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DAttributeType),) }
    def set_attributes_type(self, attributes:"VehicleGraphics3DAttributeType") -> None:
        """Set the graphics attributes type."""
        return self._intf.invoke(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._set_attributes_type_metadata, attributes)

    _is_attributes_type_supported_metadata = { "offset" : _is_attributes_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DAttributeType), agmarshall.VariantBoolArg,) }
    def is_attributes_type_supported(self, attributes:"VehicleGraphics3DAttributeType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._is_attributes_type_supported_metadata, attributes, OutArg())

    _get_attributes_supported_types_metadata = { "offset" : _get_attributes_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attributes_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._get_attributes_supported_types_metadata)

    _get_attributes_metadata = { "offset" : _get_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attributes(self) -> "IVehicleGraphics3DAttributes":
        """Get the graphics attributes."""
        return self._intf.get_property(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._get_attributes_metadata)

    _get_show_cone_metadata = { "offset" : _get_show_cone_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_cone(self) -> bool:
        """Opt whether to display a cone connecting the center of the current object with the contour."""
        return self._intf.get_property(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._get_show_cone_metadata)

    _set_show_cone_metadata = { "offset" : _set_show_cone_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_cone.setter
    def show_cone(self, show_cone:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._set_show_cone_metadata, show_cone)

    _get_size_metadata = { "offset" : _get_size_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def size(self) -> "VehicleGraphics3DSize":
        """Get the size of the contour."""
        return self._intf.get_property(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._get_size_metadata)

    _get_to_object_metadata = { "offset" : _get_to_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def to_object(self) -> "LinkToObject":
        """Get the 'To object' for covariance pointing."""
        return self._intf.get_property(VehicleGraphics3DCovariancePointingContour._metadata, VehicleGraphics3DCovariancePointingContour._get_to_object_metadata)

    _property_names[sigma_scale_type] = "sigma_scale_type"
    _property_names[sigma_scale_supported_types] = "sigma_scale_supported_types"
    _property_names[sigma_scale] = "sigma_scale"
    _property_names[attributes_type] = "attributes_type"
    _property_names[attributes_supported_types] = "attributes_supported_types"
    _property_names[attributes] = "attributes"
    _property_names[show_cone] = "show_cone"
    _property_names[size] = "size"
    _property_names[to_object] = "to_object"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DCovariancePointingContour."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DCovariancePointingContour)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DCovariancePointingContour, [VehicleGraphics3DCovariancePointingContour, ])

agcls.AgClassCatalog.add_catalog_entry((5109611267511635460, 224574156925567640), VehicleGraphics3DCovariancePointingContour)
agcls.AgTypeNameMap["VehicleGraphics3DCovariancePointingContour"] = VehicleGraphics3DCovariancePointingContour

class VehicleGraphics3DDataFraction(IVehicleLeadTrailData, IVehicleLeadTrailDataFraction, SupportsDeleteCallback):
    """Fraction for 3D track display."""
    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DDataFraction."""
        SupportsDeleteCallback.__init__(self)
        IVehicleLeadTrailData.__init__(self, source_object)
        IVehicleLeadTrailDataFraction.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLeadTrailData._private_init(self, intf)
        IVehicleLeadTrailDataFraction._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DDataFraction, [IVehicleLeadTrailData, IVehicleLeadTrailDataFraction])

agcls.AgClassCatalog.add_catalog_entry((4770142876359503811, 11339264367936717724), VehicleGraphics3DDataFraction)
agcls.AgTypeNameMap["VehicleGraphics3DDataFraction"] = VehicleGraphics3DDataFraction

class VehicleGraphics3DDataTime(IVehicleLeadTrailData, IVehicleLeadTrailDataTime, SupportsDeleteCallback):
    """Time."""
    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DDataTime."""
        SupportsDeleteCallback.__init__(self)
        IVehicleLeadTrailData.__init__(self, source_object)
        IVehicleLeadTrailDataTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleLeadTrailData._private_init(self, intf)
        IVehicleLeadTrailDataTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DDataTime, [IVehicleLeadTrailData, IVehicleLeadTrailDataTime])

agcls.AgClassCatalog.add_catalog_entry((4971816889468595741, 17922918433999185073), VehicleGraphics3DDataTime)
agcls.AgTypeNameMap["VehicleGraphics3DDataTime"] = VehicleGraphics3DDataTime

class VehicleGraphics3DOrbitPassData(SupportsDeleteCallback):
    """Interface for satellite 3D ground and orbit track data."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ground_track_method_offset = 1
    _get_orbit_method_offset = 2
    _metadata = {
        "iid_data" : (5238320255930973210, 3630086571832999861),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DOrbitPassData)

    _get_ground_track_metadata = { "offset" : _get_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_track(self) -> "VehicleGraphics3DLeadTrailData":
        """Get the 3D ground track data."""
        return self._intf.get_property(VehicleGraphics3DOrbitPassData._metadata, VehicleGraphics3DOrbitPassData._get_ground_track_metadata)

    _get_orbit_metadata = { "offset" : _get_orbit_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orbit(self) -> "VehicleGraphics3DLeadTrailData":
        """Get the 3D orbit track data."""
        return self._intf.get_property(VehicleGraphics3DOrbitPassData._metadata, VehicleGraphics3DOrbitPassData._get_orbit_metadata)

    _property_names[ground_track] = "ground_track"
    _property_names[orbit] = "orbit"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DOrbitPassData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DOrbitPassData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DOrbitPassData, [VehicleGraphics3DOrbitPassData, ])

agcls.AgClassCatalog.add_catalog_entry((5062688194949660811, 12189426755262823605), VehicleGraphics3DOrbitPassData)
agcls.AgTypeNameMap["VehicleGraphics3DOrbitPassData"] = VehicleGraphics3DOrbitPassData

class VehicleGraphics3DOrbitTrackData(SupportsDeleteCallback):
    """Interface for 3D leading/trailing track data for satellites."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_from_2d_method_offset = 1
    _set_inherit_from_2d_method_offset = 2
    _get_pass_data_method_offset = 3
    _metadata = {
        "iid_data" : (5129562157292202993, 14729481851059179446),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DOrbitTrackData)

    _get_inherit_from_2d_metadata = { "offset" : _get_inherit_from_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_from_2d(self) -> bool:
        """Opt whether to inherit the 3D leading/trailing track data from 2D graphics."""
        return self._intf.get_property(VehicleGraphics3DOrbitTrackData._metadata, VehicleGraphics3DOrbitTrackData._get_inherit_from_2d_metadata)

    _set_inherit_from_2d_metadata = { "offset" : _set_inherit_from_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_from_2d.setter
    def inherit_from_2d(self, inherit_from_2d:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DOrbitTrackData._metadata, VehicleGraphics3DOrbitTrackData._set_inherit_from_2d_metadata, inherit_from_2d)

    _get_pass_data_metadata = { "offset" : _get_pass_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pass_data(self) -> "VehicleGraphics3DOrbitPassData":
        """Get the 3D leading/trailing track data."""
        return self._intf.get_property(VehicleGraphics3DOrbitTrackData._metadata, VehicleGraphics3DOrbitTrackData._get_pass_data_metadata)

    _property_names[inherit_from_2d] = "inherit_from_2d"
    _property_names[pass_data] = "pass_data"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DOrbitTrackData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DOrbitTrackData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DOrbitTrackData, [VehicleGraphics3DOrbitTrackData, ])

agcls.AgClassCatalog.add_catalog_entry((5067361619117755491, 32932765361745793), VehicleGraphics3DOrbitTrackData)
agcls.AgTypeNameMap["VehicleGraphics3DOrbitTrackData"] = VehicleGraphics3DOrbitTrackData

class VehicleGraphics3DTickDataLine(IVehicleGraphics3DTickData, SupportsDeleteCallback):
    """Interface for line type tick marks."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_length_method_offset = 1
    _set_length_method_offset = 2
    _get_line_width_method_offset = 3
    _set_line_width_method_offset = 4
    _metadata = {
        "iid_data" : (5522445016631931917, 12260945037266115768),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DTickDataLine)

    _get_length_metadata = { "offset" : _get_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def length(self) -> float:
        """Length of tick mark line. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DTickDataLine._metadata, VehicleGraphics3DTickDataLine._get_length_metadata)

    _set_length_metadata = { "offset" : _set_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @length.setter
    def length(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics3DTickDataLine._metadata, VehicleGraphics3DTickDataLine._set_length_metadata, value)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Width of tick mark line."""
        return self._intf.get_property(VehicleGraphics3DTickDataLine._metadata, VehicleGraphics3DTickDataLine._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics3DTickDataLine._metadata, VehicleGraphics3DTickDataLine._set_line_width_metadata, value)

    _property_names[length] = "length"
    _property_names[line_width] = "line_width"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DTickDataLine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DTickDataLine)
        IVehicleGraphics3DTickData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DTickData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DTickDataLine, [VehicleGraphics3DTickDataLine, IVehicleGraphics3DTickData])

agcls.AgClassCatalog.add_catalog_entry((5172564202860887833, 12766914027719642249), VehicleGraphics3DTickDataLine)
agcls.AgTypeNameMap["VehicleGraphics3DTickDataLine"] = VehicleGraphics3DTickDataLine

class VehicleGraphics3DTickDataPoint(IVehicleGraphics3DTickData, SupportsDeleteCallback):
    """Interface for point type tick mark."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_size_method_offset = 1
    _set_size_method_offset = 2
    _metadata = {
        "iid_data" : (5547945770376208402, 7064388607340818348),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DTickDataPoint)

    _get_size_metadata = { "offset" : _get_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def size(self) -> float:
        """Point size of tick mark. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DTickDataPoint._metadata, VehicleGraphics3DTickDataPoint._get_size_metadata)

    _set_size_metadata = { "offset" : _set_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @size.setter
    def size(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics3DTickDataPoint._metadata, VehicleGraphics3DTickDataPoint._set_size_metadata, value)

    _property_names[size] = "size"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DTickDataPoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DTickDataPoint)
        IVehicleGraphics3DTickData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DTickData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DTickDataPoint, [VehicleGraphics3DTickDataPoint, IVehicleGraphics3DTickData])

agcls.AgClassCatalog.add_catalog_entry((5536602538638327861, 11917264775169532850), VehicleGraphics3DTickDataPoint)
agcls.AgTypeNameMap["VehicleGraphics3DTickDataPoint"] = VehicleGraphics3DTickDataPoint

class VehicleGraphics3DOrbitTickMarks(SupportsDeleteCallback):
    """Tick mark interface for satellites."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_between_ticks_method_offset = 1
    _set_time_between_ticks_method_offset = 2
    _get_ground_track_method_offset = 3
    _get_orbit_method_offset = 4
    _metadata = {
        "iid_data" : (5034880164473470402, 468028029826393755),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DOrbitTickMarks)

    _get_time_between_ticks_metadata = { "offset" : _get_time_between_ticks_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_between_ticks(self) -> float:
        """Time between tick marks: the time elapsed between each milestone indicated by a tick mark along the satellite's path. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics3DOrbitTickMarks._metadata, VehicleGraphics3DOrbitTickMarks._get_time_between_ticks_metadata)

    _set_time_between_ticks_metadata = { "offset" : _set_time_between_ticks_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_between_ticks.setter
    def time_between_ticks(self, time_between_ticks:float) -> None:
        return self._intf.set_property(VehicleGraphics3DOrbitTickMarks._metadata, VehicleGraphics3DOrbitTickMarks._set_time_between_ticks_metadata, time_between_ticks)

    _get_ground_track_metadata = { "offset" : _get_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_track(self) -> "VehicleGraphics3DPathTickMarks":
        """Get the ground track tick marks."""
        return self._intf.get_property(VehicleGraphics3DOrbitTickMarks._metadata, VehicleGraphics3DOrbitTickMarks._get_ground_track_metadata)

    _get_orbit_metadata = { "offset" : _get_orbit_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orbit(self) -> "VehicleGraphics3DPathTickMarks":
        """Get the orbit track tick marks."""
        return self._intf.get_property(VehicleGraphics3DOrbitTickMarks._metadata, VehicleGraphics3DOrbitTickMarks._get_orbit_metadata)

    _property_names[time_between_ticks] = "time_between_ticks"
    _property_names[ground_track] = "ground_track"
    _property_names[orbit] = "orbit"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DOrbitTickMarks."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DOrbitTickMarks)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DOrbitTickMarks, [VehicleGraphics3DOrbitTickMarks, ])

agcls.AgClassCatalog.add_catalog_entry((5003786650073431020, 10421114519222696369), VehicleGraphics3DOrbitTickMarks)
agcls.AgTypeNameMap["VehicleGraphics3DOrbitTickMarks"] = VehicleGraphics3DOrbitTickMarks

class VehicleGraphics3DPass(SupportsDeleteCallback):
    """3D pass interface for satellites."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_track_data_method_offset = 1
    _get_tick_marks_method_offset = 2
    _metadata = {
        "iid_data" : (5624827780808998413, 17730240960313616262),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DPass)

    _get_track_data_metadata = { "offset" : _get_track_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def track_data(self) -> "VehicleGraphics3DOrbitTrackData":
        """Get the leading/trailing ground and orbit track data."""
        return self._intf.get_property(VehicleGraphics3DPass._metadata, VehicleGraphics3DPass._get_track_data_metadata)

    _get_tick_marks_metadata = { "offset" : _get_tick_marks_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tick_marks(self) -> "VehicleGraphics3DOrbitTickMarks":
        """Get the tick mark data."""
        return self._intf.get_property(VehicleGraphics3DPass._metadata, VehicleGraphics3DPass._get_tick_marks_metadata)

    _property_names[track_data] = "track_data"
    _property_names[tick_marks] = "tick_marks"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DPass."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DPass)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DPass, [VehicleGraphics3DPass, ])

agcls.AgClassCatalog.add_catalog_entry((5040484909918501689, 9958107786702802828), VehicleGraphics3DPass)
agcls.AgTypeNameMap["VehicleGraphics3DPass"] = VehicleGraphics3DPass

class VehicleGraphics3DCovariance(SupportsDeleteCallback):
    """Interface for 3D covariance ellipsoids."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sigma_scale_type_method_offset = 1
    _set_sigma_scale_type_method_offset = 2
    _is_sigma_scale_type_supported_method_offset = 3
    _get_sigma_scale_supported_types_method_offset = 4
    _get_sigma_scale_method_offset = 5
    _get_attributes_type_method_offset = 6
    _set_attributes_type_method_offset = 7
    _is_attributes_type_supported_method_offset = 8
    _get_attributes_supported_types_method_offset = 9
    _get_attributes_method_offset = 10
    _metadata = {
        "iid_data" : (5157719465107704459, 9994350757068827281),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DCovariance)

    _get_sigma_scale_type_metadata = { "offset" : _get_sigma_scale_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DSigmaScale),) }
    @property
    def sigma_scale_type(self) -> "VehicleGraphics3DSigmaScale":
        """Get the sigma scale type."""
        return self._intf.get_property(VehicleGraphics3DCovariance._metadata, VehicleGraphics3DCovariance._get_sigma_scale_type_metadata)

    _set_sigma_scale_type_metadata = { "offset" : _set_sigma_scale_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DSigmaScale),) }
    def set_sigma_scale_type(self, sigma_scale:"VehicleGraphics3DSigmaScale") -> None:
        """Set the sigma scale type."""
        return self._intf.invoke(VehicleGraphics3DCovariance._metadata, VehicleGraphics3DCovariance._set_sigma_scale_type_metadata, sigma_scale)

    _is_sigma_scale_type_supported_metadata = { "offset" : _is_sigma_scale_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DSigmaScale), agmarshall.VariantBoolArg,) }
    def is_sigma_scale_type_supported(self, sigma_scale:"VehicleGraphics3DSigmaScale") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics3DCovariance._metadata, VehicleGraphics3DCovariance._is_sigma_scale_type_supported_metadata, sigma_scale, OutArg())

    _get_sigma_scale_supported_types_metadata = { "offset" : _get_sigma_scale_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def sigma_scale_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics3DCovariance._metadata, VehicleGraphics3DCovariance._get_sigma_scale_supported_types_metadata)

    _get_sigma_scale_metadata = { "offset" : _get_sigma_scale_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sigma_scale(self) -> "IVehicleGraphics3DSigmaScale":
        """Get the sigma scale."""
        return self._intf.get_property(VehicleGraphics3DCovariance._metadata, VehicleGraphics3DCovariance._get_sigma_scale_metadata)

    _get_attributes_type_metadata = { "offset" : _get_attributes_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DAttributeType),) }
    @property
    def attributes_type(self) -> "VehicleGraphics3DAttributeType":
        """Get the position ellipsoid attributes type."""
        return self._intf.get_property(VehicleGraphics3DCovariance._metadata, VehicleGraphics3DCovariance._get_attributes_type_metadata)

    _set_attributes_type_metadata = { "offset" : _set_attributes_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DAttributeType),) }
    def set_attributes_type(self, attributes:"VehicleGraphics3DAttributeType") -> None:
        """Set the position ellipsoid attributes type."""
        return self._intf.invoke(VehicleGraphics3DCovariance._metadata, VehicleGraphics3DCovariance._set_attributes_type_metadata, attributes)

    _is_attributes_type_supported_metadata = { "offset" : _is_attributes_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DAttributeType), agmarshall.VariantBoolArg,) }
    def is_attributes_type_supported(self, attributes:"VehicleGraphics3DAttributeType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics3DCovariance._metadata, VehicleGraphics3DCovariance._is_attributes_type_supported_metadata, attributes, OutArg())

    _get_attributes_supported_types_metadata = { "offset" : _get_attributes_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attributes_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics3DCovariance._metadata, VehicleGraphics3DCovariance._get_attributes_supported_types_metadata)

    _get_attributes_metadata = { "offset" : _get_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attributes(self) -> "IVehicleGraphics3DAttributes":
        """Get the position ellipsoid graphics attributes."""
        return self._intf.get_property(VehicleGraphics3DCovariance._metadata, VehicleGraphics3DCovariance._get_attributes_metadata)

    _property_names[sigma_scale_type] = "sigma_scale_type"
    _property_names[sigma_scale_supported_types] = "sigma_scale_supported_types"
    _property_names[sigma_scale] = "sigma_scale"
    _property_names[attributes_type] = "attributes_type"
    _property_names[attributes_supported_types] = "attributes_supported_types"
    _property_names[attributes] = "attributes"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DCovariance."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DCovariance)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DCovariance, [VehicleGraphics3DCovariance, ])

agcls.AgClassCatalog.add_catalog_entry((5714052874933678779, 15025653016543990705), VehicleGraphics3DCovariance)
agcls.AgTypeNameMap["VehicleGraphics3DCovariance"] = VehicleGraphics3DCovariance

class VehicleGraphics3DVelocityCovariance(SupportsDeleteCallback):
    """Interface for 3D velocity covariance ellipsoids."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_scale_method_offset = 1
    _set_scale_method_offset = 2
    _get_attributes_type_method_offset = 3
    _set_attributes_type_method_offset = 4
    _is_attributes_type_supported_method_offset = 5
    _get_attributes_supported_types_method_offset = 6
    _get_attributes_method_offset = 7
    _metadata = {
        "iid_data" : (4612777041132358683, 2144153575777116582),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DVelocityCovariance)

    _get_scale_metadata = { "offset" : _get_scale_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scale(self) -> float:
        """A scale value for the velocity ellipsoid size. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DVelocityCovariance._metadata, VehicleGraphics3DVelocityCovariance._get_scale_metadata)

    _set_scale_metadata = { "offset" : _set_scale_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scale.setter
    def scale(self, value:float) -> None:
        return self._intf.set_property(VehicleGraphics3DVelocityCovariance._metadata, VehicleGraphics3DVelocityCovariance._set_scale_metadata, value)

    _get_attributes_type_metadata = { "offset" : _get_attributes_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DAttributeType),) }
    @property
    def attributes_type(self) -> "VehicleGraphics3DAttributeType":
        """Get the velocity ellipsoid attributes type."""
        return self._intf.get_property(VehicleGraphics3DVelocityCovariance._metadata, VehicleGraphics3DVelocityCovariance._get_attributes_type_metadata)

    _set_attributes_type_metadata = { "offset" : _set_attributes_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DAttributeType),) }
    def set_attributes_type(self, attributes:"VehicleGraphics3DAttributeType") -> None:
        """Set the velocity ellipsoid attributes type."""
        return self._intf.invoke(VehicleGraphics3DVelocityCovariance._metadata, VehicleGraphics3DVelocityCovariance._set_attributes_type_metadata, attributes)

    _is_attributes_type_supported_metadata = { "offset" : _is_attributes_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DAttributeType), agmarshall.VariantBoolArg,) }
    def is_attributes_type_supported(self, attributes:"VehicleGraphics3DAttributeType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics3DVelocityCovariance._metadata, VehicleGraphics3DVelocityCovariance._is_attributes_type_supported_metadata, attributes, OutArg())

    _get_attributes_supported_types_metadata = { "offset" : _get_attributes_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attributes_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics3DVelocityCovariance._metadata, VehicleGraphics3DVelocityCovariance._get_attributes_supported_types_metadata)

    _get_attributes_metadata = { "offset" : _get_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attributes(self) -> "IVehicleGraphics3DAttributes":
        """Get the velocity ellipsoid graphics attributes."""
        return self._intf.get_property(VehicleGraphics3DVelocityCovariance._metadata, VehicleGraphics3DVelocityCovariance._get_attributes_metadata)

    _property_names[scale] = "scale"
    _property_names[attributes_type] = "attributes_type"
    _property_names[attributes_supported_types] = "attributes_supported_types"
    _property_names[attributes] = "attributes"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DVelocityCovariance."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DVelocityCovariance)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DVelocityCovariance, [VehicleGraphics3DVelocityCovariance, ])

agcls.AgClassCatalog.add_catalog_entry((4650274515256489950, 5584222506501095357), VehicleGraphics3DVelocityCovariance)
agcls.AgTypeNameMap["VehicleGraphics3DVelocityCovariance"] = VehicleGraphics3DVelocityCovariance

class VehicleGraphics3DTrajectoryProximity(IVehicleGraphics3DProximity, SupportsDeleteCallback):
    """Proximity graphics for a launch vehicle or missile."""

    _num_methods = 6
    _vtable_offset = IVehicleGraphics3DProximity._vtable_offset + IVehicleGraphics3DProximity._num_methods
    _get_control_box_method_offset = 1
    _get_bearing_box_method_offset = 2
    _get_bearing_ellipse_method_offset = 3
    _get_line_of_bearing_method_offset = 4
    _get_uncertainty_area_label_swap_distance_method_offset = 5
    _get_ellipsoid_method_offset = 6
    _metadata = {
        "iid_data" : (5439653997041375425, 17090974410474903437),
        "vtable_reference" : IVehicleGraphics3DProximity._vtable_offset + IVehicleGraphics3DProximity._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DTrajectoryProximity)

    _get_control_box_metadata = { "offset" : _get_control_box_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def control_box(self) -> "VehicleGraphics3DControlBox":
        """Get the control box parameters."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryProximity._metadata, VehicleGraphics3DTrajectoryProximity._get_control_box_metadata)

    _get_bearing_box_metadata = { "offset" : _get_bearing_box_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def bearing_box(self) -> "VehicleGraphics3DBearingBox":
        """Get the bearing box parameters."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryProximity._metadata, VehicleGraphics3DTrajectoryProximity._get_bearing_box_metadata)

    _get_bearing_ellipse_metadata = { "offset" : _get_bearing_ellipse_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def bearing_ellipse(self) -> "VehicleGraphics3DBearingEllipse":
        """Get the bearing ellipse parameters."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryProximity._metadata, VehicleGraphics3DTrajectoryProximity._get_bearing_ellipse_metadata)

    _get_line_of_bearing_metadata = { "offset" : _get_line_of_bearing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def line_of_bearing(self) -> "VehicleGraphics3DLineOfBearing":
        """Get the line of bearing parameters."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryProximity._metadata, VehicleGraphics3DTrajectoryProximity._get_line_of_bearing_metadata)

    _get_uncertainty_area_label_swap_distance_metadata = { "offset" : _get_uncertainty_area_label_swap_distance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def uncertainty_area_label_swap_distance(self) -> "Graphics3DLabelSwapDistance":
        """Area of uncertainty label swap distance."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryProximity._metadata, VehicleGraphics3DTrajectoryProximity._get_uncertainty_area_label_swap_distance_metadata)

    _get_ellipsoid_metadata = { "offset" : _get_ellipsoid_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ellipsoid(self) -> "VehicleGraphics3DEllipsoid":
        """Define the ellipsoid parameters."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryProximity._metadata, VehicleGraphics3DTrajectoryProximity._get_ellipsoid_metadata)

    _property_names[control_box] = "control_box"
    _property_names[bearing_box] = "bearing_box"
    _property_names[bearing_ellipse] = "bearing_ellipse"
    _property_names[line_of_bearing] = "line_of_bearing"
    _property_names[uncertainty_area_label_swap_distance] = "uncertainty_area_label_swap_distance"
    _property_names[ellipsoid] = "ellipsoid"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DTrajectoryProximity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DTrajectoryProximity)
        IVehicleGraphics3DProximity.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics3DProximity._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DTrajectoryProximity, [VehicleGraphics3DTrajectoryProximity, IVehicleGraphics3DProximity])

agcls.AgClassCatalog.add_catalog_entry((4757520681746089712, 14832198509210243488), VehicleGraphics3DTrajectoryProximity)
agcls.AgTypeNameMap["VehicleGraphics3DTrajectoryProximity"] = VehicleGraphics3DTrajectoryProximity

class VehicleGraphics3DTrajectory(SupportsDeleteCallback):
    """3D pass interface for launch vehicles and missiles."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_track_data_method_offset = 1
    _get_tick_marks_method_offset = 2
    _metadata = {
        "iid_data" : (5715134506505317314, 15982055326102208672),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DTrajectory)

    _get_track_data_metadata = { "offset" : _get_track_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def track_data(self) -> "VehicleGraphics3DTrajectoryTrackData":
        """Get the leading/trailing ground track and trajectory data."""
        return self._intf.get_property(VehicleGraphics3DTrajectory._metadata, VehicleGraphics3DTrajectory._get_track_data_metadata)

    _get_tick_marks_metadata = { "offset" : _get_tick_marks_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tick_marks(self) -> "VehicleGraphics3DTrajectoryTickMarks":
        """Get the tick mark data."""
        return self._intf.get_property(VehicleGraphics3DTrajectory._metadata, VehicleGraphics3DTrajectory._get_tick_marks_metadata)

    _property_names[track_data] = "track_data"
    _property_names[tick_marks] = "tick_marks"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DTrajectory."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DTrajectory)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DTrajectory, [VehicleGraphics3DTrajectory, ])

agcls.AgClassCatalog.add_catalog_entry((5764381478681598136, 9233564556713666732), VehicleGraphics3DTrajectory)
agcls.AgTypeNameMap["VehicleGraphics3DTrajectory"] = VehicleGraphics3DTrajectory

class VehicleGraphics3DTrajectoryTrackData(SupportsDeleteCallback):
    """Interface for 3D leading/trailing track data for launch vehicles and missiles."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_from_2d_method_offset = 1
    _set_inherit_from_2d_method_offset = 2
    _get_pass_data_method_offset = 3
    _metadata = {
        "iid_data" : (4938317329462943034, 11071644329464593824),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DTrajectoryTrackData)

    _get_inherit_from_2d_metadata = { "offset" : _get_inherit_from_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_from_2d(self) -> bool:
        """Opt whether to inherit the 3D leading/trailing track data from 2D graphics."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryTrackData._metadata, VehicleGraphics3DTrajectoryTrackData._get_inherit_from_2d_metadata)

    _set_inherit_from_2d_metadata = { "offset" : _set_inherit_from_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_from_2d.setter
    def inherit_from_2d(self, inherit_from_2d:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DTrajectoryTrackData._metadata, VehicleGraphics3DTrajectoryTrackData._set_inherit_from_2d_metadata, inherit_from_2d)

    _get_pass_data_metadata = { "offset" : _get_pass_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pass_data(self) -> "VehicleGraphics3DTrajectoryPassData":
        """Get the 3D leading/trailing track data."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryTrackData._metadata, VehicleGraphics3DTrajectoryTrackData._get_pass_data_metadata)

    _property_names[inherit_from_2d] = "inherit_from_2d"
    _property_names[pass_data] = "pass_data"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DTrajectoryTrackData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DTrajectoryTrackData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DTrajectoryTrackData, [VehicleGraphics3DTrajectoryTrackData, ])

agcls.AgClassCatalog.add_catalog_entry((4645199154102633146, 8977179757159555245), VehicleGraphics3DTrajectoryTrackData)
agcls.AgTypeNameMap["VehicleGraphics3DTrajectoryTrackData"] = VehicleGraphics3DTrajectoryTrackData

class VehicleGraphics3DTrajectoryPassData(SupportsDeleteCallback):
    """Interface for 3D ground track and trajectory data for a launch vehicle or missile."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ground_track_method_offset = 1
    _get_trajectory_method_offset = 2
    _metadata = {
        "iid_data" : (4914756189829651354, 16115555740121725848),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DTrajectoryPassData)

    _get_ground_track_metadata = { "offset" : _get_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_track(self) -> "VehicleGraphics3DLeadTrailData":
        """Get the 3D ground track data."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryPassData._metadata, VehicleGraphics3DTrajectoryPassData._get_ground_track_metadata)

    _get_trajectory_metadata = { "offset" : _get_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory(self) -> "VehicleGraphics3DLeadTrailData":
        """Get the 3D trajectory data."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryPassData._metadata, VehicleGraphics3DTrajectoryPassData._get_trajectory_metadata)

    _property_names[ground_track] = "ground_track"
    _property_names[trajectory] = "trajectory"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DTrajectoryPassData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DTrajectoryPassData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DTrajectoryPassData, [VehicleGraphics3DTrajectoryPassData, ])

agcls.AgClassCatalog.add_catalog_entry((4722003546414635052, 10048337237686367142), VehicleGraphics3DTrajectoryPassData)
agcls.AgTypeNameMap["VehicleGraphics3DTrajectoryPassData"] = VehicleGraphics3DTrajectoryPassData

class VehicleGraphics3DLeadTrailData(SupportsDeleteCallback):
    """Interface for vehicle's lead/trail data."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_lead_data_type_method_offset = 1
    _get_trail_data_type_method_offset = 2
    _set_lead_data_type_method_offset = 3
    _set_trail_data_type_method_offset = 4
    _get_lead_data_method_offset = 5
    _get_trail_data_method_offset = 6
    _get_has_lead_data_method_offset = 7
    _get_has_trail_data_method_offset = 8
    _is_data_type_supported_method_offset = 9
    _get_supported_data_types_method_offset = 10
    _set_trail_same_as_lead_method_offset = 11
    _metadata = {
        "iid_data" : (4642199652078520249, 6981327875645857726),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DLeadTrailData)

    _get_lead_data_type_metadata = { "offset" : _get_lead_data_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData),) }
    @property
    def lead_data_type(self) -> "LeadTrailData":
        """Get display option for the leading portion of the vehicle's tracks."""
        return self._intf.get_property(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._get_lead_data_type_metadata)

    _get_trail_data_type_metadata = { "offset" : _get_trail_data_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData),) }
    @property
    def trail_data_type(self) -> "LeadTrailData":
        """Get display option for the trailing portion of the vehicle's tracks."""
        return self._intf.get_property(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._get_trail_data_type_metadata)

    _set_lead_data_type_metadata = { "offset" : _set_lead_data_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData),) }
    def set_lead_data_type(self, lead_data:"LeadTrailData") -> None:
        """Set the display option for the leading portion of the vehicle's tracks."""
        return self._intf.invoke(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._set_lead_data_type_metadata, lead_data)

    _set_trail_data_type_metadata = { "offset" : _set_trail_data_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData),) }
    def set_trail_data_type(self, trail_data:"LeadTrailData") -> None:
        """Set the display option for the trailng portion of the vehicle's tracks."""
        return self._intf.invoke(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._set_trail_data_type_metadata, trail_data)

    _get_lead_data_metadata = { "offset" : _get_lead_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def lead_data(self) -> "IVehicleLeadTrailData":
        """Get the display value (time or percent) for the leading portion of the vehicle's tracks."""
        return self._intf.get_property(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._get_lead_data_metadata)

    _get_trail_data_metadata = { "offset" : _get_trail_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trail_data(self) -> "IVehicleLeadTrailData":
        """Get the display value (time or percent) for the trailing portion of the vehicle's tracks."""
        return self._intf.get_property(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._get_trail_data_metadata)

    _get_has_lead_data_metadata = { "offset" : _get_has_lead_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def has_lead_data(self) -> bool:
        """Determine whether the leading display option has value data."""
        return self._intf.get_property(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._get_has_lead_data_metadata)

    _get_has_trail_data_metadata = { "offset" : _get_has_trail_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def has_trail_data(self) -> bool:
        """Determine whether the trailing display option has value data."""
        return self._intf.get_property(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._get_has_trail_data_metadata)

    _is_data_type_supported_metadata = { "offset" : _is_data_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(LeadTrailData), agmarshall.VariantBoolArg,) }
    def is_data_type_supported(self, data:"LeadTrailData") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._is_data_type_supported_metadata, data, OutArg())

    _get_supported_data_types_metadata = { "offset" : _get_supported_data_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_data_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._get_supported_data_types_metadata)

    _set_trail_same_as_lead_metadata = { "offset" : _set_trail_same_as_lead_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def set_trail_same_as_lead(self) -> None:
        """Set the trailing display option (and value, if applicable) to be the same as for the leading portion."""
        return self._intf.invoke(VehicleGraphics3DLeadTrailData._metadata, VehicleGraphics3DLeadTrailData._set_trail_same_as_lead_metadata, )

    _property_names[lead_data_type] = "lead_data_type"
    _property_names[trail_data_type] = "trail_data_type"
    _property_names[lead_data] = "lead_data"
    _property_names[trail_data] = "trail_data"
    _property_names[has_lead_data] = "has_lead_data"
    _property_names[has_trail_data] = "has_trail_data"
    _property_names[supported_data_types] = "supported_data_types"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DLeadTrailData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DLeadTrailData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DLeadTrailData, [VehicleGraphics3DLeadTrailData, ])

agcls.AgClassCatalog.add_catalog_entry((4851471289400796173, 6787817374778197660), VehicleGraphics3DLeadTrailData)
agcls.AgTypeNameMap["VehicleGraphics3DLeadTrailData"] = VehicleGraphics3DLeadTrailData

class VehicleGraphics3DTrajectoryTickMarks(SupportsDeleteCallback):
    """Tick mark data interface for launch vehicles and missiles."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_between_ticks_method_offset = 1
    _set_time_between_ticks_method_offset = 2
    _get_ground_track_method_offset = 3
    _get_trajectory_method_offset = 4
    _metadata = {
        "iid_data" : (5186956057861110453, 17594238557052079493),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DTrajectoryTickMarks)

    _get_time_between_ticks_metadata = { "offset" : _get_time_between_ticks_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_between_ticks(self) -> float:
        """Time between tick marks: the time elapsed between each milestone indicated by a tick mark along the vehicle's path. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryTickMarks._metadata, VehicleGraphics3DTrajectoryTickMarks._get_time_between_ticks_metadata)

    _set_time_between_ticks_metadata = { "offset" : _set_time_between_ticks_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_between_ticks.setter
    def time_between_ticks(self, time_between_ticks:float) -> None:
        return self._intf.set_property(VehicleGraphics3DTrajectoryTickMarks._metadata, VehicleGraphics3DTrajectoryTickMarks._set_time_between_ticks_metadata, time_between_ticks)

    _get_ground_track_metadata = { "offset" : _get_ground_track_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_track(self) -> "VehicleGraphics3DPathTickMarks":
        """Get the ground track tick marks."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryTickMarks._metadata, VehicleGraphics3DTrajectoryTickMarks._get_ground_track_metadata)

    _get_trajectory_metadata = { "offset" : _get_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory(self) -> "VehicleGraphics3DPathTickMarks":
        """Get the trajectory tick marks."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryTickMarks._metadata, VehicleGraphics3DTrajectoryTickMarks._get_trajectory_metadata)

    _property_names[time_between_ticks] = "time_between_ticks"
    _property_names[ground_track] = "ground_track"
    _property_names[trajectory] = "trajectory"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DTrajectoryTickMarks."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DTrajectoryTickMarks)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DTrajectoryTickMarks, [VehicleGraphics3DTrajectoryTickMarks, ])

agcls.AgClassCatalog.add_catalog_entry((5091496255102588742, 14757437567717312690), VehicleGraphics3DTrajectoryTickMarks)
agcls.AgTypeNameMap["VehicleGraphics3DTrajectoryTickMarks"] = VehicleGraphics3DTrajectoryTickMarks

class VehicleGraphics3DPathTickMarks(SupportsDeleteCallback):
    """Interface for tick marks for 3D trajectory graphics. Tick marks represent milestones at specified intervals along the trajectory in the 3D window."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_tick_data_type_method_offset = 3
    _set_tick_data_type_method_offset = 4
    _is_tick_data_type_supported_method_offset = 5
    _get_tick_data_supported_types_method_offset = 6
    _get_tick_data_method_offset = 7
    _metadata = {
        "iid_data" : (5615001234120897778, 6196174690962170247),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DPathTickMarks)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display tick marks."""
        return self._intf.get_property(VehicleGraphics3DPathTickMarks._metadata, VehicleGraphics3DPathTickMarks._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DPathTickMarks._metadata, VehicleGraphics3DPathTickMarks._set_show_graphics_metadata, is_visible)

    _get_tick_data_type_metadata = { "offset" : _get_tick_data_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TickData),) }
    @property
    def tick_data_type(self) -> "TickData":
        """Get the type of tick marks to display."""
        return self._intf.get_property(VehicleGraphics3DPathTickMarks._metadata, VehicleGraphics3DPathTickMarks._get_tick_data_type_metadata)

    _set_tick_data_type_metadata = { "offset" : _set_tick_data_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TickData),) }
    def set_tick_data_type(self, tick_data:"TickData") -> None:
        """Set the type of tick marks to display."""
        return self._intf.invoke(VehicleGraphics3DPathTickMarks._metadata, VehicleGraphics3DPathTickMarks._set_tick_data_type_metadata, tick_data)

    _is_tick_data_type_supported_metadata = { "offset" : _is_tick_data_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(TickData), agmarshall.VariantBoolArg,) }
    def is_tick_data_type_supported(self, tick_data:"TickData") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics3DPathTickMarks._metadata, VehicleGraphics3DPathTickMarks._is_tick_data_type_supported_metadata, tick_data, OutArg())

    _get_tick_data_supported_types_metadata = { "offset" : _get_tick_data_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def tick_data_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics3DPathTickMarks._metadata, VehicleGraphics3DPathTickMarks._get_tick_data_supported_types_metadata)

    _get_tick_data_metadata = { "offset" : _get_tick_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tick_data(self) -> "IVehicleGraphics3DTickData":
        """Get the tick mark data."""
        return self._intf.get_property(VehicleGraphics3DPathTickMarks._metadata, VehicleGraphics3DPathTickMarks._get_tick_data_metadata)

    _property_names[show_graphics] = "show_graphics"
    _property_names[tick_data_type] = "tick_data_type"
    _property_names[tick_data_supported_types] = "tick_data_supported_types"
    _property_names[tick_data] = "tick_data"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DPathTickMarks."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DPathTickMarks)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DPathTickMarks, [VehicleGraphics3DPathTickMarks, ])

agcls.AgClassCatalog.add_catalog_entry((4682011970431299142, 7636826625519759536), VehicleGraphics3DPathTickMarks)
agcls.AgTypeNameMap["VehicleGraphics3DPathTickMarks"] = VehicleGraphics3DPathTickMarks

class VehicleGraphics3DWaypointMarkersElement(SupportsDeleteCallback):
    """3D waypoint interface."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_method_offset = 1
    _get_marker_type_method_offset = 2
    _set_marker_type_method_offset = 3
    _get_shape_method_offset = 4
    _set_shape_method_offset = 5
    _get_marker_filename_method_offset = 6
    _set_marker_filename_method_offset = 7
    _get_pixel_size_method_offset = 8
    _set_pixel_size_method_offset = 9
    _get_is_transparent_method_offset = 10
    _set_is_transparent_method_offset = 11
    _set_image_file_method_offset = 12
    _metadata = {
        "iid_data" : (5202964243346501461, 7004884798362474683),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DWaypointMarkersElement)

    _get_time_metadata = { "offset" : _get_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def time(self) -> typing.Any:
        """Get the time of the waypoint."""
        return self._intf.get_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._get_time_metadata)

    _get_marker_type_metadata = { "offset" : _get_marker_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RouteGraphics3DMarkerType),) }
    @property
    def marker_type(self) -> "RouteGraphics3DMarkerType":
        """Get the marker type of the waypoint."""
        return self._intf.get_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._get_marker_type_metadata)

    _set_marker_type_metadata = { "offset" : _set_marker_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RouteGraphics3DMarkerType),) }
    @marker_type.setter
    def marker_type(self, marker_type:"RouteGraphics3DMarkerType") -> None:
        return self._intf.set_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._set_marker_type_metadata, marker_type)

    _get_shape_metadata = { "offset" : _get_shape_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MarkerShape3d),) }
    @property
    def shape(self) -> "MarkerShape3d":
        """Get or set the shape of the waypoint marker."""
        return self._intf.get_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._get_shape_metadata)

    _set_shape_metadata = { "offset" : _set_shape_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MarkerShape3d),) }
    @shape.setter
    def shape(self, marker_shape:"MarkerShape3d") -> None:
        return self._intf.set_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._set_shape_metadata, marker_shape)

    _get_marker_filename_metadata = { "offset" : _get_marker_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_filename(self) -> str:
        """Get or set the path and file name of the image used for the waypoint."""
        return self._intf.get_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._get_marker_filename_metadata)

    _set_marker_filename_metadata = { "offset" : _set_marker_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_filename.setter
    def marker_filename(self, marker_file:str) -> None:
        return self._intf.set_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._set_marker_filename_metadata, marker_file)

    _get_pixel_size_metadata = { "offset" : _get_pixel_size_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def pixel_size(self) -> int:
        """Get or set the pixel size of the waypoint marker. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._get_pixel_size_metadata)

    _set_pixel_size_metadata = { "offset" : _set_pixel_size_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @pixel_size.setter
    def pixel_size(self, pixel_size:int) -> None:
        return self._intf.set_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._set_pixel_size_metadata, pixel_size)

    _get_is_transparent_metadata = { "offset" : _get_is_transparent_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_transparent(self) -> bool:
        """Opt whether to use the color of the lower left pixel of the image as the transparent color if an image file is being used."""
        return self._intf.get_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._get_is_transparent_metadata)

    _set_is_transparent_metadata = { "offset" : _set_is_transparent_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @is_transparent.setter
    def is_transparent(self, is_transparent:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._set_is_transparent_metadata, is_transparent)

    _set_image_file_metadata = { "offset" : _set_image_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_image_file(self, marker_file:str) -> None:
        """Set a file name of the image used for the waypoint."""
        return self._intf.invoke(VehicleGraphics3DWaypointMarkersElement._metadata, VehicleGraphics3DWaypointMarkersElement._set_image_file_metadata, marker_file)

    _property_names[time] = "time"
    _property_names[marker_type] = "marker_type"
    _property_names[shape] = "shape"
    _property_names[marker_filename] = "marker_filename"
    _property_names[pixel_size] = "pixel_size"
    _property_names[is_transparent] = "is_transparent"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DWaypointMarkersElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DWaypointMarkersElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DWaypointMarkersElement, [VehicleGraphics3DWaypointMarkersElement, ])

agcls.AgClassCatalog.add_catalog_entry((4639668551810992188, 4587738928633708216), VehicleGraphics3DWaypointMarkersElement)
agcls.AgTypeNameMap["VehicleGraphics3DWaypointMarkersElement"] = VehicleGraphics3DWaypointMarkersElement

class VehicleGraphics3DWaypointMarkersCollection(SupportsDeleteCallback):
    """Waypoint markers collection interface."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5038772013943671185, 1454123350596908695),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DWaypointMarkersCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics3DWaypointMarkersCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics3DWaypointMarkersElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics3DWaypointMarkersCollection._metadata, VehicleGraphics3DWaypointMarkersCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics3DWaypointMarkersElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics3DWaypointMarkersCollection._metadata, VehicleGraphics3DWaypointMarkersCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics3DWaypointMarkersCollection._metadata, VehicleGraphics3DWaypointMarkersCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DWaypointMarkersCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DWaypointMarkersCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DWaypointMarkersCollection, [VehicleGraphics3DWaypointMarkersCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5247788117815808220, 16696347233405801093), VehicleGraphics3DWaypointMarkersCollection)
agcls.AgTypeNameMap["VehicleGraphics3DWaypointMarkersCollection"] = VehicleGraphics3DWaypointMarkersCollection

class VehicleGraphics3DRoute(SupportsDeleteCallback):
    """3D route graphics interface for great arc vehicles."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_track_data_from_2d_method_offset = 1
    _set_inherit_track_data_from_2d_method_offset = 2
    _get_track_data_method_offset = 3
    _get_waypoint_markers_method_offset = 4
    _metadata = {
        "iid_data" : (5729914776258005997, 14146317223777663883),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DRoute)

    _get_inherit_track_data_from_2d_metadata = { "offset" : _get_inherit_track_data_from_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_track_data_from_2d(self) -> bool:
        """Opt whether to inherit from 2D route graphics."""
        return self._intf.get_property(VehicleGraphics3DRoute._metadata, VehicleGraphics3DRoute._get_inherit_track_data_from_2d_metadata)

    _set_inherit_track_data_from_2d_metadata = { "offset" : _set_inherit_track_data_from_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_track_data_from_2d.setter
    def inherit_track_data_from_2d(self, value:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DRoute._metadata, VehicleGraphics3DRoute._set_inherit_track_data_from_2d_metadata, value)

    _get_track_data_metadata = { "offset" : _get_track_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def track_data(self) -> "VehicleGraphics3DLeadTrailData":
        """Get the leading/trailing route data."""
        return self._intf.get_property(VehicleGraphics3DRoute._metadata, VehicleGraphics3DRoute._get_track_data_metadata)

    _get_waypoint_markers_metadata = { "offset" : _get_waypoint_markers_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def waypoint_markers(self) -> "VehicleGraphics3DWaypointMarkersCollection":
        """Get the waypoint markers data."""
        return self._intf.get_property(VehicleGraphics3DRoute._metadata, VehicleGraphics3DRoute._get_waypoint_markers_metadata)

    _property_names[inherit_track_data_from_2d] = "inherit_track_data_from_2d"
    _property_names[track_data] = "track_data"
    _property_names[waypoint_markers] = "waypoint_markers"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DRoute."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DRoute)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DRoute, [VehicleGraphics3DRoute, ])

agcls.AgClassCatalog.add_catalog_entry((5681385418769526728, 11220457184065370556), VehicleGraphics3DRoute)
agcls.AgTypeNameMap["VehicleGraphics3DRoute"] = VehicleGraphics3DRoute

class Graphics3DModelPointing(SupportsDeleteCallback):
    """List of pointable model elements."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pointable_elements_method_offset = 1
    _add_interval_method_offset = 2
    _remove_interval_method_offset = 3
    _load_intervals_method_offset = 4
    _metadata = {
        "iid_data" : (5020743161957353344, 13779666931880473238),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DModelPointing)

    _get_pointable_elements_metadata = { "offset" : _get_pointable_elements_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pointable_elements(self) -> "Graphics3DPointableElementsCollection":
        """Get the list of pointable model elements."""
        return self._intf.get_property(Graphics3DModelPointing._metadata, Graphics3DModelPointing._get_pointable_elements_metadata)

    _add_interval_metadata = { "offset" : _add_interval_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR, agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def add_interval(self, attach_point_name:str, target_name:str, start:typing.Any, stop:typing.Any) -> None:
        """Add a new element to the collection using specified pointable model part, target name and the time period during which the pointable part targets the specified object."""
        return self._intf.invoke(Graphics3DModelPointing._metadata, Graphics3DModelPointing._add_interval_metadata, attach_point_name, target_name, start, stop)

    _remove_interval_metadata = { "offset" : _remove_interval_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def remove_interval(self, attach_point_name:str, target_name:str) -> None:
        """Remove a pointable element from the collection of pointable elements using specified pointable model part and target name."""
        return self._intf.invoke(Graphics3DModelPointing._metadata, Graphics3DModelPointing._remove_interval_metadata, attach_point_name, target_name)

    _load_intervals_metadata = { "offset" : _load_intervals_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def load_intervals(self, file_name:str, attach_point:str) -> None:
        """Add the intervals from the given file."""
        return self._intf.invoke(Graphics3DModelPointing._metadata, Graphics3DModelPointing._load_intervals_metadata, file_name, attach_point)

    _property_names[pointable_elements] = "pointable_elements"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DModelPointing."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DModelPointing)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DModelPointing, [Graphics3DModelPointing, ])

agcls.AgClassCatalog.add_catalog_entry((5105729544136209431, 7992852183192116357), Graphics3DModelPointing)
agcls.AgTypeNameMap["Graphics3DModelPointing"] = Graphics3DModelPointing

class Graphics3DLabelSwapDistance(SupportsDeleteCallback):
    """Interface to control the level of detail in labels and other screen objects at specified distances."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_distance_value_method_offset = 1
    _set_distance_value_method_offset = 2
    _set_distance_level_method_offset = 3
    _get_distance_level_method_offset = 4
    _metadata = {
        "iid_data" : (5447216881226330452, 17617997705338789511),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DLabelSwapDistance)

    _get_distance_value_metadata = { "offset" : _get_distance_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def distance_value(self) -> float:
        """Distance at which one level of detail is swapped for another. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DLabelSwapDistance._metadata, Graphics3DLabelSwapDistance._get_distance_value_metadata)

    _set_distance_value_metadata = { "offset" : _set_distance_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @distance_value.setter
    def distance_value(self, value:float) -> None:
        return self._intf.set_property(Graphics3DLabelSwapDistance._metadata, Graphics3DLabelSwapDistance._set_distance_value_metadata, value)

    _set_distance_level_metadata = { "offset" : _set_distance_level_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DLabelSwapDistanceType),) }
    def set_distance_level(self, value:"Graphics3DLabelSwapDistanceType") -> None:
        """Select the screen object(s) for which swapping occurs at the specified distance."""
        return self._intf.invoke(Graphics3DLabelSwapDistance._metadata, Graphics3DLabelSwapDistance._set_distance_level_metadata, value)

    _get_distance_level_metadata = { "offset" : _get_distance_level_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DLabelSwapDistanceType),) }
    @property
    def distance_level(self) -> "Graphics3DLabelSwapDistanceType":
        """Get Distance Level."""
        return self._intf.get_property(Graphics3DLabelSwapDistance._metadata, Graphics3DLabelSwapDistance._get_distance_level_metadata)

    _property_names[distance_value] = "distance_value"
    _property_names[distance_level] = "distance_level"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DLabelSwapDistance."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DLabelSwapDistance)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DLabelSwapDistance, [Graphics3DLabelSwapDistance, ])

agcls.AgClassCatalog.add_catalog_entry((5611819214522508533, 12539990865898950297), Graphics3DLabelSwapDistance)
agcls.AgTypeNameMap["Graphics3DLabelSwapDistance"] = Graphics3DLabelSwapDistance

class VehicleGraphics3DDropLinePositionItem(SupportsDeleteCallback):
    """Interface for drop lines from the vehicle's current position."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _get_show_graphics_method_offset = 2
    _set_show_graphics_method_offset = 3
    _get_use_2d_color_method_offset = 4
    _set_use_2d_color_method_offset = 5
    _get_color_method_offset = 6
    _set_color_method_offset = 7
    _get_line_width_method_offset = 8
    _set_line_width_method_offset = 9
    _get_line_style_method_offset = 10
    _set_line_style_method_offset = 11
    _metadata = {
        "iid_data" : (4963423743228436639, 7345767211191233727),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DDropLinePositionItem)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DDropLineType),) }
    @property
    def type(self) -> "VehicleGraphics3DDropLineType":
        """Get the option for where to end the drop line."""
        return self._intf.get_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._get_type_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display the drop line."""
        return self._intf.get_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._set_show_graphics_metadata, is_visible)

    _get_use_2d_color_metadata = { "offset" : _get_use_2d_color_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_2d_color(self) -> bool:
        """Opt whether to use the color in the vehicle's 2D attributes for the drop line."""
        return self._intf.get_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._get_use_2d_color_metadata)

    _set_use_2d_color_metadata = { "offset" : _set_use_2d_color_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_2d_color.setter
    def use_2d_color(self, use_2d_color:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._set_use_2d_color_metadata, use_2d_color)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the color of the drop line (if the 2D graphics color is not used)."""
        return self._intf.get_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._set_color_metadata, color)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Get or set the line width of the drop line."""
        return self._intf.get_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._set_line_width_metadata, line_width)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Get or set the line style of the drop line."""
        return self._intf.get_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, line_style:"LineStyle") -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePositionItem._metadata, VehicleGraphics3DDropLinePositionItem._set_line_style_metadata, line_style)

    _property_names[type] = "type"
    _property_names[show_graphics] = "show_graphics"
    _property_names[use_2d_color] = "use_2d_color"
    _property_names[color] = "color"
    _property_names[line_width] = "line_width"
    _property_names[line_style] = "line_style"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DDropLinePositionItem."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DDropLinePositionItem)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DDropLinePositionItem, [VehicleGraphics3DDropLinePositionItem, ])

agcls.AgClassCatalog.add_catalog_entry((5210562724639018081, 4328177964148527289), VehicleGraphics3DDropLinePositionItem)
agcls.AgTypeNameMap["VehicleGraphics3DDropLinePositionItem"] = VehicleGraphics3DDropLinePositionItem

class VehicleGraphics3DDropLinePositionItemCollection(SupportsDeleteCallback):
    """Lines dropped from the vehicle's position."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (4792664544036615087, 12547101783696841136),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DDropLinePositionItemCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics3DDropLinePositionItemCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics3DDropLinePositionItem":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics3DDropLinePositionItemCollection._metadata, VehicleGraphics3DDropLinePositionItemCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics3DDropLinePositionItem":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics3DDropLinePositionItemCollection._metadata, VehicleGraphics3DDropLinePositionItemCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics3DDropLinePositionItemCollection._metadata, VehicleGraphics3DDropLinePositionItemCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DDropLinePositionItemCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DDropLinePositionItemCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DDropLinePositionItemCollection, [VehicleGraphics3DDropLinePositionItemCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4901917640865763551, 12764291365717084045), VehicleGraphics3DDropLinePositionItemCollection)
agcls.AgTypeNameMap["VehicleGraphics3DDropLinePositionItemCollection"] = VehicleGraphics3DDropLinePositionItemCollection

class VehicleGraphics3DDropLinePathItem(SupportsDeleteCallback):
    """Interface for drop lines at intervals along the vehicle's path."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _get_show_graphics_method_offset = 2
    _set_show_graphics_method_offset = 3
    _get_use_2d_color_method_offset = 4
    _set_use_2d_color_method_offset = 5
    _get_color_method_offset = 6
    _set_color_method_offset = 7
    _get_line_width_method_offset = 8
    _set_line_width_method_offset = 9
    _get_interval_method_offset = 10
    _set_interval_method_offset = 11
    _get_line_style_method_offset = 12
    _set_line_style_method_offset = 13
    _metadata = {
        "iid_data" : (4823089579820194906, 3828569213324395958),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DDropLinePathItem)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DDropLineType),) }
    @property
    def type(self) -> "VehicleGraphics3DDropLineType":
        """Get the option for where to end the drop lines."""
        return self._intf.get_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._get_type_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display the drop lines."""
        return self._intf.get_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._set_show_graphics_metadata, is_visible)

    _get_use_2d_color_metadata = { "offset" : _get_use_2d_color_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_2d_color(self) -> bool:
        """Opt whether to use the color in the vehicle's 2D attributes for the drop lines."""
        return self._intf.get_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._get_use_2d_color_metadata)

    _set_use_2d_color_metadata = { "offset" : _set_use_2d_color_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_2d_color.setter
    def use_2d_color(self, use_2d_color:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._set_use_2d_color_metadata, use_2d_color)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the color of the drop lines (if the 2D graphics color is not used)."""
        return self._intf.get_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._set_color_metadata, color)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Get or set the width of the drop line from orbit."""
        return self._intf.get_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._set_line_width_metadata, line_width)

    _get_interval_metadata = { "offset" : _get_interval_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def interval(self) -> float:
        """Get or set the time interval between drop lines. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._get_interval_metadata)

    _set_interval_metadata = { "offset" : _set_interval_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @interval.setter
    def interval(self, interval:float) -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._set_interval_metadata, interval)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Get or set the line style of the drop line."""
        return self._intf.get_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, line_style:"LineStyle") -> None:
        return self._intf.set_property(VehicleGraphics3DDropLinePathItem._metadata, VehicleGraphics3DDropLinePathItem._set_line_style_metadata, line_style)

    _property_names[type] = "type"
    _property_names[show_graphics] = "show_graphics"
    _property_names[use_2d_color] = "use_2d_color"
    _property_names[color] = "color"
    _property_names[line_width] = "line_width"
    _property_names[interval] = "interval"
    _property_names[line_style] = "line_style"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DDropLinePathItem."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DDropLinePathItem)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DDropLinePathItem, [VehicleGraphics3DDropLinePathItem, ])

agcls.AgClassCatalog.add_catalog_entry((4785801188892122572, 7044477215515770512), VehicleGraphics3DDropLinePathItem)
agcls.AgTypeNameMap["VehicleGraphics3DDropLinePathItem"] = VehicleGraphics3DDropLinePathItem

class VehicleGraphics3DDropLinePathItemCollection(SupportsDeleteCallback):
    """
    Interface for drop lines from the vehicle's orbit or trajectory.

    Examples
    --------
    Display drop lines in 3D Window:
    >>> # Satellite satellite: Satellite object
    >>> orbitDroplines = satellite.graphics_3d.drop_lines.orbit
    >>> wgs84 = orbitDroplines.item(0)  # Droplines to WGS84 surface
    >>> wgs84.show_graphics = True
    >>> wgs84.line_width = LineWidth.WIDTH2
    >>> wgs84.use_2d_color = False
    >>> wgs84.color = Colors.Red
    """

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5501489823763339817, 725669072391236013),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DDropLinePathItemCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics3DDropLinePathItemCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics3DDropLinePathItem":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics3DDropLinePathItemCollection._metadata, VehicleGraphics3DDropLinePathItemCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics3DDropLinePathItem":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics3DDropLinePathItemCollection._metadata, VehicleGraphics3DDropLinePathItemCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics3DDropLinePathItemCollection._metadata, VehicleGraphics3DDropLinePathItemCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DDropLinePathItemCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DDropLinePathItemCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DDropLinePathItemCollection, [VehicleGraphics3DDropLinePathItemCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5636002953817781873, 6973486544575817379), VehicleGraphics3DDropLinePathItemCollection)
agcls.AgTypeNameMap["VehicleGraphics3DDropLinePathItemCollection"] = VehicleGraphics3DDropLinePathItemCollection

class VehicleGraphics3DOrbitDropLines(SupportsDeleteCallback):
    """Interface for droplines collections."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_position_method_offset = 1
    _get_orbit_method_offset = 2
    _metadata = {
        "iid_data" : (5639483352680204666, 9846496543052709534),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DOrbitDropLines)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "VehicleGraphics3DDropLinePositionItemCollection":
        """Get list of droplines from the vehicle's current positions."""
        return self._intf.get_property(VehicleGraphics3DOrbitDropLines._metadata, VehicleGraphics3DOrbitDropLines._get_position_metadata)

    _get_orbit_metadata = { "offset" : _get_orbit_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orbit(self) -> "VehicleGraphics3DDropLinePathItemCollection":
        """Get list of droplines at intervals along the vehicle's path."""
        return self._intf.get_property(VehicleGraphics3DOrbitDropLines._metadata, VehicleGraphics3DOrbitDropLines._get_orbit_metadata)

    _property_names[position] = "position"
    _property_names[orbit] = "orbit"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DOrbitDropLines."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DOrbitDropLines)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DOrbitDropLines, [VehicleGraphics3DOrbitDropLines, ])

agcls.AgClassCatalog.add_catalog_entry((5384824686293327646, 10264565049112377258), VehicleGraphics3DOrbitDropLines)
agcls.AgTypeNameMap["VehicleGraphics3DOrbitDropLines"] = VehicleGraphics3DOrbitDropLines

class VehicleGraphics3DRouteDropLines(SupportsDeleteCallback):
    """Interface for droplines for great arc vehicles."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_position_method_offset = 1
    _get_route_method_offset = 2
    _metadata = {
        "iid_data" : (5477862861060685148, 8412877751222695820),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DRouteDropLines)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "VehicleGraphics3DDropLinePositionItemCollection":
        """Get the list of droplines from the vehicle's current positions."""
        return self._intf.get_property(VehicleGraphics3DRouteDropLines._metadata, VehicleGraphics3DRouteDropLines._get_position_metadata)

    _get_route_metadata = { "offset" : _get_route_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def route(self) -> "VehicleGraphics3DDropLinePathItemCollection":
        """Get the list of droplines at intervals along the vehicle's route."""
        return self._intf.get_property(VehicleGraphics3DRouteDropLines._metadata, VehicleGraphics3DRouteDropLines._get_route_metadata)

    _property_names[position] = "position"
    _property_names[route] = "route"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DRouteDropLines."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DRouteDropLines)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DRouteDropLines, [VehicleGraphics3DRouteDropLines, ])

agcls.AgClassCatalog.add_catalog_entry((5160448061735177072, 9112471883379963294), VehicleGraphics3DRouteDropLines)
agcls.AgTypeNameMap["VehicleGraphics3DRouteDropLines"] = VehicleGraphics3DRouteDropLines

class VehicleGraphics3DTrajectoryDropLines(SupportsDeleteCallback):
    """Interface for droplines for launch vehicles and missiles."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_position_method_offset = 1
    _get_trajectory_method_offset = 2
    _metadata = {
        "iid_data" : (4989135945254401269, 5660766492749756348),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DTrajectoryDropLines)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "VehicleGraphics3DDropLinePositionItemCollection":
        """Get the list of droplines from the vehicle's current positions."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryDropLines._metadata, VehicleGraphics3DTrajectoryDropLines._get_position_metadata)

    _get_trajectory_metadata = { "offset" : _get_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory(self) -> "VehicleGraphics3DDropLinePathItemCollection":
        """Get the list of droplines at intervals along the vehicle's trajectory."""
        return self._intf.get_property(VehicleGraphics3DTrajectoryDropLines._metadata, VehicleGraphics3DTrajectoryDropLines._get_trajectory_metadata)

    _property_names[position] = "position"
    _property_names[trajectory] = "trajectory"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DTrajectoryDropLines."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DTrajectoryDropLines)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DTrajectoryDropLines, [VehicleGraphics3DTrajectoryDropLines, ])

agcls.AgClassCatalog.add_catalog_entry((5520462168892339537, 5505368006069324222), VehicleGraphics3DTrajectoryDropLines)
agcls.AgTypeNameMap["VehicleGraphics3DTrajectoryDropLines"] = VehicleGraphics3DTrajectoryDropLines

class VehicleGraphics3DModelTrajectory(IGraphics3DModel, SupportsDeleteCallback):
    """Marker interface for launch vehicle or missile."""

    _num_methods = 9
    _vtable_offset = IGraphics3DModel._vtable_offset + IGraphics3DModel._num_methods
    _get_trajectory_marker_method_offset = 1
    _get_ground_marker_method_offset = 2
    _get_show_point_method_offset = 3
    _set_show_point_method_offset = 4
    _get_point_size_method_offset = 5
    _set_point_size_method_offset = 6
    _get_gltf_reflection_map_type_method_offset = 7
    _set_gltf_reflection_map_type_method_offset = 8
    _get_gltf_image_based_method_offset = 9
    _metadata = {
        "iid_data" : (4825127350460686204, 6092527524130510986),
        "vtable_reference" : IGraphics3DModel._vtable_offset + IGraphics3DModel._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DModelTrajectory)

    _get_trajectory_marker_metadata = { "offset" : _get_trajectory_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory_marker(self) -> "Graphics3DMarker":
        """Represents the vehicle while traveling along its actual trajectory."""
        return self._intf.get_property(VehicleGraphics3DModelTrajectory._metadata, VehicleGraphics3DModelTrajectory._get_trajectory_marker_metadata)

    _get_ground_marker_metadata = { "offset" : _get_ground_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_marker(self) -> "Graphics3DMarker":
        """Represents the vehicle's position along its ground track."""
        return self._intf.get_property(VehicleGraphics3DModelTrajectory._metadata, VehicleGraphics3DModelTrajectory._get_ground_marker_metadata)

    _get_show_point_metadata = { "offset" : _get_show_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_point(self) -> bool:
        """Whether the point that is shown at certain viewing distances to represent an object, is visible."""
        return self._intf.get_property(VehicleGraphics3DModelTrajectory._metadata, VehicleGraphics3DModelTrajectory._get_show_point_metadata)

    _set_show_point_metadata = { "offset" : _set_show_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_point.setter
    def show_point(self, show_point:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DModelTrajectory._metadata, VehicleGraphics3DModelTrajectory._set_show_point_metadata, show_point)

    _get_point_size_metadata = { "offset" : _get_point_size_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def point_size(self) -> typing.Any:
        """A size of the point (in pixels). Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DModelTrajectory._metadata, VehicleGraphics3DModelTrajectory._get_point_size_metadata)

    _set_point_size_metadata = { "offset" : _set_point_size_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @point_size.setter
    def point_size(self, point_size:typing.Any) -> None:
        return self._intf.set_property(VehicleGraphics3DModelTrajectory._metadata, VehicleGraphics3DModelTrajectory._set_point_size_metadata, point_size)

    _get_gltf_reflection_map_type_metadata = { "offset" : _get_gltf_reflection_map_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ModelGltfReflectionMapType),) }
    @property
    def gltf_reflection_map_type(self) -> "ModelGltfReflectionMapType":
        """Get or set the glTF reflection map type property. A member of the ModelGltfReflectionMapType enumeration."""
        return self._intf.get_property(VehicleGraphics3DModelTrajectory._metadata, VehicleGraphics3DModelTrajectory._get_gltf_reflection_map_type_metadata)

    _set_gltf_reflection_map_type_metadata = { "offset" : _set_gltf_reflection_map_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ModelGltfReflectionMapType),) }
    @gltf_reflection_map_type.setter
    def gltf_reflection_map_type(self, type:"ModelGltfReflectionMapType") -> None:
        return self._intf.set_property(VehicleGraphics3DModelTrajectory._metadata, VehicleGraphics3DModelTrajectory._set_gltf_reflection_map_type_metadata, type)

    _get_gltf_image_based_metadata = { "offset" : _get_gltf_image_based_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def gltf_image_based(self) -> "Graphics3DModelglTFImageBased":
        """Get the glTF Image Based properties."""
        return self._intf.get_property(VehicleGraphics3DModelTrajectory._metadata, VehicleGraphics3DModelTrajectory._get_gltf_image_based_metadata)

    _property_names[trajectory_marker] = "trajectory_marker"
    _property_names[ground_marker] = "ground_marker"
    _property_names[show_point] = "show_point"
    _property_names[point_size] = "point_size"
    _property_names[gltf_reflection_map_type] = "gltf_reflection_map_type"
    _property_names[gltf_image_based] = "gltf_image_based"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DModelTrajectory."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DModelTrajectory)
        IGraphics3DModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DModelTrajectory, [VehicleGraphics3DModelTrajectory, IGraphics3DModel])

agcls.AgClassCatalog.add_catalog_entry((4695628110764884827, 4968949867272135063), VehicleGraphics3DModelTrajectory)
agcls.AgTypeNameMap["VehicleGraphics3DModelTrajectory"] = VehicleGraphics3DModelTrajectory

class VehicleGraphics3DModelRoute(IGraphics3DModel, SupportsDeleteCallback):
    """3D marker interface for great arc vehicles."""

    _num_methods = 8
    _vtable_offset = IGraphics3DModel._vtable_offset + IGraphics3DModel._num_methods
    _get_route_marker_method_offset = 1
    _get_show_point_method_offset = 2
    _set_show_point_method_offset = 3
    _get_point_size_method_offset = 4
    _set_point_size_method_offset = 5
    _get_gltf_reflection_map_type_method_offset = 6
    _set_gltf_reflection_map_type_method_offset = 7
    _get_gltf_image_based_method_offset = 8
    _metadata = {
        "iid_data" : (4616535805449086226, 4696350690992269220),
        "vtable_reference" : IGraphics3DModel._vtable_offset + IGraphics3DModel._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DModelRoute)

    _get_route_marker_metadata = { "offset" : _get_route_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def route_marker(self) -> "Graphics3DMarker":
        """Represents the vehicle while traveling along its route."""
        return self._intf.get_property(VehicleGraphics3DModelRoute._metadata, VehicleGraphics3DModelRoute._get_route_marker_metadata)

    _get_show_point_metadata = { "offset" : _get_show_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_point(self) -> bool:
        """Whether the point that is shown at certain viewing distances to represent an object, is visible."""
        return self._intf.get_property(VehicleGraphics3DModelRoute._metadata, VehicleGraphics3DModelRoute._get_show_point_metadata)

    _set_show_point_metadata = { "offset" : _set_show_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_point.setter
    def show_point(self, show_point:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DModelRoute._metadata, VehicleGraphics3DModelRoute._set_show_point_metadata, show_point)

    _get_point_size_metadata = { "offset" : _get_point_size_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def point_size(self) -> typing.Any:
        """A size of the point (in pixels). Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DModelRoute._metadata, VehicleGraphics3DModelRoute._get_point_size_metadata)

    _set_point_size_metadata = { "offset" : _set_point_size_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @point_size.setter
    def point_size(self, point_size:typing.Any) -> None:
        return self._intf.set_property(VehicleGraphics3DModelRoute._metadata, VehicleGraphics3DModelRoute._set_point_size_metadata, point_size)

    _get_gltf_reflection_map_type_metadata = { "offset" : _get_gltf_reflection_map_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ModelGltfReflectionMapType),) }
    @property
    def gltf_reflection_map_type(self) -> "ModelGltfReflectionMapType":
        """Get or set the glTF reflection map type property. A member of the ModelGltfReflectionMapType enumeration."""
        return self._intf.get_property(VehicleGraphics3DModelRoute._metadata, VehicleGraphics3DModelRoute._get_gltf_reflection_map_type_metadata)

    _set_gltf_reflection_map_type_metadata = { "offset" : _set_gltf_reflection_map_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ModelGltfReflectionMapType),) }
    @gltf_reflection_map_type.setter
    def gltf_reflection_map_type(self, type:"ModelGltfReflectionMapType") -> None:
        return self._intf.set_property(VehicleGraphics3DModelRoute._metadata, VehicleGraphics3DModelRoute._set_gltf_reflection_map_type_metadata, type)

    _get_gltf_image_based_metadata = { "offset" : _get_gltf_image_based_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def gltf_image_based(self) -> "Graphics3DModelglTFImageBased":
        """Get the glTF Image Based properties."""
        return self._intf.get_property(VehicleGraphics3DModelRoute._metadata, VehicleGraphics3DModelRoute._get_gltf_image_based_metadata)

    _property_names[route_marker] = "route_marker"
    _property_names[show_point] = "show_point"
    _property_names[point_size] = "point_size"
    _property_names[gltf_reflection_map_type] = "gltf_reflection_map_type"
    _property_names[gltf_image_based] = "gltf_image_based"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DModelRoute."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DModelRoute)
        IGraphics3DModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGraphics3DModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DModelRoute, [VehicleGraphics3DModelRoute, IGraphics3DModel])

agcls.AgClassCatalog.add_catalog_entry((5524667937779804021, 1747161955805830017), VehicleGraphics3DModelRoute)
agcls.AgTypeNameMap["VehicleGraphics3DModelRoute"] = VehicleGraphics3DModelRoute

class VehicleGraphics3DBPlaneTemplateDisplayElement(SupportsDeleteCallback):
    """Element of VehicleGraphics3DBPlaneTemplateDisplayCollection."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_name_method_offset = 3
    _get_color_method_offset = 4
    _set_color_method_offset = 5
    _get_scale_factor_method_offset = 6
    _set_scale_factor_method_offset = 7
    _get_show_label_method_offset = 8
    _set_show_label_method_offset = 9
    _metadata = {
        "iid_data" : (4760673025321381520, 11261544608693213600),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlaneTemplateDisplayElement)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Control whether the element is visible."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplateDisplayElement._metadata, VehicleGraphics3DBPlaneTemplateDisplayElement._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplateDisplayElement._metadata, VehicleGraphics3DBPlaneTemplateDisplayElement._set_show_graphics_metadata, is_visible)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Return the element name."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplateDisplayElement._metadata, VehicleGraphics3DBPlaneTemplateDisplayElement._get_name_metadata)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Specify the element color."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplateDisplayElement._metadata, VehicleGraphics3DBPlaneTemplateDisplayElement._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplateDisplayElement._metadata, VehicleGraphics3DBPlaneTemplateDisplayElement._set_color_metadata, color)

    _get_scale_factor_metadata = { "offset" : _get_scale_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scale_factor(self) -> float:
        """Specify the element scale factor. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplateDisplayElement._metadata, VehicleGraphics3DBPlaneTemplateDisplayElement._get_scale_factor_metadata)

    _set_scale_factor_metadata = { "offset" : _set_scale_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scale_factor.setter
    def scale_factor(self, scale_factor:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplateDisplayElement._metadata, VehicleGraphics3DBPlaneTemplateDisplayElement._set_scale_factor_metadata, scale_factor)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Specify whether the element label is visible."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplateDisplayElement._metadata, VehicleGraphics3DBPlaneTemplateDisplayElement._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, show_label:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplateDisplayElement._metadata, VehicleGraphics3DBPlaneTemplateDisplayElement._set_show_label_metadata, show_label)

    _property_names[show_graphics] = "show_graphics"
    _property_names[name] = "name"
    _property_names[color] = "color"
    _property_names[scale_factor] = "scale_factor"
    _property_names[show_label] = "show_label"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlaneTemplateDisplayElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlaneTemplateDisplayElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlaneTemplateDisplayElement, [VehicleGraphics3DBPlaneTemplateDisplayElement, ])

agcls.AgClassCatalog.add_catalog_entry((5097319822228167561, 14040116769937862814), VehicleGraphics3DBPlaneTemplateDisplayElement)
agcls.AgTypeNameMap["VehicleGraphics3DBPlaneTemplateDisplayElement"] = VehicleGraphics3DBPlaneTemplateDisplayElement

class VehicleGraphics3DBPlaneTemplateDisplayCollection(SupportsDeleteCallback):
    """3D DisplayElements collection for BPlane."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (4803241437796989679, 10833169613046961854),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlaneTemplateDisplayCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics3DBPlaneTemplateDisplayCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics3DBPlaneTemplateDisplayElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplateDisplayCollection._metadata, VehicleGraphics3DBPlaneTemplateDisplayCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics3DBPlaneTemplateDisplayElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics3DBPlaneTemplateDisplayCollection._metadata, VehicleGraphics3DBPlaneTemplateDisplayCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplateDisplayCollection._metadata, VehicleGraphics3DBPlaneTemplateDisplayCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlaneTemplateDisplayCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlaneTemplateDisplayCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlaneTemplateDisplayCollection, [VehicleGraphics3DBPlaneTemplateDisplayCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5158543505685767399, 15579982504724997005), VehicleGraphics3DBPlaneTemplateDisplayCollection)
agcls.AgTypeNameMap["VehicleGraphics3DBPlaneTemplateDisplayCollection"] = VehicleGraphics3DBPlaneTemplateDisplayCollection

class VehicleGraphics3DBPlaneTemplate(SupportsDeleteCallback):
    """An element of VehicleGraphics3DBPlaneTemplatesCollection."""

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _set_name_method_offset = 2
    _get_description_method_offset = 3
    _set_description_method_offset = 4
    _get_central_body_method_offset = 5
    _set_central_body_method_offset = 6
    _get_available_central_bodies_method_offset = 7
    _get_reference_vector_method_offset = 8
    _set_reference_vector_method_offset = 9
    _get_available_vectors_method_offset = 10
    _get_show_cartesian_grid_method_offset = 11
    _set_show_cartesian_grid_method_offset = 12
    _get_show_polar_grid_method_offset = 13
    _set_show_polar_grid_method_offset = 14
    _get_grid_spacing_method_offset = 15
    _set_grid_spacing_method_offset = 16
    _get_display_elements_method_offset = 17
    _metadata = {
        "iid_data" : (4658328441270036358, 12803270210796100792),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlaneTemplate)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get or set the name of the template."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._get_name_metadata)

    _set_name_metadata = { "offset" : _set_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @name.setter
    def name(self, name:str) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._set_name_metadata, name)

    _get_description_metadata = { "offset" : _get_description_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def description(self) -> str:
        """Get or set the description of the template."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._get_description_metadata)

    _set_description_metadata = { "offset" : _set_description_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @description.setter
    def description(self, description:str) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._set_description_metadata, description)

    _get_central_body_metadata = { "offset" : _get_central_body_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body(self) -> str:
        """Get or set the template's central body."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._get_central_body_metadata)

    _set_central_body_metadata = { "offset" : _set_central_body_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @central_body.setter
    def central_body(self, name:str) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._set_central_body_metadata, name)

    _get_available_central_bodies_metadata = { "offset" : _get_available_central_bodies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_central_bodies(self) -> list:
        """Get a list of available central bodies."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._get_available_central_bodies_metadata)

    _get_reference_vector_metadata = { "offset" : _get_reference_vector_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reference_vector(self) -> str:
        """Get or set the template's reference vector."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._get_reference_vector_metadata)

    _set_reference_vector_metadata = { "offset" : _set_reference_vector_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @reference_vector.setter
    def reference_vector(self, name:str) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._set_reference_vector_metadata, name)

    _get_available_vectors_metadata = { "offset" : _get_available_vectors_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_vectors(self) -> list:
        """Get a list of available vectors."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._get_available_vectors_metadata)

    _get_show_cartesian_grid_metadata = { "offset" : _get_show_cartesian_grid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_cartesian_grid(self) -> bool:
        """Whether the Cartesian grid is displayed with the template."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._get_show_cartesian_grid_metadata)

    _set_show_cartesian_grid_metadata = { "offset" : _set_show_cartesian_grid_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_cartesian_grid.setter
    def show_cartesian_grid(self, show_cartesian_grid:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._set_show_cartesian_grid_metadata, show_cartesian_grid)

    _get_show_polar_grid_metadata = { "offset" : _get_show_polar_grid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_polar_grid(self) -> bool:
        """Whether the Polar grid is displayed with the template."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._get_show_polar_grid_metadata)

    _set_show_polar_grid_metadata = { "offset" : _set_show_polar_grid_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_polar_grid.setter
    def show_polar_grid(self, show_polar_grid:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._set_show_polar_grid_metadata, show_polar_grid)

    _get_grid_spacing_metadata = { "offset" : _get_grid_spacing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def grid_spacing(self) -> float:
        """Get or set the distance between grid lines. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._get_grid_spacing_metadata)

    _set_grid_spacing_metadata = { "offset" : _set_grid_spacing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @grid_spacing.setter
    def grid_spacing(self, grid_spacing:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._set_grid_spacing_metadata, grid_spacing)

    _get_display_elements_metadata = { "offset" : _get_display_elements_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def display_elements(self) -> "VehicleGraphics3DBPlaneTemplateDisplayCollection":
        """Return the 3D BPlane template display collection."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplate._metadata, VehicleGraphics3DBPlaneTemplate._get_display_elements_metadata)

    _property_names[name] = "name"
    _property_names[description] = "description"
    _property_names[central_body] = "central_body"
    _property_names[available_central_bodies] = "available_central_bodies"
    _property_names[reference_vector] = "reference_vector"
    _property_names[available_vectors] = "available_vectors"
    _property_names[show_cartesian_grid] = "show_cartesian_grid"
    _property_names[show_polar_grid] = "show_polar_grid"
    _property_names[grid_spacing] = "grid_spacing"
    _property_names[display_elements] = "display_elements"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlaneTemplate."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlaneTemplate)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlaneTemplate, [VehicleGraphics3DBPlaneTemplate, ])

agcls.AgClassCatalog.add_catalog_entry((5511436239937408166, 14135393920761941652), VehicleGraphics3DBPlaneTemplate)
agcls.AgTypeNameMap["VehicleGraphics3DBPlaneTemplate"] = VehicleGraphics3DBPlaneTemplate

class VehicleGraphics3DBPlaneTemplatesCollection(SupportsDeleteCallback):
    """A list of available b-plane templates."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (4645888755719106242, 5596730812808386733),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlaneTemplatesCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics3DBPlaneTemplatesCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics3DBPlaneTemplate":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplatesCollection._metadata, VehicleGraphics3DBPlaneTemplatesCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics3DBPlaneTemplate":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics3DBPlaneTemplatesCollection._metadata, VehicleGraphics3DBPlaneTemplatesCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTemplatesCollection._metadata, VehicleGraphics3DBPlaneTemplatesCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleGraphics3DBPlaneTemplatesCollection._metadata, VehicleGraphics3DBPlaneTemplatesCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleGraphics3DBPlaneTemplatesCollection._metadata, VehicleGraphics3DBPlaneTemplatesCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "VehicleGraphics3DBPlaneTemplate":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleGraphics3DBPlaneTemplatesCollection._metadata, VehicleGraphics3DBPlaneTemplatesCollection._add_metadata, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlaneTemplatesCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlaneTemplatesCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlaneTemplatesCollection, [VehicleGraphics3DBPlaneTemplatesCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5212439711142401494, 16826115147804013231), VehicleGraphics3DBPlaneTemplatesCollection)
agcls.AgTypeNameMap["VehicleGraphics3DBPlaneTemplatesCollection"] = VehicleGraphics3DBPlaneTemplatesCollection

class VehicleGraphics3DBPlaneEvent(SupportsDeleteCallback):
    """3D BPlane Event."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_event_epoch_method_offset = 1
    _set_event_epoch_method_offset = 2
    _get_before_event_method_offset = 3
    _set_before_event_method_offset = 4
    _get_after_event_method_offset = 5
    _set_after_event_method_offset = 6
    _get_always_display_method_offset = 7
    _set_always_display_method_offset = 8
    _metadata = {
        "iid_data" : (5510231438814751000, 16556565198709055896),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlaneEvent)

    _get_event_epoch_metadata = { "offset" : _get_event_epoch_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def event_epoch(self) -> typing.Any:
        """Get or set the event epoch. Uses DateFormat Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlaneEvent._metadata, VehicleGraphics3DBPlaneEvent._get_event_epoch_metadata)

    _set_event_epoch_metadata = { "offset" : _set_event_epoch_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @event_epoch.setter
    def event_epoch(self, event_epoch:typing.Any) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneEvent._metadata, VehicleGraphics3DBPlaneEvent._set_event_epoch_metadata, event_epoch)

    _get_before_event_metadata = { "offset" : _get_before_event_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def before_event(self) -> float:
        """Get or set the duration before the event that the B-Plane will be displayed. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlaneEvent._metadata, VehicleGraphics3DBPlaneEvent._get_before_event_metadata)

    _set_before_event_metadata = { "offset" : _set_before_event_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @before_event.setter
    def before_event(self, before_event:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneEvent._metadata, VehicleGraphics3DBPlaneEvent._set_before_event_metadata, before_event)

    _get_after_event_metadata = { "offset" : _get_after_event_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def after_event(self) -> float:
        """Get or set the duration after the event that the B-Plane will be displayed. Uses Time Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlaneEvent._metadata, VehicleGraphics3DBPlaneEvent._get_after_event_metadata)

    _set_after_event_metadata = { "offset" : _set_after_event_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @after_event.setter
    def after_event(self, after_event:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneEvent._metadata, VehicleGraphics3DBPlaneEvent._set_after_event_metadata, after_event)

    _get_always_display_metadata = { "offset" : _get_always_display_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def always_display(self) -> bool:
        """Whether the B-Plane will be displayed throughout the scenario's animation."""
        return self._intf.get_property(VehicleGraphics3DBPlaneEvent._metadata, VehicleGraphics3DBPlaneEvent._get_always_display_metadata)

    _set_always_display_metadata = { "offset" : _set_always_display_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @always_display.setter
    def always_display(self, always_display:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneEvent._metadata, VehicleGraphics3DBPlaneEvent._set_always_display_metadata, always_display)

    _property_names[event_epoch] = "event_epoch"
    _property_names[before_event] = "before_event"
    _property_names[after_event] = "after_event"
    _property_names[always_display] = "always_display"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlaneEvent."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlaneEvent)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlaneEvent, [VehicleGraphics3DBPlaneEvent, ])

agcls.AgClassCatalog.add_catalog_entry((5254889186724800165, 541083667911250367), VehicleGraphics3DBPlaneEvent)
agcls.AgTypeNameMap["VehicleGraphics3DBPlaneEvent"] = VehicleGraphics3DBPlaneEvent

class VehicleGraphics3DBPlanePoint(SupportsDeleteCallback):
    """3D BPlane Additional Point."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _set_name_method_offset = 2
    _get_b_dot_t_method_offset = 3
    _set_b_dot_t_method_offset = 4
    _get_b_dot_r_method_offset = 5
    _set_b_dot_r_method_offset = 6
    _get_b_magnitude_method_offset = 7
    _set_b_magnitude_method_offset = 8
    _get_theta_method_offset = 9
    _set_theta_method_offset = 10
    _metadata = {
        "iid_data" : (4962699042174589936, 18368768863246367634),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlanePoint)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get or set the name of B-Plane point."""
        return self._intf.get_property(VehicleGraphics3DBPlanePoint._metadata, VehicleGraphics3DBPlanePoint._get_name_metadata)

    _set_name_metadata = { "offset" : _set_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @name.setter
    def name(self, name:str) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlanePoint._metadata, VehicleGraphics3DBPlanePoint._set_name_metadata, name)

    _get_b_dot_t_metadata = { "offset" : _get_b_dot_t_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def b_dot_t(self) -> float:
        """Get or set the value of BdotT (Cartesian). Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlanePoint._metadata, VehicleGraphics3DBPlanePoint._get_b_dot_t_metadata)

    _set_b_dot_t_metadata = { "offset" : _set_b_dot_t_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @b_dot_t.setter
    def b_dot_t(self, mult_t:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlanePoint._metadata, VehicleGraphics3DBPlanePoint._set_b_dot_t_metadata, mult_t)

    _get_b_dot_r_metadata = { "offset" : _get_b_dot_r_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def b_dot_r(self) -> float:
        """Get or set the value of BdotR (Cartesian). Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlanePoint._metadata, VehicleGraphics3DBPlanePoint._get_b_dot_r_metadata)

    _set_b_dot_r_metadata = { "offset" : _set_b_dot_r_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @b_dot_r.setter
    def b_dot_r(self, mul_r:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlanePoint._metadata, VehicleGraphics3DBPlanePoint._set_b_dot_r_metadata, mul_r)

    _get_b_magnitude_metadata = { "offset" : _get_b_magnitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def b_magnitude(self) -> float:
        """Get or set the value of BMag (polar). Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlanePoint._metadata, VehicleGraphics3DBPlanePoint._get_b_magnitude_metadata)

    _set_b_magnitude_metadata = { "offset" : _set_b_magnitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @b_magnitude.setter
    def b_magnitude(self, mag:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlanePoint._metadata, VehicleGraphics3DBPlanePoint._set_b_magnitude_metadata, mag)

    _get_theta_metadata = { "offset" : _get_theta_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def theta(self) -> float:
        """Get or set the value of Theta (polar). Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlanePoint._metadata, VehicleGraphics3DBPlanePoint._get_theta_metadata)

    _set_theta_metadata = { "offset" : _set_theta_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @theta.setter
    def theta(self, theta:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlanePoint._metadata, VehicleGraphics3DBPlanePoint._set_theta_metadata, theta)

    _property_names[name] = "name"
    _property_names[b_dot_t] = "b_dot_t"
    _property_names[b_dot_r] = "b_dot_r"
    _property_names[b_magnitude] = "b_magnitude"
    _property_names[theta] = "theta"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlanePoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlanePoint)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlanePoint, [VehicleGraphics3DBPlanePoint, ])

agcls.AgClassCatalog.add_catalog_entry((4840938926463144169, 16943671995048013458), VehicleGraphics3DBPlanePoint)
agcls.AgTypeNameMap["VehicleGraphics3DBPlanePoint"] = VehicleGraphics3DBPlanePoint

class VehicleGraphics3DBPlaneTargetPointPositionCartesian(SupportsDeleteCallback):
    """Cartesian."""

    _num_methods = 4
    _vtable_offset = IVehicleGraphics3DBPlaneTargetPointPosition._vtable_offset + IVehicleGraphics3DBPlaneTargetPointPosition._num_methods
    _get_b_dot_t_method_offset = 1
    _set_b_dot_t_method_offset = 2
    _get_b_dot_r_method_offset = 3
    _set_b_dot_r_method_offset = 4
    _metadata = {
        "iid_data" : (4634029959374246638, 7828859104162506127),
        "vtable_reference" : IVehicleGraphics3DBPlaneTargetPointPosition._vtable_offset + IVehicleGraphics3DBPlaneTargetPointPosition._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlaneTargetPointPositionCartesian)

    _get_b_dot_t_metadata = { "offset" : _get_b_dot_t_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def b_dot_t(self) -> float:
        """Get or set the value of a dot product of vector B and unit vector T. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTargetPointPositionCartesian._metadata, VehicleGraphics3DBPlaneTargetPointPositionCartesian._get_b_dot_t_metadata)

    _set_b_dot_t_metadata = { "offset" : _set_b_dot_t_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @b_dot_t.setter
    def b_dot_t(self, mul_t:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTargetPointPositionCartesian._metadata, VehicleGraphics3DBPlaneTargetPointPositionCartesian._set_b_dot_t_metadata, mul_t)

    _get_b_dot_r_metadata = { "offset" : _get_b_dot_r_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def b_dot_r(self) -> float:
        """Get or set the value of a dot product of vector B and unit vector R. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTargetPointPositionCartesian._metadata, VehicleGraphics3DBPlaneTargetPointPositionCartesian._get_b_dot_r_metadata)

    _set_b_dot_r_metadata = { "offset" : _set_b_dot_r_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @b_dot_r.setter
    def b_dot_r(self, mul_r:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTargetPointPositionCartesian._metadata, VehicleGraphics3DBPlaneTargetPointPositionCartesian._set_b_dot_r_metadata, mul_r)

    _property_names[b_dot_t] = "b_dot_t"
    _property_names[b_dot_r] = "b_dot_r"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlaneTargetPointPositionCartesian."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlaneTargetPointPositionCartesian)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlaneTargetPointPositionCartesian, [VehicleGraphics3DBPlaneTargetPointPositionCartesian, ])

agcls.AgClassCatalog.add_catalog_entry((4861344367244019990, 12668526662552405183), VehicleGraphics3DBPlaneTargetPointPositionCartesian)
agcls.AgTypeNameMap["VehicleGraphics3DBPlaneTargetPointPositionCartesian"] = VehicleGraphics3DBPlaneTargetPointPositionCartesian

class VehicleGraphics3DBPlaneTargetPointPositionPolar(SupportsDeleteCallback):
    """3D BPlane target point position polar."""

    _num_methods = 4
    _vtable_offset = IVehicleGraphics3DBPlaneTargetPointPosition._vtable_offset + IVehicleGraphics3DBPlaneTargetPointPosition._num_methods
    _get_b_magnitude_method_offset = 1
    _set_b_magnitude_method_offset = 2
    _get_theta_method_offset = 3
    _set_theta_method_offset = 4
    _metadata = {
        "iid_data" : (4941799260937548792, 2998124366265031594),
        "vtable_reference" : IVehicleGraphics3DBPlaneTargetPointPosition._vtable_offset + IVehicleGraphics3DBPlaneTargetPointPosition._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlaneTargetPointPositionPolar)

    _get_b_magnitude_metadata = { "offset" : _get_b_magnitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def b_magnitude(self) -> float:
        """Get or set the magnitude of B vector. For more information see ``B-Plane Targeting``. Uses Distance Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTargetPointPositionPolar._metadata, VehicleGraphics3DBPlaneTargetPointPositionPolar._get_b_magnitude_metadata)

    _set_b_magnitude_metadata = { "offset" : _set_b_magnitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @b_magnitude.setter
    def b_magnitude(self, mag:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTargetPointPositionPolar._metadata, VehicleGraphics3DBPlaneTargetPointPositionPolar._set_b_magnitude_metadata, mag)

    _get_theta_metadata = { "offset" : _get_theta_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def theta(self) -> float:
        """Get or set the angle of B vector measured in the B-plane from T vector toward R vector. Uses Angle Dimension."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTargetPointPositionPolar._metadata, VehicleGraphics3DBPlaneTargetPointPositionPolar._get_theta_metadata)

    _set_theta_metadata = { "offset" : _set_theta_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @theta.setter
    def theta(self, theta:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTargetPointPositionPolar._metadata, VehicleGraphics3DBPlaneTargetPointPositionPolar._set_theta_metadata, theta)

    _property_names[b_magnitude] = "b_magnitude"
    _property_names[theta] = "theta"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlaneTargetPointPositionPolar."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlaneTargetPointPositionPolar)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlaneTargetPointPositionPolar, [VehicleGraphics3DBPlaneTargetPointPositionPolar, ])

agcls.AgClassCatalog.add_catalog_entry((5110664475990964312, 12301270539593275577), VehicleGraphics3DBPlaneTargetPointPositionPolar)
agcls.AgTypeNameMap["VehicleGraphics3DBPlaneTargetPointPositionPolar"] = VehicleGraphics3DBPlaneTargetPointPositionPolar

class VehicleGraphics3DBPlaneTargetPoint(SupportsDeleteCallback):
    """3D BPlane TargetPoint."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_position_type_method_offset = 5
    _set_position_type_method_offset = 6
    _is_position_type_supported_method_offset = 7
    _get_position_supported_types_method_offset = 8
    _get_position_method_offset = 9
    _metadata = {
        "iid_data" : (5052022002816763624, 864654142324756110),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlaneTargetPoint)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Whether the Target Point is displayed."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTargetPoint._metadata, VehicleGraphics3DBPlaneTargetPoint._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTargetPoint._metadata, VehicleGraphics3DBPlaneTargetPoint._set_show_graphics_metadata, is_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the color of the Target Point."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTargetPoint._metadata, VehicleGraphics3DBPlaneTargetPoint._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneTargetPoint._metadata, VehicleGraphics3DBPlaneTargetPoint._set_color_metadata, color)

    _get_position_type_metadata = { "offset" : _get_position_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DBPlaneTargetPointPosition),) }
    @property
    def position_type(self) -> "VehicleGraphics3DBPlaneTargetPointPosition":
        """Get the position type of the BPlane target point."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTargetPoint._metadata, VehicleGraphics3DBPlaneTargetPoint._get_position_type_metadata)

    _set_position_type_metadata = { "offset" : _set_position_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DBPlaneTargetPointPosition),) }
    def set_position_type(self, position:"VehicleGraphics3DBPlaneTargetPointPosition") -> None:
        """Set the position type of the BPlane target point."""
        return self._intf.invoke(VehicleGraphics3DBPlaneTargetPoint._metadata, VehicleGraphics3DBPlaneTargetPoint._set_position_type_metadata, position)

    _is_position_type_supported_metadata = { "offset" : _is_position_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics3DBPlaneTargetPointPosition), agmarshall.VariantBoolArg,) }
    def is_position_type_supported(self, position:"VehicleGraphics3DBPlaneTargetPointPosition") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleGraphics3DBPlaneTargetPoint._metadata, VehicleGraphics3DBPlaneTargetPoint._is_position_type_supported_metadata, position, OutArg())

    _get_position_supported_types_metadata = { "offset" : _get_position_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def position_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTargetPoint._metadata, VehicleGraphics3DBPlaneTargetPoint._get_position_supported_types_metadata)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "IVehicleGraphics3DBPlaneTargetPointPosition":
        """Return the BPlane target point position."""
        return self._intf.get_property(VehicleGraphics3DBPlaneTargetPoint._metadata, VehicleGraphics3DBPlaneTargetPoint._get_position_metadata)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[position_type] = "position_type"
    _property_names[position_supported_types] = "position_supported_types"
    _property_names[position] = "position"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlaneTargetPoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlaneTargetPoint)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlaneTargetPoint, [VehicleGraphics3DBPlaneTargetPoint, ])

agcls.AgClassCatalog.add_catalog_entry((5274533817778716876, 10148737500616441513), VehicleGraphics3DBPlaneTargetPoint)
agcls.AgTypeNameMap["VehicleGraphics3DBPlaneTargetPoint"] = VehicleGraphics3DBPlaneTargetPoint

class VehicleGraphics3DBPlaneInstance(SupportsDeleteCallback):
    """Properties of an instance of a B-Plane template."""

    _num_methods = 25
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_name_method_offset = 3
    _set_name_method_offset = 4
    _get_description_method_offset = 5
    _set_description_method_offset = 6
    _get_definition_method_offset = 7
    _get_event_name_method_offset = 8
    _set_event_name_method_offset = 9
    _get_event_method_offset = 10
    _get_target_point_method_offset = 11
    _get_show_label_method_offset = 12
    _set_show_label_method_offset = 13
    _get_point_size_method_offset = 14
    _set_point_size_method_offset = 15
    _get_connect_additional_points_method_offset = 16
    _set_connect_additional_points_method_offset = 17
    _get_connect_points_color_method_offset = 18
    _set_connect_points_color_method_offset = 19
    _get_connect_point_line_width_method_offset = 20
    _set_connect_point_line_width_method_offset = 21
    _get_graphics_3d_window_method_offset = 22
    _set_graphics_3d_window_method_offset = 23
    _get_available_graphics_3d_windows_method_offset = 24
    _get_additional_points_method_offset = 25
    _metadata = {
        "iid_data" : (4930292271450703899, 9784678791552592026),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlaneInstance)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Whether the B-Plane will be displayed in the 3D Graphics window."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._set_show_graphics_metadata, is_visible)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get or set the name assigned to the B-Plane."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_name_metadata)

    _set_name_metadata = { "offset" : _set_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @name.setter
    def name(self, name:str) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._set_name_metadata, name)

    _get_description_metadata = { "offset" : _get_description_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def description(self) -> str:
        """Get or set the description of the B-Plane instance."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_description_metadata)

    _set_description_metadata = { "offset" : _set_description_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @description.setter
    def description(self, description:str) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._set_description_metadata, description)

    _get_definition_metadata = { "offset" : _get_definition_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def definition(self) -> str:
        """Get the template from which the B-Plane is derived."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_definition_metadata)

    _get_event_name_metadata = { "offset" : _get_event_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def event_name(self) -> str:
        """Get or set the event name, which is the point in time at which the B-Plane is defined."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_event_name_metadata)

    _set_event_name_metadata = { "offset" : _set_event_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @event_name.setter
    def event_name(self, event_name:str) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._set_event_name_metadata, event_name)

    _get_event_metadata = { "offset" : _get_event_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def event(self) -> "VehicleGraphics3DBPlaneEvent":
        """Return the 3D BPlane Event properties."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_event_metadata)

    _get_target_point_metadata = { "offset" : _get_target_point_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def target_point(self) -> "VehicleGraphics3DBPlaneTargetPoint":
        """Return the 3D BPlane Target Point properties."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_target_point_metadata)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Whether to display all points with their appropriate labels."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, show_label:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._set_show_label_metadata, show_label)

    _get_point_size_metadata = { "offset" : _get_point_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def point_size(self) -> float:
        """Get or set the size at which to display all points on the B-Plane. Dimensionless."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_point_size_metadata)

    _set_point_size_metadata = { "offset" : _set_point_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @point_size.setter
    def point_size(self, point_size:float) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._set_point_size_metadata, point_size)

    _get_connect_additional_points_metadata = { "offset" : _get_connect_additional_points_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def connect_additional_points(self) -> bool:
        """Whether to connect the additional points."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_connect_additional_points_metadata)

    _set_connect_additional_points_metadata = { "offset" : _set_connect_additional_points_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @connect_additional_points.setter
    def connect_additional_points(self, show_connect_points:bool) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._set_connect_additional_points_metadata, show_connect_points)

    _get_connect_points_color_metadata = { "offset" : _get_connect_points_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def connect_points_color(self) -> agcolor.Color:
        """Get or set the color of the lines connecting the additional points."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_connect_points_color_metadata)

    _set_connect_points_color_metadata = { "offset" : _set_connect_points_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @connect_points_color.setter
    def connect_points_color(self, connect_points_color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._set_connect_points_color_metadata, connect_points_color)

    _get_connect_point_line_width_metadata = { "offset" : _get_connect_point_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def connect_point_line_width(self) -> "LineWidth":
        """Get or set the width of the lines connecting the additional points."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_connect_point_line_width_metadata)

    _set_connect_point_line_width_metadata = { "offset" : _set_connect_point_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @connect_point_line_width.setter
    def connect_point_line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._set_connect_point_line_width_metadata, line_width)

    _get_graphics_3d_window_metadata = { "offset" : _get_graphics_3d_window_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def graphics_3d_window(self) -> str:
        """Get or set the 3D Graphics windows in which the B-Plane will be displayed."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_graphics_3d_window_metadata)

    _set_graphics_3d_window_metadata = { "offset" : _set_graphics_3d_window_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @graphics_3d_window.setter
    def graphics_3d_window(self, window_name:str) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._set_graphics_3d_window_metadata, window_name)

    _get_available_graphics_3d_windows_metadata = { "offset" : _get_available_graphics_3d_windows_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_graphics_3d_windows(self) -> list:
        """Return a list of available 3D Graphics windows."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_available_graphics_3d_windows_metadata)

    _get_additional_points_metadata = { "offset" : _get_additional_points_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def additional_points(self) -> "VehicleGraphics3DBPlanePointCollection":
        """Return a collection of additional points."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstance._metadata, VehicleGraphics3DBPlaneInstance._get_additional_points_metadata)

    _property_names[show_graphics] = "show_graphics"
    _property_names[name] = "name"
    _property_names[description] = "description"
    _property_names[definition] = "definition"
    _property_names[event_name] = "event_name"
    _property_names[event] = "event"
    _property_names[target_point] = "target_point"
    _property_names[show_label] = "show_label"
    _property_names[point_size] = "point_size"
    _property_names[connect_additional_points] = "connect_additional_points"
    _property_names[connect_points_color] = "connect_points_color"
    _property_names[connect_point_line_width] = "connect_point_line_width"
    _property_names[graphics_3d_window] = "graphics_3d_window"
    _property_names[available_graphics_3d_windows] = "available_graphics_3d_windows"
    _property_names[additional_points] = "additional_points"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlaneInstance."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlaneInstance)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlaneInstance, [VehicleGraphics3DBPlaneInstance, ])

agcls.AgClassCatalog.add_catalog_entry((4941072996111562137, 2800685136160704681), VehicleGraphics3DBPlaneInstance)
agcls.AgTypeNameMap["VehicleGraphics3DBPlaneInstance"] = VehicleGraphics3DBPlaneInstance

class VehicleGraphics3DBPlaneInstancesCollection(SupportsDeleteCallback):
    """A list of available b-plane instances."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (4947343525255889163, 15936135369158027399),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlaneInstancesCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics3DBPlaneInstancesCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics3DBPlaneInstance":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstancesCollection._metadata, VehicleGraphics3DBPlaneInstancesCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics3DBPlaneInstance":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics3DBPlaneInstancesCollection._metadata, VehicleGraphics3DBPlaneInstancesCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics3DBPlaneInstancesCollection._metadata, VehicleGraphics3DBPlaneInstancesCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleGraphics3DBPlaneInstancesCollection._metadata, VehicleGraphics3DBPlaneInstancesCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleGraphics3DBPlaneInstancesCollection._metadata, VehicleGraphics3DBPlaneInstancesCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, template_name:str) -> "VehicleGraphics3DBPlaneInstance":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleGraphics3DBPlaneInstancesCollection._metadata, VehicleGraphics3DBPlaneInstancesCollection._add_metadata, template_name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlaneInstancesCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlaneInstancesCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlaneInstancesCollection, [VehicleGraphics3DBPlaneInstancesCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4882024909686129377, 2327712651591037078), VehicleGraphics3DBPlaneInstancesCollection)
agcls.AgTypeNameMap["VehicleGraphics3DBPlaneInstancesCollection"] = VehicleGraphics3DBPlaneInstancesCollection

class VehicleGraphics3DBPlanePointCollection(SupportsDeleteCallback):
    """A list of available additional points."""

    _num_methods = 10
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _get_point_color_method_offset = 7
    _set_point_color_method_offset = 8
    _get_first_point_color_method_offset = 9
    _set_first_point_color_method_offset = 10
    _metadata = {
        "iid_data" : (5463703588704826050, 8652677159603583403),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlanePointCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics3DBPlanePointCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGraphics3DBPlanePoint":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics3DBPlanePointCollection._metadata, VehicleGraphics3DBPlanePointCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGraphics3DBPlanePoint":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics3DBPlanePointCollection._metadata, VehicleGraphics3DBPlanePointCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics3DBPlanePointCollection._metadata, VehicleGraphics3DBPlanePointCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleGraphics3DBPlanePointCollection._metadata, VehicleGraphics3DBPlanePointCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleGraphics3DBPlanePointCollection._metadata, VehicleGraphics3DBPlanePointCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "VehicleGraphics3DBPlanePoint":
        """Add a new element to the collection."""
        return self._intf.invoke(VehicleGraphics3DBPlanePointCollection._metadata, VehicleGraphics3DBPlanePointCollection._add_metadata, OutArg())

    _get_point_color_metadata = { "offset" : _get_point_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def point_color(self) -> agcolor.Color:
        """Whether to display the first point in the same color as the other points."""
        return self._intf.get_property(VehicleGraphics3DBPlanePointCollection._metadata, VehicleGraphics3DBPlanePointCollection._get_point_color_metadata)

    _set_point_color_metadata = { "offset" : _set_point_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @point_color.setter
    def point_color(self, point_color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlanePointCollection._metadata, VehicleGraphics3DBPlanePointCollection._set_point_color_metadata, point_color)

    _get_first_point_color_metadata = { "offset" : _get_first_point_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def first_point_color(self) -> agcolor.Color:
        """Get or set the specified color of the first point, if different from the others."""
        return self._intf.get_property(VehicleGraphics3DBPlanePointCollection._metadata, VehicleGraphics3DBPlanePointCollection._get_first_point_color_metadata)

    _set_first_point_color_metadata = { "offset" : _set_first_point_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @first_point_color.setter
    def first_point_color(self, first_point_color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics3DBPlanePointCollection._metadata, VehicleGraphics3DBPlanePointCollection._set_first_point_color_metadata, first_point_color)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[point_color] = "point_color"
    _property_names[first_point_color] = "first_point_color"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlanePointCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlanePointCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlanePointCollection, [VehicleGraphics3DBPlanePointCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4709023318712526940, 5189439643009391547), VehicleGraphics3DBPlanePointCollection)
agcls.AgTypeNameMap["VehicleGraphics3DBPlanePointCollection"] = VehicleGraphics3DBPlanePointCollection

class VehicleGraphics3DBPlanes(SupportsDeleteCallback):
    """3D BPlanes properties."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_templates_method_offset = 1
    _get_instances_method_offset = 2
    _metadata = {
        "iid_data" : (4830222403631259256, 6750016509706332350),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics3DBPlanes)

    _get_templates_metadata = { "offset" : _get_templates_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def templates(self) -> "VehicleGraphics3DBPlaneTemplatesCollection":
        """Return the 3D BPlane templates collection."""
        return self._intf.get_property(VehicleGraphics3DBPlanes._metadata, VehicleGraphics3DBPlanes._get_templates_metadata)

    _get_instances_metadata = { "offset" : _get_instances_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def instances(self) -> "VehicleGraphics3DBPlaneInstancesCollection":
        """Return the 3D BPlane Instance collection."""
        return self._intf.get_property(VehicleGraphics3DBPlanes._metadata, VehicleGraphics3DBPlanes._get_instances_metadata)

    _property_names[templates] = "templates"
    _property_names[instances] = "instances"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics3DBPlanes."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics3DBPlanes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics3DBPlanes, [VehicleGraphics3DBPlanes, ])

agcls.AgClassCatalog.add_catalog_entry((5422204468896534106, 5666005448485290428), VehicleGraphics3DBPlanes)
agcls.AgTypeNameMap["VehicleGraphics3DBPlanes"] = VehicleGraphics3DBPlanes

class LaunchVehicle(ISTKObject, ILifetimeInformation, IProvideSpatialInfo, SupportsDeleteCallback):
    """Interface for a launch vehicle object."""

    _num_methods = 30
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_trajectory_type_method_offset = 1
    _set_trajectory_type_method_offset = 2
    _is_trajectory_type_supported_method_offset = 3
    _get_trajectory_supported_types_method_offset = 4
    _get_trajectory_method_offset = 5
    _get_attitude_type_method_offset = 6
    _set_attitude_type_method_offset = 7
    _is_attitude_type_supported_method_offset = 8
    _get_attitude_supported_types_method_offset = 9
    _get_attitude_method_offset = 10
    _get_graphics_method_offset = 11
    _get_graphics_3d_method_offset = 12
    _get_ground_ellipses_method_offset = 13
    _get_access_constraints_method_offset = 14
    _get_export_tools_method_offset = 15
    _get_space_environment_method_offset = 16
    _get_atmosphere_method_offset = 17
    _get_radar_clutter_map_method_offset = 18
    _get_radar_cross_section_method_offset = 19
    _get_eclipse_bodies_method_offset = 20
    _get_use_terrain_in_lighting_computations_method_offset = 21
    _set_use_terrain_in_lighting_computations_method_offset = 22
    _get_lighting_maximum_step_method_offset = 23
    _set_lighting_maximum_step_method_offset = 24
    _get_laser_environment_method_offset = 25
    _get_rf_environment_method_offset = 26
    _get_lighting_maximum_step_terrain_method_offset = 27
    _set_lighting_maximum_step_terrain_method_offset = 28
    _get_lighting_maximum_step_central_body_shape_method_offset = 29
    _set_lighting_maximum_step_central_body_shape_method_offset = 30
    _metadata = {
        "iid_data" : (4632140996865809142, 10974863704837062041),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicle)

    _get_trajectory_type_metadata = { "offset" : _get_trajectory_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorType),) }
    @property
    def trajectory_type(self) -> "PropagatorType":
        """Get the propagator type used by the launch vehicle."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_trajectory_type_metadata)

    _set_trajectory_type_metadata = { "offset" : _set_trajectory_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorType),) }
    def set_trajectory_type(self, trajectory:"PropagatorType") -> None:
        """Set the propagator type."""
        return self._intf.invoke(LaunchVehicle._metadata, LaunchVehicle._set_trajectory_type_metadata, trajectory)

    _is_trajectory_type_supported_metadata = { "offset" : _is_trajectory_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(PropagatorType), agmarshall.VariantBoolArg,) }
    def is_trajectory_type_supported(self, trajectory:"PropagatorType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(LaunchVehicle._metadata, LaunchVehicle._is_trajectory_type_supported_metadata, trajectory, OutArg())

    _get_trajectory_supported_types_metadata = { "offset" : _get_trajectory_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def trajectory_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_trajectory_supported_types_metadata)

    _get_trajectory_metadata = { "offset" : _get_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory(self) -> "IPropagator":
        """Get the launch vehicle's trajectory properties."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_trajectory_metadata)

    _get_attitude_type_metadata = { "offset" : _get_attitude_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude),) }
    @property
    def attitude_type(self) -> "VehicleAttitude":
        """Get the type of attitude profile used by the launch vehicle."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_attitude_type_metadata)

    _set_attitude_type_metadata = { "offset" : _set_attitude_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude),) }
    def set_attitude_type(self, attitude:"VehicleAttitude") -> None:
        """Set the type of attitude profile used by the launch vehicle."""
        return self._intf.invoke(LaunchVehicle._metadata, LaunchVehicle._set_attitude_type_metadata, attitude)

    _is_attitude_type_supported_metadata = { "offset" : _is_attitude_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude), agmarshall.VariantBoolArg,) }
    def is_attitude_type_supported(self, attitude:"VehicleAttitude") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(LaunchVehicle._metadata, LaunchVehicle._is_attitude_type_supported_metadata, attitude, OutArg())

    _get_attitude_supported_types_metadata = { "offset" : _get_attitude_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attitude_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_attitude_supported_types_metadata)

    _get_attitude_metadata = { "offset" : _get_attitude_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attitude(self) -> "IVehicleAttitude":
        """Get the launch vehicle's attitude profile."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_attitude_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "LaunchVehicleGraphics":
        """Get the launch vehicle's 2D Graphics properties."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "LaunchVehicleGraphics3D":
        """Get the launch vehicle's 3D Graphics properties."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_graphics_3d_metadata)

    _get_ground_ellipses_metadata = { "offset" : _get_ground_ellipses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_ellipses(self) -> "VehicleGroundEllipsesCollection":
        """Get the launch vehicle's ground ellipses properties."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_ground_ellipses_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the launch vehicle."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_access_constraints_metadata)

    _get_export_tools_metadata = { "offset" : _get_export_tools_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def export_tools(self) -> "LaunchVehicleExportTools":
        """Return the LaunchVehicleExportTools interface."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_export_tools_metadata)

    _get_space_environment_metadata = { "offset" : _get_space_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def space_environment(self) -> "SpaceEnvironment":
        """Return the launch vehicle's SpaceEnvironment properties."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_space_environment_metadata)

    _get_atmosphere_metadata = { "offset" : _get_atmosphere_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmosphere(self) -> "Atmosphere":
        """Do not use this property, as it is deprecated. The new RFEnvironment property can be used to configure atmospheric models."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_atmosphere_metadata)

    _get_radar_clutter_map_metadata = { "offset" : _get_radar_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_clutter_map(self) -> "IRadarClutterMapInheritable":
        """Return the radar clutter map."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_radar_clutter_map_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionInheritable":
        """Return the radar cross sectoin."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_radar_cross_section_metadata)

    _get_eclipse_bodies_metadata = { "offset" : _get_eclipse_bodies_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def eclipse_bodies(self) -> "VehicleEclipseBodies":
        """Get the customized list of Eclipse Bodies, which are central bodies used in lighting computations."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_eclipse_bodies_metadata)

    _get_use_terrain_in_lighting_computations_metadata = { "offset" : _get_use_terrain_in_lighting_computations_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain_in_lighting_computations(self) -> bool:
        """Opt whether to compute lighting using terrain data."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_use_terrain_in_lighting_computations_metadata)

    _set_use_terrain_in_lighting_computations_metadata = { "offset" : _set_use_terrain_in_lighting_computations_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain_in_lighting_computations.setter
    def use_terrain_in_lighting_computations(self, value:bool) -> None:
        return self._intf.set_property(LaunchVehicle._metadata, LaunchVehicle._set_use_terrain_in_lighting_computations_metadata, value)

    _get_lighting_maximum_step_metadata = { "offset" : _get_lighting_maximum_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step(self) -> float:
        """Do not use this property, as it is deprecated. Use LightingMaxStepTerrain or LightingMaxStepCbShape as appropriate. The maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_lighting_maximum_step_metadata)

    _set_lighting_maximum_step_metadata = { "offset" : _set_lighting_maximum_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step.setter
    def lighting_maximum_step(self, max_step:float) -> None:
        return self._intf.set_property(LaunchVehicle._metadata, LaunchVehicle._set_lighting_maximum_step_metadata, max_step)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "PlatformLaserEnvironment":
        """Get the laser environment."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_laser_environment_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "IPlatformRFEnvironment":
        """Get the RF environment."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_rf_environment_metadata)

    _get_lighting_maximum_step_terrain_metadata = { "offset" : _get_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_terrain(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_lighting_maximum_step_terrain_metadata)

    _set_lighting_maximum_step_terrain_metadata = { "offset" : _set_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_terrain.setter
    def lighting_maximum_step_terrain(self, max_step:float) -> None:
        return self._intf.set_property(LaunchVehicle._metadata, LaunchVehicle._set_lighting_maximum_step_terrain_metadata, max_step)

    _get_lighting_maximum_step_central_body_shape_metadata = { "offset" : _get_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_central_body_shape(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is false. Uses Time Dimension."""
        return self._intf.get_property(LaunchVehicle._metadata, LaunchVehicle._get_lighting_maximum_step_central_body_shape_metadata)

    _set_lighting_maximum_step_central_body_shape_metadata = { "offset" : _set_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_central_body_shape.setter
    def lighting_maximum_step_central_body_shape(self, max_step:float) -> None:
        return self._intf.set_property(LaunchVehicle._metadata, LaunchVehicle._set_lighting_maximum_step_central_body_shape_metadata, max_step)

    _property_names[trajectory_type] = "trajectory_type"
    _property_names[trajectory_supported_types] = "trajectory_supported_types"
    _property_names[trajectory] = "trajectory"
    _property_names[attitude_type] = "attitude_type"
    _property_names[attitude_supported_types] = "attitude_supported_types"
    _property_names[attitude] = "attitude"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[ground_ellipses] = "ground_ellipses"
    _property_names[access_constraints] = "access_constraints"
    _property_names[export_tools] = "export_tools"
    _property_names[space_environment] = "space_environment"
    _property_names[atmosphere] = "atmosphere"
    _property_names[radar_clutter_map] = "radar_clutter_map"
    _property_names[radar_cross_section] = "radar_cross_section"
    _property_names[eclipse_bodies] = "eclipse_bodies"
    _property_names[use_terrain_in_lighting_computations] = "use_terrain_in_lighting_computations"
    _property_names[lighting_maximum_step] = "lighting_maximum_step"
    _property_names[laser_environment] = "laser_environment"
    _property_names[rf_environment] = "rf_environment"
    _property_names[lighting_maximum_step_terrain] = "lighting_maximum_step_terrain"
    _property_names[lighting_maximum_step_central_body_shape] = "lighting_maximum_step_central_body_shape"

    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicle."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicle)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IProvideSpatialInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IProvideSpatialInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicle, [LaunchVehicle, ISTKObject, ILifetimeInformation, IProvideSpatialInfo])

agcls.AgClassCatalog.add_catalog_entry((4691626790856323690, 7325369952176734885), LaunchVehicle)
agcls.AgTypeNameMap["LaunchVehicle"] = LaunchVehicle

class LaunchVehicleGraphics(SupportsDeleteCallback):
    """2D Graphics for a launch vehicle."""

    _num_methods = 23
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_attributes_type_method_offset = 1
    _set_attributes_type_method_offset = 2
    _is_attributes_type_supported_method_offset = 3
    _get_attributes_supported_types_method_offset = 4
    _get_attributes_method_offset = 5
    _get_pass_data_method_offset = 6
    _get_resolution_method_offset = 7
    _get_elevation_contours_method_offset = 8
    _get_range_contours_method_offset = 9
    _get_lighting_method_offset = 10
    _get_swath_method_offset = 11
    _get_ground_ellipses_method_offset = 12
    _get_use_instance_name_method_offset = 13
    _set_use_instance_name_method_offset = 14
    _get_label_notes_method_offset = 15
    _get_use_instance_name_label_method_offset = 16
    _set_use_instance_name_label_method_offset = 17
    _get_label_name_method_offset = 18
    _set_label_name_method_offset = 19
    _get_saa_method_offset = 20
    _get_show_graphics_method_offset = 21
    _set_show_graphics_method_offset = 22
    _get_radar_cross_section_method_offset = 23
    _metadata = {
        "iid_data" : (4935085872589058730, 7831633164184603309),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicleGraphics)

    _get_attributes_type_metadata = { "offset" : _get_attributes_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType),) }
    @property
    def attributes_type(self) -> "VehicleGraphics2DAttributeType":
        """Get the 2D Graphics attributes type: basic, access intervals, custom intervals, or real time."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_attributes_type_metadata)

    _set_attributes_type_metadata = { "offset" : _set_attributes_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType),) }
    def set_attributes_type(self, attributes:"VehicleGraphics2DAttributeType") -> None:
        """Set the 2D Graphics attributes type."""
        return self._intf.invoke(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._set_attributes_type_metadata, attributes)

    _is_attributes_type_supported_metadata = { "offset" : _is_attributes_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType), agmarshall.VariantBoolArg,) }
    def is_attributes_type_supported(self, attributes:"VehicleGraphics2DAttributeType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._is_attributes_type_supported_metadata, attributes, OutArg())

    _get_attributes_supported_types_metadata = { "offset" : _get_attributes_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attributes_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_attributes_supported_types_metadata)

    _get_attributes_metadata = { "offset" : _get_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attributes(self) -> "IVehicleGraphics2DAttributes":
        """Get the launch vehicle's 2D Graphics attributes."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_attributes_metadata)

    _get_pass_data_metadata = { "offset" : _get_pass_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pass_data(self) -> "VehicleGraphics2DTrajectoryPassData":
        """Get the launch vehicle's 2D trajectory properties."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_pass_data_metadata)

    _get_resolution_metadata = { "offset" : _get_resolution_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def resolution(self) -> "VehicleGraphics2DTrajectoryResolution":
        """Get the launch vehicle's 2D resolution properties."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_resolution_metadata)

    _get_elevation_contours_metadata = { "offset" : _get_elevation_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elevation_contours(self) -> "VehicleGraphics2DElevationContours":
        """Get the launch vehicle's 2D elevation contour properties."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_elevation_contours_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics2DRangeContours":
        """Get the launch vehicle's 2D range contour properties."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_range_contours_metadata)

    _get_lighting_metadata = { "offset" : _get_lighting_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def lighting(self) -> "VehicleGraphics2DLighting":
        """Get the launch vehicle's 2D lighting properties."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_lighting_metadata)

    _get_swath_metadata = { "offset" : _get_swath_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def swath(self) -> "VehicleGraphics2DSwath":
        """Get the launch vehicle's 2D swath properties."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_swath_metadata)

    _get_ground_ellipses_metadata = { "offset" : _get_ground_ellipses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_ellipses(self) -> "VehicleGraphics2DGroundEllipsesCollection":
        """Get the launch vehicle's 2D ground ellipses properties."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_ground_ellipses_metadata)

    _get_use_instance_name_metadata = { "offset" : _get_use_instance_name_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_instance_name(self) -> bool:
        """Opt whether to use the instance name as the label."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_use_instance_name_metadata)

    _set_use_instance_name_metadata = { "offset" : _set_use_instance_name_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_instance_name.setter
    def use_instance_name(self, use_inst_name:bool) -> None:
        return self._intf.set_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._set_use_instance_name_metadata, use_inst_name)

    _get_label_notes_metadata = { "offset" : _get_label_notes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_notes(self) -> "LabelNoteCollection":
        """Notes attached to the object and displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_label_notes_metadata)

    _get_use_instance_name_label_metadata = { "offset" : _get_use_instance_name_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_instance_name_label(self) -> bool:
        """Specify whether to use the name of the launch vehicle (as shown in the Object Browser) as its label."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_use_instance_name_label_metadata)

    _set_use_instance_name_label_metadata = { "offset" : _set_use_instance_name_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_instance_name_label.setter
    def use_instance_name_label(self, use_inst_name:bool) -> None:
        return self._intf.set_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._set_use_instance_name_label_metadata, use_inst_name)

    _get_label_name_metadata = { "offset" : _get_label_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label_name(self) -> str:
        """The user-specified name to use as a label for the launch vehicle."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_label_name_metadata)

    _set_label_name_metadata = { "offset" : _set_label_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label_name.setter
    def label_name(self, value:str) -> None:
        return self._intf.set_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._set_label_name_metadata, value)

    _get_saa_metadata = { "offset" : _get_saa_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def saa(self) -> "VehicleGraphics2DSAA":
        """Get the vehicle's South Atlantic Anomaly Contour properties."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_saa_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the launch vehicle are visible."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._set_show_graphics_metadata, is_visible)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(LaunchVehicleGraphics._metadata, LaunchVehicleGraphics._get_radar_cross_section_metadata)

    _property_names[attributes_type] = "attributes_type"
    _property_names[attributes_supported_types] = "attributes_supported_types"
    _property_names[attributes] = "attributes"
    _property_names[pass_data] = "pass_data"
    _property_names[resolution] = "resolution"
    _property_names[elevation_contours] = "elevation_contours"
    _property_names[range_contours] = "range_contours"
    _property_names[lighting] = "lighting"
    _property_names[swath] = "swath"
    _property_names[ground_ellipses] = "ground_ellipses"
    _property_names[use_instance_name] = "use_instance_name"
    _property_names[label_notes] = "label_notes"
    _property_names[use_instance_name_label] = "use_instance_name_label"
    _property_names[label_name] = "label_name"
    _property_names[saa] = "saa"
    _property_names[show_graphics] = "show_graphics"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicleGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicleGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicleGraphics, [LaunchVehicleGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5196011408357916082, 6835812139928720000), LaunchVehicleGraphics)
agcls.AgTypeNameMap["LaunchVehicleGraphics"] = LaunchVehicleGraphics

class LaunchVehicleGraphics3D(SupportsDeleteCallback):
    """3D Graphics for a launch vehicle."""

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_model_method_offset = 1
    _get_trajectory_systems_method_offset = 2
    _get_proximity_method_offset = 3
    _get_elevation_contours_method_offset = 4
    _get_covariance_pointing_contour_method_offset = 5
    _get_trajectory_method_offset = 6
    _get_offsets_method_offset = 7
    _get_range_contours_method_offset = 8
    _get_covariance_method_offset = 9
    _get_vector_method_offset = 10
    _get_data_display_method_offset = 11
    _get_model_pointing_method_offset = 12
    _get_drop_lines_method_offset = 13
    _get_vapor_trail_method_offset = 14
    _get_saa_method_offset = 15
    _get_velocity_covariance_method_offset = 16
    _get_radar_cross_section_method_offset = 17
    _metadata = {
        "iid_data" : (4737078876478358562, 6424402899838565527),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicleGraphics3D)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "VehicleGraphics3DModelTrajectory":
        """Get the launch vehicle's 3D model properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_model_metadata)

    _get_trajectory_systems_metadata = { "offset" : _get_trajectory_systems_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory_systems(self) -> "VehicleGraphics3DSystemsCollection":
        """Get the launch vehicle's 3D trajectory frame properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_trajectory_systems_metadata)

    _get_proximity_metadata = { "offset" : _get_proximity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def proximity(self) -> "VehicleGraphics3DTrajectoryProximity":
        """Get the launch vehicle's 3D proximity properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_proximity_metadata)

    _get_elevation_contours_metadata = { "offset" : _get_elevation_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elevation_contours(self) -> "VehicleGraphics3DElevationContours":
        """Get the launch vehicle's 3D elevation contour properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_elevation_contours_metadata)

    _get_covariance_pointing_contour_metadata = { "offset" : _get_covariance_pointing_contour_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def covariance_pointing_contour(self) -> "VehicleGraphics3DCovariancePointingContour":
        """Get the launch vehicle's 3D covariance pointing properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_covariance_pointing_contour_metadata)

    _get_trajectory_metadata = { "offset" : _get_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory(self) -> "VehicleGraphics3DTrajectory":
        """Get the launch vehicle's 3D trajectory properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_trajectory_metadata)

    _get_offsets_metadata = { "offset" : _get_offsets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def offsets(self) -> "Graphics3DOffset":
        """Get the launch vehicle's 3D offsets properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_offsets_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics3DRangeContours":
        """Get the launch vehicle's 3D range contour properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_range_contours_metadata)

    _get_covariance_metadata = { "offset" : _get_covariance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def covariance(self) -> "VehicleGraphics3DCovariance":
        """Get the launch vehicle's 3D covariance properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_covariance_metadata)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get the launch vehicle's 3D vector properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_vector_metadata)

    _get_data_display_metadata = { "offset" : _get_data_display_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_display(self) -> "Graphics3DDataDisplayCollection":
        """Get the launch vehicle's 3D data display properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_data_display_metadata)

    _get_model_pointing_metadata = { "offset" : _get_model_pointing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_pointing(self) -> "Graphics3DModelPointing":
        """Use to point parts of a launch vehicle's model toward a target, such as the Sun or Earth."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_model_pointing_metadata)

    _get_drop_lines_metadata = { "offset" : _get_drop_lines_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drop_lines(self) -> "VehicleGraphics3DTrajectoryDropLines":
        """Return an interface allowing to configure launch vehicle's drop lines."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_drop_lines_metadata)

    _get_vapor_trail_metadata = { "offset" : _get_vapor_trail_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vapor_trail(self) -> "Graphics3DVaporTrail":
        """Vapor trail attributes."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_vapor_trail_metadata)

    _get_saa_metadata = { "offset" : _get_saa_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def saa(self) -> "VehicleGraphics3DSAA":
        """Get the launch vehicle's South Atlantic Anomaly Contour properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_saa_metadata)

    _get_velocity_covariance_metadata = { "offset" : _get_velocity_covariance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def velocity_covariance(self) -> "VehicleGraphics3DVelocityCovariance":
        """Get the launch vehicle's 3D velocity covariance properties."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_velocity_covariance_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics3D":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(LaunchVehicleGraphics3D._metadata, LaunchVehicleGraphics3D._get_radar_cross_section_metadata)

    _property_names[model] = "model"
    _property_names[trajectory_systems] = "trajectory_systems"
    _property_names[proximity] = "proximity"
    _property_names[elevation_contours] = "elevation_contours"
    _property_names[covariance_pointing_contour] = "covariance_pointing_contour"
    _property_names[trajectory] = "trajectory"
    _property_names[offsets] = "offsets"
    _property_names[range_contours] = "range_contours"
    _property_names[covariance] = "covariance"
    _property_names[vector] = "vector"
    _property_names[data_display] = "data_display"
    _property_names[model_pointing] = "model_pointing"
    _property_names[drop_lines] = "drop_lines"
    _property_names[vapor_trail] = "vapor_trail"
    _property_names[saa] = "saa"
    _property_names[velocity_covariance] = "velocity_covariance"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicleGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicleGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicleGraphics3D, [LaunchVehicleGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5752845032800491566, 13963708048607924653), LaunchVehicleGraphics3D)
agcls.AgTypeNameMap["LaunchVehicleGraphics3D"] = LaunchVehicleGraphics3D

class GroundVehicle(ISTKObject, ILifetimeInformation, IGreatArcVehicle, IProvideSpatialInfo, SupportsDeleteCallback):
    """
    Interface for a ground vehicle object.

    Examples
    --------
    Add Array of Waypoints to a Ground Vehicle and Interpolate over Terrain:
    >>> # GroundVehicle grndVehicle: Ground Vehicle object
    >>> route = grndVehicle.route
    >>> ptsArray = [
    >>>     [41.97766217, 21.44863761, 0, 0.026, 0.5],
    >>>     [41.97422351, 21.39956154, 0, 0.026, 0.5],
    >>>     [41.99173299, 21.40796942, 0, 0.026, 0.5],
    >>> ]
    >>> route.set_points_smooth_rate_and_propagate(ptsArray)
    >>> route.set_altitude_reference_type(VehicleAltitudeReference.TERRAIN)
    >>> route.altitude_reference.granularity = 0.001
    >>> route.altitude_reference.interpolation_method = VehicleWaypointInterpolationMethod.TERRAIN_HEIGHT
    >>> # Propagate the route
    >>> route.propagate()

    Set the Great Arc Propagator and Add Individual Waypoints to a Ground Vehicle:
    >>> # GroundVehicle grndVehicle: Ground Vehicle object
    >>> # Set route to great arc, method and altitude reference
    >>> groundVehicle.set_route_type(PropagatorType.GREAT_ARC)
    >>> route = groundVehicle.route
    >>> route.method = VehicleWaypointComputationMethod.DETERMINE_TIME_ACCELERATION_FROM_VELOCITY
    >>> route.set_altitude_reference_type(VehicleAltitudeReference.WGS84)
    >>> # Add first point
    >>> waypoint = route.waypoints.add()
    >>> waypoint.latitude = 56.18
    >>> waypoint.longitude = 40.91
    >>> waypoint.altitude = 0  # km
    >>> waypoint.speed = 0.026  # km/sec
    >>> # Add second point
    >>> waypoint2 = route.waypoints.add()
    >>> waypoint2.latitude = 50.22
    >>> waypoint2.longitude = 11.05
    >>> waypoint2.altitude = 0  # km
    >>> waypoint2.speed = 0.026  # km/sec
    >>> # Propagate the route
    >>> route.propagate()

    Create a New Ground Vehicle (on the current scenario central body):
    >>> # Scenario scenario: Scenario object
    >>> grndVehicle = scenario.children.new(STKObjectType.GROUND_VEHICLE, "MyVehicle")
    >>> grndVehicle.set_route_type(PropagatorType.GREAT_ARC)
    """

    _num_methods = 13
    _vtable_offset = IGreatArcVehicle._vtable_offset + IGreatArcVehicle._num_methods
    _get_graphics_method_offset = 1
    _get_graphics_3d_method_offset = 2
    _get_export_tools_method_offset = 3
    _get_atmosphere_method_offset = 4
    _get_radar_clutter_map_method_offset = 5
    _get_radar_cross_section_method_offset = 6
    _get_laser_environment_method_offset = 7
    _get_rf_environment_method_offset = 8
    _get_lighting_maximum_step_terrain_method_offset = 9
    _set_lighting_maximum_step_terrain_method_offset = 10
    _get_lighting_maximum_step_central_body_shape_method_offset = 11
    _set_lighting_maximum_step_central_body_shape_method_offset = 12
    _get_get_eoir_settings_method_offset = 13
    _metadata = {
        "iid_data" : (4735911453295062152, 5434576773645427120),
        "vtable_reference" : IGreatArcVehicle._vtable_offset + IGreatArcVehicle._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, GroundVehicle)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "GroundVehicleGraphics":
        """Get the ground vehicle's 2D Graphics properties."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "GroundVehicleGraphics3D":
        """Get the ground vehicle's 3D Graphics properties."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_graphics_3d_metadata)

    _get_export_tools_metadata = { "offset" : _get_export_tools_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def export_tools(self) -> "GroundVehicleExportTools":
        """Return the GroundVehicleExportTools interface."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_export_tools_metadata)

    _get_atmosphere_metadata = { "offset" : _get_atmosphere_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmosphere(self) -> "Atmosphere":
        """Do not use this property, as it is deprecated. The new RFEnvironment property can be used to configure atmospheric models."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_atmosphere_metadata)

    _get_radar_clutter_map_metadata = { "offset" : _get_radar_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_clutter_map(self) -> "IRadarClutterMapInheritable":
        """Return the radar clutter map."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_radar_clutter_map_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionInheritable":
        """Return the radar cross sectoin."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_radar_cross_section_metadata)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "PlatformLaserEnvironment":
        """Get the laser environment."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_laser_environment_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "IPlatformRFEnvironment":
        """Get the RF environment."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_rf_environment_metadata)

    _get_lighting_maximum_step_terrain_metadata = { "offset" : _get_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_terrain(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_lighting_maximum_step_terrain_metadata)

    _set_lighting_maximum_step_terrain_metadata = { "offset" : _set_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_terrain.setter
    def lighting_maximum_step_terrain(self, max_step:float) -> None:
        return self._intf.set_property(GroundVehicle._metadata, GroundVehicle._set_lighting_maximum_step_terrain_metadata, max_step)

    _get_lighting_maximum_step_central_body_shape_metadata = { "offset" : _get_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_central_body_shape(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is false. Uses Time Dimension."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_lighting_maximum_step_central_body_shape_metadata)

    _set_lighting_maximum_step_central_body_shape_metadata = { "offset" : _set_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_central_body_shape.setter
    def lighting_maximum_step_central_body_shape(self, max_step:float) -> None:
        return self._intf.set_property(GroundVehicle._metadata, GroundVehicle._set_lighting_maximum_step_central_body_shape_metadata, max_step)

    _get_get_eoir_settings_metadata = { "offset" : _get_get_eoir_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def get_eoir_settings(self) -> "IEOIR":
        """Get the EOIR properties of the gound vehicle."""
        return self._intf.get_property(GroundVehicle._metadata, GroundVehicle._get_get_eoir_settings_metadata)

    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[export_tools] = "export_tools"
    _property_names[atmosphere] = "atmosphere"
    _property_names[radar_clutter_map] = "radar_clutter_map"
    _property_names[radar_cross_section] = "radar_cross_section"
    _property_names[laser_environment] = "laser_environment"
    _property_names[rf_environment] = "rf_environment"
    _property_names[lighting_maximum_step_terrain] = "lighting_maximum_step_terrain"
    _property_names[lighting_maximum_step_central_body_shape] = "lighting_maximum_step_central_body_shape"
    _property_names[get_eoir_settings] = "get_eoir_settings"

    def __init__(self, source_object=None):
        """Construct an object of type GroundVehicle."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, GroundVehicle)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IGreatArcVehicle.__init__(self, source_object)
        IProvideSpatialInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IGreatArcVehicle._private_init(self, intf)
        IProvideSpatialInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, GroundVehicle, [GroundVehicle, ISTKObject, ILifetimeInformation, IGreatArcVehicle, IProvideSpatialInfo])

agcls.AgClassCatalog.add_catalog_entry((4752542261445465196, 4193037391687631031), GroundVehicle)
agcls.AgTypeNameMap["GroundVehicle"] = GroundVehicle

class GroundVehicleGraphics(IGreatArcGraphics, SupportsDeleteCallback):
    """2D Graphics properties for ground vehicles."""

    _num_methods = 1
    _vtable_offset = IGreatArcGraphics._vtable_offset + IGreatArcGraphics._num_methods
    _get_radar_cross_section_method_offset = 1
    _metadata = {
        "iid_data" : (5414689630604970751, 6769268424414628495),
        "vtable_reference" : IGreatArcGraphics._vtable_offset + IGreatArcGraphics._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, GroundVehicleGraphics)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(GroundVehicleGraphics._metadata, GroundVehicleGraphics._get_radar_cross_section_metadata)

    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type GroundVehicleGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, GroundVehicleGraphics)
        IGreatArcGraphics.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGreatArcGraphics._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, GroundVehicleGraphics, [GroundVehicleGraphics, IGreatArcGraphics])

agcls.AgClassCatalog.add_catalog_entry((5379357090191619552, 6801217883352545684), GroundVehicleGraphics)
agcls.AgTypeNameMap["GroundVehicleGraphics"] = GroundVehicleGraphics

class GroundVehicleGraphics3D(IGreatArcGraphics3D, SupportsDeleteCallback):
    """3D Graphics properties for ground vehicles."""

    _num_methods = 2
    _vtable_offset = IGreatArcGraphics3D._vtable_offset + IGreatArcGraphics3D._num_methods
    _get_vapor_trail_method_offset = 1
    _get_radar_cross_section_method_offset = 2
    _metadata = {
        "iid_data" : (5098654709234532822, 7357323649338276744),
        "vtable_reference" : IGreatArcGraphics3D._vtable_offset + IGreatArcGraphics3D._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, GroundVehicleGraphics3D)

    _get_vapor_trail_metadata = { "offset" : _get_vapor_trail_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vapor_trail(self) -> "Graphics3DVaporTrail":
        """Vapor trail attributes."""
        return self._intf.get_property(GroundVehicleGraphics3D._metadata, GroundVehicleGraphics3D._get_vapor_trail_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics3D":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(GroundVehicleGraphics3D._metadata, GroundVehicleGraphics3D._get_radar_cross_section_metadata)

    _property_names[vapor_trail] = "vapor_trail"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type GroundVehicleGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, GroundVehicleGraphics3D)
        IGreatArcGraphics3D.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGreatArcGraphics3D._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, GroundVehicleGraphics3D, [GroundVehicleGraphics3D, IGreatArcGraphics3D])

agcls.AgClassCatalog.add_catalog_entry((4702857147994747329, 7718913021377763758), GroundVehicleGraphics3D)
agcls.AgTypeNameMap["GroundVehicleGraphics3D"] = GroundVehicleGraphics3D

class Missile(ISTKObject, ILifetimeInformation, IProvideSpatialInfo, SupportsDeleteCallback):
    """
    Interface for a missile object.

    Examples
    --------
    Create a New Missile (on the current scenario central body):
    >>> # Scenario scenario: Scenario object
    >>> missile = scenario.children.new(STKObjectType.MISSILE, "MyMissile")
    >>> missile.set_trajectory_type(PropagatorType.BALLISTIC)
    >>> trajectory = missile.trajectory
    >>> root.units_preferences.set_current_unit("DateFormat", "EpSec")
    >>> trajectory.ephemeris_interval.set_explicit_interval(0, 0)  # stop time later computed based on propagation
    >>> trajectory.launch.latitude = 29
    >>> trajectory.launch.longitude = -81
    >>> trajectory.impact_location.impact.latitude = 27
    >>> trajectory.impact_location.impact.longitude = -43
    >>> trajectory.impact_location.set_launch_control_type(VehicleLaunchControl.FIXED_APOGEE_ALTITUDE)
    >>> trajectory.impact_location.launch_control.apogee_altitude = 1200  # km
    >>> trajectory.propagate()
    """

    _num_methods = 31
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_trajectory_type_method_offset = 1
    _set_trajectory_type_method_offset = 2
    _is_trajectory_type_supported_method_offset = 3
    _get_trajectory_supported_types_method_offset = 4
    _get_trajectory_method_offset = 5
    _get_attitude_type_method_offset = 6
    _set_attitude_type_method_offset = 7
    _is_attitude_type_supported_method_offset = 8
    _get_attitude_supported_types_method_offset = 9
    _get_attitude_method_offset = 10
    _get_graphics_method_offset = 11
    _get_graphics_3d_method_offset = 12
    _get_ground_ellipses_method_offset = 13
    _get_access_constraints_method_offset = 14
    _get_export_tools_method_offset = 15
    _get_space_environment_method_offset = 16
    _get_atmosphere_method_offset = 17
    _get_radar_clutter_map_method_offset = 18
    _get_radar_cross_section_method_offset = 19
    _get_eclipse_bodies_method_offset = 20
    _get_use_terrain_in_lighting_computations_method_offset = 21
    _set_use_terrain_in_lighting_computations_method_offset = 22
    _get_lighting_maximum_step_method_offset = 23
    _set_lighting_maximum_step_method_offset = 24
    _get_laser_environment_method_offset = 25
    _get_rf_environment_method_offset = 26
    _get_lighting_maximum_step_terrain_method_offset = 27
    _set_lighting_maximum_step_terrain_method_offset = 28
    _get_lighting_maximum_step_central_body_shape_method_offset = 29
    _set_lighting_maximum_step_central_body_shape_method_offset = 30
    _get_get_eoir_settings_method_offset = 31
    _metadata = {
        "iid_data" : (4642839196944729145, 14382010807622806657),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Missile)

    _get_trajectory_type_metadata = { "offset" : _get_trajectory_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorType),) }
    @property
    def trajectory_type(self) -> "PropagatorType":
        """Get the propagator type used by the missile."""
        return self._intf.get_property(Missile._metadata, Missile._get_trajectory_type_metadata)

    _set_trajectory_type_metadata = { "offset" : _set_trajectory_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorType),) }
    def set_trajectory_type(self, propagator:"PropagatorType") -> None:
        """Set the propagator type."""
        return self._intf.invoke(Missile._metadata, Missile._set_trajectory_type_metadata, propagator)

    _is_trajectory_type_supported_metadata = { "offset" : _is_trajectory_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(PropagatorType), agmarshall.VariantBoolArg,) }
    def is_trajectory_type_supported(self, propagator:"PropagatorType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(Missile._metadata, Missile._is_trajectory_type_supported_metadata, propagator, OutArg())

    _get_trajectory_supported_types_metadata = { "offset" : _get_trajectory_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def trajectory_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(Missile._metadata, Missile._get_trajectory_supported_types_metadata)

    _get_trajectory_metadata = { "offset" : _get_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory(self) -> "IPropagator":
        """Get the missile's trajectory properties."""
        return self._intf.get_property(Missile._metadata, Missile._get_trajectory_metadata)

    _get_attitude_type_metadata = { "offset" : _get_attitude_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude),) }
    @property
    def attitude_type(self) -> "VehicleAttitude":
        """Get the type of attitude profile used by the missile."""
        return self._intf.get_property(Missile._metadata, Missile._get_attitude_type_metadata)

    _set_attitude_type_metadata = { "offset" : _set_attitude_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude),) }
    def set_attitude_type(self, attitude:"VehicleAttitude") -> None:
        """Set the type of attitude profile used by the missile."""
        return self._intf.invoke(Missile._metadata, Missile._set_attitude_type_metadata, attitude)

    _is_attitude_type_supported_metadata = { "offset" : _is_attitude_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleAttitude), agmarshall.VariantBoolArg,) }
    def is_attitude_type_supported(self, attitude:"VehicleAttitude") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(Missile._metadata, Missile._is_attitude_type_supported_metadata, attitude, OutArg())

    _get_attitude_supported_types_metadata = { "offset" : _get_attitude_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attitude_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(Missile._metadata, Missile._get_attitude_supported_types_metadata)

    _get_attitude_metadata = { "offset" : _get_attitude_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attitude(self) -> "IVehicleAttitude":
        """Get the missile's attitude profile."""
        return self._intf.get_property(Missile._metadata, Missile._get_attitude_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "MissileGraphics":
        """Get the missile's 2D Graphics properties."""
        return self._intf.get_property(Missile._metadata, Missile._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "MissileGraphics3D":
        """Get the missile's 3D Graphics properties."""
        return self._intf.get_property(Missile._metadata, Missile._get_graphics_3d_metadata)

    _get_ground_ellipses_metadata = { "offset" : _get_ground_ellipses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_ellipses(self) -> "VehicleGroundEllipsesCollection":
        """Get the missile's ground ellipses properties."""
        return self._intf.get_property(Missile._metadata, Missile._get_ground_ellipses_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Get the constraints imposed on the missile."""
        return self._intf.get_property(Missile._metadata, Missile._get_access_constraints_metadata)

    _get_export_tools_metadata = { "offset" : _get_export_tools_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def export_tools(self) -> "MissileExportTools":
        """Return the MissileExportTools interface."""
        return self._intf.get_property(Missile._metadata, Missile._get_export_tools_metadata)

    _get_space_environment_metadata = { "offset" : _get_space_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def space_environment(self) -> "SpaceEnvironment":
        """Return the missile's SpaceEnvironment properties."""
        return self._intf.get_property(Missile._metadata, Missile._get_space_environment_metadata)

    _get_atmosphere_metadata = { "offset" : _get_atmosphere_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmosphere(self) -> "Atmosphere":
        """Do not use this property, as it is deprecated. The new RFEnvironment property can be used to configure atmospheric models."""
        return self._intf.get_property(Missile._metadata, Missile._get_atmosphere_metadata)

    _get_radar_clutter_map_metadata = { "offset" : _get_radar_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_clutter_map(self) -> "IRadarClutterMapInheritable":
        """Return the radar clutter map."""
        return self._intf.get_property(Missile._metadata, Missile._get_radar_clutter_map_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionInheritable":
        """Return the radar cross sectoin."""
        return self._intf.get_property(Missile._metadata, Missile._get_radar_cross_section_metadata)

    _get_eclipse_bodies_metadata = { "offset" : _get_eclipse_bodies_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def eclipse_bodies(self) -> "VehicleEclipseBodies":
        """Get the customized list of Eclipse Bodies, which are central bodies used in lighting computations."""
        return self._intf.get_property(Missile._metadata, Missile._get_eclipse_bodies_metadata)

    _get_use_terrain_in_lighting_computations_metadata = { "offset" : _get_use_terrain_in_lighting_computations_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain_in_lighting_computations(self) -> bool:
        """Opt whether to compute lighting using terrain data."""
        return self._intf.get_property(Missile._metadata, Missile._get_use_terrain_in_lighting_computations_metadata)

    _set_use_terrain_in_lighting_computations_metadata = { "offset" : _set_use_terrain_in_lighting_computations_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain_in_lighting_computations.setter
    def use_terrain_in_lighting_computations(self, value:bool) -> None:
        return self._intf.set_property(Missile._metadata, Missile._set_use_terrain_in_lighting_computations_metadata, value)

    _get_lighting_maximum_step_metadata = { "offset" : _get_lighting_maximum_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step(self) -> float:
        """Do not use this property, as it is deprecated. Use LightingMaxStepTerrain or LightingMaxStepCbShape as appropriate. The maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension."""
        return self._intf.get_property(Missile._metadata, Missile._get_lighting_maximum_step_metadata)

    _set_lighting_maximum_step_metadata = { "offset" : _set_lighting_maximum_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step.setter
    def lighting_maximum_step(self, max_step:float) -> None:
        return self._intf.set_property(Missile._metadata, Missile._set_lighting_maximum_step_metadata, max_step)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "PlatformLaserEnvironment":
        """Get the laser environment."""
        return self._intf.get_property(Missile._metadata, Missile._get_laser_environment_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "IPlatformRFEnvironment":
        """Get the RF environment."""
        return self._intf.get_property(Missile._metadata, Missile._get_rf_environment_metadata)

    _get_lighting_maximum_step_terrain_metadata = { "offset" : _get_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_terrain(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension."""
        return self._intf.get_property(Missile._metadata, Missile._get_lighting_maximum_step_terrain_metadata)

    _set_lighting_maximum_step_terrain_metadata = { "offset" : _set_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_terrain.setter
    def lighting_maximum_step_terrain(self, max_step:float) -> None:
        return self._intf.set_property(Missile._metadata, Missile._set_lighting_maximum_step_terrain_metadata, max_step)

    _get_lighting_maximum_step_central_body_shape_metadata = { "offset" : _get_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_central_body_shape(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is false. Uses Time Dimension."""
        return self._intf.get_property(Missile._metadata, Missile._get_lighting_maximum_step_central_body_shape_metadata)

    _set_lighting_maximum_step_central_body_shape_metadata = { "offset" : _set_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_central_body_shape.setter
    def lighting_maximum_step_central_body_shape(self, max_step:float) -> None:
        return self._intf.set_property(Missile._metadata, Missile._set_lighting_maximum_step_central_body_shape_metadata, max_step)

    _get_get_eoir_settings_metadata = { "offset" : _get_get_eoir_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def get_eoir_settings(self) -> "IEOIR":
        """Get the EOIR properties of the missile."""
        return self._intf.get_property(Missile._metadata, Missile._get_get_eoir_settings_metadata)

    _property_names[trajectory_type] = "trajectory_type"
    _property_names[trajectory_supported_types] = "trajectory_supported_types"
    _property_names[trajectory] = "trajectory"
    _property_names[attitude_type] = "attitude_type"
    _property_names[attitude_supported_types] = "attitude_supported_types"
    _property_names[attitude] = "attitude"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[ground_ellipses] = "ground_ellipses"
    _property_names[access_constraints] = "access_constraints"
    _property_names[export_tools] = "export_tools"
    _property_names[space_environment] = "space_environment"
    _property_names[atmosphere] = "atmosphere"
    _property_names[radar_clutter_map] = "radar_clutter_map"
    _property_names[radar_cross_section] = "radar_cross_section"
    _property_names[eclipse_bodies] = "eclipse_bodies"
    _property_names[use_terrain_in_lighting_computations] = "use_terrain_in_lighting_computations"
    _property_names[lighting_maximum_step] = "lighting_maximum_step"
    _property_names[laser_environment] = "laser_environment"
    _property_names[rf_environment] = "rf_environment"
    _property_names[lighting_maximum_step_terrain] = "lighting_maximum_step_terrain"
    _property_names[lighting_maximum_step_central_body_shape] = "lighting_maximum_step_central_body_shape"
    _property_names[get_eoir_settings] = "get_eoir_settings"

    def __init__(self, source_object=None):
        """Construct an object of type Missile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Missile)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IProvideSpatialInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IProvideSpatialInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Missile, [Missile, ISTKObject, ILifetimeInformation, IProvideSpatialInfo])

agcls.AgClassCatalog.add_catalog_entry((4766074596194277032, 2020058068808268728), Missile)
agcls.AgTypeNameMap["Missile"] = Missile

class MissileGraphics(SupportsDeleteCallback):
    """2D Graphics for missiles."""

    _num_methods = 21
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_attributes_type_method_offset = 1
    _set_attributes_type_method_offset = 2
    _is_attributes_type_supported_method_offset = 3
    _get_attributes_supported_types_method_offset = 4
    _get_attributes_method_offset = 5
    _get_pass_data_method_offset = 6
    _get_resolution_method_offset = 7
    _get_elevation_contours_method_offset = 8
    _get_ground_ellipses_method_offset = 9
    _get_range_contours_method_offset = 10
    _get_lighting_method_offset = 11
    _get_swath_method_offset = 12
    _get_label_notes_method_offset = 13
    _get_use_instance_name_label_method_offset = 14
    _set_use_instance_name_label_method_offset = 15
    _get_label_name_method_offset = 16
    _set_label_name_method_offset = 17
    _get_saa_method_offset = 18
    _get_show_graphics_method_offset = 19
    _set_show_graphics_method_offset = 20
    _get_radar_cross_section_method_offset = 21
    _metadata = {
        "iid_data" : (5017961205127807456, 11923226429626735281),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MissileGraphics)

    _get_attributes_type_metadata = { "offset" : _get_attributes_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType),) }
    @property
    def attributes_type(self) -> "VehicleGraphics2DAttributeType":
        """Type of display: basic, during access intervals, during custom intervals, or real time."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_attributes_type_metadata)

    _set_attributes_type_metadata = { "offset" : _set_attributes_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType),) }
    def set_attributes_type(self, attributes:"VehicleGraphics2DAttributeType") -> None:
        """Set the type of display."""
        return self._intf.invoke(MissileGraphics._metadata, MissileGraphics._set_attributes_type_metadata, attributes)

    _is_attributes_type_supported_metadata = { "offset" : _is_attributes_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleGraphics2DAttributeType), agmarshall.VariantBoolArg,) }
    def is_attributes_type_supported(self, attributes:"VehicleGraphics2DAttributeType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(MissileGraphics._metadata, MissileGraphics._is_attributes_type_supported_metadata, attributes, OutArg())

    _get_attributes_supported_types_metadata = { "offset" : _get_attributes_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def attributes_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_attributes_supported_types_metadata)

    _get_attributes_metadata = { "offset" : _get_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attributes(self) -> "IVehicleGraphics2DAttributes":
        """Get the 2D Graphics attributes."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_attributes_metadata)

    _get_pass_data_metadata = { "offset" : _get_pass_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pass_data(self) -> "VehicleGraphics2DTrajectoryPassData":
        """Get the 2D trajectory graphics."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_pass_data_metadata)

    _get_resolution_metadata = { "offset" : _get_resolution_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def resolution(self) -> "VehicleGraphics2DTrajectoryResolution":
        """Get the resolution graphics."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_resolution_metadata)

    _get_elevation_contours_metadata = { "offset" : _get_elevation_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elevation_contours(self) -> "VehicleGraphics2DElevationContours":
        """Get the elevation contours graphics."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_elevation_contours_metadata)

    _get_ground_ellipses_metadata = { "offset" : _get_ground_ellipses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ground_ellipses(self) -> "VehicleGraphics2DGroundEllipsesCollection":
        """Get the ground ellipses graphics."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_ground_ellipses_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics2DRangeContours":
        """Get the range contour graphics."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_range_contours_metadata)

    _get_lighting_metadata = { "offset" : _get_lighting_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def lighting(self) -> "VehicleGraphics2DLighting":
        """Get the lighting graphics."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_lighting_metadata)

    _get_swath_metadata = { "offset" : _get_swath_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def swath(self) -> "VehicleGraphics2DSwath":
        """Get the swath graphics."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_swath_metadata)

    _get_label_notes_metadata = { "offset" : _get_label_notes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_notes(self) -> "LabelNoteCollection":
        """Notes attached to the object and displayed in the 2D and 3D Graphics windows."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_label_notes_metadata)

    _get_use_instance_name_label_metadata = { "offset" : _get_use_instance_name_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_instance_name_label(self) -> bool:
        """Specify whether to use the name of the missile (as shown in the Object Browser) as its label."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_use_instance_name_label_metadata)

    _set_use_instance_name_label_metadata = { "offset" : _set_use_instance_name_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_instance_name_label.setter
    def use_instance_name_label(self, use_inst_name:bool) -> None:
        return self._intf.set_property(MissileGraphics._metadata, MissileGraphics._set_use_instance_name_label_metadata, use_inst_name)

    _get_label_name_metadata = { "offset" : _get_label_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label_name(self) -> str:
        """The user-specified name to use as a label for the missile."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_label_name_metadata)

    _set_label_name_metadata = { "offset" : _set_label_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label_name.setter
    def label_name(self, value:str) -> None:
        return self._intf.set_property(MissileGraphics._metadata, MissileGraphics._set_label_name_metadata, value)

    _get_saa_metadata = { "offset" : _get_saa_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def saa(self) -> "VehicleGraphics2DSAA":
        """Get the missile's South Atlantic Anomaly Contour properties."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_saa_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the missile are visible."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(MissileGraphics._metadata, MissileGraphics._set_show_graphics_metadata, is_visible)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(MissileGraphics._metadata, MissileGraphics._get_radar_cross_section_metadata)

    _property_names[attributes_type] = "attributes_type"
    _property_names[attributes_supported_types] = "attributes_supported_types"
    _property_names[attributes] = "attributes"
    _property_names[pass_data] = "pass_data"
    _property_names[resolution] = "resolution"
    _property_names[elevation_contours] = "elevation_contours"
    _property_names[ground_ellipses] = "ground_ellipses"
    _property_names[range_contours] = "range_contours"
    _property_names[lighting] = "lighting"
    _property_names[swath] = "swath"
    _property_names[label_notes] = "label_notes"
    _property_names[use_instance_name_label] = "use_instance_name_label"
    _property_names[label_name] = "label_name"
    _property_names[saa] = "saa"
    _property_names[show_graphics] = "show_graphics"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type MissileGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MissileGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MissileGraphics, [MissileGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5427642809864020293, 16528247019032953751), MissileGraphics)
agcls.AgTypeNameMap["MissileGraphics"] = MissileGraphics

class MissileGraphics3D(SupportsDeleteCallback):
    """3D Graphics for missiles."""

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_model_method_offset = 1
    _get_proximity_method_offset = 2
    _get_elevation_contours_method_offset = 3
    _get_covariance_pointing_contour_method_offset = 4
    _get_trajectory_systems_method_offset = 5
    _get_trajectory_method_offset = 6
    _get_offsets_method_offset = 7
    _get_range_contours_method_offset = 8
    _get_covariance_method_offset = 9
    _get_vector_method_offset = 10
    _get_data_display_method_offset = 11
    _get_model_pointing_method_offset = 12
    _get_drop_lines_method_offset = 13
    _get_vapor_trail_method_offset = 14
    _get_saa_method_offset = 15
    _get_velocity_covariance_method_offset = 16
    _get_radar_cross_section_method_offset = 17
    _metadata = {
        "iid_data" : (5068541362638575448, 12705742869317782180),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MissileGraphics3D)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "VehicleGraphics3DModelTrajectory":
        """Get the missile's 3D model graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_model_metadata)

    _get_proximity_metadata = { "offset" : _get_proximity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def proximity(self) -> "VehicleGraphics3DTrajectoryProximity":
        """Get the missile's 3D proximity graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_proximity_metadata)

    _get_elevation_contours_metadata = { "offset" : _get_elevation_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elevation_contours(self) -> "VehicleGraphics3DElevationContours":
        """Get the missile's 3D elevation contour graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_elevation_contours_metadata)

    _get_covariance_pointing_contour_metadata = { "offset" : _get_covariance_pointing_contour_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def covariance_pointing_contour(self) -> "VehicleGraphics3DCovariancePointingContour":
        """Get the missile's 3D covariance pointing graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_covariance_pointing_contour_metadata)

    _get_trajectory_systems_metadata = { "offset" : _get_trajectory_systems_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory_systems(self) -> "VehicleGraphics3DSystemsCollection":
        """Get the missile's 3D trajectory frame graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_trajectory_systems_metadata)

    _get_trajectory_metadata = { "offset" : _get_trajectory_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def trajectory(self) -> "VehicleGraphics3DTrajectory":
        """Get the missile's 3D trajectory graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_trajectory_metadata)

    _get_offsets_metadata = { "offset" : _get_offsets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def offsets(self) -> "Graphics3DOffset":
        """Get the missile's 3D offsets graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_offsets_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics3DRangeContours":
        """Get the missile's 3D range contour graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_range_contours_metadata)

    _get_covariance_metadata = { "offset" : _get_covariance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def covariance(self) -> "VehicleGraphics3DCovariance":
        """Get the missile's 3D covariance graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_covariance_metadata)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get the missile's 3D vector graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_vector_metadata)

    _get_data_display_metadata = { "offset" : _get_data_display_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_display(self) -> "Graphics3DDataDisplayCollection":
        """Get the missile's 3D data display graphics."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_data_display_metadata)

    _get_model_pointing_metadata = { "offset" : _get_model_pointing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_pointing(self) -> "Graphics3DModelPointing":
        """Use to point parts of a facility or vehicle model toward a target, such as the Sun or Earth."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_model_pointing_metadata)

    _get_drop_lines_metadata = { "offset" : _get_drop_lines_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drop_lines(self) -> "VehicleGraphics3DTrajectoryDropLines":
        """Return an interface allowing to configure vehicle's drop lines."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_drop_lines_metadata)

    _get_vapor_trail_metadata = { "offset" : _get_vapor_trail_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vapor_trail(self) -> "Graphics3DVaporTrail":
        """Vapor trail attributes."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_vapor_trail_metadata)

    _get_saa_metadata = { "offset" : _get_saa_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def saa(self) -> "VehicleGraphics3DSAA":
        """Get the missile's South Atlantic Anomaly Contour properties."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_saa_metadata)

    _get_velocity_covariance_metadata = { "offset" : _get_velocity_covariance_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def velocity_covariance(self) -> "VehicleGraphics3DVelocityCovariance":
        """Get the missile's 3D velocity covariance properties."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_velocity_covariance_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics3D":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(MissileGraphics3D._metadata, MissileGraphics3D._get_radar_cross_section_metadata)

    _property_names[model] = "model"
    _property_names[proximity] = "proximity"
    _property_names[elevation_contours] = "elevation_contours"
    _property_names[covariance_pointing_contour] = "covariance_pointing_contour"
    _property_names[trajectory_systems] = "trajectory_systems"
    _property_names[trajectory] = "trajectory"
    _property_names[offsets] = "offsets"
    _property_names[range_contours] = "range_contours"
    _property_names[covariance] = "covariance"
    _property_names[vector] = "vector"
    _property_names[data_display] = "data_display"
    _property_names[model_pointing] = "model_pointing"
    _property_names[drop_lines] = "drop_lines"
    _property_names[vapor_trail] = "vapor_trail"
    _property_names[saa] = "saa"
    _property_names[velocity_covariance] = "velocity_covariance"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type MissileGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MissileGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MissileGraphics3D, [MissileGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((4710858342373905347, 199183409367128718), MissileGraphics3D)
agcls.AgTypeNameMap["MissileGraphics3D"] = MissileGraphics3D

class Aircraft(ISTKObject, ILifetimeInformation, IGreatArcVehicle, IProvideSpatialInfo, SupportsDeleteCallback):
    """
    Interface for aircraft object.

    Examples
    --------
    Set the Attitude of the Aircraft:
    >>> # Aircraft aircraft: Aircraft object
    >>> aircraft.attitude.basic.set_profile_type(AttitudeProfile.COORDINATED_TURN)

    Add Array of Waypoints to Aircraft:
    >>> # Aircraft aircraft: Aircraft object
    >>> route = aircraft.route
    >>> ptsArray = [[37.5378, 14.2207, 3.0480, 0.0772, 2], [47.2602, 30.5517, 3.0480, 0.0772, 2]]
    >>> route.set_points_smooth_rate_and_propagate(ptsArray)
    >>> # Propagate the route
    >>> route.propagate()

    Set the Great Arc Propagator and Add Individual Waypoints to an Aircraft:
    >>> # Aircraft aircraft: Aircraft object
    >>> # Set route to great arc, method and altitude reference
    >>> aircraft.set_route_type(PropagatorType.GREAT_ARC)
    >>> route = aircraft.route
    >>> route.method = VehicleWaypointComputationMethod.DETERMINE_TIME_ACCELERATION_FROM_VELOCITY
    >>> route.set_altitude_reference_type(VehicleAltitudeReference.MEAN_SEA_LEVEL)
    >>> # Add first point
    >>> waypoint = route.waypoints.add()
    >>> waypoint.latitude = 37.5378
    >>> waypoint.longitude = 14.2207
    >>> waypoint.altitude = 5  # km
    >>> waypoint.speed = 0.1  # km/sec
    >>> # Add second point
    >>> waypoint2 = route.waypoints.add()
    >>> waypoint2.latitude = 47.2602
    >>> waypoint2.longitude = 30.5517
    >>> waypoint2.altitude = 5  # km
    >>> waypoint2.speed = 0.1  # km/sec
    >>> # Propagate the route
    >>> route.propagate()

    Create a New Aircraft (on the current scenario central body):
    >>> # STKObjectRoot root: STK Object Model root
    >>> aircraft = root.current_scenario.children.new(STKObjectType.AIRCRAFT, "MyAircraft")
    """

    _num_methods = 13
    _vtable_offset = IGreatArcVehicle._vtable_offset + IGreatArcVehicle._num_methods
    _get_graphics_method_offset = 1
    _get_graphics_3d_method_offset = 2
    _get_export_tools_method_offset = 3
    _get_atmosphere_method_offset = 4
    _get_radar_clutter_map_method_offset = 5
    _get_radar_cross_section_method_offset = 6
    _get_laser_environment_method_offset = 7
    _get_rf_environment_method_offset = 8
    _get_lighting_maximum_step_terrain_method_offset = 9
    _set_lighting_maximum_step_terrain_method_offset = 10
    _get_lighting_maximum_step_central_body_shape_method_offset = 11
    _set_lighting_maximum_step_central_body_shape_method_offset = 12
    _get_get_eoir_settings_method_offset = 13
    _metadata = {
        "iid_data" : (4704263215669986350, 1653773776640579204),
        "vtable_reference" : IGreatArcVehicle._vtable_offset + IGreatArcVehicle._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Aircraft)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "AircraftGraphics":
        """Get the aircraft's 2D Graphics properties."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "AircraftGraphics3D":
        """Get the aircraft's 3D Graphics properties."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_graphics_3d_metadata)

    _get_export_tools_metadata = { "offset" : _get_export_tools_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def export_tools(self) -> "AircraftExportTools":
        """Return the AircraftExportTools interface."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_export_tools_metadata)

    _get_atmosphere_metadata = { "offset" : _get_atmosphere_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmosphere(self) -> "Atmosphere":
        """Do not use this property, as it is deprecated. The new RFEnvironment property can be used to configure atmospheric models."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_atmosphere_metadata)

    _get_radar_clutter_map_metadata = { "offset" : _get_radar_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_clutter_map(self) -> "IRadarClutterMapInheritable":
        """Return the radar clutter map."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_radar_clutter_map_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionInheritable":
        """Return the radar cross sectoin."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_radar_cross_section_metadata)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "PlatformLaserEnvironment":
        """Get the laser environment."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_laser_environment_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "IPlatformRFEnvironment":
        """Get the RF environment."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_rf_environment_metadata)

    _get_lighting_maximum_step_terrain_metadata = { "offset" : _get_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_terrain(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_lighting_maximum_step_terrain_metadata)

    _set_lighting_maximum_step_terrain_metadata = { "offset" : _set_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_terrain.setter
    def lighting_maximum_step_terrain(self, max_step:float) -> None:
        return self._intf.set_property(Aircraft._metadata, Aircraft._set_lighting_maximum_step_terrain_metadata, max_step)

    _get_lighting_maximum_step_central_body_shape_metadata = { "offset" : _get_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_central_body_shape(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is false. Uses Time Dimension."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_lighting_maximum_step_central_body_shape_metadata)

    _set_lighting_maximum_step_central_body_shape_metadata = { "offset" : _set_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_central_body_shape.setter
    def lighting_maximum_step_central_body_shape(self, max_step:float) -> None:
        return self._intf.set_property(Aircraft._metadata, Aircraft._set_lighting_maximum_step_central_body_shape_metadata, max_step)

    _get_get_eoir_settings_metadata = { "offset" : _get_get_eoir_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def get_eoir_settings(self) -> "IEOIR":
        """Get the EOIR properties of the aircraft."""
        return self._intf.get_property(Aircraft._metadata, Aircraft._get_get_eoir_settings_metadata)

    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[export_tools] = "export_tools"
    _property_names[atmosphere] = "atmosphere"
    _property_names[radar_clutter_map] = "radar_clutter_map"
    _property_names[radar_cross_section] = "radar_cross_section"
    _property_names[laser_environment] = "laser_environment"
    _property_names[rf_environment] = "rf_environment"
    _property_names[lighting_maximum_step_terrain] = "lighting_maximum_step_terrain"
    _property_names[lighting_maximum_step_central_body_shape] = "lighting_maximum_step_central_body_shape"
    _property_names[get_eoir_settings] = "get_eoir_settings"

    def __init__(self, source_object=None):
        """Construct an object of type Aircraft."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Aircraft)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IGreatArcVehicle.__init__(self, source_object)
        IProvideSpatialInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IGreatArcVehicle._private_init(self, intf)
        IProvideSpatialInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Aircraft, [Aircraft, ISTKObject, ILifetimeInformation, IGreatArcVehicle, IProvideSpatialInfo])

agcls.AgClassCatalog.add_catalog_entry((5598803082448801060, 4622941036067221656), Aircraft)
agcls.AgTypeNameMap["Aircraft"] = Aircraft

class AircraftGraphics(IGreatArcGraphics, SupportsDeleteCallback):
    """2D Graphics for an aircraft."""

    _num_methods = 3
    _vtable_offset = IGreatArcGraphics._vtable_offset + IGreatArcGraphics._num_methods
    _get_elevation_contours_method_offset = 1
    _get_swath_method_offset = 2
    _get_radar_cross_section_method_offset = 3
    _metadata = {
        "iid_data" : (4693935093132105937, 15273263332386548926),
        "vtable_reference" : IGreatArcGraphics._vtable_offset + IGreatArcGraphics._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AircraftGraphics)

    _get_elevation_contours_metadata = { "offset" : _get_elevation_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elevation_contours(self) -> "VehicleGraphics2DElevationContours":
        """Get the aircraft's 2D elevation contour graphics."""
        return self._intf.get_property(AircraftGraphics._metadata, AircraftGraphics._get_elevation_contours_metadata)

    _get_swath_metadata = { "offset" : _get_swath_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def swath(self) -> "VehicleGraphics2DSwath":
        """Get the aircraft's 2D swath graphics."""
        return self._intf.get_property(AircraftGraphics._metadata, AircraftGraphics._get_swath_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(AircraftGraphics._metadata, AircraftGraphics._get_radar_cross_section_metadata)

    _property_names[elevation_contours] = "elevation_contours"
    _property_names[swath] = "swath"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type AircraftGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AircraftGraphics)
        IGreatArcGraphics.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGreatArcGraphics._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AircraftGraphics, [AircraftGraphics, IGreatArcGraphics])

agcls.AgClassCatalog.add_catalog_entry((5399725542421421016, 8203267188137607068), AircraftGraphics)
agcls.AgTypeNameMap["AircraftGraphics"] = AircraftGraphics

class AircraftGraphics3D(IGreatArcGraphics3D, SupportsDeleteCallback):
    """3D Graphics properties for an aircraft."""

    _num_methods = 6
    _vtable_offset = IGreatArcGraphics3D._vtable_offset + IGreatArcGraphics3D._num_methods
    _get_proximity_method_offset = 1
    _get_elevation_contours_method_offset = 2
    _get_covariance_pointing_contour_method_offset = 3
    _get_drop_lines_method_offset = 4
    _get_vapor_trail_method_offset = 5
    _get_radar_cross_section_method_offset = 6
    _metadata = {
        "iid_data" : (5046595847085390017, 14762125401678333576),
        "vtable_reference" : IGreatArcGraphics3D._vtable_offset + IGreatArcGraphics3D._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AircraftGraphics3D)

    _get_proximity_metadata = { "offset" : _get_proximity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def proximity(self) -> "VehicleGraphics3DRouteProximity":
        """Get the aircraft's 3D proximity properties."""
        return self._intf.get_property(AircraftGraphics3D._metadata, AircraftGraphics3D._get_proximity_metadata)

    _get_elevation_contours_metadata = { "offset" : _get_elevation_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elevation_contours(self) -> "VehicleGraphics3DElevationContours":
        """Get the aircraft's 3D elevation contour properties."""
        return self._intf.get_property(AircraftGraphics3D._metadata, AircraftGraphics3D._get_elevation_contours_metadata)

    _get_covariance_pointing_contour_metadata = { "offset" : _get_covariance_pointing_contour_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def covariance_pointing_contour(self) -> "VehicleGraphics3DCovariancePointingContour":
        """Get the aircraft's 3D covariance pointing properties."""
        return self._intf.get_property(AircraftGraphics3D._metadata, AircraftGraphics3D._get_covariance_pointing_contour_metadata)

    _get_drop_lines_metadata = { "offset" : _get_drop_lines_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drop_lines(self) -> "VehicleGraphics3DRouteDropLines":
        """Return an interface allowing to configure vehicle's drop lines."""
        return self._intf.get_property(AircraftGraphics3D._metadata, AircraftGraphics3D._get_drop_lines_metadata)

    _get_vapor_trail_metadata = { "offset" : _get_vapor_trail_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vapor_trail(self) -> "Graphics3DVaporTrail":
        """Vapor trail attributes."""
        return self._intf.get_property(AircraftGraphics3D._metadata, AircraftGraphics3D._get_vapor_trail_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics3D":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(AircraftGraphics3D._metadata, AircraftGraphics3D._get_radar_cross_section_metadata)

    _property_names[proximity] = "proximity"
    _property_names[elevation_contours] = "elevation_contours"
    _property_names[covariance_pointing_contour] = "covariance_pointing_contour"
    _property_names[drop_lines] = "drop_lines"
    _property_names[vapor_trail] = "vapor_trail"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type AircraftGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AircraftGraphics3D)
        IGreatArcGraphics3D.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGreatArcGraphics3D._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AircraftGraphics3D, [AircraftGraphics3D, IGreatArcGraphics3D])

agcls.AgClassCatalog.add_catalog_entry((5736545164130287225, 5559785758759827386), AircraftGraphics3D)
agcls.AgTypeNameMap["AircraftGraphics3D"] = AircraftGraphics3D

class Ship(ISTKObject, ILifetimeInformation, IGreatArcVehicle, IProvideSpatialInfo, SupportsDeleteCallback):
    """Interface for a ship object."""

    _num_methods = 13
    _vtable_offset = IGreatArcVehicle._vtable_offset + IGreatArcVehicle._num_methods
    _get_graphics_method_offset = 1
    _get_graphics_3d_method_offset = 2
    _get_export_tools_method_offset = 3
    _get_atmosphere_method_offset = 4
    _get_radar_clutter_map_method_offset = 5
    _get_radar_cross_section_method_offset = 6
    _get_laser_environment_method_offset = 7
    _get_rf_environment_method_offset = 8
    _get_lighting_maximum_step_terrain_method_offset = 9
    _set_lighting_maximum_step_terrain_method_offset = 10
    _get_lighting_maximum_step_central_body_shape_method_offset = 11
    _set_lighting_maximum_step_central_body_shape_method_offset = 12
    _get_get_eoir_settings_method_offset = 13
    _metadata = {
        "iid_data" : (5738238908827570432, 12741791009286409905),
        "vtable_reference" : IGreatArcVehicle._vtable_offset + IGreatArcVehicle._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Ship)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "ShipGraphics":
        """Get the ship's 2D Graphics properties."""
        return self._intf.get_property(Ship._metadata, Ship._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "ShipGraphics3D":
        """Get the ship's 3D Graphics properties."""
        return self._intf.get_property(Ship._metadata, Ship._get_graphics_3d_metadata)

    _get_export_tools_metadata = { "offset" : _get_export_tools_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def export_tools(self) -> "ShipExportTools":
        """Return the ShipExportTools interface."""
        return self._intf.get_property(Ship._metadata, Ship._get_export_tools_metadata)

    _get_atmosphere_metadata = { "offset" : _get_atmosphere_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmosphere(self) -> "Atmosphere":
        """Do not use this property, as it is deprecated. The new RFEnvironment property can be used to configure atmospheric models."""
        return self._intf.get_property(Ship._metadata, Ship._get_atmosphere_metadata)

    _get_radar_clutter_map_metadata = { "offset" : _get_radar_clutter_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_clutter_map(self) -> "IRadarClutterMapInheritable":
        """Return the radar clutter map."""
        return self._intf.get_property(Ship._metadata, Ship._get_radar_clutter_map_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionInheritable":
        """Return the radar cross sectoin."""
        return self._intf.get_property(Ship._metadata, Ship._get_radar_cross_section_metadata)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "PlatformLaserEnvironment":
        """Get the laser environment."""
        return self._intf.get_property(Ship._metadata, Ship._get_laser_environment_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "IPlatformRFEnvironment":
        """Get the RF environment."""
        return self._intf.get_property(Ship._metadata, Ship._get_rf_environment_metadata)

    _get_lighting_maximum_step_terrain_metadata = { "offset" : _get_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_terrain(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension."""
        return self._intf.get_property(Ship._metadata, Ship._get_lighting_maximum_step_terrain_metadata)

    _set_lighting_maximum_step_terrain_metadata = { "offset" : _set_lighting_maximum_step_terrain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_terrain.setter
    def lighting_maximum_step_terrain(self, max_step:float) -> None:
        return self._intf.set_property(Ship._metadata, Ship._set_lighting_maximum_step_terrain_metadata, max_step)

    _get_lighting_maximum_step_central_body_shape_metadata = { "offset" : _get_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lighting_maximum_step_central_body_shape(self) -> float:
        """Get or set the maximum step size to use when computing lighting when UseTerrainInLightingComputations is false. Uses Time Dimension."""
        return self._intf.get_property(Ship._metadata, Ship._get_lighting_maximum_step_central_body_shape_metadata)

    _set_lighting_maximum_step_central_body_shape_metadata = { "offset" : _set_lighting_maximum_step_central_body_shape_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lighting_maximum_step_central_body_shape.setter
    def lighting_maximum_step_central_body_shape(self, max_step:float) -> None:
        return self._intf.set_property(Ship._metadata, Ship._set_lighting_maximum_step_central_body_shape_metadata, max_step)

    _get_get_eoir_settings_metadata = { "offset" : _get_get_eoir_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def get_eoir_settings(self) -> "IEOIR":
        """Get the EOIR properties of the ship."""
        return self._intf.get_property(Ship._metadata, Ship._get_get_eoir_settings_metadata)

    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[export_tools] = "export_tools"
    _property_names[atmosphere] = "atmosphere"
    _property_names[radar_clutter_map] = "radar_clutter_map"
    _property_names[radar_cross_section] = "radar_cross_section"
    _property_names[laser_environment] = "laser_environment"
    _property_names[rf_environment] = "rf_environment"
    _property_names[lighting_maximum_step_terrain] = "lighting_maximum_step_terrain"
    _property_names[lighting_maximum_step_central_body_shape] = "lighting_maximum_step_central_body_shape"
    _property_names[get_eoir_settings] = "get_eoir_settings"

    def __init__(self, source_object=None):
        """Construct an object of type Ship."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Ship)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IGreatArcVehicle.__init__(self, source_object)
        IProvideSpatialInfo.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IGreatArcVehicle._private_init(self, intf)
        IProvideSpatialInfo._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Ship, [Ship, ISTKObject, ILifetimeInformation, IGreatArcVehicle, IProvideSpatialInfo])

agcls.AgClassCatalog.add_catalog_entry((4723299326596551303, 17883237041117346177), Ship)
agcls.AgTypeNameMap["Ship"] = Ship

class ShipGraphics(IGreatArcGraphics, SupportsDeleteCallback):
    """2D Graphics options for a ship."""

    _num_methods = 1
    _vtable_offset = IGreatArcGraphics._vtable_offset + IGreatArcGraphics._num_methods
    _get_radar_cross_section_method_offset = 1
    _metadata = {
        "iid_data" : (5271601972207995945, 6897111032775360671),
        "vtable_reference" : IGreatArcGraphics._vtable_offset + IGreatArcGraphics._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ShipGraphics)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(ShipGraphics._metadata, ShipGraphics._get_radar_cross_section_metadata)

    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type ShipGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ShipGraphics)
        IGreatArcGraphics.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGreatArcGraphics._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ShipGraphics, [ShipGraphics, IGreatArcGraphics])

agcls.AgClassCatalog.add_catalog_entry((5295158029489646003, 200589344195474596), ShipGraphics)
agcls.AgTypeNameMap["ShipGraphics"] = ShipGraphics

class ShipGraphics3D(IGreatArcGraphics3D, SupportsDeleteCallback):
    """3D Graphics attributes for a ship."""

    _num_methods = 4
    _vtable_offset = IGreatArcGraphics3D._vtable_offset + IGreatArcGraphics3D._num_methods
    _get_proximity_method_offset = 1
    _get_drop_lines_method_offset = 2
    _get_vapor_trail_method_offset = 3
    _get_radar_cross_section_method_offset = 4
    _metadata = {
        "iid_data" : (5045601763771723878, 13567293736388189841),
        "vtable_reference" : IGreatArcGraphics3D._vtable_offset + IGreatArcGraphics3D._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ShipGraphics3D)

    _get_proximity_metadata = { "offset" : _get_proximity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def proximity(self) -> "VehicleGraphics3DRouteProximity":
        """Get the ship's 3D proximity properties."""
        return self._intf.get_property(ShipGraphics3D._metadata, ShipGraphics3D._get_proximity_metadata)

    _get_drop_lines_metadata = { "offset" : _get_drop_lines_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drop_lines(self) -> "VehicleGraphics3DRouteDropLines":
        """Return an interface allowing to configure vehicle's drop lines."""
        return self._intf.get_property(ShipGraphics3D._metadata, ShipGraphics3D._get_drop_lines_metadata)

    _get_vapor_trail_metadata = { "offset" : _get_vapor_trail_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vapor_trail(self) -> "Graphics3DVaporTrail":
        """Vapor trail attributes."""
        return self._intf.get_property(ShipGraphics3D._metadata, ShipGraphics3D._get_vapor_trail_metadata)

    _get_radar_cross_section_metadata = { "offset" : _get_radar_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radar_cross_section(self) -> "RadarCrossSectionGraphics3D":
        """Get the radar cross section graphics interface."""
        return self._intf.get_property(ShipGraphics3D._metadata, ShipGraphics3D._get_radar_cross_section_metadata)

    _property_names[proximity] = "proximity"
    _property_names[drop_lines] = "drop_lines"
    _property_names[vapor_trail] = "vapor_trail"
    _property_names[radar_cross_section] = "radar_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type ShipGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ShipGraphics3D)
        IGreatArcGraphics3D.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGreatArcGraphics3D._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ShipGraphics3D, [ShipGraphics3D, IGreatArcGraphics3D])

agcls.AgClassCatalog.add_catalog_entry((4714545441835969534, 4259285502276759209), ShipGraphics3D)
agcls.AgTypeNameMap["ShipGraphics3D"] = ShipGraphics3D

class MTOTrackPoint(SupportsDeleteCallback):
    """The points defined for the selected track."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_method_offset = 1
    _get_latitude_method_offset = 2
    _set_latitude_method_offset = 3
    _get_longitude_method_offset = 4
    _set_longitude_method_offset = 5
    _get_altitude_method_offset = 6
    _set_altitude_method_offset = 7
    _get_position_method_offset = 8
    _get_identifier_method_offset = 9
    _metadata = {
        "iid_data" : (5625770041435812469, 2852107215259232910),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOTrackPoint)

    _get_time_metadata = { "offset" : _get_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def time(self) -> typing.Any:
        """Get the time at which the point occurs. Uses DateFormat Dimension."""
        return self._intf.get_property(MTOTrackPoint._metadata, MTOTrackPoint._get_time_metadata)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Get or set the latitude of the point. Uses Angle Dimension."""
        return self._intf.get_property(MTOTrackPoint._metadata, MTOTrackPoint._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude.setter
    def latitude(self, latitude:float) -> None:
        return self._intf.set_property(MTOTrackPoint._metadata, MTOTrackPoint._set_latitude_metadata, latitude)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Get or set the longitude of the point. Uses Angle Dimension."""
        return self._intf.get_property(MTOTrackPoint._metadata, MTOTrackPoint._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, longitude:float) -> None:
        return self._intf.set_property(MTOTrackPoint._metadata, MTOTrackPoint._set_longitude_metadata, longitude)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Get or set the altitude of the point. Uses Distance Dimension."""
        return self._intf.get_property(MTOTrackPoint._metadata, MTOTrackPoint._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, altitude:float) -> None:
        return self._intf.set_property(MTOTrackPoint._metadata, MTOTrackPoint._set_altitude_metadata, altitude)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "IPosition":
        """Whether to interpolate the track's position between each defined point. The track's marker and label position will be linearly interpolated between the track points for the current animation time."""
        return self._intf.get_property(MTOTrackPoint._metadata, MTOTrackPoint._get_position_metadata)

    _get_identifier_metadata = { "offset" : _get_identifier_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def identifier(self) -> int:
        """Get the ID number assigned to the track. This field is auto-populated in numeric sequential order, and cannot be modified."""
        return self._intf.get_property(MTOTrackPoint._metadata, MTOTrackPoint._get_identifier_metadata)

    _property_names[time] = "time"
    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[altitude] = "altitude"
    _property_names[position] = "position"
    _property_names[identifier] = "identifier"

    def __init__(self, source_object=None):
        """Construct an object of type MTOTrackPoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOTrackPoint)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOTrackPoint, [MTOTrackPoint, ])

agcls.AgClassCatalog.add_catalog_entry((5533838319076734489, 13306724129389576323), MTOTrackPoint)
agcls.AgTypeNameMap["MTOTrackPoint"] = MTOTrackPoint

class MTOTrackPointCollection(SupportsDeleteCallback):
    """MTO track point list."""

    _num_methods = 12
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _add_point_method_offset = 7
    _load_points_method_offset = 8
    _extend_method_offset = 9
    _get_recycling_method_offset = 10
    _set_recycling_method_offset = 11
    _insert_point_method_offset = 12
    _metadata = {
        "iid_data" : (5259823187042311458, 11310200153673461155),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOTrackPointCollection)
    def __iter__(self):
        """Create an iterator for the MTOTrackPointCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "MTOTrackPoint":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(MTOTrackPointCollection._metadata, MTOTrackPointCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "MTOTrackPoint":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(MTOTrackPointCollection._metadata, MTOTrackPointCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(MTOTrackPointCollection._metadata, MTOTrackPointCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using a specified index."""
        return self._intf.invoke(MTOTrackPointCollection._metadata, MTOTrackPointCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(MTOTrackPointCollection._metadata, MTOTrackPointCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def add(self, time:typing.Any) -> "MTOTrackPoint":
        """Add a new element to the collection. Time uses DateFormat Dimension."""
        return self._intf.invoke(MTOTrackPointCollection._metadata, MTOTrackPointCollection._add_metadata, time, OutArg())

    _add_point_metadata = { "offset" : _add_point_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add_point(self, time:typing.Any, latitude:float, longitude:float, altitude:float) -> "MTOTrackPoint":
        """Add a new element to the collection using specified point data. Time uses DateFormat Dimension. Latitude/Longitude use Angle Dimension. Altitude uses Distance Dimension."""
        return self._intf.invoke(MTOTrackPointCollection._metadata, MTOTrackPointCollection._add_point_metadata, time, latitude, longitude, altitude, OutArg())

    _load_points_metadata = { "offset" : _load_points_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def load_points(self, mto_track_points:str) -> None:
        """Load MTO track points."""
        return self._intf.invoke(MTOTrackPointCollection._metadata, MTOTrackPointCollection._load_points_metadata, mto_track_points)

    _extend_metadata = { "offset" : _extend_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg,) }
    def extend(self, time_vals:list, lat_vals:list, lon_vals:list, alt_vals:list) -> None:
        """Extend the track with the specified point data."""
        return self._intf.invoke(MTOTrackPointCollection._metadata, MTOTrackPointCollection._extend_metadata, time_vals, lat_vals, lon_vals, alt_vals)

    _get_recycling_metadata = { "offset" : _get_recycling_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def recycling(self) -> bool:
        """Recycling is used for optimizing performance in iterative modification or addition of elements in a particular collection (see Remarks section for this property)."""
        return self._intf.get_property(MTOTrackPointCollection._metadata, MTOTrackPointCollection._get_recycling_metadata)

    _set_recycling_metadata = { "offset" : _set_recycling_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @recycling.setter
    def recycling(self, value:bool) -> None:
        return self._intf.set_property(MTOTrackPointCollection._metadata, MTOTrackPointCollection._set_recycling_metadata, value)

    _insert_point_metadata = { "offset" : _insert_point_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def insert_point(self, time:typing.Any, latitude:float, longitude:float, altitude:float) -> None:
        """Insert a point into the track point collection. Uses the time to determine where the point should be inserted. This is slower than AddPoint, AddPoints or Extend."""
        return self._intf.invoke(MTOTrackPointCollection._metadata, MTOTrackPointCollection._insert_point_metadata, time, latitude, longitude, altitude)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[recycling] = "recycling"

    def __init__(self, source_object=None):
        """Construct an object of type MTOTrackPointCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOTrackPointCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOTrackPointCollection, [MTOTrackPointCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5694436131166701960, 8298547777761444531), MTOTrackPointCollection)
agcls.AgTypeNameMap["MTOTrackPointCollection"] = MTOTrackPointCollection

class MTOTrack(SupportsDeleteCallback):
    """List of MTO tracks with basic information about each."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _set_name_method_offset = 2
    _get_interpolate_method_offset = 3
    _set_interpolate_method_offset = 4
    _get_identifier_method_offset = 5
    _get_points_method_offset = 6
    _metadata = {
        "iid_data" : (5576364136887474306, 1297621235497595032),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOTrack)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get or set the name assigned to the track."""
        return self._intf.get_property(MTOTrack._metadata, MTOTrack._get_name_metadata)

    _set_name_metadata = { "offset" : _set_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @name.setter
    def name(self, name:str) -> None:
        return self._intf.set_property(MTOTrack._metadata, MTOTrack._set_name_metadata, name)

    _get_interpolate_metadata = { "offset" : _get_interpolate_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def interpolate(self) -> bool:
        """Opt whether the track's position will be linearly interpolated between points, or will only be displayed at the defined points at the defined times."""
        return self._intf.get_property(MTOTrack._metadata, MTOTrack._get_interpolate_metadata)

    _set_interpolate_metadata = { "offset" : _set_interpolate_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @interpolate.setter
    def interpolate(self, interpolate:bool) -> None:
        return self._intf.set_property(MTOTrack._metadata, MTOTrack._set_interpolate_metadata, interpolate)

    _get_identifier_metadata = { "offset" : _get_identifier_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def identifier(self) -> int:
        """Get the identification number of the track."""
        return self._intf.get_property(MTOTrack._metadata, MTOTrack._get_identifier_metadata)

    _get_points_metadata = { "offset" : _get_points_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def points(self) -> "MTOTrackPointCollection":
        """Get the collection of MTO track points."""
        return self._intf.get_property(MTOTrack._metadata, MTOTrack._get_points_metadata)

    _property_names[name] = "name"
    _property_names[interpolate] = "interpolate"
    _property_names[identifier] = "identifier"
    _property_names[points] = "points"

    def __init__(self, source_object=None):
        """Construct an object of type MTOTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOTrack)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOTrack, [MTOTrack, ])

agcls.AgClassCatalog.add_catalog_entry((5229790817535668552, 4482212125257099933), MTOTrack)
agcls.AgTypeNameMap["MTOTrack"] = MTOTrack

class MTOTrackCollection(SupportsDeleteCallback):
    """MTO Track List."""

    _num_methods = 20
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _add_track_method_offset = 7
    _load_command_file_method_offset = 8
    _get_track_from_identifier_method_offset = 9
    _get_recycling_method_offset = 10
    _set_recycling_method_offset = 11
    _remove_method_offset = 12
    _remove_by_identifier_method_offset = 13
    _add_tracks_method_offset = 14
    _remove_tracks_method_offset = 15
    _remove_tracks_by_identifier_method_offset = 16
    _add_tracks_with_position_data_method_offset = 17
    _extend_tracks_with_position_data_method_offset = 18
    _set_input_data_vector_geometry_tool_system_name_method_offset = 19
    _clear_input_data_system_method_offset = 20
    _metadata = {
        "iid_data" : (5482292196216358351, 590691586732734638),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOTrackCollection)
    def __iter__(self):
        """Create an iterator for the MTOTrackCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "MTOTrack":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(MTOTrackCollection._metadata, MTOTrackCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "MTOTrack":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(MTOTrackCollection._metadata, MTOTrackCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using a specified index."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def add(self, track_id:int) -> "MTOTrack":
        """Add a new element to the collection."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._add_metadata, track_id, OutArg())

    _add_track_metadata = { "offset" : _add_track_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def add_track(self, track_id:int, time_vals:list, lat_vals:list, lon_vals:list, alt_vals:list) -> "MTOTrack":
        """Add a new track with the specified point data."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._add_track_metadata, track_id, time_vals, lat_vals, lon_vals, alt_vals, OutArg())

    _load_command_file_metadata = { "offset" : _load_command_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def load_command_file(self, command_file:str) -> None:
        """Load Track Command File."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._load_command_file_metadata, command_file)

    _get_track_from_identifier_metadata = { "offset" : _get_track_from_identifier_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def get_track_from_identifier(self, track_id:int) -> "MTOTrack":
        """Given a track id, returns an element in the collection."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._get_track_from_identifier_metadata, track_id, OutArg())

    _get_recycling_metadata = { "offset" : _get_recycling_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def recycling(self) -> bool:
        """Recycling is used for optimizing performance in iterative modification or addition of elements in a particular collection (see Remarks section for this property)."""
        return self._intf.get_property(MTOTrackCollection._metadata, MTOTrackCollection._get_recycling_metadata)

    _set_recycling_metadata = { "offset" : _set_recycling_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @recycling.setter
    def recycling(self, value:bool) -> None:
        return self._intf.set_property(MTOTrackCollection._metadata, MTOTrackCollection._set_recycling_metadata, value)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("MTOTrack"),) }
    def remove(self, track:"MTOTrack") -> None:
        """Remove an element from the collection using a specified track."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._remove_metadata, track)

    _remove_by_identifier_metadata = { "offset" : _remove_by_identifier_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_by_identifier(self, track_id:int) -> None:
        """Remove an element from the collection using a specified id."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._remove_by_identifier_metadata, track_id)

    _add_tracks_metadata = { "offset" : _add_tracks_method_offset,
            "arg_types" : (agcom.LONG, agcom.LONG, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LongArg, agmarshall.LongArg, agmarshall.LPSafearrayArg,) }
    def add_tracks(self, starting_track_id:int, numberof_tracks:int) -> list:
        """Add and returns the desired number of new tracks starting with the desired id."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._add_tracks_metadata, starting_track_id, numberof_tracks, OutArg())

    _remove_tracks_metadata = { "offset" : _remove_tracks_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def remove_tracks(self, tracks:list) -> None:
        """Remove the provided tracks."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._remove_tracks_metadata, tracks)

    _remove_tracks_by_identifier_metadata = { "offset" : _remove_tracks_by_identifier_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def remove_tracks_by_identifier(self, track_ids:list) -> None:
        """Remove tracks based on the provided Ids."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._remove_tracks_by_identifier_metadata, track_ids)

    _add_tracks_with_position_data_metadata = { "offset" : _add_tracks_with_position_data_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), agcom.LONG, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.EnumArg(MTOInputDataType), agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg,) }
    def add_tracks_with_position_data(self, track_ids_array:list, num_pts_per_track_array:list, datatype:"MTOInputDataType", times_array:list, x_or_lats_array:list, y_or_lons_array:list, z_or_alts_array:list) -> None:
        """Add new track with the specified position data."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._add_tracks_with_position_data_metadata, track_ids_array, num_pts_per_track_array, datatype, times_array, x_or_lats_array, y_or_lons_array, z_or_alts_array)

    _extend_tracks_with_position_data_metadata = { "offset" : _extend_tracks_with_position_data_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), agcom.LONG, POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.EnumArg(MTOInputDataType), agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg,) }
    def extend_tracks_with_position_data(self, track_ids_array:list, num_pts_per_track_array:list, datatype:"MTOInputDataType", times_array:list, x_or_lats_array:list, y_or_lons_array:list, z_or_alts_array:list) -> None:
        """Extend tracks with the specified position data."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._extend_tracks_with_position_data_metadata, track_ids_array, num_pts_per_track_array, datatype, times_array, x_or_lats_array, y_or_lons_array, z_or_alts_array)

    _set_input_data_vector_geometry_tool_system_name_metadata = { "offset" : _set_input_data_vector_geometry_tool_system_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_input_data_vector_geometry_tool_system_name(self, command_system:str) -> None:
        """Set VGT Data System to MTO tracks."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._set_input_data_vector_geometry_tool_system_name_metadata, command_system)

    _clear_input_data_system_metadata = { "offset" : _clear_input_data_system_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear_input_data_system(self) -> None:
        """Remove VGT Data System from MTO tracks."""
        return self._intf.invoke(MTOTrackCollection._metadata, MTOTrackCollection._clear_input_data_system_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[recycling] = "recycling"

    def __init__(self, source_object=None):
        """Construct an object of type MTOTrackCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOTrackCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOTrackCollection, [MTOTrackCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5124514072468574255, 17344343059602614927), MTOTrackCollection)
agcls.AgTypeNameMap["MTOTrackCollection"] = MTOTrackCollection

class MTODefaultTrack(SupportsDeleteCallback):
    """Default MTO track."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _set_name_method_offset = 2
    _get_interpolate_method_offset = 3
    _set_interpolate_method_offset = 4
    _metadata = {
        "iid_data" : (5608850453575230999, 7988184028328294574),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTODefaultTrack)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get or set the name assigned to the track."""
        return self._intf.get_property(MTODefaultTrack._metadata, MTODefaultTrack._get_name_metadata)

    _set_name_metadata = { "offset" : _set_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @name.setter
    def name(self, name:str) -> None:
        return self._intf.set_property(MTODefaultTrack._metadata, MTODefaultTrack._set_name_metadata, name)

    _get_interpolate_metadata = { "offset" : _get_interpolate_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def interpolate(self) -> bool:
        """Opt whether the track's position will be linearly interpolated between points, or will only be displayed at the defined points at the defined times."""
        return self._intf.get_property(MTODefaultTrack._metadata, MTODefaultTrack._get_interpolate_metadata)

    _set_interpolate_metadata = { "offset" : _set_interpolate_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @interpolate.setter
    def interpolate(self, interpolate:bool) -> None:
        return self._intf.set_property(MTODefaultTrack._metadata, MTODefaultTrack._set_interpolate_metadata, interpolate)

    _property_names[name] = "name"
    _property_names[interpolate] = "interpolate"

    def __init__(self, source_object=None):
        """Construct an object of type MTODefaultTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTODefaultTrack)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTODefaultTrack, [MTODefaultTrack, ])

agcls.AgClassCatalog.add_catalog_entry((5597715374198092560, 2768990189560701825), MTODefaultTrack)
agcls.AgTypeNameMap["MTODefaultTrack"] = MTODefaultTrack

class MTOGlobalTrackOptions(SupportsDeleteCallback):
    """Global MTO track options."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_save_track_data_method_offset = 1
    _set_save_track_data_method_offset = 2
    _get_computation_track_identifier_method_offset = 3
    _set_computation_track_identifier_method_offset = 4
    _get_block_size_method_offset = 5
    _set_block_size_method_offset = 6
    _get_altitude_reference_method_offset = 7
    _set_altitude_reference_method_offset = 8
    _get_is_static_method_offset = 9
    _set_is_static_method_offset = 10
    _get_maximum_number_of_points_before_pruning_method_offset = 11
    _set_maximum_number_of_points_before_pruning_method_offset = 12
    _metadata = {
        "iid_data" : (5192993763303228496, 14645312543675095728),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGlobalTrackOptions)

    _get_save_track_data_metadata = { "offset" : _get_save_track_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_track_data(self) -> bool:
        """Opt whether to save the tracks you define with the scenario. Otherwise, the MTO will be saved with the scenario, but all track data will be discarded."""
        return self._intf.get_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._get_save_track_data_metadata)

    _set_save_track_data_metadata = { "offset" : _set_save_track_data_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @save_track_data.setter
    def save_track_data(self, save_track_data:bool) -> None:
        return self._intf.set_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._set_save_track_data_metadata, save_track_data)

    _get_computation_track_identifier_metadata = { "offset" : _get_computation_track_identifier_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def computation_track_identifier(self) -> int:
        """Get or set the ID of the track to be referenced for working with other tools."""
        return self._intf.get_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._get_computation_track_identifier_metadata)

    _set_computation_track_identifier_metadata = { "offset" : _set_computation_track_identifier_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @computation_track_identifier.setter
    def computation_track_identifier(self, track_id:int) -> None:
        return self._intf.set_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._set_computation_track_identifier_metadata, track_id)

    _get_block_size_metadata = { "offset" : _get_block_size_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def block_size(self) -> int:
        """Block size used when allocating new tracks. Dimensionless."""
        return self._intf.get_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._get_block_size_metadata)

    _set_block_size_metadata = { "offset" : _set_block_size_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @block_size.setter
    def block_size(self, block_size:int) -> None:
        return self._intf.set_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._set_block_size_metadata, block_size)

    _get_altitude_reference_metadata = { "offset" : _get_altitude_reference_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AltitudeReferenceType),) }
    @property
    def altitude_reference(self) -> "AltitudeReferenceType":
        """Criterion used to reference the altitude. A member of the AltitudeReferenceType enumeration."""
        return self._intf.get_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._get_altitude_reference_metadata)

    _set_altitude_reference_metadata = { "offset" : _set_altitude_reference_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AltitudeReferenceType),) }
    @altitude_reference.setter
    def altitude_reference(self, alt_ref:"AltitudeReferenceType") -> None:
        return self._intf.set_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._set_altitude_reference_metadata, alt_ref)

    _get_is_static_metadata = { "offset" : _get_is_static_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_static(self) -> bool:
        """Opt whether to make the MTO static."""
        return self._intf.get_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._get_is_static_metadata)

    _set_is_static_metadata = { "offset" : _set_is_static_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @is_static.setter
    def is_static(self, is_static:bool) -> None:
        return self._intf.set_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._set_is_static_metadata, is_static)

    _get_maximum_number_of_points_before_pruning_metadata = { "offset" : _get_maximum_number_of_points_before_pruning_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_number_of_points_before_pruning(self) -> int:
        """Prune the tracks by keeping a maximum number of points. Dimensionless."""
        return self._intf.get_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._get_maximum_number_of_points_before_pruning_metadata)

    _set_maximum_number_of_points_before_pruning_metadata = { "offset" : _set_maximum_number_of_points_before_pruning_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_number_of_points_before_pruning.setter
    def maximum_number_of_points_before_pruning(self, prune_max_num_pts:int) -> None:
        return self._intf.set_property(MTOGlobalTrackOptions._metadata, MTOGlobalTrackOptions._set_maximum_number_of_points_before_pruning_metadata, prune_max_num_pts)

    _property_names[save_track_data] = "save_track_data"
    _property_names[computation_track_identifier] = "computation_track_identifier"
    _property_names[block_size] = "block_size"
    _property_names[altitude_reference] = "altitude_reference"
    _property_names[is_static] = "is_static"
    _property_names[maximum_number_of_points_before_pruning] = "maximum_number_of_points_before_pruning"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGlobalTrackOptions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGlobalTrackOptions)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGlobalTrackOptions, [MTOGlobalTrackOptions, ])

agcls.AgClassCatalog.add_catalog_entry((5175384918120152988, 8666662479702656650), MTOGlobalTrackOptions)
agcls.AgTypeNameMap["MTOGlobalTrackOptions"] = MTOGlobalTrackOptions

class MTO(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    r"""
    Multi-Track Object (MTO) interface.

    Examples
    --------
    Load multi-track object (MTO) track points from a file:
    >>> # load_points expects the path an Ephemeris file path
    >>> # MTO mto: MTO Object
    >>> track2 = mto.tracks.add(2)
    >>> installPath = r"C:\Program Files\AGI\STK 12" if os.name == "nt" else os.environ["STK_INSTALL_DIR"]
    >>> track2.points.load_points(
    >>>     os.path.join(installPath, "Data", "Resources", "stktraining", "text", "EphemerisLLATimePosVel_Example.e")
    >>> )
    >>> track2.interpolate = True

    Create a New MTO (on the current scenario central body):
    >>> # Scenario scenario: Scenario object
    >>> mto = scenario.children.new(STKObjectType.MTO, "MyMTO")
    >>>
    >>> root.units_preferences.set_current_unit("DateFormat", "EpSec")
    >>>
    >>> mtoTimes = [[0], [7200]]
    >>> mtoLats = [[36.77], [34.80]]
    >>> mtoLons = [[-77.25], [-78.37]]
    >>> mtoAlts = [[5], [5]]
    >>>
    >>> track1 = mto.tracks.add_track(1, mtoTimes, mtoLats, mtoLons, mtoAlts)
    >>> track1.interpolate = True
    >>> # Change the color of the track
    >>> mto.graphics.tracks.get_track_from_identifier(1).color = Colors.Red
    """

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_tracks_method_offset = 1
    _get_default_track_method_offset = 2
    _get_global_track_options_method_offset = 3
    _get_graphics_method_offset = 4
    _get_graphics_3d_method_offset = 5
    _get_analysis_method_offset = 6
    _metadata = {
        "iid_data" : (5719654381141348671, 13713624714313602435),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTO)

    _get_tracks_metadata = { "offset" : _get_tracks_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tracks(self) -> "MTOTrackCollection":
        """Get the collection of MTO tracks."""
        return self._intf.get_property(MTO._metadata, MTO._get_tracks_metadata)

    _get_default_track_metadata = { "offset" : _get_default_track_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def default_track(self) -> "MTODefaultTrack":
        """Get the default MTO track."""
        return self._intf.get_property(MTO._metadata, MTO._get_default_track_metadata)

    _get_global_track_options_metadata = { "offset" : _get_global_track_options_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def global_track_options(self) -> "MTOGlobalTrackOptions":
        """Get the global MTO track options."""
        return self._intf.get_property(MTO._metadata, MTO._get_global_track_options_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "MTOGraphics":
        """Get the MTO's 2D Graphics properties."""
        return self._intf.get_property(MTO._metadata, MTO._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "MTOGraphics3D":
        """Get the MTO's 3D Graphics properties."""
        return self._intf.get_property(MTO._metadata, MTO._get_graphics_3d_metadata)

    _get_analysis_metadata = { "offset" : _get_analysis_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis(self) -> "MTOAnalysis":
        """Get the MTO's spatial state."""
        return self._intf.get_property(MTO._metadata, MTO._get_analysis_metadata)

    _property_names[tracks] = "tracks"
    _property_names[default_track] = "default_track"
    _property_names[global_track_options] = "global_track_options"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[analysis] = "analysis"

    def __init__(self, source_object=None):
        """Construct an object of type MTO."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTO)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTO, [MTO, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((4911213523710209637, 15651180728512624556), MTO)
agcls.AgTypeNameMap["MTO"] = MTO

class MTOGraphics2DMarker(SupportsDeleteCallback):
    """Interface to define the 2D graphics attributes of the selected MTO track or tracks."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_style_method_offset = 5
    _set_style_method_offset = 6
    _metadata = {
        "iid_data" : (5741423749889885315, 1777940132431905979),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics2DMarker)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display the track marker."""
        return self._intf.get_property(MTOGraphics2DMarker._metadata, MTOGraphics2DMarker._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, marker_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics2DMarker._metadata, MTOGraphics2DMarker._set_show_graphics_metadata, marker_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Select the color in which the track marker will be displayed."""
        return self._intf.get_property(MTOGraphics2DMarker._metadata, MTOGraphics2DMarker._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(MTOGraphics2DMarker._metadata, MTOGraphics2DMarker._set_color_metadata, color)

    _get_style_metadata = { "offset" : _get_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def style(self) -> str:
        """Select a marker style."""
        return self._intf.get_property(MTOGraphics2DMarker._metadata, MTOGraphics2DMarker._get_style_metadata)

    _set_style_metadata = { "offset" : _set_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @style.setter
    def style(self, marker_style:str) -> None:
        return self._intf.set_property(MTOGraphics2DMarker._metadata, MTOGraphics2DMarker._set_style_metadata, marker_style)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[style] = "style"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics2DMarker."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics2DMarker)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics2DMarker, [MTOGraphics2DMarker, ])

agcls.AgClassCatalog.add_catalog_entry((5610614236636446982, 17084299135404401319), MTOGraphics2DMarker)
agcls.AgTypeNameMap["MTOGraphics2DMarker"] = MTOGraphics2DMarker

class MTOGraphics2DLine(SupportsDeleteCallback):
    """MTO track line display options."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_style_method_offset = 5
    _set_style_method_offset = 6
    _get_width_method_offset = 7
    _set_width_method_offset = 8
    _get_translucency_method_offset = 9
    _set_translucency_method_offset = 10
    _get_alway_show_entire_line_method_offset = 11
    _set_alway_show_entire_line_method_offset = 12
    _metadata = {
        "iid_data" : (4932278841295921385, 6006930938078947745),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics2DLine)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display a line between all track points."""
        return self._intf.get_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._set_show_graphics_metadata, is_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Select the color in which the track line will be displayed."""
        return self._intf.get_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._set_color_metadata, color)

    _get_style_metadata = { "offset" : _get_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def style(self) -> "LineStyle":
        """Select the style of the line between track points."""
        return self._intf.get_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._get_style_metadata)

    _set_style_metadata = { "offset" : _set_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @style.setter
    def style(self, line_style:"LineStyle") -> None:
        return self._intf.set_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._set_style_metadata, line_style)

    _get_width_metadata = { "offset" : _get_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def width(self) -> "LineWidth":
        """Select the width of the line between track points."""
        return self._intf.get_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._get_width_metadata)

    _set_width_metadata = { "offset" : _set_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @width.setter
    def width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._set_width_metadata, line_width)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def translucency(self) -> int:
        """Select the translucency of the line between track points."""
        return self._intf.get_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @translucency.setter
    def translucency(self, translucency:int) -> None:
        return self._intf.set_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._set_translucency_metadata, translucency)

    _get_alway_show_entire_line_metadata = { "offset" : _get_alway_show_entire_line_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def alway_show_entire_line(self) -> bool:
        """Opt whether to always show the entire line independent of the animation time."""
        return self._intf.get_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._get_alway_show_entire_line_metadata)

    _set_alway_show_entire_line_metadata = { "offset" : _set_alway_show_entire_line_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @alway_show_entire_line.setter
    def alway_show_entire_line(self, always_show_entire_line:bool) -> None:
        return self._intf.set_property(MTOGraphics2DLine._metadata, MTOGraphics2DLine._set_alway_show_entire_line_metadata, always_show_entire_line)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[style] = "style"
    _property_names[width] = "width"
    _property_names[translucency] = "translucency"
    _property_names[alway_show_entire_line] = "alway_show_entire_line"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics2DLine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics2DLine)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics2DLine, [MTOGraphics2DLine, ])

agcls.AgClassCatalog.add_catalog_entry((4742675045559850535, 1050726106793028766), MTOGraphics2DLine)
agcls.AgTypeNameMap["MTOGraphics2DLine"] = MTOGraphics2DLine

class MTOGraphics2DFadeTimes(SupportsDeleteCallback):
    """MTO track fade times interface."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_pre_fade_method_offset = 1
    _set_use_pre_fade_method_offset = 2
    _get_pre_fade_time_method_offset = 3
    _set_pre_fade_time_method_offset = 4
    _get_use_post_fade_method_offset = 5
    _set_use_post_fade_method_offset = 6
    _get_post_fade_time_method_offset = 7
    _set_post_fade_time_method_offset = 8
    _metadata = {
        "iid_data" : (5117564980201201199, 16145240795215595936),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics2DFadeTimes)

    _get_use_pre_fade_metadata = { "offset" : _get_use_pre_fade_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_pre_fade(self) -> bool:
        """Opt whether to display the track before the time of its first point. Otherwise, the track will always be displayed when the current animation time is before the first point's time."""
        return self._intf.get_property(MTOGraphics2DFadeTimes._metadata, MTOGraphics2DFadeTimes._get_use_pre_fade_metadata)

    _set_use_pre_fade_metadata = { "offset" : _set_use_pre_fade_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_pre_fade.setter
    def use_pre_fade(self, use_pre_fade:bool) -> None:
        return self._intf.set_property(MTOGraphics2DFadeTimes._metadata, MTOGraphics2DFadeTimes._set_use_pre_fade_metadata, use_pre_fade)

    _get_pre_fade_time_metadata = { "offset" : _get_pre_fade_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pre_fade_time(self) -> float:
        """Get or set the amount of time before the start time that the track will appear. Uses Time Dimension."""
        return self._intf.get_property(MTOGraphics2DFadeTimes._metadata, MTOGraphics2DFadeTimes._get_pre_fade_time_metadata)

    _set_pre_fade_time_metadata = { "offset" : _set_pre_fade_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pre_fade_time.setter
    def pre_fade_time(self, pre_fade_time:float) -> None:
        return self._intf.set_property(MTOGraphics2DFadeTimes._metadata, MTOGraphics2DFadeTimes._set_pre_fade_time_metadata, pre_fade_time)

    _get_use_post_fade_metadata = { "offset" : _get_use_post_fade_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_post_fade(self) -> bool:
        """Opt whether to display the track after the last point's stop time. Otherwise, the track will always be displayed when the current animation time is after the last point's time."""
        return self._intf.get_property(MTOGraphics2DFadeTimes._metadata, MTOGraphics2DFadeTimes._get_use_post_fade_metadata)

    _set_use_post_fade_metadata = { "offset" : _set_use_post_fade_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_post_fade.setter
    def use_post_fade(self, use_post_fade:bool) -> None:
        return self._intf.set_property(MTOGraphics2DFadeTimes._metadata, MTOGraphics2DFadeTimes._set_use_post_fade_metadata, use_post_fade)

    _get_post_fade_time_metadata = { "offset" : _get_post_fade_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def post_fade_time(self) -> float:
        """Get or set the amount of time after the stop time that the line will continue to appear. Uses Time Dimension."""
        return self._intf.get_property(MTOGraphics2DFadeTimes._metadata, MTOGraphics2DFadeTimes._get_post_fade_time_metadata)

    _set_post_fade_time_metadata = { "offset" : _set_post_fade_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @post_fade_time.setter
    def post_fade_time(self, post_fade_time:float) -> None:
        return self._intf.set_property(MTOGraphics2DFadeTimes._metadata, MTOGraphics2DFadeTimes._set_post_fade_time_metadata, post_fade_time)

    _property_names[use_pre_fade] = "use_pre_fade"
    _property_names[pre_fade_time] = "pre_fade_time"
    _property_names[use_post_fade] = "use_post_fade"
    _property_names[post_fade_time] = "post_fade_time"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics2DFadeTimes."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics2DFadeTimes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics2DFadeTimes, [MTOGraphics2DFadeTimes, ])

agcls.AgClassCatalog.add_catalog_entry((5247623775856153489, 5045154247367773101), MTOGraphics2DFadeTimes)
agcls.AgTypeNameMap["MTOGraphics2DFadeTimes"] = MTOGraphics2DFadeTimes

class MTOGraphics2DLeadTrailTimes(SupportsDeleteCallback):
    """MTO track lead/trail times interface."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_lead_trail_method_offset = 1
    _set_use_lead_trail_method_offset = 2
    _get_lead_time_method_offset = 3
    _set_lead_time_method_offset = 4
    _get_trail_time_method_offset = 5
    _set_trail_time_method_offset = 6
    _metadata = {
        "iid_data" : (5118673438697268977, 1968334206721357997),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics2DLeadTrailTimes)

    _get_use_lead_trail_metadata = { "offset" : _get_use_lead_trail_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_lead_trail(self) -> bool:
        """Opt whether to use lead and trail times."""
        return self._intf.get_property(MTOGraphics2DLeadTrailTimes._metadata, MTOGraphics2DLeadTrailTimes._get_use_lead_trail_metadata)

    _set_use_lead_trail_metadata = { "offset" : _set_use_lead_trail_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_lead_trail.setter
    def use_lead_trail(self, use_lead_trail:bool) -> None:
        return self._intf.set_property(MTOGraphics2DLeadTrailTimes._metadata, MTOGraphics2DLeadTrailTimes._set_use_lead_trail_metadata, use_lead_trail)

    _get_lead_time_metadata = { "offset" : _get_lead_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lead_time(self) -> float:
        """Get or set the time of the interpolated track route that will be displayed ahead of the track. Uses Time Dimension."""
        return self._intf.get_property(MTOGraphics2DLeadTrailTimes._metadata, MTOGraphics2DLeadTrailTimes._get_lead_time_metadata)

    _set_lead_time_metadata = { "offset" : _set_lead_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lead_time.setter
    def lead_time(self, lead_time:float) -> None:
        return self._intf.set_property(MTOGraphics2DLeadTrailTimes._metadata, MTOGraphics2DLeadTrailTimes._set_lead_time_metadata, lead_time)

    _get_trail_time_metadata = { "offset" : _get_trail_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def trail_time(self) -> float:
        """Get or set the time of the interpolated track route that will be displayed behind the track. Uses Time Dimension."""
        return self._intf.get_property(MTOGraphics2DLeadTrailTimes._metadata, MTOGraphics2DLeadTrailTimes._get_trail_time_metadata)

    _set_trail_time_metadata = { "offset" : _set_trail_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @trail_time.setter
    def trail_time(self, trail_time:float) -> None:
        return self._intf.set_property(MTOGraphics2DLeadTrailTimes._metadata, MTOGraphics2DLeadTrailTimes._set_trail_time_metadata, trail_time)

    _property_names[use_lead_trail] = "use_lead_trail"
    _property_names[lead_time] = "lead_time"
    _property_names[trail_time] = "trail_time"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics2DLeadTrailTimes."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics2DLeadTrailTimes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics2DLeadTrailTimes, [MTOGraphics2DLeadTrailTimes, ])

agcls.AgClassCatalog.add_catalog_entry((5590655737849329933, 15098755499506239920), MTOGraphics2DLeadTrailTimes)
agcls.AgTypeNameMap["MTOGraphics2DLeadTrailTimes"] = MTOGraphics2DLeadTrailTimes

class MTOGraphics2DTrack(SupportsDeleteCallback):
    """Interface to set 2D graphics attributes for each track in the MTO."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_show_label_method_offset = 5
    _set_show_label_method_offset = 6
    _get_label_color_method_offset = 7
    _set_label_color_method_offset = 8
    _get_marker_method_offset = 9
    _get_line_method_offset = 10
    _get_fade_times_method_offset = 11
    _get_lead_trail_times_method_offset = 12
    _get_range_contours_method_offset = 13
    _get_identifier_method_offset = 14
    _metadata = {
        "iid_data" : (4930776038040830684, 5179208897556516777),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics2DTrack)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether the track will be displayed."""
        return self._intf.get_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, visible:bool) -> None:
        return self._intf.set_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._set_show_graphics_metadata, visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Select the color in which the track will be displayed."""
        return self._intf.get_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._set_color_metadata, color)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Opt whether the track label will be displayed."""
        return self._intf.get_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, label_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._set_show_label_metadata, label_visible)

    _get_label_color_metadata = { "offset" : _get_label_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def label_color(self) -> agcolor.Color:
        """Select the color in which the track label will be displayed."""
        return self._intf.get_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._get_label_color_metadata)

    _set_label_color_metadata = { "offset" : _set_label_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @label_color.setter
    def label_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._set_label_color_metadata, color)

    _get_marker_metadata = { "offset" : _get_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def marker(self) -> "MTOGraphics2DMarker":
        """Get the display properties for the track marker."""
        return self._intf.get_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._get_marker_metadata)

    _get_line_metadata = { "offset" : _get_line_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def line(self) -> "MTOGraphics2DLine":
        """Get the display properties for the track line."""
        return self._intf.get_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._get_line_metadata)

    _get_fade_times_metadata = { "offset" : _get_fade_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def fade_times(self) -> "MTOGraphics2DFadeTimes":
        """Get the fade times data."""
        return self._intf.get_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._get_fade_times_metadata)

    _get_lead_trail_times_metadata = { "offset" : _get_lead_trail_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def lead_trail_times(self) -> "MTOGraphics2DLeadTrailTimes":
        """Get the lead/trail times data."""
        return self._intf.get_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._get_lead_trail_times_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics2DRangeContours":
        """Get the MTO's 2D range contour graphics."""
        return self._intf.get_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._get_range_contours_metadata)

    _get_identifier_metadata = { "offset" : _get_identifier_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def identifier(self) -> int:
        """Get the identification number of the track. Dimensionless."""
        return self._intf.get_property(MTOGraphics2DTrack._metadata, MTOGraphics2DTrack._get_identifier_metadata)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[show_label] = "show_label"
    _property_names[label_color] = "label_color"
    _property_names[marker] = "marker"
    _property_names[line] = "line"
    _property_names[fade_times] = "fade_times"
    _property_names[lead_trail_times] = "lead_trail_times"
    _property_names[range_contours] = "range_contours"
    _property_names[identifier] = "identifier"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics2DTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics2DTrack)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics2DTrack, [MTOGraphics2DTrack, ])

agcls.AgClassCatalog.add_catalog_entry((4684474308105430146, 17159818516054520961), MTOGraphics2DTrack)
agcls.AgTypeNameMap["MTOGraphics2DTrack"] = MTOGraphics2DTrack

class MTOGraphics2DTrackCollection(SupportsDeleteCallback):
    """MTO 2D Graphics Track List."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _get_track_from_identifier_method_offset = 4
    _get_recycling_method_offset = 5
    _set_recycling_method_offset = 6
    _metadata = {
        "iid_data" : (4714620915004559024, 10413905430920111787),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics2DTrackCollection)
    def __iter__(self):
        """Create an iterator for the MTOGraphics2DTrackCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "MTOGraphics2DTrack":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(MTOGraphics2DTrackCollection._metadata, MTOGraphics2DTrackCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "MTOGraphics2DTrack":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(MTOGraphics2DTrackCollection._metadata, MTOGraphics2DTrackCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(MTOGraphics2DTrackCollection._metadata, MTOGraphics2DTrackCollection._get__new_enum_metadata)

    _get_track_from_identifier_metadata = { "offset" : _get_track_from_identifier_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def get_track_from_identifier(self, track_id:int) -> "MTOGraphics2DTrack":
        """Given a track id, returns an element in the collection."""
        return self._intf.invoke(MTOGraphics2DTrackCollection._metadata, MTOGraphics2DTrackCollection._get_track_from_identifier_metadata, track_id, OutArg())

    _get_recycling_metadata = { "offset" : _get_recycling_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def recycling(self) -> bool:
        """Recycling is used for optimizing performance in iterative modification or addition of elements in a particular collection (see Remarks section for this property)."""
        return self._intf.get_property(MTOGraphics2DTrackCollection._metadata, MTOGraphics2DTrackCollection._get_recycling_metadata)

    _set_recycling_metadata = { "offset" : _set_recycling_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @recycling.setter
    def recycling(self, value:bool) -> None:
        return self._intf.set_property(MTOGraphics2DTrackCollection._metadata, MTOGraphics2DTrackCollection._set_recycling_metadata, value)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[recycling] = "recycling"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics2DTrackCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics2DTrackCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics2DTrackCollection, [MTOGraphics2DTrackCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4843297829822426554, 2655134564360704395), MTOGraphics2DTrackCollection)
agcls.AgTypeNameMap["MTOGraphics2DTrackCollection"] = MTOGraphics2DTrackCollection

class MTODefaultGraphics2DTrack(SupportsDeleteCallback):
    """Interface to set 2D graphics attributes for default MTO tracks."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_show_label_method_offset = 5
    _set_show_label_method_offset = 6
    _get_label_color_method_offset = 7
    _set_label_color_method_offset = 8
    _get_marker_method_offset = 9
    _get_line_method_offset = 10
    _get_fade_times_method_offset = 11
    _get_lead_trail_times_method_offset = 12
    _get_range_contours_method_offset = 13
    _metadata = {
        "iid_data" : (5748263607400538908, 8517398983038266754),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTODefaultGraphics2DTrack)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether the track will be displayed."""
        return self._intf.get_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, visible:bool) -> None:
        return self._intf.set_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._set_show_graphics_metadata, visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Select the color in which the track will be displayed."""
        return self._intf.get_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._set_color_metadata, color)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Opt whether the track label will be displayed."""
        return self._intf.get_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, label_visible:bool) -> None:
        return self._intf.set_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._set_show_label_metadata, label_visible)

    _get_label_color_metadata = { "offset" : _get_label_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def label_color(self) -> agcolor.Color:
        """Select the color in which the track label will be displayed."""
        return self._intf.get_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._get_label_color_metadata)

    _set_label_color_metadata = { "offset" : _set_label_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @label_color.setter
    def label_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._set_label_color_metadata, color)

    _get_marker_metadata = { "offset" : _get_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def marker(self) -> "MTOGraphics2DMarker":
        """Get the display properties for the track marker."""
        return self._intf.get_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._get_marker_metadata)

    _get_line_metadata = { "offset" : _get_line_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def line(self) -> "MTOGraphics2DLine":
        """Get the display properties for the track line."""
        return self._intf.get_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._get_line_metadata)

    _get_fade_times_metadata = { "offset" : _get_fade_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def fade_times(self) -> "MTOGraphics2DFadeTimes":
        """Get the fade times data."""
        return self._intf.get_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._get_fade_times_metadata)

    _get_lead_trail_times_metadata = { "offset" : _get_lead_trail_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def lead_trail_times(self) -> "MTOGraphics2DLeadTrailTimes":
        """Get the lead/trail times data."""
        return self._intf.get_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._get_lead_trail_times_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics2DRangeContours":
        """Get the MTO's 2D range contour graphics."""
        return self._intf.get_property(MTODefaultGraphics2DTrack._metadata, MTODefaultGraphics2DTrack._get_range_contours_metadata)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[show_label] = "show_label"
    _property_names[label_color] = "label_color"
    _property_names[marker] = "marker"
    _property_names[line] = "line"
    _property_names[fade_times] = "fade_times"
    _property_names[lead_trail_times] = "lead_trail_times"
    _property_names[range_contours] = "range_contours"

    def __init__(self, source_object=None):
        """Construct an object of type MTODefaultGraphics2DTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTODefaultGraphics2DTrack)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTODefaultGraphics2DTrack, [MTODefaultGraphics2DTrack, ])

agcls.AgClassCatalog.add_catalog_entry((5736411190149824932, 7398718215449623736), MTODefaultGraphics2DTrack)
agcls.AgTypeNameMap["MTODefaultGraphics2DTrack"] = MTODefaultGraphics2DTrack

class MTOGraphics2DGlobalTrackOptions(SupportsDeleteCallback):
    """Interface for global 2D graphics options for an MTO."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_tracks_method_offset = 1
    _set_show_tracks_method_offset = 2
    _metadata = {
        "iid_data" : (5752054003848033562, 8155194825603419525),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics2DGlobalTrackOptions)

    _get_show_tracks_metadata = { "offset" : _get_show_tracks_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_tracks(self) -> bool:
        """Opt whether to display or hide 2D graphics tracks for the MTO."""
        return self._intf.get_property(MTOGraphics2DGlobalTrackOptions._metadata, MTOGraphics2DGlobalTrackOptions._get_show_tracks_metadata)

    _set_show_tracks_metadata = { "offset" : _set_show_tracks_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_tracks.setter
    def show_tracks(self, tracks_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics2DGlobalTrackOptions._metadata, MTOGraphics2DGlobalTrackOptions._set_show_tracks_metadata, tracks_visible)

    _property_names[show_tracks] = "show_tracks"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics2DGlobalTrackOptions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics2DGlobalTrackOptions)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics2DGlobalTrackOptions, [MTOGraphics2DGlobalTrackOptions, ])

agcls.AgClassCatalog.add_catalog_entry((5677921669816420702, 9159913065173736353), MTOGraphics2DGlobalTrackOptions)
agcls.AgTypeNameMap["MTOGraphics2DGlobalTrackOptions"] = MTOGraphics2DGlobalTrackOptions

class MTOGraphics(SupportsDeleteCallback):
    """MTO 2D Graphics interface."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_tracks_method_offset = 1
    _get_default_track_method_offset = 2
    _get_global_track_options_method_offset = 3
    _get_show_graphics_method_offset = 4
    _set_show_graphics_method_offset = 5
    _metadata = {
        "iid_data" : (5612597137085371563, 13741618109734317710),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics)

    _get_tracks_metadata = { "offset" : _get_tracks_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tracks(self) -> "MTOGraphics2DTrackCollection":
        """Get the collection of MTO 2D graphics properties."""
        return self._intf.get_property(MTOGraphics._metadata, MTOGraphics._get_tracks_metadata)

    _get_default_track_metadata = { "offset" : _get_default_track_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def default_track(self) -> "MTODefaultGraphics2DTrack":
        """Get the default track 2D graphics."""
        return self._intf.get_property(MTOGraphics._metadata, MTOGraphics._get_default_track_metadata)

    _get_global_track_options_metadata = { "offset" : _get_global_track_options_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def global_track_options(self) -> "MTOGraphics2DGlobalTrackOptions":
        """Get the 2D graphics global settings."""
        return self._intf.get_property(MTOGraphics._metadata, MTOGraphics._get_global_track_options_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the MTO are visible."""
        return self._intf.get_property(MTOGraphics._metadata, MTOGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics._metadata, MTOGraphics._set_show_graphics_metadata, is_visible)

    _property_names[tracks] = "tracks"
    _property_names[default_track] = "default_track"
    _property_names[global_track_options] = "global_track_options"
    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics, [MTOGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5009838178179295960, 5219653364072018848), MTOGraphics)
agcls.AgTypeNameMap["MTOGraphics"] = MTOGraphics

class MTOGraphics3DMarker(SupportsDeleteCallback):
    """Interface for MTO 3D graphics marker options."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pixel_size_method_offset = 1
    _set_pixel_size_method_offset = 2
    _get_marker_type_method_offset = 3
    _set_marker_type_method_offset = 4
    _get_angle_method_offset = 5
    _set_angle_method_offset = 6
    _get_x_origin_method_offset = 7
    _set_x_origin_method_offset = 8
    _get_y_origin_method_offset = 9
    _set_y_origin_method_offset = 10
    _get_marker_data_method_offset = 11
    _set_marker_image_filename_method_offset = 12
    _get_rotate_from_north_method_offset = 13
    _set_rotate_from_north_method_offset = 14
    _get_orientation_mode_method_offset = 15
    _set_orientation_mode_method_offset = 16
    _metadata = {
        "iid_data" : (5657130731105253792, 15821915738629420695),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics3DMarker)

    _get_pixel_size_metadata = { "offset" : _get_pixel_size_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def pixel_size(self) -> int:
        """The pixel size of the marker (markers do not resize as the window size is changed). Dimensionless."""
        return self._intf.get_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._get_pixel_size_metadata)

    _set_pixel_size_metadata = { "offset" : _set_pixel_size_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @pixel_size.setter
    def pixel_size(self, size:int) -> None:
        return self._intf.set_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._set_pixel_size_metadata, size)

    _get_marker_type_metadata = { "offset" : _get_marker_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MarkerType),) }
    @property
    def marker_type(self) -> "MarkerType":
        """Specify a 3D marker type to represent the object at the specified threshold. A member of the MarkerType enumeration."""
        return self._intf.get_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._get_marker_type_metadata)

    _set_marker_type_metadata = { "offset" : _set_marker_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MarkerType),) }
    @marker_type.setter
    def marker_type(self, marker_type:"MarkerType") -> None:
        return self._intf.set_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._set_marker_type_metadata, marker_type)

    _get_angle_metadata = { "offset" : _get_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def angle(self) -> typing.Any:
        """The angle representing the amount of rotation of the marker. Uses Angle Dimension."""
        return self._intf.get_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._get_angle_metadata)

    _set_angle_metadata = { "offset" : _set_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @angle.setter
    def angle(self, angle:typing.Any) -> None:
        return self._intf.set_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._set_angle_metadata, angle)

    _get_x_origin_metadata = { "offset" : _get_x_origin_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOriginType),) }
    @property
    def x_origin(self) -> "Graphics3DMarkerOriginType":
        """The horizontal point of origin for the marker (left, center or right)."""
        return self._intf.get_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._get_x_origin_metadata)

    _set_x_origin_metadata = { "offset" : _set_x_origin_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOriginType),) }
    @x_origin.setter
    def x_origin(self, x_origin:"Graphics3DMarkerOriginType") -> None:
        return self._intf.set_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._set_x_origin_metadata, x_origin)

    _get_y_origin_metadata = { "offset" : _get_y_origin_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOriginType),) }
    @property
    def y_origin(self) -> "Graphics3DMarkerOriginType":
        """The vertical point of origin for the marker (top, center or bottom)."""
        return self._intf.get_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._get_y_origin_metadata)

    _set_y_origin_metadata = { "offset" : _set_y_origin_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOriginType),) }
    @y_origin.setter
    def y_origin(self, y_origin:"Graphics3DMarkerOriginType") -> None:
        return self._intf.set_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._set_y_origin_metadata, y_origin)

    _get_marker_data_metadata = { "offset" : _get_marker_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def marker_data(self) -> "IGraphics3DMarkerData":
        """The MarkerData property."""
        return self._intf.get_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._get_marker_data_metadata)

    _set_marker_image_filename_metadata = { "offset" : _set_marker_image_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_marker_image_filename(self, image_file:str) -> None:
        """Set the marker image file."""
        return self._intf.invoke(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._set_marker_image_filename_metadata, image_file)

    _get_rotate_from_north_metadata = { "offset" : _get_rotate_from_north_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def rotate_from_north(self) -> bool:
        """Opt whether to set the rotation angle relative to north. (By default, the rotation angle is relative to the screen.)."""
        return self._intf.get_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._get_rotate_from_north_metadata)

    _set_rotate_from_north_metadata = { "offset" : _set_rotate_from_north_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @rotate_from_north.setter
    def rotate_from_north(self, rotate_from_north:bool) -> None:
        return self._intf.set_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._set_rotate_from_north_metadata, rotate_from_north)

    _get_orientation_mode_metadata = { "offset" : _get_orientation_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOrientation),) }
    @property
    def orientation_mode(self) -> "Graphics3DMarkerOrientation":
        """Control the rotation of the marker."""
        return self._intf.get_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._get_orientation_mode_metadata)

    _set_orientation_mode_metadata = { "offset" : _set_orientation_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DMarkerOrientation),) }
    @orientation_mode.setter
    def orientation_mode(self, orientation_mode:"Graphics3DMarkerOrientation") -> None:
        return self._intf.set_property(MTOGraphics3DMarker._metadata, MTOGraphics3DMarker._set_orientation_mode_metadata, orientation_mode)

    _property_names[pixel_size] = "pixel_size"
    _property_names[marker_type] = "marker_type"
    _property_names[angle] = "angle"
    _property_names[x_origin] = "x_origin"
    _property_names[y_origin] = "y_origin"
    _property_names[marker_data] = "marker_data"
    _property_names[rotate_from_north] = "rotate_from_north"
    _property_names[orientation_mode] = "orientation_mode"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics3DMarker."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics3DMarker)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics3DMarker, [MTOGraphics3DMarker, ])

agcls.AgClassCatalog.add_catalog_entry((5356784973979786234, 3634672280614495361), MTOGraphics3DMarker)
agcls.AgTypeNameMap["MTOGraphics3DMarker"] = MTOGraphics3DMarker

class MTOGraphics3DPoint(SupportsDeleteCallback):
    """MTO track 3D marker point options interface."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_size_method_offset = 3
    _set_size_method_offset = 4
    _metadata = {
        "iid_data" : (5650046011779451661, 2013860397104207755),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics3DPoint)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display the track point."""
        return self._intf.get_property(MTOGraphics3DPoint._metadata, MTOGraphics3DPoint._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, point_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics3DPoint._metadata, MTOGraphics3DPoint._set_show_graphics_metadata, point_visible)

    _get_size_metadata = { "offset" : _get_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def size(self) -> float:
        """Get or set the size of the track point in pixels. Dimensionless."""
        return self._intf.get_property(MTOGraphics3DPoint._metadata, MTOGraphics3DPoint._get_size_metadata)

    _set_size_metadata = { "offset" : _set_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @size.setter
    def size(self, point_size:float) -> None:
        return self._intf.set_property(MTOGraphics3DPoint._metadata, MTOGraphics3DPoint._set_size_metadata, point_size)

    _property_names[show_graphics] = "show_graphics"
    _property_names[size] = "size"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics3DPoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics3DPoint)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics3DPoint, [MTOGraphics3DPoint, ])

agcls.AgClassCatalog.add_catalog_entry((4788724399608101337, 11530979767563187134), MTOGraphics3DPoint)
agcls.AgTypeNameMap["MTOGraphics3DPoint"] = MTOGraphics3DPoint

class MTOGraphics3DModel(SupportsDeleteCallback):
    """Interface for MTO track model options."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_filename_method_offset = 3
    _set_filename_method_offset = 4
    _get_scale_value_method_offset = 5
    _set_scale_value_method_offset = 6
    _get_initial_bearing_method_offset = 7
    _set_initial_bearing_method_offset = 8
    _get_z_points_nadir_method_offset = 9
    _set_z_points_nadir_method_offset = 10
    _get_articulation_method_offset = 11
    _get_file_path_method_offset = 12
    _metadata = {
        "iid_data" : (4772882389501649930, 7898268287380675262),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics3DModel)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to use a model to represent the track in the 3D Graphics window."""
        return self._intf.get_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, model_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._set_show_graphics_metadata, model_visible)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the name of the track model file."""
        return self._intf.get_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, model_file:str) -> None:
        return self._intf.set_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._set_filename_metadata, model_file)

    _get_scale_value_metadata = { "offset" : _get_scale_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scale_value(self) -> float:
        """Get or set the exponential scaling value for the track model."""
        return self._intf.get_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._get_scale_value_metadata)

    _set_scale_value_metadata = { "offset" : _set_scale_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scale_value.setter
    def scale_value(self, model_scale:float) -> None:
        return self._intf.set_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._set_scale_value_metadata, model_scale)

    _get_initial_bearing_metadata = { "offset" : _get_initial_bearing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def initial_bearing(self) -> float:
        """Get or set the initial bearing of the model, relative to north. Uses Angle Dimension."""
        return self._intf.get_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._get_initial_bearing_metadata)

    _set_initial_bearing_metadata = { "offset" : _set_initial_bearing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @initial_bearing.setter
    def initial_bearing(self, initial_bearing:float) -> None:
        return self._intf.set_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._set_initial_bearing_metadata, initial_bearing)

    _get_z_points_nadir_metadata = { "offset" : _get_z_points_nadir_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def z_points_nadir(self) -> bool:
        """Opt whether to have the Z axis point to nadir (to orient it as an aircraft) or not (to orient it as a surface vehicle)."""
        return self._intf.get_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._get_z_points_nadir_metadata)

    _set_z_points_nadir_metadata = { "offset" : _set_z_points_nadir_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @z_points_nadir.setter
    def z_points_nadir(self, z_points:bool) -> None:
        return self._intf.set_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._set_z_points_nadir_metadata, z_points)

    _get_articulation_metadata = { "offset" : _get_articulation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def articulation(self) -> "MTOGraphics3DModelArticulation":
        """Configures the model articulations."""
        return self._intf.get_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._get_articulation_metadata)

    _get_file_path_metadata = { "offset" : _get_file_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file_path(self) -> str:
        """Get the full path and file name of the track model file."""
        return self._intf.get_property(MTOGraphics3DModel._metadata, MTOGraphics3DModel._get_file_path_metadata)

    _property_names[show_graphics] = "show_graphics"
    _property_names[filename] = "filename"
    _property_names[scale_value] = "scale_value"
    _property_names[initial_bearing] = "initial_bearing"
    _property_names[z_points_nadir] = "z_points_nadir"
    _property_names[articulation] = "articulation"
    _property_names[file_path] = "file_path"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics3DModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics3DModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics3DModel, [MTOGraphics3DModel, ])

agcls.AgClassCatalog.add_catalog_entry((4794368734158580267, 5682526164817107841), MTOGraphics3DModel)
agcls.AgTypeNameMap["MTOGraphics3DModel"] = MTOGraphics3DModel

class MTOGraphics3DSwapDistances(SupportsDeleteCallback):
    """Interface for MTO track 3D swap distances."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_swap_distances_method_offset = 1
    _set_use_swap_distances_method_offset = 2
    _get_label_from_method_offset = 3
    _set_label_from_method_offset = 4
    _get_label_to_method_offset = 5
    _set_label_to_method_offset = 6
    _get_model_from_method_offset = 7
    _set_model_from_method_offset = 8
    _get_model_to_method_offset = 9
    _set_model_to_method_offset = 10
    _get_marker_from_method_offset = 11
    _set_marker_from_method_offset = 12
    _get_marker_to_method_offset = 13
    _set_marker_to_method_offset = 14
    _get_point_from_method_offset = 15
    _set_point_from_method_offset = 16
    _get_point_to_method_offset = 17
    _set_point_to_method_offset = 18
    _metadata = {
        "iid_data" : (4719650904229378630, 16163537159830444478),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics3DSwapDistances)

    _get_use_swap_distances_metadata = { "offset" : _get_use_swap_distances_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_swap_distances(self) -> bool:
        """Opt whether to set swap distances."""
        return self._intf.get_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._get_use_swap_distances_metadata)

    _set_use_swap_distances_metadata = { "offset" : _set_use_swap_distances_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_swap_distances.setter
    def use_swap_distances(self, use_swap_distances:bool) -> None:
        return self._intf.set_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._set_use_swap_distances_metadata, use_swap_distances)

    _get_label_from_metadata = { "offset" : _get_label_from_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def label_from(self) -> float:
        """Specify the minimum distance from the viewer reference point at which the track label is visible. Uses Distance Dimension."""
        return self._intf.get_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._get_label_from_metadata)

    _set_label_from_metadata = { "offset" : _set_label_from_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @label_from.setter
    def label_from(self, label_from:float) -> None:
        return self._intf.set_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._set_label_from_metadata, label_from)

    _get_label_to_metadata = { "offset" : _get_label_to_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def label_to(self) -> float:
        """Specify the maximum distance from the viewer reference point at which the track label is visible. Uses Distance Dimension."""
        return self._intf.get_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._get_label_to_metadata)

    _set_label_to_metadata = { "offset" : _set_label_to_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @label_to.setter
    def label_to(self, label_to:float) -> None:
        return self._intf.set_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._set_label_to_metadata, label_to)

    _get_model_from_metadata = { "offset" : _get_model_from_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def model_from(self) -> float:
        """Specify the minimum distance from the viewer reference point at which the track model is visible. Uses Distance Dimension."""
        return self._intf.get_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._get_model_from_metadata)

    _set_model_from_metadata = { "offset" : _set_model_from_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @model_from.setter
    def model_from(self, model_from:float) -> None:
        return self._intf.set_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._set_model_from_metadata, model_from)

    _get_model_to_metadata = { "offset" : _get_model_to_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def model_to(self) -> float:
        """Specify the maximum distance from the viewer reference point at which the track model is visible. Uses Distance Dimension."""
        return self._intf.get_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._get_model_to_metadata)

    _set_model_to_metadata = { "offset" : _set_model_to_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @model_to.setter
    def model_to(self, model_to:float) -> None:
        return self._intf.set_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._set_model_to_metadata, model_to)

    _get_marker_from_metadata = { "offset" : _get_marker_from_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def marker_from(self) -> float:
        """Specify the minimum distance from the viewer reference point at which the track marker is visible. Uses Distance Dimension."""
        return self._intf.get_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._get_marker_from_metadata)

    _set_marker_from_metadata = { "offset" : _set_marker_from_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @marker_from.setter
    def marker_from(self, marker_from:float) -> None:
        return self._intf.set_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._set_marker_from_metadata, marker_from)

    _get_marker_to_metadata = { "offset" : _get_marker_to_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def marker_to(self) -> float:
        """Specify the maximum distance from the viewer reference point at which the track marker is visible. Uses Distance Dimension."""
        return self._intf.get_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._get_marker_to_metadata)

    _set_marker_to_metadata = { "offset" : _set_marker_to_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @marker_to.setter
    def marker_to(self, marker_to:float) -> None:
        return self._intf.set_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._set_marker_to_metadata, marker_to)

    _get_point_from_metadata = { "offset" : _get_point_from_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def point_from(self) -> float:
        """Specify the minimum distance from the viewer reference point at which the track point is visible. Uses Distance Dimension."""
        return self._intf.get_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._get_point_from_metadata)

    _set_point_from_metadata = { "offset" : _set_point_from_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @point_from.setter
    def point_from(self, point_from:float) -> None:
        return self._intf.set_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._set_point_from_metadata, point_from)

    _get_point_to_metadata = { "offset" : _get_point_to_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def point_to(self) -> float:
        """Specify the maximum distance from the viewer reference point at which the track point is visible. Uses Distance Dimension."""
        return self._intf.get_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._get_point_to_metadata)

    _set_point_to_metadata = { "offset" : _set_point_to_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @point_to.setter
    def point_to(self, point_to:float) -> None:
        return self._intf.set_property(MTOGraphics3DSwapDistances._metadata, MTOGraphics3DSwapDistances._set_point_to_metadata, point_to)

    _property_names[use_swap_distances] = "use_swap_distances"
    _property_names[label_from] = "label_from"
    _property_names[label_to] = "label_to"
    _property_names[model_from] = "model_from"
    _property_names[model_to] = "model_to"
    _property_names[marker_from] = "marker_from"
    _property_names[marker_to] = "marker_to"
    _property_names[point_from] = "point_from"
    _property_names[point_to] = "point_to"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics3DSwapDistances."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics3DSwapDistances)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics3DSwapDistances, [MTOGraphics3DSwapDistances, ])

agcls.AgClassCatalog.add_catalog_entry((5073315361607965251, 9919188958145913233), MTOGraphics3DSwapDistances)
agcls.AgTypeNameMap["MTOGraphics3DSwapDistances"] = MTOGraphics3DSwapDistances

class MTOGraphics3DDropLines(SupportsDeleteCallback):
    """Interface for MTO droplines."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_position_method_offset = 1
    _get_ephemeris_method_offset = 2
    _metadata = {
        "iid_data" : (5025038230710030715, 1411959610893332354),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics3DDropLines)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "VehicleGraphics3DDropLinePositionItemCollection":
        """Get a list of droplines from the MTO's current positions."""
        return self._intf.get_property(MTOGraphics3DDropLines._metadata, MTOGraphics3DDropLines._get_position_metadata)

    _get_ephemeris_metadata = { "offset" : _get_ephemeris_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris(self) -> "VehicleGraphics3DDropLinePathItemCollection":
        """Get a list of droplines at intervals along the MTO's ephemeris."""
        return self._intf.get_property(MTOGraphics3DDropLines._metadata, MTOGraphics3DDropLines._get_ephemeris_metadata)

    _property_names[position] = "position"
    _property_names[ephemeris] = "ephemeris"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics3DDropLines."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics3DDropLines)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics3DDropLines, [MTOGraphics3DDropLines, ])

agcls.AgClassCatalog.add_catalog_entry((4780834782804268506, 3310606856651133059), MTOGraphics3DDropLines)
agcls.AgTypeNameMap["MTOGraphics3DDropLines"] = MTOGraphics3DDropLines

class MTOGraphics3DTrack(SupportsDeleteCallback):
    """Interface for setting 3D graphics properties for MTO tracks."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_marker_method_offset = 3
    _get_point_method_offset = 4
    _get_model_method_offset = 5
    _get_label_method_offset = 6
    _get_swap_distances_method_offset = 7
    _get_range_contours_method_offset = 8
    _get_drop_lines_method_offset = 9
    _get_identifier_method_offset = 10
    _get_should_fade_over_trail_time_method_offset = 11
    _set_should_fade_over_trail_time_method_offset = 12
    _metadata = {
        "iid_data" : (4696484199726674747, 17201498440520157371),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics3DTrack)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display the track in the 3D Graphics window."""
        return self._intf.get_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, visible:bool) -> None:
        return self._intf.set_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._set_show_graphics_metadata, visible)

    _get_marker_metadata = { "offset" : _get_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def marker(self) -> "MTOGraphics3DMarker":
        """Get the track's 3D marker properties."""
        return self._intf.get_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._get_marker_metadata)

    _get_point_metadata = { "offset" : _get_point_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point(self) -> "MTOGraphics3DPoint":
        """Get the track's 3D point properties."""
        return self._intf.get_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._get_point_metadata)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "MTOGraphics3DModel":
        """Get the track's 3D model properties."""
        return self._intf.get_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._get_model_metadata)

    _get_label_metadata = { "offset" : _get_label_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label(self) -> "Graphics3DOffsetLabel":
        """Get the track's 3D label properties."""
        return self._intf.get_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._get_label_metadata)

    _get_swap_distances_metadata = { "offset" : _get_swap_distances_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def swap_distances(self) -> "MTOGraphics3DSwapDistances":
        """Get the track's 3D swap distance properties."""
        return self._intf.get_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._get_swap_distances_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics3DRangeContours":
        """Get the MTO's 3D range contour properties."""
        return self._intf.get_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._get_range_contours_metadata)

    _get_drop_lines_metadata = { "offset" : _get_drop_lines_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drop_lines(self) -> "MTOGraphics3DDropLines":
        """Return an interface allowing you to configure the MTO's drop lines."""
        return self._intf.get_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._get_drop_lines_metadata)

    _get_identifier_metadata = { "offset" : _get_identifier_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def identifier(self) -> int:
        """Get the identification number of the track. Dimensionless."""
        return self._intf.get_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._get_identifier_metadata)

    _get_should_fade_over_trail_time_metadata = { "offset" : _get_should_fade_over_trail_time_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def should_fade_over_trail_time(self) -> bool:
        """Control whether trailing line fades over trail time."""
        return self._intf.get_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._get_should_fade_over_trail_time_metadata)

    _set_should_fade_over_trail_time_metadata = { "offset" : _set_should_fade_over_trail_time_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @should_fade_over_trail_time.setter
    def should_fade_over_trail_time(self, fade_over_trail_time:bool) -> None:
        return self._intf.set_property(MTOGraphics3DTrack._metadata, MTOGraphics3DTrack._set_should_fade_over_trail_time_metadata, fade_over_trail_time)

    _property_names[show_graphics] = "show_graphics"
    _property_names[marker] = "marker"
    _property_names[point] = "point"
    _property_names[model] = "model"
    _property_names[label] = "label"
    _property_names[swap_distances] = "swap_distances"
    _property_names[range_contours] = "range_contours"
    _property_names[drop_lines] = "drop_lines"
    _property_names[identifier] = "identifier"
    _property_names[should_fade_over_trail_time] = "should_fade_over_trail_time"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics3DTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics3DTrack)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics3DTrack, [MTOGraphics3DTrack, ])

agcls.AgClassCatalog.add_catalog_entry((4913436082719536112, 7040601800898146964), MTOGraphics3DTrack)
agcls.AgTypeNameMap["MTOGraphics3DTrack"] = MTOGraphics3DTrack

class MTOGraphics3DTrackCollection(SupportsDeleteCallback):
    """MTO 3D Graphics Track List."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _get_track_from_identifier_method_offset = 4
    _get_recycling_method_offset = 5
    _set_recycling_method_offset = 6
    _metadata = {
        "iid_data" : (5143141723854526148, 2794094567753276088),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics3DTrackCollection)
    def __iter__(self):
        """Create an iterator for the MTOGraphics3DTrackCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "MTOGraphics3DTrack":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(MTOGraphics3DTrackCollection._metadata, MTOGraphics3DTrackCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "MTOGraphics3DTrack":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(MTOGraphics3DTrackCollection._metadata, MTOGraphics3DTrackCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(MTOGraphics3DTrackCollection._metadata, MTOGraphics3DTrackCollection._get__new_enum_metadata)

    _get_track_from_identifier_metadata = { "offset" : _get_track_from_identifier_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def get_track_from_identifier(self, track_id:int) -> "MTOGraphics3DTrack":
        """Given a track id, returns an element in the collection."""
        return self._intf.invoke(MTOGraphics3DTrackCollection._metadata, MTOGraphics3DTrackCollection._get_track_from_identifier_metadata, track_id, OutArg())

    _get_recycling_metadata = { "offset" : _get_recycling_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def recycling(self) -> bool:
        """Recycling is used for optimizing performance in iterative modification or addition of elements in a particular collection (see Remarks section for this property)."""
        return self._intf.get_property(MTOGraphics3DTrackCollection._metadata, MTOGraphics3DTrackCollection._get_recycling_metadata)

    _set_recycling_metadata = { "offset" : _set_recycling_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @recycling.setter
    def recycling(self, value:bool) -> None:
        return self._intf.set_property(MTOGraphics3DTrackCollection._metadata, MTOGraphics3DTrackCollection._set_recycling_metadata, value)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[recycling] = "recycling"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics3DTrackCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics3DTrackCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics3DTrackCollection, [MTOGraphics3DTrackCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5614304718860779269, 14323775915076394626), MTOGraphics3DTrackCollection)
agcls.AgTypeNameMap["MTOGraphics3DTrackCollection"] = MTOGraphics3DTrackCollection

class MTODefaultGraphics3DTrack(SupportsDeleteCallback):
    """Interface for setting 3D graphics properties for default MTO tracks."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_marker_method_offset = 3
    _get_point_method_offset = 4
    _get_model_method_offset = 5
    _get_label_method_offset = 6
    _get_swap_distances_method_offset = 7
    _get_range_contours_method_offset = 8
    _get_drop_lines_method_offset = 9
    _get_should_fade_over_trail_time_method_offset = 10
    _set_should_fade_over_trail_time_method_offset = 11
    _metadata = {
        "iid_data" : (4641444576738926867, 16711119451322736257),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTODefaultGraphics3DTrack)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display the track in the 3D Graphics window."""
        return self._intf.get_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, visible:bool) -> None:
        return self._intf.set_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._set_show_graphics_metadata, visible)

    _get_marker_metadata = { "offset" : _get_marker_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def marker(self) -> "MTOGraphics3DMarker":
        """Get the track's 3D marker properties."""
        return self._intf.get_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._get_marker_metadata)

    _get_point_metadata = { "offset" : _get_point_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point(self) -> "MTOGraphics3DPoint":
        """Get the track's 3D point properties."""
        return self._intf.get_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._get_point_metadata)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "MTOGraphics3DModel":
        """Get the track's 3D model properties."""
        return self._intf.get_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._get_model_metadata)

    _get_label_metadata = { "offset" : _get_label_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label(self) -> "Graphics3DOffsetLabel":
        """Get the track's 3D label properties."""
        return self._intf.get_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._get_label_metadata)

    _get_swap_distances_metadata = { "offset" : _get_swap_distances_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def swap_distances(self) -> "MTOGraphics3DSwapDistances":
        """Get the track's 3D swap distance properties."""
        return self._intf.get_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._get_swap_distances_metadata)

    _get_range_contours_metadata = { "offset" : _get_range_contours_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_contours(self) -> "Graphics3DRangeContours":
        """Get the MTO's 3D range contour properties."""
        return self._intf.get_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._get_range_contours_metadata)

    _get_drop_lines_metadata = { "offset" : _get_drop_lines_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def drop_lines(self) -> "MTOGraphics3DDropLines":
        """Return an interface allowing you to configure the MTO's drop lines."""
        return self._intf.get_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._get_drop_lines_metadata)

    _get_should_fade_over_trail_time_metadata = { "offset" : _get_should_fade_over_trail_time_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def should_fade_over_trail_time(self) -> bool:
        """Control whether trailing line fades over trail time."""
        return self._intf.get_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._get_should_fade_over_trail_time_metadata)

    _set_should_fade_over_trail_time_metadata = { "offset" : _set_should_fade_over_trail_time_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @should_fade_over_trail_time.setter
    def should_fade_over_trail_time(self, fade_over_trail_time:bool) -> None:
        return self._intf.set_property(MTODefaultGraphics3DTrack._metadata, MTODefaultGraphics3DTrack._set_should_fade_over_trail_time_metadata, fade_over_trail_time)

    _property_names[show_graphics] = "show_graphics"
    _property_names[marker] = "marker"
    _property_names[point] = "point"
    _property_names[model] = "model"
    _property_names[label] = "label"
    _property_names[swap_distances] = "swap_distances"
    _property_names[range_contours] = "range_contours"
    _property_names[drop_lines] = "drop_lines"
    _property_names[should_fade_over_trail_time] = "should_fade_over_trail_time"

    def __init__(self, source_object=None):
        """Construct an object of type MTODefaultGraphics3DTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTODefaultGraphics3DTrack)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTODefaultGraphics3DTrack, [MTODefaultGraphics3DTrack, ])

agcls.AgClassCatalog.add_catalog_entry((5284401081392985862, 12710251347513598353), MTODefaultGraphics3DTrack)
agcls.AgTypeNameMap["MTODefaultGraphics3DTrack"] = MTODefaultGraphics3DTrack

class MTOGraphics3DGlobalTrackOptions(SupportsDeleteCallback):
    """Interface for global 3D graphics MTO track options."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_tracks_method_offset = 1
    _set_show_tracks_method_offset = 2
    _get_show_label_method_offset = 3
    _set_show_label_method_offset = 4
    _get_show_markers_method_offset = 5
    _set_show_markers_method_offset = 6
    _get_show_lines_method_offset = 7
    _set_show_lines_method_offset = 8
    _get_show_points_method_offset = 9
    _set_show_points_method_offset = 10
    _get_optimize_lines_method_offset = 11
    _set_optimize_lines_method_offset = 12
    _metadata = {
        "iid_data" : (4822456093608701317, 16885090290543459990),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics3DGlobalTrackOptions)

    _get_show_tracks_metadata = { "offset" : _get_show_tracks_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_tracks(self) -> bool:
        """Opt whether to display MTO graphics in the 3D graphics window."""
        return self._intf.get_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._get_show_tracks_metadata)

    _set_show_tracks_metadata = { "offset" : _set_show_tracks_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_tracks.setter
    def show_tracks(self, tracks_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._set_show_tracks_metadata, tracks_visible)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Opt whether to display MTO track labels in the 3D graphics window."""
        return self._intf.get_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, labels_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._set_show_label_metadata, labels_visible)

    _get_show_markers_metadata = { "offset" : _get_show_markers_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_markers(self) -> bool:
        """Opt whether to display MTO track markers in the 3D graphics window."""
        return self._intf.get_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._get_show_markers_metadata)

    _set_show_markers_metadata = { "offset" : _set_show_markers_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_markers.setter
    def show_markers(self, markers_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._set_show_markers_metadata, markers_visible)

    _get_show_lines_metadata = { "offset" : _get_show_lines_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_lines(self) -> bool:
        """Opt whether to display MTO track lines in the 3D graphics window."""
        return self._intf.get_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._get_show_lines_metadata)

    _set_show_lines_metadata = { "offset" : _set_show_lines_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_lines.setter
    def show_lines(self, lines_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._set_show_lines_metadata, lines_visible)

    _get_show_points_metadata = { "offset" : _get_show_points_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_points(self) -> bool:
        """Opt whether to display MTO track points in the 3D graphics window."""
        return self._intf.get_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._get_show_points_metadata)

    _set_show_points_metadata = { "offset" : _set_show_points_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_points.setter
    def show_points(self, points_visible:bool) -> None:
        return self._intf.set_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._set_show_points_metadata, points_visible)

    _get_optimize_lines_metadata = { "offset" : _get_optimize_lines_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def optimize_lines(self) -> bool:
        """Opt whether interpolated route lines will be displayed with higher accuracy. This can be very resource intensive and may degrade performance, but will improve visual quality."""
        return self._intf.get_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._get_optimize_lines_metadata)

    _set_optimize_lines_metadata = { "offset" : _set_optimize_lines_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @optimize_lines.setter
    def optimize_lines(self, optimize_lines:bool) -> None:
        return self._intf.set_property(MTOGraphics3DGlobalTrackOptions._metadata, MTOGraphics3DGlobalTrackOptions._set_optimize_lines_metadata, optimize_lines)

    _property_names[show_tracks] = "show_tracks"
    _property_names[show_label] = "show_label"
    _property_names[show_markers] = "show_markers"
    _property_names[show_lines] = "show_lines"
    _property_names[show_points] = "show_points"
    _property_names[optimize_lines] = "optimize_lines"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics3DGlobalTrackOptions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics3DGlobalTrackOptions)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics3DGlobalTrackOptions, [MTOGraphics3DGlobalTrackOptions, ])

agcls.AgClassCatalog.add_catalog_entry((4659902199470544851, 3174272253721855669), MTOGraphics3DGlobalTrackOptions)
agcls.AgTypeNameMap["MTOGraphics3DGlobalTrackOptions"] = MTOGraphics3DGlobalTrackOptions

class MTOGraphics3D(SupportsDeleteCallback):
    """Interface for MTO 3D graphics properties."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_tracks_method_offset = 1
    _get_default_track_method_offset = 2
    _get_global_track_options_method_offset = 3
    _metadata = {
        "iid_data" : (5005992001782319038, 9863719962220349873),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics3D)

    _get_tracks_metadata = { "offset" : _get_tracks_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tracks(self) -> "MTOGraphics3DTrackCollection":
        """Get the collection of MTO 3D graphics settings."""
        return self._intf.get_property(MTOGraphics3D._metadata, MTOGraphics3D._get_tracks_metadata)

    _get_default_track_metadata = { "offset" : _get_default_track_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def default_track(self) -> "MTODefaultGraphics3DTrack":
        """Get the default track 3D graphics settings."""
        return self._intf.get_property(MTOGraphics3D._metadata, MTOGraphics3D._get_default_track_metadata)

    _get_global_track_options_metadata = { "offset" : _get_global_track_options_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def global_track_options(self) -> "MTOGraphics3DGlobalTrackOptions":
        """Get the MTO global track 3D options."""
        return self._intf.get_property(MTOGraphics3D._metadata, MTOGraphics3D._get_global_track_options_metadata)

    _property_names[tracks] = "tracks"
    _property_names[default_track] = "default_track"
    _property_names[global_track_options] = "global_track_options"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics3D, [MTOGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5435399396300976060, 8908438611349742265), MTOGraphics3D)
agcls.AgTypeNameMap["MTOGraphics3D"] = MTOGraphics3D

class LatitudeLongitudeAltitudeCentric(ILatitudeLongitudeAltitudePosition, SupportsDeleteCallback):
    """Geocentric LLA position interface:."""

    _num_methods = 6
    _vtable_offset = ILatitudeLongitudeAltitudePosition._vtable_offset + ILatitudeLongitudeAltitudePosition._num_methods
    _get_latitude_method_offset = 1
    _set_latitude_method_offset = 2
    _get_longitude_method_offset = 3
    _set_longitude_method_offset = 4
    _get_radius_method_offset = 5
    _set_radius_method_offset = 6
    _metadata = {
        "iid_data" : (5550598010584188267, 11417620981506997394),
        "vtable_reference" : ILatitudeLongitudeAltitudePosition._vtable_offset + ILatitudeLongitudeAltitudePosition._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LatitudeLongitudeAltitudeCentric)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Latitude: angle above the x-y plane. Uses Latitude Dimension."""
        return self._intf.get_property(LatitudeLongitudeAltitudeCentric._metadata, LatitudeLongitudeAltitudeCentric._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude.setter
    def latitude(self, lat:float) -> None:
        return self._intf.set_property(LatitudeLongitudeAltitudeCentric._metadata, LatitudeLongitudeAltitudeCentric._set_latitude_metadata, lat)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Longitude: angle in x-y plane from x towards y. Uses Longitude Dimension."""
        return self._intf.get_property(LatitudeLongitudeAltitudeCentric._metadata, LatitudeLongitudeAltitudeCentric._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, lon:float) -> None:
        return self._intf.set_property(LatitudeLongitudeAltitudeCentric._metadata, LatitudeLongitudeAltitudeCentric._set_longitude_metadata, lon)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """Radius measured from the center of mass of the central body. Uses Distance Dimension."""
        return self._intf.get_property(LatitudeLongitudeAltitudeCentric._metadata, LatitudeLongitudeAltitudeCentric._get_radius_metadata)

    _set_radius_metadata = { "offset" : _set_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius.setter
    def radius(self, rad:float) -> None:
        return self._intf.set_property(LatitudeLongitudeAltitudeCentric._metadata, LatitudeLongitudeAltitudeCentric._set_radius_metadata, rad)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[radius] = "radius"

    def __init__(self, source_object=None):
        """Construct an object of type LatitudeLongitudeAltitudeCentric."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LatitudeLongitudeAltitudeCentric)
        ILatitudeLongitudeAltitudePosition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILatitudeLongitudeAltitudePosition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LatitudeLongitudeAltitudeCentric, [LatitudeLongitudeAltitudeCentric, ILatitudeLongitudeAltitudePosition])

agcls.AgClassCatalog.add_catalog_entry((5688227048413933764, 7133482494356824194), LatitudeLongitudeAltitudeCentric)
agcls.AgTypeNameMap["LatitudeLongitudeAltitudeCentric"] = LatitudeLongitudeAltitudeCentric

class LatitudeLongitudeAltitudeDetic(ILatitudeLongitudeAltitudePosition, SupportsDeleteCallback):
    """Geodetic LLA position interface."""

    _num_methods = 6
    _vtable_offset = ILatitudeLongitudeAltitudePosition._vtable_offset + ILatitudeLongitudeAltitudePosition._num_methods
    _get_latitude_method_offset = 1
    _set_latitude_method_offset = 2
    _get_longitude_method_offset = 3
    _set_longitude_method_offset = 4
    _get_altitude_method_offset = 5
    _set_altitude_method_offset = 6
    _metadata = {
        "iid_data" : (5631976612704380938, 16294146264890464152),
        "vtable_reference" : ILatitudeLongitudeAltitudePosition._vtable_offset + ILatitudeLongitudeAltitudePosition._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LatitudeLongitudeAltitudeDetic)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Latitude: angle above the x-y plane. Uses Latitude Dimension."""
        return self._intf.get_property(LatitudeLongitudeAltitudeDetic._metadata, LatitudeLongitudeAltitudeDetic._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude.setter
    def latitude(self, lat:float) -> None:
        return self._intf.set_property(LatitudeLongitudeAltitudeDetic._metadata, LatitudeLongitudeAltitudeDetic._set_latitude_metadata, lat)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Longitude: angle in x-y plane from x towards y. Uses Longitude Dimension."""
        return self._intf.get_property(LatitudeLongitudeAltitudeDetic._metadata, LatitudeLongitudeAltitudeDetic._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, lon:float) -> None:
        return self._intf.set_property(LatitudeLongitudeAltitudeDetic._metadata, LatitudeLongitudeAltitudeDetic._set_longitude_metadata, lon)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Altitude measured along the normal to the surface of an ellipsoid defined with reference to the central body. Uses Distance Dimension."""
        return self._intf.get_property(LatitudeLongitudeAltitudeDetic._metadata, LatitudeLongitudeAltitudeDetic._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, alt:float) -> None:
        return self._intf.set_property(LatitudeLongitudeAltitudeDetic._metadata, LatitudeLongitudeAltitudeDetic._set_altitude_metadata, alt)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[altitude] = "altitude"

    def __init__(self, source_object=None):
        """Construct an object of type LatitudeLongitudeAltitudeDetic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LatitudeLongitudeAltitudeDetic)
        ILatitudeLongitudeAltitudePosition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILatitudeLongitudeAltitudePosition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LatitudeLongitudeAltitudeDetic, [LatitudeLongitudeAltitudeDetic, ILatitudeLongitudeAltitudePosition])

agcls.AgClassCatalog.add_catalog_entry((5089121187512936204, 3265326592701622444), LatitudeLongitudeAltitudeDetic)
agcls.AgTypeNameMap["LatitudeLongitudeAltitudeDetic"] = LatitudeLongitudeAltitudeDetic

class LineTargetPoint(SupportsDeleteCallback):
    """Line Target Point interface."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_latitude_method_offset = 1
    _set_latitude_method_offset = 2
    _get_longitude_method_offset = 3
    _set_longitude_method_offset = 4
    _metadata = {
        "iid_data" : (4669782497225400548, 10122651888584525455),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LineTargetPoint)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def latitude(self) -> typing.Any:
        """Latitude of a point used in defining a line target. Uses Latitude Dimension."""
        return self._intf.get_property(LineTargetPoint._metadata, LineTargetPoint._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @latitude.setter
    def latitude(self, lat:typing.Any) -> None:
        return self._intf.set_property(LineTargetPoint._metadata, LineTargetPoint._set_latitude_metadata, lat)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def longitude(self) -> typing.Any:
        """Longitude of a point used in defining a line target. Uses Longitude Dimension."""
        return self._intf.get_property(LineTargetPoint._metadata, LineTargetPoint._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @longitude.setter
    def longitude(self, lon:typing.Any) -> None:
        return self._intf.set_property(LineTargetPoint._metadata, LineTargetPoint._set_longitude_metadata, lon)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"

    def __init__(self, source_object=None):
        """Construct an object of type LineTargetPoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LineTargetPoint)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LineTargetPoint, [LineTargetPoint, ])

agcls.AgClassCatalog.add_catalog_entry((5260117876700746182, 12894723267373340052), LineTargetPoint)
agcls.AgTypeNameMap["LineTargetPoint"] = LineTargetPoint

class LineTargetPointCollection(SupportsDeleteCallback):
    """The collection of points for the line target."""

    _num_methods = 8
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get__new_enum_method_offset = 1
    _get_count_method_offset = 2
    _item_method_offset = 3
    _add_method_offset = 4
    _remove_method_offset = 5
    _remove_all_method_offset = 6
    _get_anchor_point_method_offset = 7
    _set_anchor_point_method_offset = 8
    _metadata = {
        "iid_data" : (5443300849481208374, 3696738906556479880),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LineTargetPointCollection)
    def __iter__(self):
        """Create an iterator for the LineTargetPointCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "LineTargetPoint":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the collection of points."""
        return self._intf.get_property(LineTargetPointCollection._metadata, LineTargetPointCollection._get__new_enum_metadata)

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of latitude-longitude pairs."""
        return self._intf.get_property(LineTargetPointCollection._metadata, LineTargetPointCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "LineTargetPoint":
        """Return the latitude-longitude pair with the specified index."""
        return self._intf.invoke(LineTargetPointCollection._metadata, LineTargetPointCollection._item_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def add(self, lat:typing.Any, lon:typing.Any) -> "LineTargetPoint":
        """Add a latitude-longitude pair. Lat uses Latitude Dimension, Lon Uses Longitude Dimension."""
        return self._intf.invoke(LineTargetPointCollection._metadata, LineTargetPointCollection._add_metadata, lat, lon, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove(self, item_index:int) -> None:
        """Remove an item using a given index."""
        return self._intf.invoke(LineTargetPointCollection._metadata, LineTargetPointCollection._remove_metadata, item_index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all items."""
        return self._intf.invoke(LineTargetPointCollection._metadata, LineTargetPointCollection._remove_all_metadata, )

    _get_anchor_point_metadata = { "offset" : _get_anchor_point_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def anchor_point(self) -> int:
        """Specify the anchor point. Dimensionless."""
        return self._intf.get_property(LineTargetPointCollection._metadata, LineTargetPointCollection._get_anchor_point_metadata)

    _set_anchor_point_metadata = { "offset" : _set_anchor_point_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @anchor_point.setter
    def anchor_point(self, anchor_pt:int) -> None:
        return self._intf.set_property(LineTargetPointCollection._metadata, LineTargetPointCollection._set_anchor_point_metadata, anchor_pt)

    __getitem__ = item


    _property_names[_new_enum] = "_new_enum"
    _property_names[count] = "count"
    _property_names[anchor_point] = "anchor_point"

    def __init__(self, source_object=None):
        """Construct an object of type LineTargetPointCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LineTargetPointCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LineTargetPointCollection, [LineTargetPointCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4854750783884093405, 8895235442674770835), LineTargetPointCollection)
agcls.AgTypeNameMap["LineTargetPointCollection"] = LineTargetPointCollection

class LineTarget(ISTKObject, ILifetimeInformation, IDisplayTime, SupportsDeleteCallback):
    """
    Line Target Path properties.

    Examples
    --------
    Create a New Line Target (on the current scenario central body):
    >>> # Scenario scenario: Scenario object
    >>> lineTarget = scenario.children.new(STKObjectType.LINE_TARGET, "MyLineTarget")
    >>> point1 = lineTarget.points.add(34.72, -118.34)
    >>> point2 = lineTarget.points.add(30.83, -82.67)
    """

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_points_method_offset = 1
    _get_graphics_method_offset = 2
    _get_graphics_3d_method_offset = 3
    _get_access_constraints_method_offset = 4
    _get_allow_object_access_method_offset = 5
    _set_allow_object_access_method_offset = 6
    _metadata = {
        "iid_data" : (5731817418858438553, 15340643884977035686),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LineTarget)

    _get_points_metadata = { "offset" : _get_points_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def points(self) -> "LineTargetPointCollection":
        """Get the points table, which displays a summary of the latitude and longitude values for each point, and indicates which point is currently defined as the anchor point."""
        return self._intf.get_property(LineTarget._metadata, LineTarget._get_points_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "LineTargetGraphics":
        """Return the 2D graphics properties of the line target."""
        return self._intf.get_property(LineTarget._metadata, LineTarget._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "LineTargetGraphics3D":
        """Return the 3D graphics properties of the line target."""
        return self._intf.get_property(LineTarget._metadata, LineTarget._get_graphics_3d_metadata)

    _get_access_constraints_metadata = { "offset" : _get_access_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraints(self) -> "AccessConstraintCollection":
        """Return the constraints for the line target."""
        return self._intf.get_property(LineTarget._metadata, LineTarget._get_access_constraints_metadata)

    _get_allow_object_access_metadata = { "offset" : _get_allow_object_access_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_object_access(self) -> bool:
        """Opt to have access to the object constrained to when it applies to the entire object,rather than any part of it."""
        return self._intf.get_property(LineTarget._metadata, LineTarget._get_allow_object_access_metadata)

    _set_allow_object_access_metadata = { "offset" : _set_allow_object_access_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_object_access.setter
    def allow_object_access(self, value:bool) -> None:
        return self._intf.set_property(LineTarget._metadata, LineTarget._set_allow_object_access_metadata, value)

    _property_names[points] = "points"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[access_constraints] = "access_constraints"
    _property_names[allow_object_access] = "allow_object_access"

    def __init__(self, source_object=None):
        """Construct an object of type LineTarget."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LineTarget)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LineTarget, [LineTarget, ISTKObject, ILifetimeInformation, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((5067889483577199103, 7082124603251270807), LineTarget)
agcls.AgTypeNameMap["LineTarget"] = LineTarget

class LineTargetGraphics(SupportsDeleteCallback):
    """Line Target 2D graphics."""

    _num_methods = 25
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_label_name_method_offset = 1
    _set_label_name_method_offset = 2
    _get_show_bounding_rectangle_method_offset = 3
    _set_show_bounding_rectangle_method_offset = 4
    _get_line_width_method_offset = 5
    _set_line_width_method_offset = 6
    _get_line_style_method_offset = 7
    _set_line_style_method_offset = 8
    _get_show_line_points_method_offset = 9
    _set_show_line_points_method_offset = 10
    _get_use_instance_name_label_method_offset = 11
    _set_use_instance_name_label_method_offset = 12
    _get_show_label_method_offset = 13
    _set_show_label_method_offset = 14
    _get_label_color_method_offset = 15
    _set_label_color_method_offset = 16
    _get_marker_style_method_offset = 17
    _set_marker_style_method_offset = 18
    _get_color_method_offset = 19
    _set_color_method_offset = 20
    _get_inherit_method_offset = 21
    _set_inherit_method_offset = 22
    _get_label_notes_method_offset = 23
    _get_show_graphics_method_offset = 24
    _set_show_graphics_method_offset = 25
    _metadata = {
        "iid_data" : (5386408238610331699, 478130105750694821),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LineTargetGraphics)

    _get_label_name_metadata = { "offset" : _get_label_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def label_name(self) -> str:
        """Get or set the label name."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_label_name_metadata)

    _set_label_name_metadata = { "offset" : _set_label_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @label_name.setter
    def label_name(self, value:str) -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_label_name_metadata, value)

    _get_show_bounding_rectangle_metadata = { "offset" : _get_show_bounding_rectangle_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_bounding_rectangle(self) -> bool:
        """A bounding rectangle is displayed using the outermost points defined for the line target as its reference."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_show_bounding_rectangle_metadata)

    _set_show_bounding_rectangle_metadata = { "offset" : _set_show_bounding_rectangle_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_bounding_rectangle.setter
    def show_bounding_rectangle(self, value:bool) -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_show_bounding_rectangle_metadata, value)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Line width."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_line_width_metadata, value)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Line style."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_line_style_metadata, value)

    _get_show_line_points_metadata = { "offset" : _get_show_line_points_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_line_points(self) -> bool:
        """Get or set the individual points used to define the line target are marked along the line. The point currently selected in the Path list is accented with a square."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_show_line_points_metadata)

    _set_show_line_points_metadata = { "offset" : _set_show_line_points_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_line_points.setter
    def show_line_points(self, value:bool) -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_show_line_points_metadata, value)

    _get_use_instance_name_label_metadata = { "offset" : _get_use_instance_name_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_instance_name_label(self) -> bool:
        """Use the label name instance."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_use_instance_name_label_metadata)

    _set_use_instance_name_label_metadata = { "offset" : _set_use_instance_name_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_instance_name_label.setter
    def use_instance_name_label(self, value:bool) -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_use_instance_name_label_metadata, value)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Show the label; the Inherit property must be false or this property will be read-only."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, value:bool) -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_show_label_metadata, value)

    _get_label_color_metadata = { "offset" : _get_label_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def label_color(self) -> agcolor.Color:
        """Label color."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_label_color_metadata)

    _set_label_color_metadata = { "offset" : _set_label_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @label_color.setter
    def label_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_label_color_metadata, value)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """Marker style."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, value:str) -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_marker_style_metadata, value)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Line Color."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_color_metadata, value)

    _get_inherit_metadata = { "offset" : _get_inherit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit(self) -> bool:
        """Inherit 2D graphics properties from the scenario."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_inherit_metadata)

    _set_inherit_metadata = { "offset" : _set_inherit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit.setter
    def inherit(self, value:bool) -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_inherit_metadata, value)

    _get_label_notes_metadata = { "offset" : _get_label_notes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def label_notes(self) -> "LabelNoteCollection":
        """Get the label notes collection."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_label_notes_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the line target are visible."""
        return self._intf.get_property(LineTargetGraphics._metadata, LineTargetGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, value:bool) -> None:
        return self._intf.set_property(LineTargetGraphics._metadata, LineTargetGraphics._set_show_graphics_metadata, value)

    _property_names[label_name] = "label_name"
    _property_names[show_bounding_rectangle] = "show_bounding_rectangle"
    _property_names[line_width] = "line_width"
    _property_names[line_style] = "line_style"
    _property_names[show_line_points] = "show_line_points"
    _property_names[use_instance_name_label] = "use_instance_name_label"
    _property_names[show_label] = "show_label"
    _property_names[label_color] = "label_color"
    _property_names[marker_style] = "marker_style"
    _property_names[color] = "color"
    _property_names[inherit] = "inherit"
    _property_names[label_notes] = "label_notes"
    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type LineTargetGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LineTargetGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LineTargetGraphics, [LineTargetGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5723708842906723999, 8977283129816415117), LineTargetGraphics)
agcls.AgTypeNameMap["LineTargetGraphics"] = LineTargetGraphics

class LineTargetGraphics3D(SupportsDeleteCallback):
    """Line Target 3D Graphics properties."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_label_max_viewing_dist_method_offset = 1
    _set_enable_label_max_viewing_dist_method_offset = 2
    _get_label_maximum_viewing_dist_method_offset = 3
    _set_label_maximum_viewing_dist_method_offset = 4
    _get_border_wall_method_offset = 5
    _get_vector_method_offset = 6
    _metadata = {
        "iid_data" : (5706080373005056686, 1311379410901434289),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LineTargetGraphics3D)

    _get_enable_label_max_viewing_dist_metadata = { "offset" : _get_enable_label_max_viewing_dist_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_label_max_viewing_dist(self) -> bool:
        """Use the maximum viewing distance for displaying the line target label."""
        return self._intf.get_property(LineTargetGraphics3D._metadata, LineTargetGraphics3D._get_enable_label_max_viewing_dist_metadata)

    _set_enable_label_max_viewing_dist_metadata = { "offset" : _set_enable_label_max_viewing_dist_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_label_max_viewing_dist.setter
    def enable_label_max_viewing_dist(self, use:bool) -> None:
        return self._intf.set_property(LineTargetGraphics3D._metadata, LineTargetGraphics3D._set_enable_label_max_viewing_dist_metadata, use)

    _get_label_maximum_viewing_dist_metadata = { "offset" : _get_label_maximum_viewing_dist_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def label_maximum_viewing_dist(self) -> float:
        """Specify the maximum distance at which the line target label is displayed. Uses Distance Dimension."""
        return self._intf.get_property(LineTargetGraphics3D._metadata, LineTargetGraphics3D._get_label_maximum_viewing_dist_metadata)

    _set_label_maximum_viewing_dist_metadata = { "offset" : _set_label_maximum_viewing_dist_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @label_maximum_viewing_dist.setter
    def label_maximum_viewing_dist(self, label_max_viewing_dist:float) -> None:
        return self._intf.set_property(LineTargetGraphics3D._metadata, LineTargetGraphics3D._set_label_maximum_viewing_dist_metadata, label_max_viewing_dist)

    _get_border_wall_metadata = { "offset" : _get_border_wall_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def border_wall(self) -> "Graphics3DBorderWall":
        """Retrieve the border wall properties."""
        return self._intf.get_property(LineTargetGraphics3D._metadata, LineTargetGraphics3D._get_border_wall_metadata)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get the vector."""
        return self._intf.get_property(LineTargetGraphics3D._metadata, LineTargetGraphics3D._get_vector_metadata)

    _property_names[enable_label_max_viewing_dist] = "enable_label_max_viewing_dist"
    _property_names[label_maximum_viewing_dist] = "label_maximum_viewing_dist"
    _property_names[border_wall] = "border_wall"
    _property_names[vector] = "vector"

    def __init__(self, source_object=None):
        """Construct an object of type LineTargetGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LineTargetGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LineTargetGraphics3D, [LineTargetGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((4930310644787000875, 5363000971999462290), LineTargetGraphics3D)
agcls.AgTypeNameMap["LineTargetGraphics3D"] = LineTargetGraphics3D

class CoverageDefinition(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """
    Coverage definition properties.

    Examples
    --------
    Compute Coverage:
    >>> # CoverageDefinition coverage: Coverage object
    >>> coverage.compute_accesses()

    Set Advanced Settings for Coverage:
    >>> # CoverageDefinition coverage: Coverage object
    >>> advanced = coverage.advanced
    >>> advanced.recompute_automatically = False
    >>> advanced.data_retention = CoverageDataRetention.ALL_DATA
    >>> advanced.save_mode = DataSaveMode.SAVE_ACCESSES

    Set the Coverage Interval to an object's availability Analysis interval:
    >>> # Satellite satellite: Satellite object
    >>> # CoverageDefinition coverage: Coverage object
    >>> satVGT = satellite.analysis_workbench_components
    >>> AvailTimeSpan = satVGT.time_intervals.item("AvailabilityTimeSpan")
    >>> IntResult = AvailTimeSpan.find_interval()
    >>> coverage.interval.analysis_interval.set_start_and_stop_times(IntResult.interval.start, IntResult.interval.stop)

    Create a New Coverage Definition (on the current scenario central body):
    >>> # Scenario scenario: Scenario object
    >>> # Create new Coverage Definition and set the Bounds to an area target
    >>> coverage = scenario.children.new(STKObjectType.COVERAGE_DEFINITION, "MyCoverage")
    >>> coverage.grid.bounds_type = CoverageBounds.CUSTOM_REGIONS
    >>> covGrid = coverage.grid
    >>> bounds = covGrid.bounds
    >>> bounds.area_targets.add("AreaTarget/MyAreaTarget")
    >>> # Define the Grid Resolution
    >>> Res = covGrid.resolution
    >>> Res.latitude_longitude = 0.5  # deg
    >>> # Set the satellite as the Asset
    >>> coverage.asset_list.add("Satellite/MySatellite")
    >>>
    >>> # Turn off Show Grid Points
    >>> coverage.graphics.static.show_points = False
    """

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_grid_method_offset = 1
    _get_point_definition_method_offset = 2
    _get_asset_list_method_offset = 3
    _get_advanced_method_offset = 4
    _get_interval_method_offset = 5
    _get_graphics_method_offset = 6
    _get_graphics_3d_method_offset = 7
    _compute_accesses_method_offset = 8
    _clear_accesses_method_offset = 9
    _reload_accesses_method_offset = 10
    _export_accesses_as_text_method_offset = 11
    _get_grid_inspector_method_offset = 12
    _metadata = {
        "iid_data" : (5422413048541230540, 5600831430176460675),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageDefinition)

    _get_grid_metadata = { "offset" : _get_grid_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def grid(self) -> "CoverageGrid":
        """Definition of the coverage grid."""
        return self._intf.get_property(CoverageDefinition._metadata, CoverageDefinition._get_grid_metadata)

    _get_point_definition_metadata = { "offset" : _get_point_definition_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point_definition(self) -> "CoveragePointDefinition":
        """Location of points on the coverage grid."""
        return self._intf.get_property(CoverageDefinition._metadata, CoverageDefinition._get_point_definition_metadata)

    _get_asset_list_metadata = { "offset" : _get_asset_list_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def asset_list(self) -> "CoverageAssetListCollection":
        """List of assets to use in coverage computations."""
        return self._intf.get_property(CoverageDefinition._metadata, CoverageDefinition._get_asset_list_metadata)

    _get_advanced_metadata = { "offset" : _get_advanced_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def advanced(self) -> "CoverageAdvancedSettings":
        """Advanced properties of the coverage definition."""
        return self._intf.get_property(CoverageDefinition._metadata, CoverageDefinition._get_advanced_metadata)

    _get_interval_metadata = { "offset" : _get_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def interval(self) -> "CoverageInterval":
        """Coverage interval."""
        return self._intf.get_property(CoverageDefinition._metadata, CoverageDefinition._get_interval_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "CoverageGraphics":
        """2D Graphics properties of the coverage definition."""
        return self._intf.get_property(CoverageDefinition._metadata, CoverageDefinition._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "CoverageGraphics3D":
        """3D Graphics properties of the coverage definition."""
        return self._intf.get_property(CoverageDefinition._metadata, CoverageDefinition._get_graphics_3d_metadata)

    _compute_accesses_metadata = { "offset" : _compute_accesses_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def compute_accesses(self) -> None:
        """Compute accesses between the grid points and the assigned assets."""
        return self._intf.invoke(CoverageDefinition._metadata, CoverageDefinition._compute_accesses_metadata, )

    _clear_accesses_metadata = { "offset" : _clear_accesses_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear_accesses(self) -> None:
        """Remove access information currently maintained in association with each grid point in the coverage area."""
        return self._intf.invoke(CoverageDefinition._metadata, CoverageDefinition._clear_accesses_metadata, )

    _reload_accesses_metadata = { "offset" : _reload_accesses_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reload_accesses(self) -> None:
        """Reload access data that was previously saved with a coverage definition object."""
        return self._intf.invoke(CoverageDefinition._metadata, CoverageDefinition._reload_accesses_metadata, )

    _export_accesses_as_text_metadata = { "offset" : _export_accesses_as_text_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export_accesses_as_text(self, filename:str) -> None:
        """Export all computed accesses to an ASCII text file."""
        return self._intf.invoke(CoverageDefinition._metadata, CoverageDefinition._export_accesses_as_text_metadata, filename)

    _get_grid_inspector_metadata = { "offset" : _get_grid_inspector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def grid_inspector(self) -> "CoverageGridInspector":
        """Get the grid inspector tool."""
        return self._intf.get_property(CoverageDefinition._metadata, CoverageDefinition._get_grid_inspector_metadata)

    _property_names[grid] = "grid"
    _property_names[point_definition] = "point_definition"
    _property_names[asset_list] = "asset_list"
    _property_names[advanced] = "advanced"
    _property_names[interval] = "interval"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[grid_inspector] = "grid_inspector"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageDefinition."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageDefinition)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageDefinition, [CoverageDefinition, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5684703833078156536, 14188198625474049678), CoverageDefinition)
agcls.AgTypeNameMap["CoverageDefinition"] = CoverageDefinition

class CoverageBoundsCustomRegions(ICoverageBounds, SupportsDeleteCallback):
    """Custom Regions."""

    _num_methods = 8
    _vtable_offset = ICoverageBounds._vtable_offset + ICoverageBounds._num_methods
    _get_region_files_method_offset = 1
    _get_area_targets_method_offset = 2
    _get_check_for_holes_method_offset = 3
    _set_check_for_holes_method_offset = 4
    _get_small_region_algorithm_method_offset = 5
    _set_small_region_algorithm_method_offset = 6
    _get_ellipses_method_offset = 7
    _get_boxes_method_offset = 8
    _metadata = {
        "iid_data" : (5153248026932822902, 2035487386040196255),
        "vtable_reference" : ICoverageBounds._vtable_offset + ICoverageBounds._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageBoundsCustomRegions)

    _get_region_files_metadata = { "offset" : _get_region_files_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def region_files(self) -> "CoverageRegionFilesCollection":
        """File containing user-defined points defining a specific grid region."""
        return self._intf.get_property(CoverageBoundsCustomRegions._metadata, CoverageBoundsCustomRegions._get_region_files_metadata)

    _get_area_targets_metadata = { "offset" : _get_area_targets_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def area_targets(self) -> "CoverageAreaTargetsCollection":
        """Area target to be used as part of the coverage area."""
        return self._intf.get_property(CoverageBoundsCustomRegions._metadata, CoverageBoundsCustomRegions._get_area_targets_metadata)

    _get_check_for_holes_metadata = { "offset" : _get_check_for_holes_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def check_for_holes(self) -> bool:
        """Check for holes in custom region."""
        return self._intf.get_property(CoverageBoundsCustomRegions._metadata, CoverageBoundsCustomRegions._get_check_for_holes_metadata)

    _set_check_for_holes_metadata = { "offset" : _set_check_for_holes_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @check_for_holes.setter
    def check_for_holes(self, value:bool) -> None:
        return self._intf.set_property(CoverageBoundsCustomRegions._metadata, CoverageBoundsCustomRegions._set_check_for_holes_metadata, value)

    _get_small_region_algorithm_metadata = { "offset" : _get_small_region_algorithm_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageCustomRegionAlgorithm),) }
    @property
    def small_region_algorithm(self) -> "CoverageCustomRegionAlgorithm":
        """Disables or enables one of the two special gridding algorithms triggered when Custom Region grid includes a single small region (longitude span less than 1 deg)."""
        return self._intf.get_property(CoverageBoundsCustomRegions._metadata, CoverageBoundsCustomRegions._get_small_region_algorithm_metadata)

    _set_small_region_algorithm_metadata = { "offset" : _set_small_region_algorithm_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageCustomRegionAlgorithm),) }
    @small_region_algorithm.setter
    def small_region_algorithm(self, value:"CoverageCustomRegionAlgorithm") -> None:
        return self._intf.set_property(CoverageBoundsCustomRegions._metadata, CoverageBoundsCustomRegions._set_small_region_algorithm_metadata, value)

    _get_ellipses_metadata = { "offset" : _get_ellipses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ellipses(self) -> "CoverageEllipseCollection":
        """Ellipses to be used as part of the coverage area."""
        return self._intf.get_property(CoverageBoundsCustomRegions._metadata, CoverageBoundsCustomRegions._get_ellipses_metadata)

    _get_boxes_metadata = { "offset" : _get_boxes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def boxes(self) -> "CoverageLatLonBoxCollection":
        """Latitude/longitude boxes to be used as part of the coverage area."""
        return self._intf.get_property(CoverageBoundsCustomRegions._metadata, CoverageBoundsCustomRegions._get_boxes_metadata)

    _property_names[region_files] = "region_files"
    _property_names[area_targets] = "area_targets"
    _property_names[check_for_holes] = "check_for_holes"
    _property_names[small_region_algorithm] = "small_region_algorithm"
    _property_names[ellipses] = "ellipses"
    _property_names[boxes] = "boxes"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageBoundsCustomRegions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageBoundsCustomRegions)
        ICoverageBounds.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICoverageBounds._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageBoundsCustomRegions, [CoverageBoundsCustomRegions, ICoverageBounds])

agcls.AgClassCatalog.add_catalog_entry((4890420645832446438, 6208633936460961721), CoverageBoundsCustomRegions)
agcls.AgTypeNameMap["CoverageBoundsCustomRegions"] = CoverageBoundsCustomRegions

class CoverageBoundsCustomBoundary(ICoverageBounds, SupportsDeleteCallback):
    """Custom Boundary."""

    _num_methods = 2
    _vtable_offset = ICoverageBounds._vtable_offset + ICoverageBounds._num_methods
    _get_region_files_method_offset = 1
    _get_boundary_objects_method_offset = 2
    _metadata = {
        "iid_data" : (4975175611810763754, 13038425891431492025),
        "vtable_reference" : ICoverageBounds._vtable_offset + ICoverageBounds._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageBoundsCustomBoundary)

    _get_region_files_metadata = { "offset" : _get_region_files_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def region_files(self) -> "CoverageRegionFilesCollection":
        """File containing user-defined points defining a specific grid region."""
        return self._intf.get_property(CoverageBoundsCustomBoundary._metadata, CoverageBoundsCustomBoundary._get_region_files_metadata)

    _get_boundary_objects_metadata = { "offset" : _get_boundary_objects_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def boundary_objects(self) -> "ObjectLinkCollection":
        """A list of STK Objects to be used as part of the coverage area."""
        return self._intf.get_property(CoverageBoundsCustomBoundary._metadata, CoverageBoundsCustomBoundary._get_boundary_objects_metadata)

    _property_names[region_files] = "region_files"
    _property_names[boundary_objects] = "boundary_objects"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageBoundsCustomBoundary."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageBoundsCustomBoundary)
        ICoverageBounds.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICoverageBounds._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageBoundsCustomBoundary, [CoverageBoundsCustomBoundary, ICoverageBounds])

agcls.AgClassCatalog.add_catalog_entry((5225991888661170622, 3650284672734336919), CoverageBoundsCustomBoundary)
agcls.AgTypeNameMap["CoverageBoundsCustomBoundary"] = CoverageBoundsCustomBoundary

class CoverageBoundsGlobal(ICoverageBounds, SupportsDeleteCallback):
    """Global: grid covering the entire globe."""

    _num_methods = 0
    _vtable_offset = ICoverageBounds._vtable_offset + ICoverageBounds._num_methods
    _metadata = {
        "iid_data" : (5354416800368915002, 15877883781369592731),
        "vtable_reference" : ICoverageBounds._vtable_offset + ICoverageBounds._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageBoundsGlobal)


    def __init__(self, source_object=None):
        """Construct an object of type CoverageBoundsGlobal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageBoundsGlobal)
        ICoverageBounds.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICoverageBounds._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageBoundsGlobal, [CoverageBoundsGlobal, ICoverageBounds])

agcls.AgClassCatalog.add_catalog_entry((5460776683702533001, 11704861504375261095), CoverageBoundsGlobal)
agcls.AgTypeNameMap["CoverageBoundsGlobal"] = CoverageBoundsGlobal

class CoverageBoundsLatitude(ICoverageBounds, SupportsDeleteCallback):
    """Latitude Bounds: create a grid between user-specified Minimum and Maximum Latitude boundaries."""

    _num_methods = 4
    _vtable_offset = ICoverageBounds._vtable_offset + ICoverageBounds._num_methods
    _get_minimum_latitude_method_offset = 1
    _set_minimum_latitude_method_offset = 2
    _get_maximum_latitude_method_offset = 3
    _set_maximum_latitude_method_offset = 4
    _metadata = {
        "iid_data" : (5375282535315345092, 5181515563109778307),
        "vtable_reference" : ICoverageBounds._vtable_offset + ICoverageBounds._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageBoundsLatitude)

    _get_minimum_latitude_metadata = { "offset" : _get_minimum_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum_latitude(self) -> typing.Any:
        """Minimum latitude for defining a grid using latitude bounds.  Uses Latitude Dimension."""
        return self._intf.get_property(CoverageBoundsLatitude._metadata, CoverageBoundsLatitude._get_minimum_latitude_metadata)

    _set_minimum_latitude_metadata = { "offset" : _set_minimum_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum_latitude.setter
    def minimum_latitude(self, min_latitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLatitude._metadata, CoverageBoundsLatitude._set_minimum_latitude_metadata, min_latitude)

    _get_maximum_latitude_metadata = { "offset" : _get_maximum_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_latitude(self) -> typing.Any:
        """Maximum latitude for defining a grid using latitude bounds. Uses Latitude Dimension."""
        return self._intf.get_property(CoverageBoundsLatitude._metadata, CoverageBoundsLatitude._get_maximum_latitude_metadata)

    _set_maximum_latitude_metadata = { "offset" : _set_maximum_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum_latitude.setter
    def maximum_latitude(self, max_latitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLatitude._metadata, CoverageBoundsLatitude._set_maximum_latitude_metadata, max_latitude)

    _property_names[minimum_latitude] = "minimum_latitude"
    _property_names[maximum_latitude] = "maximum_latitude"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageBoundsLatitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageBoundsLatitude)
        ICoverageBounds.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICoverageBounds._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageBoundsLatitude, [CoverageBoundsLatitude, ICoverageBounds])

agcls.AgClassCatalog.add_catalog_entry((5432348517303390452, 5096780268462821048), CoverageBoundsLatitude)
agcls.AgTypeNameMap["CoverageBoundsLatitude"] = CoverageBoundsLatitude

class CoverageBoundsLatitudeLine(ICoverageBounds, SupportsDeleteCallback):
    """Latitude Line: Create a set of points along a single latitude line, useful when the coverage is only expected to vary with longitude."""

    _num_methods = 6
    _vtable_offset = ICoverageBounds._vtable_offset + ICoverageBounds._num_methods
    _get_start_longitude_method_offset = 1
    _set_start_longitude_method_offset = 2
    _get_stop_longitude_method_offset = 3
    _set_stop_longitude_method_offset = 4
    _get_latitude_method_offset = 5
    _set_latitude_method_offset = 6
    _metadata = {
        "iid_data" : (5070607175009033801, 4907605755458594229),
        "vtable_reference" : ICoverageBounds._vtable_offset + ICoverageBounds._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageBoundsLatitudeLine)

    _get_start_longitude_metadata = { "offset" : _get_start_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_longitude(self) -> typing.Any:
        """Longitude at which the latitude line begins. Uses Longitude Dimension."""
        return self._intf.get_property(CoverageBoundsLatitudeLine._metadata, CoverageBoundsLatitudeLine._get_start_longitude_metadata)

    _set_start_longitude_metadata = { "offset" : _set_start_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_longitude.setter
    def start_longitude(self, start_longitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLatitudeLine._metadata, CoverageBoundsLatitudeLine._set_start_longitude_metadata, start_longitude)

    _get_stop_longitude_metadata = { "offset" : _get_stop_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_longitude(self) -> typing.Any:
        """Longitude at which the latitude line ends. Uses Longitude Dimension."""
        return self._intf.get_property(CoverageBoundsLatitudeLine._metadata, CoverageBoundsLatitudeLine._get_stop_longitude_metadata)

    _set_stop_longitude_metadata = { "offset" : _set_stop_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop_longitude.setter
    def stop_longitude(self, stop_longitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLatitudeLine._metadata, CoverageBoundsLatitudeLine._set_stop_longitude_metadata, stop_longitude)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def latitude(self) -> typing.Any:
        """Latitude of the latitude line. Uses Latitude Dimension."""
        return self._intf.get_property(CoverageBoundsLatitudeLine._metadata, CoverageBoundsLatitudeLine._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @latitude.setter
    def latitude(self, latitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLatitudeLine._metadata, CoverageBoundsLatitudeLine._set_latitude_metadata, latitude)

    _property_names[start_longitude] = "start_longitude"
    _property_names[stop_longitude] = "stop_longitude"
    _property_names[latitude] = "latitude"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageBoundsLatitudeLine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageBoundsLatitudeLine)
        ICoverageBounds.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICoverageBounds._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageBoundsLatitudeLine, [CoverageBoundsLatitudeLine, ICoverageBounds])

agcls.AgClassCatalog.add_catalog_entry((5139867587837048253, 7038745397059178403), CoverageBoundsLatitudeLine)
agcls.AgTypeNameMap["CoverageBoundsLatitudeLine"] = CoverageBoundsLatitudeLine

class CoverageBoundsLongitudeLine(ICoverageBounds, SupportsDeleteCallback):
    """Longitude Line:  Create a set of points along a single meridian, useful when the coverage is only expected to vary with latitude."""

    _num_methods = 6
    _vtable_offset = ICoverageBounds._vtable_offset + ICoverageBounds._num_methods
    _get_minimum_latitude_method_offset = 1
    _set_minimum_latitude_method_offset = 2
    _get_maximum_latitude_method_offset = 3
    _set_maximum_latitude_method_offset = 4
    _get_longitude_method_offset = 5
    _set_longitude_method_offset = 6
    _metadata = {
        "iid_data" : (5579679385662593793, 13408673813584810658),
        "vtable_reference" : ICoverageBounds._vtable_offset + ICoverageBounds._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageBoundsLongitudeLine)

    _get_minimum_latitude_metadata = { "offset" : _get_minimum_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum_latitude(self) -> typing.Any:
        """Minimum latitude used to define the longitude line. Uses Latitude Dimension."""
        return self._intf.get_property(CoverageBoundsLongitudeLine._metadata, CoverageBoundsLongitudeLine._get_minimum_latitude_metadata)

    _set_minimum_latitude_metadata = { "offset" : _set_minimum_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum_latitude.setter
    def minimum_latitude(self, min_latitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLongitudeLine._metadata, CoverageBoundsLongitudeLine._set_minimum_latitude_metadata, min_latitude)

    _get_maximum_latitude_metadata = { "offset" : _get_maximum_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_latitude(self) -> typing.Any:
        """Maximum latitude used to define the longitude line. Uses Latitude Dimension."""
        return self._intf.get_property(CoverageBoundsLongitudeLine._metadata, CoverageBoundsLongitudeLine._get_maximum_latitude_metadata)

    _set_maximum_latitude_metadata = { "offset" : _set_maximum_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum_latitude.setter
    def maximum_latitude(self, max_latitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLongitudeLine._metadata, CoverageBoundsLongitudeLine._set_maximum_latitude_metadata, max_latitude)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def longitude(self) -> typing.Any:
        """Longitude of the meridian defining the longitude line. Uses Longitude Dimension."""
        return self._intf.get_property(CoverageBoundsLongitudeLine._metadata, CoverageBoundsLongitudeLine._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @longitude.setter
    def longitude(self, longitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLongitudeLine._metadata, CoverageBoundsLongitudeLine._set_longitude_metadata, longitude)

    _property_names[minimum_latitude] = "minimum_latitude"
    _property_names[maximum_latitude] = "maximum_latitude"
    _property_names[longitude] = "longitude"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageBoundsLongitudeLine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageBoundsLongitudeLine)
        ICoverageBounds.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICoverageBounds._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageBoundsLongitudeLine, [CoverageBoundsLongitudeLine, ICoverageBounds])

agcls.AgClassCatalog.add_catalog_entry((5614064698332293013, 2232165191949012623), CoverageBoundsLongitudeLine)
agcls.AgTypeNameMap["CoverageBoundsLongitudeLine"] = CoverageBoundsLongitudeLine

class CoverageBoundsLatitudeLongitudeRegion(ICoverageBounds, SupportsDeleteCallback):
    """LatLon Region: create a region between user-specified Minimum and Maximum Latitude and Longitude boundaries."""

    _num_methods = 8
    _vtable_offset = ICoverageBounds._vtable_offset + ICoverageBounds._num_methods
    _get_minimum_latitude_method_offset = 1
    _set_minimum_latitude_method_offset = 2
    _get_maximum_latitude_method_offset = 3
    _set_maximum_latitude_method_offset = 4
    _get_minimum_longitude_method_offset = 5
    _set_minimum_longitude_method_offset = 6
    _get_maximum_longitude_method_offset = 7
    _set_maximum_longitude_method_offset = 8
    _metadata = {
        "iid_data" : (4820190112368875973, 6523630826648805564),
        "vtable_reference" : ICoverageBounds._vtable_offset + ICoverageBounds._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageBoundsLatitudeLongitudeRegion)

    _get_minimum_latitude_metadata = { "offset" : _get_minimum_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum_latitude(self) -> typing.Any:
        """Minimum latitude for defining a grid using lat-lon region.  Uses Latitude Dimension."""
        return self._intf.get_property(CoverageBoundsLatitudeLongitudeRegion._metadata, CoverageBoundsLatitudeLongitudeRegion._get_minimum_latitude_metadata)

    _set_minimum_latitude_metadata = { "offset" : _set_minimum_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum_latitude.setter
    def minimum_latitude(self, min_latitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLatitudeLongitudeRegion._metadata, CoverageBoundsLatitudeLongitudeRegion._set_minimum_latitude_metadata, min_latitude)

    _get_maximum_latitude_metadata = { "offset" : _get_maximum_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_latitude(self) -> typing.Any:
        """Maximum latitude for defining a grid using lat-lon bounds. Uses Latitude Dimension."""
        return self._intf.get_property(CoverageBoundsLatitudeLongitudeRegion._metadata, CoverageBoundsLatitudeLongitudeRegion._get_maximum_latitude_metadata)

    _set_maximum_latitude_metadata = { "offset" : _set_maximum_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum_latitude.setter
    def maximum_latitude(self, max_latitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLatitudeLongitudeRegion._metadata, CoverageBoundsLatitudeLongitudeRegion._set_maximum_latitude_metadata, max_latitude)

    _get_minimum_longitude_metadata = { "offset" : _get_minimum_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum_longitude(self) -> typing.Any:
        """Minimum longitude for defining a grid using lat-lon region.  Uses Longitude Dimension."""
        return self._intf.get_property(CoverageBoundsLatitudeLongitudeRegion._metadata, CoverageBoundsLatitudeLongitudeRegion._get_minimum_longitude_metadata)

    _set_minimum_longitude_metadata = { "offset" : _set_minimum_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum_longitude.setter
    def minimum_longitude(self, min_longitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLatitudeLongitudeRegion._metadata, CoverageBoundsLatitudeLongitudeRegion._set_minimum_longitude_metadata, min_longitude)

    _get_maximum_longitude_metadata = { "offset" : _get_maximum_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_longitude(self) -> typing.Any:
        """Maximum longitude for defining a grid using lat-lon region. Uses Longitude Dimension."""
        return self._intf.get_property(CoverageBoundsLatitudeLongitudeRegion._metadata, CoverageBoundsLatitudeLongitudeRegion._get_maximum_longitude_metadata)

    _set_maximum_longitude_metadata = { "offset" : _set_maximum_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum_longitude.setter
    def maximum_longitude(self, max_longitude:typing.Any) -> None:
        return self._intf.set_property(CoverageBoundsLatitudeLongitudeRegion._metadata, CoverageBoundsLatitudeLongitudeRegion._set_maximum_longitude_metadata, max_longitude)

    _property_names[minimum_latitude] = "minimum_latitude"
    _property_names[maximum_latitude] = "maximum_latitude"
    _property_names[minimum_longitude] = "minimum_longitude"
    _property_names[maximum_longitude] = "maximum_longitude"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageBoundsLatitudeLongitudeRegion."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageBoundsLatitudeLongitudeRegion)
        ICoverageBounds.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICoverageBounds._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageBoundsLatitudeLongitudeRegion, [CoverageBoundsLatitudeLongitudeRegion, ICoverageBounds])

agcls.AgClassCatalog.add_catalog_entry((5522422976028750200, 14092884869601811134), CoverageBoundsLatitudeLongitudeRegion)
agcls.AgTypeNameMap["CoverageBoundsLatitudeLongitudeRegion"] = CoverageBoundsLatitudeLongitudeRegion

class CoverageGrid(SupportsDeleteCallback):
    """Grid Definition and resolution."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_bounds_type_method_offset = 1
    _set_bounds_type_method_offset = 2
    _get_bounds_method_offset = 3
    _get_resolution_type_method_offset = 4
    _set_resolution_type_method_offset = 5
    _get_resolution_method_offset = 6
    _metadata = {
        "iid_data" : (4633065871506773501, 13463851257708113303),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageGrid)

    _get_bounds_type_metadata = { "offset" : _get_bounds_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageBounds),) }
    @property
    def bounds_type(self) -> "CoverageBounds":
        """Type of bounds used to define the coverage region."""
        return self._intf.get_property(CoverageGrid._metadata, CoverageGrid._get_bounds_type_metadata)

    _set_bounds_type_metadata = { "offset" : _set_bounds_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageBounds),) }
    @bounds_type.setter
    def bounds_type(self, bounds:"CoverageBounds") -> None:
        return self._intf.set_property(CoverageGrid._metadata, CoverageGrid._set_bounds_type_metadata, bounds)

    _get_bounds_metadata = { "offset" : _get_bounds_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def bounds(self) -> "ICoverageBounds":
        """Get the coverage region."""
        return self._intf.get_property(CoverageGrid._metadata, CoverageGrid._get_bounds_metadata)

    _get_resolution_type_metadata = { "offset" : _get_resolution_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageResolution),) }
    @property
    def resolution_type(self) -> "CoverageResolution":
        """Type of criterion used to define grid resolution."""
        return self._intf.get_property(CoverageGrid._metadata, CoverageGrid._get_resolution_type_metadata)

    _set_resolution_type_metadata = { "offset" : _set_resolution_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageResolution),) }
    @resolution_type.setter
    def resolution_type(self, resolution:"CoverageResolution") -> None:
        return self._intf.set_property(CoverageGrid._metadata, CoverageGrid._set_resolution_type_metadata, resolution)

    _get_resolution_metadata = { "offset" : _get_resolution_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def resolution(self) -> "ICoverageResolution":
        """Grid resolution."""
        return self._intf.get_property(CoverageGrid._metadata, CoverageGrid._get_resolution_metadata)

    _property_names[bounds_type] = "bounds_type"
    _property_names[bounds] = "bounds"
    _property_names[resolution_type] = "resolution_type"
    _property_names[resolution] = "resolution"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageGrid."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageGrid)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageGrid, [CoverageGrid, ])

agcls.AgClassCatalog.add_catalog_entry((4995515493400572161, 3190000754038888858), CoverageGrid)
agcls.AgTypeNameMap["CoverageGrid"] = CoverageGrid

class CoverageAssetListElement(SupportsDeleteCallback):
    """Coverage asset."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_asset_status_method_offset = 1
    _set_asset_status_method_offset = 2
    _get_grouping_method_offset = 3
    _set_grouping_method_offset = 4
    _get_object_name_method_offset = 5
    _contains_sub_assets_method_offset = 6
    _get_sub_asset_list_method_offset = 7
    _get_required_method_offset = 8
    _set_required_method_offset = 9
    _get_use_constellation_constraints_method_offset = 10
    _set_use_constellation_constraints_method_offset = 11
    _metadata = {
        "iid_data" : (5570774613265018505, 11088332800768791194),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageAssetListElement)

    _get_asset_status_metadata = { "offset" : _get_asset_status_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageAssetStatus),) }
    @property
    def asset_status(self) -> "CoverageAssetStatus":
        """Get or set the current status of the coverage asset (active or not)."""
        return self._intf.get_property(CoverageAssetListElement._metadata, CoverageAssetListElement._get_asset_status_metadata)

    _set_asset_status_metadata = { "offset" : _set_asset_status_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageAssetStatus),) }
    @asset_status.setter
    def asset_status(self, value:"CoverageAssetStatus") -> None:
        return self._intf.set_property(CoverageAssetListElement._metadata, CoverageAssetListElement._set_asset_status_metadata, value)

    _get_grouping_metadata = { "offset" : _get_grouping_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageAssetGrouping),) }
    @property
    def grouping(self) -> "CoverageAssetGrouping":
        """Opt whether to consider the members of a constellation as a group or as separate entities."""
        return self._intf.get_property(CoverageAssetListElement._metadata, CoverageAssetListElement._get_grouping_metadata)

    _set_grouping_metadata = { "offset" : _set_grouping_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageAssetGrouping),) }
    @grouping.setter
    def grouping(self, value:"CoverageAssetGrouping") -> None:
        return self._intf.set_property(CoverageAssetListElement._metadata, CoverageAssetListElement._set_grouping_metadata, value)

    _get_object_name_metadata = { "offset" : _get_object_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def object_name(self) -> str:
        """Name of the object assigned as a coverage asset."""
        return self._intf.get_property(CoverageAssetListElement._metadata, CoverageAssetListElement._get_object_name_metadata)

    _contains_sub_assets_metadata = { "offset" : _contains_sub_assets_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    def contains_sub_assets(self) -> bool:
        """Return whether or not this element has sub assets."""
        return self._intf.invoke(CoverageAssetListElement._metadata, CoverageAssetListElement._contains_sub_assets_metadata, OutArg())

    _get_sub_asset_list_metadata = { "offset" : _get_sub_asset_list_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sub_asset_list(self) -> "CoverageAssetListCollection":
        """Return the sub assets for this asset."""
        return self._intf.get_property(CoverageAssetListElement._metadata, CoverageAssetListElement._get_sub_asset_list_metadata)

    _get_required_metadata = { "offset" : _get_required_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def required(self) -> bool:
        """Flag sets whether Asset is required for all valid access intervals."""
        return self._intf.get_property(CoverageAssetListElement._metadata, CoverageAssetListElement._get_required_metadata)

    _set_required_metadata = { "offset" : _set_required_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @required.setter
    def required(self, required:bool) -> None:
        return self._intf.set_property(CoverageAssetListElement._metadata, CoverageAssetListElement._set_required_metadata, required)

    _get_use_constellation_constraints_metadata = { "offset" : _get_use_constellation_constraints_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_constellation_constraints(self) -> bool:
        """Flag determines whether constellation constraints are considered."""
        return self._intf.get_property(CoverageAssetListElement._metadata, CoverageAssetListElement._get_use_constellation_constraints_metadata)

    _set_use_constellation_constraints_metadata = { "offset" : _set_use_constellation_constraints_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_constellation_constraints.setter
    def use_constellation_constraints(self, use_const_constraints:bool) -> None:
        return self._intf.set_property(CoverageAssetListElement._metadata, CoverageAssetListElement._set_use_constellation_constraints_metadata, use_const_constraints)

    _property_names[asset_status] = "asset_status"
    _property_names[grouping] = "grouping"
    _property_names[object_name] = "object_name"
    _property_names[sub_asset_list] = "sub_asset_list"
    _property_names[required] = "required"
    _property_names[use_constellation_constraints] = "use_constellation_constraints"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageAssetListElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageAssetListElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageAssetListElement, [CoverageAssetListElement, ])

agcls.AgClassCatalog.add_catalog_entry((4668670755688497698, 16637719778995253425), CoverageAssetListElement)
agcls.AgTypeNameMap["CoverageAssetListElement"] = CoverageAssetListElement

class CoverageAssetListCollection(SupportsDeleteCallback):
    """Asset List."""

    _num_methods = 11
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _get_available_assets_method_offset = 7
    _remove_method_offset = 8
    _get_asset_from_path_method_offset = 9
    _is_asset_assigned_method_offset = 10
    _can_assign_asset_method_offset = 11
    _metadata = {
        "iid_data" : (5667042731627144118, 10458445105700847757),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageAssetListCollection)
    def __iter__(self):
        """Create an iterator for the CoverageAssetListCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "CoverageAssetListElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(CoverageAssetListCollection._metadata, CoverageAssetListCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "CoverageAssetListElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(CoverageAssetListCollection._metadata, CoverageAssetListCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(CoverageAssetListCollection._metadata, CoverageAssetListCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(CoverageAssetListCollection._metadata, CoverageAssetListCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(CoverageAssetListCollection._metadata, CoverageAssetListCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, object_path:str) -> "CoverageAssetListElement":
        """Add a new element to the collection."""
        return self._intf.invoke(CoverageAssetListCollection._metadata, CoverageAssetListCollection._add_metadata, object_path, OutArg())

    _get_available_assets_metadata = { "offset" : _get_available_assets_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_assets(self) -> list:
        """Available objects to assign as coverage assets."""
        return self._intf.get_property(CoverageAssetListCollection._metadata, CoverageAssetListCollection._get_available_assets_metadata)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove(self, object_path:str) -> None:
        """Remove an element from the collection given a ObjectPath."""
        return self._intf.invoke(CoverageAssetListCollection._metadata, CoverageAssetListCollection._remove_metadata, object_path)

    _get_asset_from_path_metadata = { "offset" : _get_asset_from_path_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_asset_from_path(self, object_path:str) -> "CoverageAssetListElement":
        """Retrieve an element, given an object path."""
        return self._intf.invoke(CoverageAssetListCollection._metadata, CoverageAssetListCollection._get_asset_from_path_metadata, object_path, OutArg())

    _is_asset_assigned_metadata = { "offset" : _is_asset_assigned_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_asset_assigned(self, object_path:str) -> bool:
        """Return true if an asset is already assigned."""
        return self._intf.invoke(CoverageAssetListCollection._metadata, CoverageAssetListCollection._is_asset_assigned_metadata, object_path, OutArg())

    _can_assign_asset_metadata = { "offset" : _can_assign_asset_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def can_assign_asset(self, object_path:str) -> bool:
        """Return true is you can assign an asset."""
        return self._intf.invoke(CoverageAssetListCollection._metadata, CoverageAssetListCollection._can_assign_asset_metadata, object_path, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[available_assets] = "available_assets"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageAssetListCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageAssetListCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageAssetListCollection, [CoverageAssetListCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5572203010561424878, 13414723264487025794), CoverageAssetListCollection)
agcls.AgTypeNameMap["CoverageAssetListCollection"] = CoverageAssetListCollection

class CoverageRegionFilesCollection(SupportsDeleteCallback):
    """Region Files."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _remove_method_offset = 7
    _metadata = {
        "iid_data" : (5331500042279401575, 14913402693994873277),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageRegionFilesCollection)
    def __iter__(self):
        """Create an iterator for the CoverageRegionFilesCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> str:
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(CoverageRegionFilesCollection._metadata, CoverageRegionFilesCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg,) }
    def item(self, index:int) -> str:
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(CoverageRegionFilesCollection._metadata, CoverageRegionFilesCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(CoverageRegionFilesCollection._metadata, CoverageRegionFilesCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(CoverageRegionFilesCollection._metadata, CoverageRegionFilesCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(CoverageRegionFilesCollection._metadata, CoverageRegionFilesCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add(self, filename:str) -> None:
        """Add a new element to the collection."""
        return self._intf.invoke(CoverageRegionFilesCollection._metadata, CoverageRegionFilesCollection._add_metadata, filename)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove(self, filename:str) -> None:
        """Remove an element from the collection given a filename."""
        return self._intf.invoke(CoverageRegionFilesCollection._metadata, CoverageRegionFilesCollection._remove_metadata, filename)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageRegionFilesCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageRegionFilesCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageRegionFilesCollection, [CoverageRegionFilesCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4850527062785625402, 15107792667315417497), CoverageRegionFilesCollection)
agcls.AgTypeNameMap["CoverageRegionFilesCollection"] = CoverageRegionFilesCollection

class CoverageAreaTargetsCollection(SupportsDeleteCallback):
    """Area Targets."""

    _num_methods = 8
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _remove_method_offset = 7
    _get_available_area_targets_method_offset = 8
    _metadata = {
        "iid_data" : (5522764628386121404, 16353254549284257174),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageAreaTargetsCollection)
    def __iter__(self):
        """Create an iterator for the CoverageAreaTargetsCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> str:
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(CoverageAreaTargetsCollection._metadata, CoverageAreaTargetsCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg,) }
    def item(self, index:int) -> str:
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(CoverageAreaTargetsCollection._metadata, CoverageAreaTargetsCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(CoverageAreaTargetsCollection._metadata, CoverageAreaTargetsCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(CoverageAreaTargetsCollection._metadata, CoverageAreaTargetsCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(CoverageAreaTargetsCollection._metadata, CoverageAreaTargetsCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add(self, target_name:str) -> None:
        """Add a new element to the collection."""
        return self._intf.invoke(CoverageAreaTargetsCollection._metadata, CoverageAreaTargetsCollection._add_metadata, target_name)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove(self, target_name:str) -> None:
        """Remove an element from the collection given a Target name."""
        return self._intf.invoke(CoverageAreaTargetsCollection._metadata, CoverageAreaTargetsCollection._remove_metadata, target_name)

    _get_available_area_targets_metadata = { "offset" : _get_available_area_targets_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_area_targets(self) -> list:
        """Get the available area targets."""
        return self._intf.get_property(CoverageAreaTargetsCollection._metadata, CoverageAreaTargetsCollection._get_available_area_targets_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[available_area_targets] = "available_area_targets"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageAreaTargetsCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageAreaTargetsCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageAreaTargetsCollection, [CoverageAreaTargetsCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5183720642838144610, 14428031657309991315), CoverageAreaTargetsCollection)
agcls.AgTypeNameMap["CoverageAreaTargetsCollection"] = CoverageAreaTargetsCollection

class CoverageEllipseCollection(SupportsDeleteCallback):
    """Elliptical areas of interest."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _add_method_offset = 4
    _remove_at_method_offset = 5
    _remove_all_method_offset = 6
    _metadata = {
        "iid_data" : (4878588255799861275, 7718073626263473304),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageEllipseCollection)
    def __iter__(self):
        """Create an iterator for the CoverageEllipseCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "CoverageEllipse":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(CoverageEllipseCollection._metadata, CoverageEllipseCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "CoverageEllipse":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(CoverageEllipseCollection._metadata, CoverageEllipseCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(CoverageEllipseCollection._metadata, CoverageEllipseCollection._get__new_enum_metadata)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, center_object_name:str) -> "CoverageEllipse":
        """Add a new ellipse centered on a Place, Facility, or Target object."""
        return self._intf.invoke(CoverageEllipseCollection._metadata, CoverageEllipseCollection._add_metadata, center_object_name, OutArg())

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(CoverageEllipseCollection._metadata, CoverageEllipseCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(CoverageEllipseCollection._metadata, CoverageEllipseCollection._remove_all_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageEllipseCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageEllipseCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageEllipseCollection, [CoverageEllipseCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5568960812454379526, 1102828369414585732), CoverageEllipseCollection)
agcls.AgTypeNameMap["CoverageEllipseCollection"] = CoverageEllipseCollection

class CoverageEllipse(SupportsDeleteCallback):
    """Elliptical area of interest centered around a Place, Facility, or Target object.."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_semi_major_axis_method_offset = 1
    _set_semi_major_axis_method_offset = 2
    _get_semi_minor_axis_method_offset = 3
    _set_semi_minor_axis_method_offset = 4
    _get_bearing_method_offset = 5
    _set_bearing_method_offset = 6
    _get_center_method_offset = 7
    _metadata = {
        "iid_data" : (4640650542661301562, 9190260236214710186),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageEllipse)

    _get_semi_major_axis_metadata = { "offset" : _get_semi_major_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def semi_major_axis(self) -> float:
        """Major axis length."""
        return self._intf.get_property(CoverageEllipse._metadata, CoverageEllipse._get_semi_major_axis_metadata)

    _set_semi_major_axis_metadata = { "offset" : _set_semi_major_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @semi_major_axis.setter
    def semi_major_axis(self, semi_major_axis:float) -> None:
        return self._intf.set_property(CoverageEllipse._metadata, CoverageEllipse._set_semi_major_axis_metadata, semi_major_axis)

    _get_semi_minor_axis_metadata = { "offset" : _get_semi_minor_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def semi_minor_axis(self) -> float:
        """Minor axis length."""
        return self._intf.get_property(CoverageEllipse._metadata, CoverageEllipse._get_semi_minor_axis_metadata)

    _set_semi_minor_axis_metadata = { "offset" : _set_semi_minor_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @semi_minor_axis.setter
    def semi_minor_axis(self, semi_minor_axis:float) -> None:
        return self._intf.set_property(CoverageEllipse._metadata, CoverageEllipse._set_semi_minor_axis_metadata, semi_minor_axis)

    _get_bearing_metadata = { "offset" : _get_bearing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bearing(self) -> float:
        """Bearing."""
        return self._intf.get_property(CoverageEllipse._metadata, CoverageEllipse._get_bearing_metadata)

    _set_bearing_metadata = { "offset" : _set_bearing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bearing.setter
    def bearing(self, bearing:float) -> None:
        return self._intf.set_property(CoverageEllipse._metadata, CoverageEllipse._set_bearing_metadata, bearing)

    _get_center_metadata = { "offset" : _get_center_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def center(self) -> "ISTKObject":
        """Center object."""
        return self._intf.get_property(CoverageEllipse._metadata, CoverageEllipse._get_center_metadata)

    _property_names[semi_major_axis] = "semi_major_axis"
    _property_names[semi_minor_axis] = "semi_minor_axis"
    _property_names[bearing] = "bearing"
    _property_names[center] = "center"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageEllipse."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageEllipse)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageEllipse, [CoverageEllipse, ])

agcls.AgClassCatalog.add_catalog_entry((5075739203628052606, 13216689893087131278), CoverageEllipse)
agcls.AgTypeNameMap["CoverageEllipse"] = CoverageEllipse

class CoverageLatLonBoxCollection(SupportsDeleteCallback):
    """Latitude/longitude box areas of interest."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _add_method_offset = 4
    _remove_at_method_offset = 5
    _remove_all_method_offset = 6
    _metadata = {
        "iid_data" : (5484413469628595905, 10377722915886376877),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageLatLonBoxCollection)
    def __iter__(self):
        """Create an iterator for the CoverageLatLonBoxCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "CoverageLatLonBox":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(CoverageLatLonBoxCollection._metadata, CoverageLatLonBoxCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "CoverageLatLonBox":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(CoverageLatLonBoxCollection._metadata, CoverageLatLonBoxCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(CoverageLatLonBoxCollection._metadata, CoverageLatLonBoxCollection._get__new_enum_metadata)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, center_object_name:str) -> "CoverageLatLonBox":
        """Add a new box centered on a Place, Facility, or Target object, defined by latitude and longitude spans."""
        return self._intf.invoke(CoverageLatLonBoxCollection._metadata, CoverageLatLonBoxCollection._add_metadata, center_object_name, OutArg())

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(CoverageLatLonBoxCollection._metadata, CoverageLatLonBoxCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(CoverageLatLonBoxCollection._metadata, CoverageLatLonBoxCollection._remove_all_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageLatLonBoxCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageLatLonBoxCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageLatLonBoxCollection, [CoverageLatLonBoxCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4678575754583882248, 17019821401501866678), CoverageLatLonBoxCollection)
agcls.AgTypeNameMap["CoverageLatLonBoxCollection"] = CoverageLatLonBoxCollection

class CoverageLatLonBox(SupportsDeleteCallback):
    """Latitude/longitude box area of interest centered around a Place, Facility, or Target object."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_longitude_span_method_offset = 1
    _set_longitude_span_method_offset = 2
    _get_latitude_span_method_offset = 3
    _set_latitude_span_method_offset = 4
    _get_center_method_offset = 5
    _metadata = {
        "iid_data" : (5189724097835893665, 8496214343090548357),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageLatLonBox)

    _get_longitude_span_metadata = { "offset" : _get_longitude_span_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude_span(self) -> float:
        """Longitude span."""
        return self._intf.get_property(CoverageLatLonBox._metadata, CoverageLatLonBox._get_longitude_span_metadata)

    _set_longitude_span_metadata = { "offset" : _set_longitude_span_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude_span.setter
    def longitude_span(self, longitude_span:float) -> None:
        return self._intf.set_property(CoverageLatLonBox._metadata, CoverageLatLonBox._set_longitude_span_metadata, longitude_span)

    _get_latitude_span_metadata = { "offset" : _get_latitude_span_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude_span(self) -> float:
        """Latitude span."""
        return self._intf.get_property(CoverageLatLonBox._metadata, CoverageLatLonBox._get_latitude_span_metadata)

    _set_latitude_span_metadata = { "offset" : _set_latitude_span_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude_span.setter
    def latitude_span(self, latitude_span:float) -> None:
        return self._intf.set_property(CoverageLatLonBox._metadata, CoverageLatLonBox._set_latitude_span_metadata, latitude_span)

    _get_center_metadata = { "offset" : _get_center_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def center(self) -> "ISTKObject":
        """Center object."""
        return self._intf.get_property(CoverageLatLonBox._metadata, CoverageLatLonBox._get_center_metadata)

    _property_names[longitude_span] = "longitude_span"
    _property_names[latitude_span] = "latitude_span"
    _property_names[center] = "center"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageLatLonBox."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageLatLonBox)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageLatLonBox, [CoverageLatLonBox, ])

agcls.AgClassCatalog.add_catalog_entry((5073070098228321665, 494895163725164685), CoverageLatLonBox)
agcls.AgTypeNameMap["CoverageLatLonBox"] = CoverageLatLonBox

class CoveragePointDefinition(SupportsDeleteCallback):
    """Point Definition: methods and parameters for specifying the location of points on the coverage grid."""

    _num_methods = 23
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_point_location_method_method_offset = 1
    _set_point_location_method_method_offset = 2
    _get_point_file_list_method_offset = 3
    _get_grid_class_method_offset = 4
    _set_grid_class_method_offset = 5
    _get_use_grid_seed_method_offset = 6
    _set_use_grid_seed_method_offset = 7
    _get_use_object_as_seed_method_offset = 8
    _set_use_object_as_seed_method_offset = 9
    _get_altitude_method_method_offset = 10
    _set_altitude_method_method_offset = 11
    _get_altitude_method_offset = 12
    _set_altitude_method_offset = 13
    _get_seed_instance_method_offset = 14
    _set_seed_instance_method_offset = 15
    _get_available_seeds_method_offset = 16
    _set_points_detic_method_offset = 17
    _get_ground_altitude_method_method_offset = 18
    _set_ground_altitude_method_method_offset = 19
    _get_ground_altitude_method_offset = 20
    _set_ground_altitude_method_offset = 21
    _get_point_altitude_method_method_offset = 22
    _set_point_altitude_method_method_offset = 23
    _metadata = {
        "iid_data" : (4799469351242385462, 5532515438740159622),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoveragePointDefinition)

    _get_point_location_method_metadata = { "offset" : _get_point_location_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoveragePointLocationMethod),) }
    @property
    def point_location_method(self) -> "CoveragePointLocationMethod":
        """Specify the location of points on the coverage grid."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_point_location_method_metadata)

    _set_point_location_method_metadata = { "offset" : _set_point_location_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoveragePointLocationMethod),) }
    @point_location_method.setter
    def point_location_method(self, point_loc_method:"CoveragePointLocationMethod") -> None:
        return self._intf.set_property(CoveragePointDefinition._metadata, CoveragePointDefinition._set_point_location_method_metadata, point_loc_method)

    _get_point_file_list_metadata = { "offset" : _get_point_file_list_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point_file_list(self) -> "CoveragePointFileListCollection":
        """List of point file locations."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_point_file_list_metadata)

    _get_grid_class_metadata = { "offset" : _get_grid_class_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageGridClass),) }
    @property
    def grid_class(self) -> "CoverageGridClass":
        """Class of object used to define grid points."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_grid_class_metadata)

    _set_grid_class_metadata = { "offset" : _set_grid_class_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageGridClass),) }
    @grid_class.setter
    def grid_class(self, grid_class:"CoverageGridClass") -> None:
        return self._intf.set_property(CoveragePointDefinition._metadata, CoveragePointDefinition._set_grid_class_metadata, grid_class)

    _get_use_grid_seed_metadata = { "offset" : _get_use_grid_seed_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_grid_seed(self) -> bool:
        """Select an object instance for the grid seed."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_use_grid_seed_metadata)

    _set_use_grid_seed_metadata = { "offset" : _set_use_grid_seed_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_grid_seed.setter
    def use_grid_seed(self, use_grid_seed:bool) -> None:
        return self._intf.set_property(CoveragePointDefinition._metadata, CoveragePointDefinition._set_use_grid_seed_metadata, use_grid_seed)

    _get_use_object_as_seed_metadata = { "offset" : _get_use_object_as_seed_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_object_as_seed(self) -> bool:
        """Use the selected object as the grid seed."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_use_object_as_seed_metadata)

    _set_use_object_as_seed_metadata = { "offset" : _set_use_object_as_seed_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_object_as_seed.setter
    def use_object_as_seed(self, use_object_as_seed:bool) -> None:
        return self._intf.set_property(CoveragePointDefinition._metadata, CoveragePointDefinition._set_use_object_as_seed_metadata, use_object_as_seed)

    _get_altitude_method_metadata = { "offset" : _get_altitude_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageAltitudeMethod),) }
    @property
    def altitude_method(self) -> "CoverageAltitudeMethod":
        """Specify the height of a grid point."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_altitude_method_metadata)

    _set_altitude_method_metadata = { "offset" : _set_altitude_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageAltitudeMethod),) }
    @altitude_method.setter
    def altitude_method(self, altitude_method:"CoverageAltitudeMethod") -> None:
        return self._intf.set_property(CoveragePointDefinition._metadata, CoveragePointDefinition._set_altitude_method_metadata, altitude_method)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Height of the grid point. Uses Distance Dimension."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, value:float) -> None:
        return self._intf.set_property(CoveragePointDefinition._metadata, CoveragePointDefinition._set_altitude_metadata, value)

    _get_seed_instance_metadata = { "offset" : _get_seed_instance_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def seed_instance(self) -> str:
        """Specify the object instance to use as a grid seed."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_seed_instance_metadata)

    _set_seed_instance_metadata = { "offset" : _set_seed_instance_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @seed_instance.setter
    def seed_instance(self, value:str) -> None:
        return self._intf.set_property(CoveragePointDefinition._metadata, CoveragePointDefinition._set_seed_instance_metadata, value)

    _get_available_seeds_metadata = { "offset" : _get_available_seeds_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_seeds(self) -> list:
        """Available object instances to use as a grid seed."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_available_seeds_metadata)

    _set_points_detic_metadata = { "offset" : _set_points_detic_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def set_points_detic(self, lla_points:list) -> None:
        """Use an array of latitude/longitude/altitude values to define a coverage grid point."""
        return self._intf.invoke(CoveragePointDefinition._metadata, CoveragePointDefinition._set_points_detic_metadata, lla_points)

    _get_ground_altitude_method_metadata = { "offset" : _get_ground_altitude_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageGroundAltitudeMethod),) }
    @property
    def ground_altitude_method(self) -> "CoverageGroundAltitudeMethod":
        """Specify the height of a grid point."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_ground_altitude_method_metadata)

    _set_ground_altitude_method_metadata = { "offset" : _set_ground_altitude_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageGroundAltitudeMethod),) }
    @ground_altitude_method.setter
    def ground_altitude_method(self, altitude_method:"CoverageGroundAltitudeMethod") -> None:
        return self._intf.set_property(CoveragePointDefinition._metadata, CoveragePointDefinition._set_ground_altitude_method_metadata, altitude_method)

    _get_ground_altitude_metadata = { "offset" : _get_ground_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ground_altitude(self) -> float:
        """Height of the grid point. Uses Distance Dimension."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_ground_altitude_metadata)

    _set_ground_altitude_metadata = { "offset" : _set_ground_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ground_altitude.setter
    def ground_altitude(self, value:float) -> None:
        return self._intf.set_property(CoveragePointDefinition._metadata, CoveragePointDefinition._set_ground_altitude_metadata, value)

    _get_point_altitude_method_metadata = { "offset" : _get_point_altitude_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoveragePointAltitudeMethod),) }
    @property
    def point_altitude_method(self) -> "CoveragePointAltitudeMethod":
        """Custom point altitude method specifies whether to use the altitude values in the point file (.*pt) or override them using the altitude at a point on terrain."""
        return self._intf.get_property(CoveragePointDefinition._metadata, CoveragePointDefinition._get_point_altitude_method_metadata)

    _set_point_altitude_method_metadata = { "offset" : _set_point_altitude_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoveragePointAltitudeMethod),) }
    @point_altitude_method.setter
    def point_altitude_method(self, point_altitude_method:"CoveragePointAltitudeMethod") -> None:
        return self._intf.set_property(CoveragePointDefinition._metadata, CoveragePointDefinition._set_point_altitude_method_metadata, point_altitude_method)

    _property_names[point_location_method] = "point_location_method"
    _property_names[point_file_list] = "point_file_list"
    _property_names[grid_class] = "grid_class"
    _property_names[use_grid_seed] = "use_grid_seed"
    _property_names[use_object_as_seed] = "use_object_as_seed"
    _property_names[altitude_method] = "altitude_method"
    _property_names[altitude] = "altitude"
    _property_names[seed_instance] = "seed_instance"
    _property_names[available_seeds] = "available_seeds"
    _property_names[ground_altitude_method] = "ground_altitude_method"
    _property_names[ground_altitude] = "ground_altitude"
    _property_names[point_altitude_method] = "point_altitude_method"

    def __init__(self, source_object=None):
        """Construct an object of type CoveragePointDefinition."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoveragePointDefinition)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoveragePointDefinition, [CoveragePointDefinition, ])

agcls.AgClassCatalog.add_catalog_entry((5319669496339144084, 5776426096882537103), CoveragePointDefinition)
agcls.AgTypeNameMap["CoveragePointDefinition"] = CoveragePointDefinition

class CoveragePointFileListCollection(SupportsDeleteCallback):
    """Point file list collection."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _remove_method_offset = 7
    _metadata = {
        "iid_data" : (5354448940011596051, 18263746233528721073),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoveragePointFileListCollection)
    def __iter__(self):
        """Create an iterator for the CoveragePointFileListCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> str:
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(CoveragePointFileListCollection._metadata, CoveragePointFileListCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg,) }
    def item(self, index:int) -> str:
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(CoveragePointFileListCollection._metadata, CoveragePointFileListCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(CoveragePointFileListCollection._metadata, CoveragePointFileListCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(CoveragePointFileListCollection._metadata, CoveragePointFileListCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(CoveragePointFileListCollection._metadata, CoveragePointFileListCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add(self, filename:str) -> None:
        """Add a new element to the collection."""
        return self._intf.invoke(CoveragePointFileListCollection._metadata, CoveragePointFileListCollection._add_metadata, filename)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove(self, filename:str) -> None:
        """Remove an element from the collection given a filename."""
        return self._intf.invoke(CoveragePointFileListCollection._metadata, CoveragePointFileListCollection._remove_metadata, filename)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type CoveragePointFileListCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoveragePointFileListCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoveragePointFileListCollection, [CoveragePointFileListCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5701877523698904678, 6685729310141354129), CoveragePointFileListCollection)
agcls.AgTypeNameMap["CoveragePointFileListCollection"] = CoveragePointFileListCollection

class CoverageAdvancedSettings(SupportsDeleteCallback):
    """Advanced Properties."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_data_retention_method_offset = 1
    _set_data_retention_method_offset = 2
    _get_recompute_automatically_method_offset = 3
    _set_recompute_automatically_method_offset = 4
    _get_save_mode_method_offset = 5
    _set_save_mode_method_offset = 6
    _get_region_access_acceleration_method_offset = 7
    _set_region_access_acceleration_method_offset = 8
    _get_enable_light_time_delay_method_offset = 9
    _set_enable_light_time_delay_method_offset = 10
    _get_event_detection_method_offset = 11
    _get_sampling_method_offset = 12
    _get_n_assets_satisfaction_threshold_method_offset = 13
    _set_n_assets_satisfaction_threshold_method_offset = 14
    _get_n_assets_satisfaction_type_method_offset = 15
    _set_n_assets_satisfaction_type_method_offset = 16
    _metadata = {
        "iid_data" : (4696140948829772296, 10833829736384437157),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageAdvancedSettings)

    _get_data_retention_metadata = { "offset" : _get_data_retention_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageDataRetention),) }
    @property
    def data_retention(self) -> "CoverageDataRetention":
        """Data retention options can be all data or static data only."""
        return self._intf.get_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._get_data_retention_metadata)

    _set_data_retention_metadata = { "offset" : _set_data_retention_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageDataRetention),) }
    @data_retention.setter
    def data_retention(self, data_retention:"CoverageDataRetention") -> None:
        return self._intf.set_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._set_data_retention_metadata, data_retention)

    _get_recompute_automatically_metadata = { "offset" : _get_recompute_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def recompute_automatically(self) -> bool:
        """Opt whether to have STK automatically recompute accesses every time an object on which the coverage definition depends is updated."""
        return self._intf.get_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._get_recompute_automatically_metadata)

    _set_recompute_automatically_metadata = { "offset" : _set_recompute_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @recompute_automatically.setter
    def recompute_automatically(self, auto_recompute:bool) -> None:
        return self._intf.set_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._set_recompute_automatically_metadata, auto_recompute)

    _get_save_mode_metadata = { "offset" : _get_save_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DataSaveMode),) }
    @property
    def save_mode(self) -> "DataSaveMode":
        """Specify whether accesses are saved with the coverage definition and, if not, whether they are recomputed on load."""
        return self._intf.get_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._get_save_mode_metadata)

    _set_save_mode_metadata = { "offset" : _set_save_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(DataSaveMode),) }
    @save_mode.setter
    def save_mode(self, data_save_mode:"DataSaveMode") -> None:
        return self._intf.set_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._set_save_mode_metadata, data_save_mode)

    _get_region_access_acceleration_metadata = { "offset" : _get_region_access_acceleration_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageRegionAccessAccelerationType),) }
    @property
    def region_access_acceleration(self) -> "CoverageRegionAccessAccelerationType":
        """Control the use of region access computations to speedup overall coverage computations."""
        return self._intf.get_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._get_region_access_acceleration_metadata)

    _set_region_access_acceleration_metadata = { "offset" : _set_region_access_acceleration_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageRegionAccessAccelerationType),) }
    @region_access_acceleration.setter
    def region_access_acceleration(self, region_access_accel:"CoverageRegionAccessAccelerationType") -> None:
        return self._intf.set_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._set_region_access_acceleration_metadata, region_access_accel)

    _get_enable_light_time_delay_metadata = { "offset" : _get_enable_light_time_delay_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_light_time_delay(self) -> bool:
        """Specify whether to take light time delay into account in the coverage computation."""
        return self._intf.get_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._get_enable_light_time_delay_metadata)

    _set_enable_light_time_delay_metadata = { "offset" : _set_enable_light_time_delay_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_light_time_delay.setter
    def enable_light_time_delay(self, value:bool) -> None:
        return self._intf.set_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._set_enable_light_time_delay_metadata, value)

    _get_event_detection_metadata = { "offset" : _get_event_detection_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def event_detection(self) -> "AccessEventDetection":
        """Get the event detection strategy used in access computations."""
        return self._intf.get_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._get_event_detection_metadata)

    _get_sampling_metadata = { "offset" : _get_sampling_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sampling(self) -> "AccessSampling":
        """Get the sampling strategy used in access computations."""
        return self._intf.get_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._get_sampling_metadata)

    _get_n_assets_satisfaction_threshold_metadata = { "offset" : _get_n_assets_satisfaction_threshold_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def n_assets_satisfaction_threshold(self) -> int:
        """Number of assets for a valid access, per satisfaction type."""
        return self._intf.get_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._get_n_assets_satisfaction_threshold_metadata)

    _set_n_assets_satisfaction_threshold_metadata = { "offset" : _set_n_assets_satisfaction_threshold_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @n_assets_satisfaction_threshold.setter
    def n_assets_satisfaction_threshold(self, satisfaction_threshold:int) -> None:
        return self._intf.set_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._set_n_assets_satisfaction_threshold_metadata, satisfaction_threshold)

    _get_n_assets_satisfaction_type_metadata = { "offset" : _get_n_assets_satisfaction_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoverageSatisfactionType),) }
    @property
    def n_assets_satisfaction_type(self) -> "CoverageSatisfactionType":
        """Used to restrict accesses satisfying specified type."""
        return self._intf.get_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._get_n_assets_satisfaction_type_metadata)

    _set_n_assets_satisfaction_type_metadata = { "offset" : _set_n_assets_satisfaction_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoverageSatisfactionType),) }
    @n_assets_satisfaction_type.setter
    def n_assets_satisfaction_type(self, satisfaction_type:"CoverageSatisfactionType") -> None:
        return self._intf.set_property(CoverageAdvancedSettings._metadata, CoverageAdvancedSettings._set_n_assets_satisfaction_type_metadata, satisfaction_type)

    _property_names[data_retention] = "data_retention"
    _property_names[recompute_automatically] = "recompute_automatically"
    _property_names[save_mode] = "save_mode"
    _property_names[region_access_acceleration] = "region_access_acceleration"
    _property_names[enable_light_time_delay] = "enable_light_time_delay"
    _property_names[event_detection] = "event_detection"
    _property_names[sampling] = "sampling"
    _property_names[n_assets_satisfaction_threshold] = "n_assets_satisfaction_threshold"
    _property_names[n_assets_satisfaction_type] = "n_assets_satisfaction_type"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageAdvancedSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageAdvancedSettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageAdvancedSettings, [CoverageAdvancedSettings, ])

agcls.AgClassCatalog.add_catalog_entry((5048450335005834316, 11496327179124459142), CoverageAdvancedSettings)
agcls.AgTypeNameMap["CoverageAdvancedSettings"] = CoverageAdvancedSettings

class CoverageInterval(SupportsDeleteCallback):
    """Coverage interval: the time period over which coverage is computed."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_scenario_interval_method_offset = 1
    _set_use_scenario_interval_method_offset = 2
    _get_analysis_interval_method_offset = 3
    _metadata = {
        "iid_data" : (4909239511180666267, 15878188793039217039),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageInterval)

    _get_use_scenario_interval_metadata = { "offset" : _get_use_scenario_interval_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_scenario_interval(self) -> bool:
        """Use the scenario time period as the coverage interval."""
        return self._intf.get_property(CoverageInterval._metadata, CoverageInterval._get_use_scenario_interval_metadata)

    _set_use_scenario_interval_metadata = { "offset" : _set_use_scenario_interval_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_scenario_interval.setter
    def use_scenario_interval(self, use_scenario_interval:bool) -> None:
        return self._intf.set_property(CoverageInterval._metadata, CoverageInterval._set_use_scenario_interval_metadata, use_scenario_interval)

    _get_analysis_interval_metadata = { "offset" : _get_analysis_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the coverage analysis interval."""
        return self._intf.get_property(CoverageInterval._metadata, CoverageInterval._get_analysis_interval_metadata)

    _property_names[use_scenario_interval] = "use_scenario_interval"
    _property_names[analysis_interval] = "analysis_interval"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageInterval."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageInterval)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageInterval, [CoverageInterval, ])

agcls.AgClassCatalog.add_catalog_entry((5505067995729617612, 15442263930595231392), CoverageInterval)
agcls.AgTypeNameMap["CoverageInterval"] = CoverageInterval

class CoverageResolutionArea(ICoverageResolution, SupportsDeleteCallback):
    """Area: Define the location of grid coordinates by using the specified area to determine a latitude/longitude spacing scheme at the equator."""

    _num_methods = 2
    _vtable_offset = ICoverageResolution._vtable_offset + ICoverageResolution._num_methods
    _get_area_method_offset = 1
    _set_area_method_offset = 2
    _metadata = {
        "iid_data" : (5420447037122370384, 1956695561825099678),
        "vtable_reference" : ICoverageResolution._vtable_offset + ICoverageResolution._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageResolutionArea)

    _get_area_metadata = { "offset" : _get_area_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def area(self) -> float:
        """Get or set the area used to define grid resolution. Use Area Dimension."""
        return self._intf.get_property(CoverageResolutionArea._metadata, CoverageResolutionArea._get_area_metadata)

    _set_area_metadata = { "offset" : _set_area_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @area.setter
    def area(self, area:float) -> None:
        return self._intf.set_property(CoverageResolutionArea._metadata, CoverageResolutionArea._set_area_metadata, area)

    _property_names[area] = "area"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageResolutionArea."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageResolutionArea)
        ICoverageResolution.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICoverageResolution._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageResolutionArea, [CoverageResolutionArea, ICoverageResolution])

agcls.AgClassCatalog.add_catalog_entry((4827222860498185518, 7523612302625082024), CoverageResolutionArea)
agcls.AgTypeNameMap["CoverageResolutionArea"] = CoverageResolutionArea

class CoverageResolutionDistance(ICoverageResolution, SupportsDeleteCallback):
    """Distance: Define the location of the grid coordinates by using the specified distance to determine a latitude/longitude spacing scheme at the equator."""

    _num_methods = 2
    _vtable_offset = ICoverageResolution._vtable_offset + ICoverageResolution._num_methods
    _get_distance_method_offset = 1
    _set_distance_method_offset = 2
    _metadata = {
        "iid_data" : (5328088462044299086, 4336748583661695879),
        "vtable_reference" : ICoverageResolution._vtable_offset + ICoverageResolution._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageResolutionDistance)

    _get_distance_metadata = { "offset" : _get_distance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def distance(self) -> float:
        """Get or set the distance used to define grid resolution. Uses Distance Dimension."""
        return self._intf.get_property(CoverageResolutionDistance._metadata, CoverageResolutionDistance._get_distance_metadata)

    _set_distance_metadata = { "offset" : _set_distance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @distance.setter
    def distance(self, distance:float) -> None:
        return self._intf.set_property(CoverageResolutionDistance._metadata, CoverageResolutionDistance._set_distance_metadata, distance)

    _property_names[distance] = "distance"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageResolutionDistance."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageResolutionDistance)
        ICoverageResolution.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICoverageResolution._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageResolutionDistance, [CoverageResolutionDistance, ICoverageResolution])

agcls.AgClassCatalog.add_catalog_entry((4814852482748021665, 11541758853924669343), CoverageResolutionDistance)
agcls.AgTypeNameMap["CoverageResolutionDistance"] = CoverageResolutionDistance

class CoverageResolutionLatLon(ICoverageResolution, SupportsDeleteCallback):
    """Lat/Lon: Determine the location of grid coordinates by specifying a latitude/longitude resolution value."""

    _num_methods = 2
    _vtable_offset = ICoverageResolution._vtable_offset + ICoverageResolution._num_methods
    _get_latitude_longitude_method_offset = 1
    _set_latitude_longitude_method_offset = 2
    _metadata = {
        "iid_data" : (5564531015319503296, 18402897785681957808),
        "vtable_reference" : ICoverageResolution._vtable_offset + ICoverageResolution._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageResolutionLatLon)

    _get_latitude_longitude_metadata = { "offset" : _get_latitude_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def latitude_longitude(self) -> typing.Any:
        """Get or set the latitude/longitude value used to define grid resolution. Uses Angle Dimension."""
        return self._intf.get_property(CoverageResolutionLatLon._metadata, CoverageResolutionLatLon._get_latitude_longitude_metadata)

    _set_latitude_longitude_metadata = { "offset" : _set_latitude_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @latitude_longitude.setter
    def latitude_longitude(self, lat_lon:typing.Any) -> None:
        return self._intf.set_property(CoverageResolutionLatLon._metadata, CoverageResolutionLatLon._set_latitude_longitude_metadata, lat_lon)

    _property_names[latitude_longitude] = "latitude_longitude"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageResolutionLatLon."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageResolutionLatLon)
        ICoverageResolution.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICoverageResolution._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageResolutionLatLon, [CoverageResolutionLatLon, ICoverageResolution])

agcls.AgClassCatalog.add_catalog_entry((5312185109357380175, 15242392280983929262), CoverageResolutionLatLon)
agcls.AgTypeNameMap["CoverageResolutionLatLon"] = CoverageResolutionLatLon

class CoverageGraphics2DStatic(SupportsDeleteCallback):
    """Static 2D graphics display options for the coverage grid."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_region_method_offset = 1
    _set_show_region_method_offset = 2
    _get_show_points_method_offset = 3
    _set_show_points_method_offset = 4
    _get_show_labels_method_offset = 5
    _set_show_labels_method_offset = 6
    _get_color_method_offset = 7
    _set_color_method_offset = 8
    _get_fill_points_method_offset = 9
    _set_fill_points_method_offset = 10
    _get_marker_style_method_offset = 11
    _set_marker_style_method_offset = 12
    _get_fill_translucency_method_offset = 13
    _set_fill_translucency_method_offset = 14
    _metadata = {
        "iid_data" : (5270939011324172256, 4139602371667316912),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageGraphics2DStatic)

    _get_show_region_metadata = { "offset" : _get_show_region_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_region(self) -> bool:
        """Specify whether the boundary of each coverage region displays in the 2D Graphics window."""
        return self._intf.get_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._get_show_region_metadata)

    _set_show_region_metadata = { "offset" : _set_show_region_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_region.setter
    def show_region(self, show_region:bool) -> None:
        return self._intf.set_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._set_show_region_metadata, show_region)

    _get_show_points_metadata = { "offset" : _get_show_points_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_points(self) -> bool:
        """Specify whether each grid point is shown in the 2D Graphics window as coverage computations are completed."""
        return self._intf.get_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._get_show_points_metadata)

    _set_show_points_metadata = { "offset" : _set_show_points_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_points.setter
    def show_points(self, show_points:bool) -> None:
        return self._intf.set_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._set_show_points_metadata, show_points)

    _get_show_labels_metadata = { "offset" : _get_show_labels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_labels(self) -> bool:
        """Specify whether the name of each coverage region displays in the 2D Graphics window."""
        return self._intf.get_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._get_show_labels_metadata)

    _set_show_labels_metadata = { "offset" : _set_show_labels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_labels.setter
    def show_labels(self, show_labels:bool) -> None:
        return self._intf.set_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._set_show_labels_metadata, show_labels)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the color in which regions and points display in the 2D Graphics window."""
        return self._intf.get_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._set_color_metadata, color)

    _get_fill_points_metadata = { "offset" : _get_fill_points_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def fill_points(self) -> bool:
        """Specify whether coverage points or regions display as filled polygons in the 2D Graphics window."""
        return self._intf.get_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._get_fill_points_metadata)

    _set_fill_points_metadata = { "offset" : _set_fill_points_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @fill_points.setter
    def fill_points(self, fill_points:bool) -> None:
        return self._intf.set_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._set_fill_points_metadata, fill_points)

    _get_marker_style_metadata = { "offset" : _get_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def marker_style(self) -> str:
        """Choose a marker to represent each point in the grid."""
        return self._intf.get_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._get_marker_style_metadata)

    _set_marker_style_metadata = { "offset" : _set_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @marker_style.setter
    def marker_style(self, value:str) -> None:
        return self._intf.set_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._set_marker_style_metadata, value)

    _get_fill_translucency_metadata = { "offset" : _get_fill_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fill_translucency(self) -> float:
        """Specify the fill translucency percentage for the grid. Translucency ranges from 0 to 100 percent, where 100 percent is invisible."""
        return self._intf.get_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._get_fill_translucency_metadata)

    _set_fill_translucency_metadata = { "offset" : _set_fill_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fill_translucency.setter
    def fill_translucency(self, value:float) -> None:
        return self._intf.set_property(CoverageGraphics2DStatic._metadata, CoverageGraphics2DStatic._set_fill_translucency_metadata, value)

    _property_names[show_region] = "show_region"
    _property_names[show_points] = "show_points"
    _property_names[show_labels] = "show_labels"
    _property_names[color] = "color"
    _property_names[fill_points] = "fill_points"
    _property_names[marker_style] = "marker_style"
    _property_names[fill_translucency] = "fill_translucency"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageGraphics2DStatic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageGraphics2DStatic)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageGraphics2DStatic, [CoverageGraphics2DStatic, ])

agcls.AgClassCatalog.add_catalog_entry((5589564658696884027, 8504175117409567154), CoverageGraphics2DStatic)
agcls.AgTypeNameMap["CoverageGraphics2DStatic"] = CoverageGraphics2DStatic

class CoverageGraphics2DAnimation(SupportsDeleteCallback):
    """2D animation graphics options for the coverage grid."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_satisfaction_method_offset = 1
    _set_show_satisfaction_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_fill_translucency_method_offset = 5
    _set_fill_translucency_method_offset = 6
    _metadata = {
        "iid_data" : (5291579128336528592, 17812572624430702251),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageGraphics2DAnimation)

    _get_show_satisfaction_metadata = { "offset" : _get_show_satisfaction_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_satisfaction(self) -> bool:
        """Show Satisfaction: display graphics for regions of the grid that satisfy multiple figure of merit satisfaction criteria simultaneously during animation."""
        return self._intf.get_property(CoverageGraphics2DAnimation._metadata, CoverageGraphics2DAnimation._get_show_satisfaction_metadata)

    _set_show_satisfaction_metadata = { "offset" : _set_show_satisfaction_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_satisfaction.setter
    def show_satisfaction(self, show_satisfaction:bool) -> None:
        return self._intf.set_property(CoverageGraphics2DAnimation._metadata, CoverageGraphics2DAnimation._set_show_satisfaction_metadata, show_satisfaction)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Color of the animation graphics display."""
        return self._intf.get_property(CoverageGraphics2DAnimation._metadata, CoverageGraphics2DAnimation._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(CoverageGraphics2DAnimation._metadata, CoverageGraphics2DAnimation._set_color_metadata, color)

    _get_fill_translucency_metadata = { "offset" : _get_fill_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fill_translucency(self) -> float:
        """Specify the fill translucency percentage for the animation graphics display. Translucency ranges from 0 to 100 percent, where 100 percent is invisible."""
        return self._intf.get_property(CoverageGraphics2DAnimation._metadata, CoverageGraphics2DAnimation._get_fill_translucency_metadata)

    _set_fill_translucency_metadata = { "offset" : _set_fill_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fill_translucency.setter
    def fill_translucency(self, value:float) -> None:
        return self._intf.set_property(CoverageGraphics2DAnimation._metadata, CoverageGraphics2DAnimation._set_fill_translucency_metadata, value)

    _property_names[show_satisfaction] = "show_satisfaction"
    _property_names[color] = "color"
    _property_names[fill_translucency] = "fill_translucency"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageGraphics2DAnimation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageGraphics2DAnimation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageGraphics2DAnimation, [CoverageGraphics2DAnimation, ])

agcls.AgClassCatalog.add_catalog_entry((4960045678322373395, 18029117329104145548), CoverageGraphics2DAnimation)
agcls.AgTypeNameMap["CoverageGraphics2DAnimation"] = CoverageGraphics2DAnimation

class CoverageGraphics2DProgress(SupportsDeleteCallback):
    """Progress graphics for access calculations."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _metadata = {
        "iid_data" : (5699958487174791655, 3637837543272044958),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageGraphics2DProgress)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Show Access Progress: specify whether to highlight the grid regions and points as accesses are being computed."""
        return self._intf.get_property(CoverageGraphics2DProgress._metadata, CoverageGraphics2DProgress._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(CoverageGraphics2DProgress._metadata, CoverageGraphics2DProgress._set_show_graphics_metadata, is_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Progress graphics color."""
        return self._intf.get_property(CoverageGraphics2DProgress._metadata, CoverageGraphics2DProgress._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(CoverageGraphics2DProgress._metadata, CoverageGraphics2DProgress._set_color_metadata, color)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageGraphics2DProgress."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageGraphics2DProgress)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageGraphics2DProgress, [CoverageGraphics2DProgress, ])

agcls.AgClassCatalog.add_catalog_entry((4687831678512257481, 3548556863496053667), CoverageGraphics2DProgress)
agcls.AgTypeNameMap["CoverageGraphics2DProgress"] = CoverageGraphics2DProgress

class CoverageGraphics(SupportsDeleteCallback):
    """2D graphics display options for the coverage grid."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_static_method_offset = 1
    _get_animation_settings_method_offset = 2
    _get_progress_method_offset = 3
    _get_show_graphics_method_offset = 4
    _set_show_graphics_method_offset = 5
    _metadata = {
        "iid_data" : (5418912101669335857, 10853226867150588340),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageGraphics)

    _get_static_metadata = { "offset" : _get_static_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def static(self) -> "CoverageGraphics2DStatic":
        """2D static graphics options."""
        return self._intf.get_property(CoverageGraphics._metadata, CoverageGraphics._get_static_metadata)

    _get_animation_settings_metadata = { "offset" : _get_animation_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def animation_settings(self) -> "CoverageGraphics2DAnimation":
        """2D animation graphics options."""
        return self._intf.get_property(CoverageGraphics._metadata, CoverageGraphics._get_animation_settings_metadata)

    _get_progress_metadata = { "offset" : _get_progress_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def progress(self) -> "CoverageGraphics2DProgress":
        """Access progress graphics options."""
        return self._intf.get_property(CoverageGraphics._metadata, CoverageGraphics._get_progress_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the coverage definition are visible."""
        return self._intf.get_property(CoverageGraphics._metadata, CoverageGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(CoverageGraphics._metadata, CoverageGraphics._set_show_graphics_metadata, is_visible)

    _property_names[static] = "static"
    _property_names[animation_settings] = "animation_settings"
    _property_names[progress] = "progress"
    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageGraphics, [CoverageGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((4846877003988568242, 7061059683949945267), CoverageGraphics)
agcls.AgTypeNameMap["CoverageGraphics"] = CoverageGraphics

class CoverageGraphics3D(SupportsDeleteCallback):
    """3D graphics options for the coverage grid."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_static_method_offset = 1
    _get_animation_graphics_3d_settings_method_offset = 2
    _get_granularity_method_offset = 3
    _set_granularity_method_offset = 4
    _get_show_at_altitude_method_offset = 5
    _set_show_at_altitude_method_offset = 6
    _get_draw_at_altitude_mode_method_offset = 7
    _set_draw_at_altitude_mode_method_offset = 8
    _get_automatic_computation_of_granularity_method_offset = 9
    _set_automatic_computation_of_granularity_method_offset = 10
    _metadata = {
        "iid_data" : (4853983964879407040, 4034757015536990594),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageGraphics3D)

    _get_static_metadata = { "offset" : _get_static_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def static(self) -> "CoverageGraphics3DAttributes":
        """3D static graphics options."""
        return self._intf.get_property(CoverageGraphics3D._metadata, CoverageGraphics3D._get_static_metadata)

    _get_animation_graphics_3d_settings_metadata = { "offset" : _get_animation_graphics_3d_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def animation_graphics_3d_settings(self) -> "CoverageGraphics3DAttributes":
        """3D animation graphics options."""
        return self._intf.get_property(CoverageGraphics3D._metadata, CoverageGraphics3D._get_animation_graphics_3d_settings_metadata)

    _get_granularity_metadata = { "offset" : _get_granularity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def granularity(self) -> float:
        """Fill Granularity: sampling distance between points used when grid points are filled. Uses Angle Dimension."""
        return self._intf.get_property(CoverageGraphics3D._metadata, CoverageGraphics3D._get_granularity_metadata)

    _set_granularity_metadata = { "offset" : _set_granularity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @granularity.setter
    def granularity(self, granularity:float) -> None:
        return self._intf.set_property(CoverageGraphics3D._metadata, CoverageGraphics3D._set_granularity_metadata, granularity)

    _get_show_at_altitude_metadata = { "offset" : _get_show_at_altitude_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_at_altitude(self) -> bool:
        """Show Graphics at Altitude."""
        return self._intf.get_property(CoverageGraphics3D._metadata, CoverageGraphics3D._get_show_at_altitude_metadata)

    _set_show_at_altitude_metadata = { "offset" : _set_show_at_altitude_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_at_altitude.setter
    def show_at_altitude(self, show_at_alt:bool) -> None:
        return self._intf.set_property(CoverageGraphics3D._metadata, CoverageGraphics3D._set_show_at_altitude_metadata, show_at_alt)

    _get_draw_at_altitude_mode_metadata = { "offset" : _get_draw_at_altitude_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Coverage3dDrawAtAltitudeMode),) }
    @property
    def draw_at_altitude_mode(self) -> "Coverage3dDrawAtAltitudeMode":
        """Draw at Altitude Polygon Mode."""
        return self._intf.get_property(CoverageGraphics3D._metadata, CoverageGraphics3D._get_draw_at_altitude_mode_metadata)

    _set_draw_at_altitude_mode_metadata = { "offset" : _set_draw_at_altitude_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Coverage3dDrawAtAltitudeMode),) }
    @draw_at_altitude_mode.setter
    def draw_at_altitude_mode(self, draw_at_alt_mode:"Coverage3dDrawAtAltitudeMode") -> None:
        return self._intf.set_property(CoverageGraphics3D._metadata, CoverageGraphics3D._set_draw_at_altitude_mode_metadata, draw_at_alt_mode)

    _get_automatic_computation_of_granularity_metadata = { "offset" : _get_automatic_computation_of_granularity_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def automatic_computation_of_granularity(self) -> bool:
        """Auto Compute Fill Granularity."""
        return self._intf.get_property(CoverageGraphics3D._metadata, CoverageGraphics3D._get_automatic_computation_of_granularity_metadata)

    _set_automatic_computation_of_granularity_metadata = { "offset" : _set_automatic_computation_of_granularity_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @automatic_computation_of_granularity.setter
    def automatic_computation_of_granularity(self, auto_granularity:bool) -> None:
        return self._intf.set_property(CoverageGraphics3D._metadata, CoverageGraphics3D._set_automatic_computation_of_granularity_metadata, auto_granularity)

    _property_names[static] = "static"
    _property_names[animation_graphics_3d_settings] = "animation_graphics_3d_settings"
    _property_names[granularity] = "granularity"
    _property_names[show_at_altitude] = "show_at_altitude"
    _property_names[draw_at_altitude_mode] = "draw_at_altitude_mode"
    _property_names[automatic_computation_of_granularity] = "automatic_computation_of_granularity"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageGraphics3D, [CoverageGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5567918484181556361, 2372896946950337666), CoverageGraphics3D)
agcls.AgTypeNameMap["CoverageGraphics3D"] = CoverageGraphics3D

class CoverageGraphics3DAttributes(SupportsDeleteCallback):
    """3D animation or static graphics options."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_translucency_method_offset = 3
    _set_translucency_method_offset = 4
    _get_point_size_method_offset = 5
    _set_point_size_method_offset = 6
    _metadata = {
        "iid_data" : (5064955983620127788, 7144782292146345362),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageGraphics3DAttributes)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Show Animation Graphics: specify whether to display coverage data for all points based on evaluation over the entire coverage interval."""
        return self._intf.get_property(CoverageGraphics3DAttributes._metadata, CoverageGraphics3DAttributes._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(CoverageGraphics3DAttributes._metadata, CoverageGraphics3DAttributes._set_show_graphics_metadata, is_visible)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Animation Translucency Percentage: the translucency of the static graphics when grid points are filled. Dimensionless."""
        return self._intf.get_property(CoverageGraphics3DAttributes._metadata, CoverageGraphics3DAttributes._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, translucency:float) -> None:
        return self._intf.set_property(CoverageGraphics3DAttributes._metadata, CoverageGraphics3DAttributes._set_translucency_metadata, translucency)

    _get_point_size_metadata = { "offset" : _get_point_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def point_size(self) -> float:
        """Animation Point Size: the size of a grid point for static graphics when grid points are not filled. Dimensionless."""
        return self._intf.get_property(CoverageGraphics3DAttributes._metadata, CoverageGraphics3DAttributes._get_point_size_metadata)

    _set_point_size_metadata = { "offset" : _set_point_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @point_size.setter
    def point_size(self, point_size:float) -> None:
        return self._intf.set_property(CoverageGraphics3DAttributes._metadata, CoverageGraphics3DAttributes._set_point_size_metadata, point_size)

    _property_names[show_graphics] = "show_graphics"
    _property_names[translucency] = "translucency"
    _property_names[point_size] = "point_size"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageGraphics3DAttributes."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageGraphics3DAttributes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageGraphics3DAttributes, [CoverageGraphics3DAttributes, ])

agcls.AgClassCatalog.add_catalog_entry((5627583883410429186, 6188437372953644696), CoverageGraphics3DAttributes)
agcls.AgTypeNameMap["CoverageGraphics3DAttributes"] = CoverageGraphics3DAttributes

class ChainTimePeriod(IChainTimePeriod, SupportsDeleteCallback):
    """Chain time period options."""
    def __init__(self, source_object=None):
        """Construct an object of type ChainTimePeriod."""
        SupportsDeleteCallback.__init__(self)
        IChainTimePeriod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IChainTimePeriod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ChainTimePeriod, [IChainTimePeriod])

agcls.AgClassCatalog.add_catalog_entry((4715096641100432586, 16980581165603489162), ChainTimePeriod)
agcls.AgTypeNameMap["ChainTimePeriod"] = ChainTimePeriod

class ChainUserSpecifiedTimePeriod(IChainTimePeriod, SupportsDeleteCallback):
    """User-specified time period for the chain."""

    _num_methods = 1
    _vtable_offset = IChainTimePeriod._vtable_offset + IChainTimePeriod._num_methods
    _get_time_interval_method_offset = 1
    _metadata = {
        "iid_data" : (5094188336196046859, 3680405979393062802),
        "vtable_reference" : IChainTimePeriod._vtable_offset + IChainTimePeriod._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ChainUserSpecifiedTimePeriod)

    _get_time_interval_metadata = { "offset" : _get_time_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Allow configuring the time interval."""
        return self._intf.get_property(ChainUserSpecifiedTimePeriod._metadata, ChainUserSpecifiedTimePeriod._get_time_interval_metadata)

    _property_names[time_interval] = "time_interval"

    def __init__(self, source_object=None):
        """Construct an object of type ChainUserSpecifiedTimePeriod."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ChainUserSpecifiedTimePeriod)
        IChainTimePeriod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IChainTimePeriod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ChainUserSpecifiedTimePeriod, [ChainUserSpecifiedTimePeriod, IChainTimePeriod])

agcls.AgClassCatalog.add_catalog_entry((5457693067261891603, 6913066478615346317), ChainUserSpecifiedTimePeriod)
agcls.AgTypeNameMap["ChainUserSpecifiedTimePeriod"] = ChainUserSpecifiedTimePeriod

class ChainConstraints(SupportsDeleteCallback):
    """Chain constraints."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_minimum_angle_method_offset = 1
    _set_use_minimum_angle_method_offset = 2
    _get_minimum_angle_method_offset = 3
    _set_minimum_angle_method_offset = 4
    _get_use_maximum_angle_method_offset = 5
    _set_use_maximum_angle_method_offset = 6
    _get_maximum_angle_method_offset = 7
    _set_maximum_angle_method_offset = 8
    _get_use_minimum_link_time_method_offset = 9
    _set_use_minimum_link_time_method_offset = 10
    _get_minimum_link_time_method_offset = 11
    _set_minimum_link_time_method_offset = 12
    _get_filter_access_intervals_by_file_method_offset = 13
    _set_filter_access_intervals_by_file_method_offset = 14
    _get_load_interval_file_method_offset = 15
    _set_load_interval_file_method_offset = 16
    _metadata = {
        "iid_data" : (5161914517326057633, 5949218675938502306),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ChainConstraints)

    _get_use_minimum_angle_metadata = { "offset" : _get_use_minimum_angle_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_minimum_angle(self) -> bool:
        """Opt to constrain a chain so that access to or from the chain is limited by the minimum vector angle among the objects in the chain."""
        return self._intf.get_property(ChainConstraints._metadata, ChainConstraints._get_use_minimum_angle_metadata)

    _set_use_minimum_angle_metadata = { "offset" : _set_use_minimum_angle_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_minimum_angle.setter
    def use_minimum_angle(self, use_min_angle:bool) -> None:
        return self._intf.set_property(ChainConstraints._metadata, ChainConstraints._set_use_minimum_angle_metadata, use_min_angle)

    _get_minimum_angle_metadata = { "offset" : _get_minimum_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_angle(self) -> float:
        """Get or set the minimum vector angle among the objects in the chain. Uses Angle Dimension."""
        return self._intf.get_property(ChainConstraints._metadata, ChainConstraints._get_minimum_angle_metadata)

    _set_minimum_angle_metadata = { "offset" : _set_minimum_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_angle.setter
    def minimum_angle(self, min_angle:float) -> None:
        return self._intf.set_property(ChainConstraints._metadata, ChainConstraints._set_minimum_angle_metadata, min_angle)

    _get_use_maximum_angle_metadata = { "offset" : _get_use_maximum_angle_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_maximum_angle(self) -> bool:
        """Opt to constrain a chain so that access to or from the chain is limited by the maximum vector angle among the objects in the chain."""
        return self._intf.get_property(ChainConstraints._metadata, ChainConstraints._get_use_maximum_angle_metadata)

    _set_use_maximum_angle_metadata = { "offset" : _set_use_maximum_angle_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_maximum_angle.setter
    def use_maximum_angle(self, use_max_angle:bool) -> None:
        return self._intf.set_property(ChainConstraints._metadata, ChainConstraints._set_use_maximum_angle_metadata, use_max_angle)

    _get_maximum_angle_metadata = { "offset" : _get_maximum_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_angle(self) -> float:
        """Get or set the maximum vector angle among the objects in the chain. Uses Angle Dimension."""
        return self._intf.get_property(ChainConstraints._metadata, ChainConstraints._get_maximum_angle_metadata)

    _set_maximum_angle_metadata = { "offset" : _set_maximum_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_angle.setter
    def maximum_angle(self, max_angle:float) -> None:
        return self._intf.set_property(ChainConstraints._metadata, ChainConstraints._set_maximum_angle_metadata, max_angle)

    _get_use_minimum_link_time_metadata = { "offset" : _get_use_minimum_link_time_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_minimum_link_time(self) -> bool:
        """Opt to constrain a chain so that accesses of shorter duration than the specified minimum value are excluded from chain access results."""
        return self._intf.get_property(ChainConstraints._metadata, ChainConstraints._get_use_minimum_link_time_metadata)

    _set_use_minimum_link_time_metadata = { "offset" : _set_use_minimum_link_time_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_minimum_link_time.setter
    def use_minimum_link_time(self, use_min_link_time:bool) -> None:
        return self._intf.set_property(ChainConstraints._metadata, ChainConstraints._set_use_minimum_link_time_metadata, use_min_link_time)

    _get_minimum_link_time_metadata = { "offset" : _get_minimum_link_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_link_time(self) -> float:
        """User-specified minimum access duration. Uses Time Dimension."""
        return self._intf.get_property(ChainConstraints._metadata, ChainConstraints._get_minimum_link_time_metadata)

    _set_minimum_link_time_metadata = { "offset" : _set_minimum_link_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_link_time.setter
    def minimum_link_time(self, min_link_time:float) -> None:
        return self._intf.set_property(ChainConstraints._metadata, ChainConstraints._set_minimum_link_time_metadata, min_link_time)

    _get_filter_access_intervals_by_file_metadata = { "offset" : _get_filter_access_intervals_by_file_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def filter_access_intervals_by_file(self) -> bool:
        """Opt to use an .int file to filter the computed chain access intervals."""
        return self._intf.get_property(ChainConstraints._metadata, ChainConstraints._get_filter_access_intervals_by_file_metadata)

    _set_filter_access_intervals_by_file_metadata = { "offset" : _set_filter_access_intervals_by_file_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @filter_access_intervals_by_file.setter
    def filter_access_intervals_by_file(self, use_load_interval_file:bool) -> None:
        return self._intf.set_property(ChainConstraints._metadata, ChainConstraints._set_filter_access_intervals_by_file_metadata, use_load_interval_file)

    _get_load_interval_file_metadata = { "offset" : _get_load_interval_file_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def load_interval_file(self) -> str:
        """Get or set the name of the .int file used to filter the computed chain access intervals."""
        return self._intf.get_property(ChainConstraints._metadata, ChainConstraints._get_load_interval_file_metadata)

    _set_load_interval_file_metadata = { "offset" : _set_load_interval_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @load_interval_file.setter
    def load_interval_file(self, load_interval_file:str) -> None:
        return self._intf.set_property(ChainConstraints._metadata, ChainConstraints._set_load_interval_file_metadata, load_interval_file)

    _property_names[use_minimum_angle] = "use_minimum_angle"
    _property_names[minimum_angle] = "minimum_angle"
    _property_names[use_maximum_angle] = "use_maximum_angle"
    _property_names[maximum_angle] = "maximum_angle"
    _property_names[use_minimum_link_time] = "use_minimum_link_time"
    _property_names[minimum_link_time] = "minimum_link_time"
    _property_names[filter_access_intervals_by_file] = "filter_access_intervals_by_file"
    _property_names[load_interval_file] = "load_interval_file"

    def __init__(self, source_object=None):
        """Construct an object of type ChainConstraints."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ChainConstraints)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ChainConstraints, [ChainConstraints, ])

agcls.AgClassCatalog.add_catalog_entry((5147499005971640303, 4961582862323625371), ChainConstraints)
agcls.AgTypeNameMap["ChainConstraints"] = ChainConstraints

class Chain(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """
    Configuration options for chains.

    Examples
    --------
    Print the strand intervals of chain object:
    >>> # Chain chain: Chain Object
    >>> # Compute the chain access if not done already.
    >>> chain.compute_access()
    >>>
    >>> # Considered Start and Stop time
    >>> print(
    >>>     "Chain considered start time: %s"
    >>>     % chain.analysis_workbench_components.time_instants.item("ConsideredStartTime").find_occurrence().epoch
    >>> )
    >>> print(
    >>>     "Chain considered stop time: %s"
    >>>     % chain.analysis_workbench_components.time_instants.item("ConsideredStopTime").find_occurrence().epoch
    >>> )
    >>>
    >>> objectParticipationIntervals = chain.analysis_workbench_components.time_interval_collections.item(
    >>>     "StrandAccessIntervals"
    >>> )
    >>> intervalListResult = objectParticipationIntervals.find_interval_collection()
    >>>
    >>> for i in range(0, intervalListResult.interval_collections.count):
    >>>     if intervalListResult.IsValid:
    >>>         print("Link Name: %s" % objectParticipationIntervals.Labels(i + 1))
    >>>         print("--------------")
    >>>         for j in range(0, intervalListResult.IntervalCollections.Item(i).Count):
    >>>             startTime = intervalListResult.IntervalCollections.Item(i).Item(j).Start
    >>>             stopTime = intervalListResult.IntervalCollections.Item(i).Item(j).Stop
    >>>             print("Start: %s Stop: %s" % (startTime, stopTime))

    Define and compute a chain (advanced):
    >>> # Chain chain: Chain object
    >>> # Satellite satellite: Satellite object
    >>>
    >>> # Remove all previous accesses
    >>> chain.clear_access()
    >>>
    >>> # Add some objects to chain
    >>> chain.objects.add("Facility/MyFacility")
    >>> chain.objects.add_object(satellite)
    >>>
    >>> # Configure chain parameters
    >>> chain.recompute_automatically = False
    >>> chain.enable_light_time_delay = False
    >>> chain.time_convergence = 0.001
    >>> chain.data_save_mode = DataSaveMode.SAVE_ACCESSES
    >>>
    >>> # Specify our own time period
    >>> chain.set_time_period_type(ChainTimePeriodType.SPECIFIED_TIME_PERIOD)
    >>>
    >>> # Get chain time period interface
    >>> chainUserTimePeriod = chain.time_period
    >>> chainUserTimePeriod.time_interval.set_explicit_interval(
    >>>     root.current_scenario.analysis_interval.find_start_time(),
    >>>     root.current_scenario.analysis_interval.find_stop_time(),
    >>> )  # Set to scenario period
    >>>
    >>> # Compute the chain
    >>> chain.compute_access()

    Define and compute a chain (basic):
    >>> # Chain chain: Chain object
    >>>
    >>> # Add some objects to chain (using STK path)
    >>> chain.objects.add("Facility/MyFacility")
    >>> chain.objects.add("Satellite/MySatellite")
    >>>
    >>> # Compute the chain
    >>> chain.compute_access()

    Create a chain (on the current scenario central body):
    >>> # STKObjectRoot root: STK Object Model Root
    >>> # Create the Chain on the current scenario central body (use
    >>> # NewOnCentralBody to specify explicitly the central body)
    >>> chain = root.current_scenario.children.new(STKObjectType.CHAIN, "MyChain")
    """

    _num_methods = 42
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_objects_method_offset = 1
    _get_recompute_automatically_method_offset = 2
    _set_recompute_automatically_method_offset = 3
    _get_time_period_type_method_offset = 4
    _set_time_period_type_method_offset = 5
    _get_time_period_method_offset = 6
    _get_data_save_mode_method_offset = 7
    _set_data_save_mode_method_offset = 8
    _set_access_intervals_file_method_offset = 9
    _reset_access_intervals_file_method_offset = 10
    _get_access_intervals_filename_method_offset = 11
    _get_enable_light_time_delay_method_offset = 12
    _set_enable_light_time_delay_method_offset = 13
    _get_maximum_time_step_method_offset = 14
    _set_maximum_time_step_method_offset = 15
    _get_time_convergence_method_offset = 16
    _set_time_convergence_method_offset = 17
    _get_constraints_method_offset = 18
    _get_graphics_method_offset = 19
    _get_graphics_3d_method_offset = 20
    _compute_access_method_offset = 21
    _clear_access_method_offset = 22
    _get_event_detection_method_offset = 23
    _get_sampling_method_offset = 24
    _get_detect_events_based_on_samples_only_method_offset = 25
    _set_detect_events_based_on_samples_only_method_offset = 26
    _get_const_constraints_mode_method_offset = 27
    _set_const_constraints_mode_method_offset = 28
    _get_keep_empty_strands_method_offset = 29
    _set_keep_empty_strands_method_offset = 30
    _get_allow_duplicate_objects_in_strands_method_offset = 31
    _set_allow_duplicate_objects_in_strands_method_offset = 32
    _get_coverage_asset_mode_method_offset = 33
    _set_coverage_asset_mode_method_offset = 34
    _get_start_object_method_offset = 35
    _set_start_object_method_offset = 36
    _get_end_object_method_offset = 37
    _set_end_object_method_offset = 38
    _get_max_strand_depth_method_offset = 39
    _set_max_strand_depth_method_offset = 40
    _get_connections_method_offset = 41
    _get_optimal_strand_opts_method_offset = 42
    _metadata = {
        "iid_data" : (4852150692953971156, 16769140394525898915),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Chain)

    _get_objects_metadata = { "offset" : _get_objects_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def objects(self) -> "ObjectLinkCollection":
        """Do not use this property, as it is deprecated. Use the StartObject, EndObject and Connections properties to configure objects in the chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_objects_metadata)

    _get_recompute_automatically_metadata = { "offset" : _get_recompute_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def recompute_automatically(self) -> bool:
        """Opt to have STK automatically recompute accesses each time that an object on which the chain depends is updated."""
        return self._intf.get_property(Chain._metadata, Chain._get_recompute_automatically_metadata)

    _set_recompute_automatically_metadata = { "offset" : _set_recompute_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @recompute_automatically.setter
    def recompute_automatically(self, auto_recompute:bool) -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_recompute_automatically_metadata, auto_recompute)

    _get_time_period_type_metadata = { "offset" : _get_time_period_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ChainTimePeriodType),) }
    @property
    def time_period_type(self) -> "ChainTimePeriodType":
        """Get the option used to specify the time period for the chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_time_period_type_metadata)

    _set_time_period_type_metadata = { "offset" : _set_time_period_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ChainTimePeriodType),) }
    def set_time_period_type(self, time_period_type:"ChainTimePeriodType") -> None:
        """Set the option used to specify the time period."""
        return self._intf.invoke(Chain._metadata, Chain._set_time_period_type_metadata, time_period_type)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "IChainTimePeriod":
        """Get the time period for the chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_time_period_metadata)

    _get_data_save_mode_metadata = { "offset" : _get_data_save_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DataSaveMode),) }
    @property
    def data_save_mode(self) -> "DataSaveMode":
        """Specify the mode for saving or recomputing accesses."""
        return self._intf.get_property(Chain._metadata, Chain._get_data_save_mode_metadata)

    _set_data_save_mode_metadata = { "offset" : _set_data_save_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(DataSaveMode),) }
    @data_save_mode.setter
    def data_save_mode(self, data_save_mode:"DataSaveMode") -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_data_save_mode_metadata, data_save_mode)

    _set_access_intervals_file_metadata = { "offset" : _set_access_intervals_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_access_intervals_file(self, filename:str) -> None:
        """Opt to produce an .int file containing the strand access intervals."""
        return self._intf.invoke(Chain._metadata, Chain._set_access_intervals_file_metadata, filename)

    _reset_access_intervals_file_metadata = { "offset" : _reset_access_intervals_file_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reset_access_intervals_file(self) -> None:
        """Reset the .int file containing the strand access intervals."""
        return self._intf.invoke(Chain._metadata, Chain._reset_access_intervals_file_metadata, )

    _get_access_intervals_filename_metadata = { "offset" : _get_access_intervals_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def access_intervals_filename(self) -> str:
        """Name of the .int file containing the strand access intervals."""
        return self._intf.get_property(Chain._metadata, Chain._get_access_intervals_filename_metadata)

    _get_enable_light_time_delay_metadata = { "offset" : _get_enable_light_time_delay_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_light_time_delay(self) -> bool:
        """Specify whether to take light time delay into account in the computation."""
        return self._intf.get_property(Chain._metadata, Chain._get_enable_light_time_delay_metadata)

    _set_enable_light_time_delay_metadata = { "offset" : _set_enable_light_time_delay_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_light_time_delay.setter
    def enable_light_time_delay(self, value:bool) -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_enable_light_time_delay_metadata, value)

    _get_maximum_time_step_metadata = { "offset" : _get_maximum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_time_step(self) -> float:
        """Get or set the maximum sampling step size used when computing the chain. The maximum step size limits the amount of time that is allowed to elapse between sampling of the constraint functions during access computations. Uses Time Dimension."""
        return self._intf.get_property(Chain._metadata, Chain._get_maximum_time_step_metadata)

    _set_maximum_time_step_metadata = { "offset" : _set_maximum_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_time_step.setter
    def maximum_time_step(self, value:float) -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_maximum_time_step_metadata, value)

    _get_time_convergence_metadata = { "offset" : _get_time_convergence_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_convergence(self) -> float:
        """Get or set the time convergence for determining access intervals when computing the chain. Uses Time Dimension."""
        return self._intf.get_property(Chain._metadata, Chain._get_time_convergence_metadata)

    _set_time_convergence_metadata = { "offset" : _set_time_convergence_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_convergence.setter
    def time_convergence(self, value:float) -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_time_convergence_metadata, value)

    _get_constraints_metadata = { "offset" : _get_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def constraints(self) -> "ChainConstraints":
        """Get the constraints applicable to the chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_constraints_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "ChainGraphics":
        """Get the 2D graphics properties of the chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "ChainGraphics3D":
        """Get the 3D graphics properties of the chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_graphics_3d_metadata)

    _compute_access_metadata = { "offset" : _compute_access_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def compute_access(self) -> None:
        """Compute access for the chain."""
        return self._intf.invoke(Chain._metadata, Chain._compute_access_metadata, )

    _clear_access_metadata = { "offset" : _clear_access_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear_access(self) -> None:
        """Remove all chain accesses."""
        return self._intf.invoke(Chain._metadata, Chain._clear_access_metadata, )

    _get_event_detection_metadata = { "offset" : _get_event_detection_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def event_detection(self) -> "AccessEventDetection":
        """Event detection strategy used for access calculations."""
        return self._intf.get_property(Chain._metadata, Chain._get_event_detection_metadata)

    _get_sampling_metadata = { "offset" : _get_sampling_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sampling(self) -> "AccessSampling":
        """Sampling method used for access calculations."""
        return self._intf.get_property(Chain._metadata, Chain._get_sampling_metadata)

    _get_detect_events_based_on_samples_only_metadata = { "offset" : _get_detect_events_based_on_samples_only_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def detect_events_based_on_samples_only(self) -> bool:
        """Flags control whether event times are computed just using the sampling or by sub-sampling."""
        return self._intf.get_property(Chain._metadata, Chain._get_detect_events_based_on_samples_only_metadata)

    _set_detect_events_based_on_samples_only_metadata = { "offset" : _set_detect_events_based_on_samples_only_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @detect_events_based_on_samples_only.setter
    def detect_events_based_on_samples_only(self, detect_events_based_on_samples_only:bool) -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_detect_events_based_on_samples_only_metadata, detect_events_based_on_samples_only)

    _get_const_constraints_mode_metadata = { "offset" : _get_const_constraints_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ChainConstellationConstraintsMode),) }
    @property
    def const_constraints_mode(self) -> "ChainConstellationConstraintsMode":
        """Constellation constraints mode, apply to strands or per instance."""
        return self._intf.get_property(Chain._metadata, Chain._get_const_constraints_mode_metadata)

    _set_const_constraints_mode_metadata = { "offset" : _set_const_constraints_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ChainConstellationConstraintsMode),) }
    @const_constraints_mode.setter
    def const_constraints_mode(self, const_constraints_mode:"ChainConstellationConstraintsMode") -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_const_constraints_mode_metadata, const_constraints_mode)

    _get_keep_empty_strands_metadata = { "offset" : _get_keep_empty_strands_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def keep_empty_strands(self) -> bool:
        """Allow strands with no access intervals to included in reports."""
        return self._intf.get_property(Chain._metadata, Chain._get_keep_empty_strands_metadata)

    _set_keep_empty_strands_metadata = { "offset" : _set_keep_empty_strands_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @keep_empty_strands.setter
    def keep_empty_strands(self, keep_empty_strands:bool) -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_keep_empty_strands_metadata, keep_empty_strands)

    _get_allow_duplicate_objects_in_strands_metadata = { "offset" : _get_allow_duplicate_objects_in_strands_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_duplicate_objects_in_strands(self) -> bool:
        """Allow a strand to contain an object more than once."""
        return self._intf.get_property(Chain._metadata, Chain._get_allow_duplicate_objects_in_strands_metadata)

    _set_allow_duplicate_objects_in_strands_metadata = { "offset" : _set_allow_duplicate_objects_in_strands_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_duplicate_objects_in_strands.setter
    def allow_duplicate_objects_in_strands(self, allow_dup_objs_in_strands:bool) -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_allow_duplicate_objects_in_strands_metadata, allow_dup_objs_in_strands)

    _get_coverage_asset_mode_metadata = { "offset" : _get_coverage_asset_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ChainCoverageAssetMode),) }
    @property
    def coverage_asset_mode(self) -> "ChainCoverageAssetMode":
        """When Computing Coverage and the Chain is used as a coverage asset, append the grid instance to the end of the chain or update the grid instance inside the chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_coverage_asset_mode_metadata)

    _set_coverage_asset_mode_metadata = { "offset" : _set_coverage_asset_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ChainCoverageAssetMode),) }
    @coverage_asset_mode.setter
    def coverage_asset_mode(self, cov_asset_mode:"ChainCoverageAssetMode") -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_coverage_asset_mode_metadata, cov_asset_mode)

    _get_start_object_metadata = { "offset" : _get_start_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def start_object(self) -> "ISTKObject":
        """Start object for the Chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_start_object_metadata)

    _set_start_object_metadata = { "offset" : _set_start_object_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"),) }
    @start_object.setter
    def start_object(self, start_object:"ISTKObject") -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_start_object_metadata, start_object)

    _get_end_object_metadata = { "offset" : _get_end_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def end_object(self) -> "ISTKObject":
        """End object for the Chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_end_object_metadata)

    _set_end_object_metadata = { "offset" : _set_end_object_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"),) }
    @end_object.setter
    def end_object(self, end_object:"ISTKObject") -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_end_object_metadata, end_object)

    _get_max_strand_depth_metadata = { "offset" : _get_max_strand_depth_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def max_strand_depth(self) -> int:
        """Maximum number of objects in all strands for the Chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_max_strand_depth_metadata)

    _set_max_strand_depth_metadata = { "offset" : _set_max_strand_depth_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @max_strand_depth.setter
    def max_strand_depth(self, max_strand_depth:int) -> None:
        return self._intf.set_property(Chain._metadata, Chain._set_max_strand_depth_metadata, max_strand_depth)

    _get_connections_metadata = { "offset" : _get_connections_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def connections(self) -> "ChainConnectionCollection":
        """Get the collection of connections in the chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_connections_metadata)

    _get_optimal_strand_opts_metadata = { "offset" : _get_optimal_strand_opts_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def optimal_strand_opts(self) -> "ChainOptimalStrandOpts":
        """Optimal strands settings for the Chain."""
        return self._intf.get_property(Chain._metadata, Chain._get_optimal_strand_opts_metadata)

    _property_names[objects] = "objects"
    _property_names[recompute_automatically] = "recompute_automatically"
    _property_names[time_period_type] = "time_period_type"
    _property_names[time_period] = "time_period"
    _property_names[data_save_mode] = "data_save_mode"
    _property_names[access_intervals_filename] = "access_intervals_filename"
    _property_names[enable_light_time_delay] = "enable_light_time_delay"
    _property_names[maximum_time_step] = "maximum_time_step"
    _property_names[time_convergence] = "time_convergence"
    _property_names[constraints] = "constraints"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[event_detection] = "event_detection"
    _property_names[sampling] = "sampling"
    _property_names[detect_events_based_on_samples_only] = "detect_events_based_on_samples_only"
    _property_names[const_constraints_mode] = "const_constraints_mode"
    _property_names[keep_empty_strands] = "keep_empty_strands"
    _property_names[allow_duplicate_objects_in_strands] = "allow_duplicate_objects_in_strands"
    _property_names[coverage_asset_mode] = "coverage_asset_mode"
    _property_names[start_object] = "start_object"
    _property_names[end_object] = "end_object"
    _property_names[max_strand_depth] = "max_strand_depth"
    _property_names[connections] = "connections"
    _property_names[optimal_strand_opts] = "optimal_strand_opts"

    def __init__(self, source_object=None):
        """Construct an object of type Chain."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Chain)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Chain, [Chain, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((4973029539315306677, 12672617378872209795), Chain)
agcls.AgTypeNameMap["Chain"] = Chain

class ChainConnection(SupportsDeleteCallback):
    """Provide access to a Chain connection."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_from_object_method_offset = 1
    _set_from_object_method_offset = 2
    _get_to_object_method_offset = 3
    _set_to_object_method_offset = 4
    _get_min_num_uses_method_offset = 5
    _set_min_num_uses_method_offset = 6
    _get_max_num_uses_method_offset = 7
    _set_max_num_uses_method_offset = 8
    _get_parent_platform_restriction_method_offset = 9
    _set_parent_platform_restriction_method_offset = 10
    _metadata = {
        "iid_data" : (5353330619805514332, 1731175553557484191),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ChainConnection)

    _get_from_object_metadata = { "offset" : _get_from_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def from_object(self) -> "ISTKObject":
        """From object for a connection."""
        return self._intf.get_property(ChainConnection._metadata, ChainConnection._get_from_object_metadata)

    _set_from_object_metadata = { "offset" : _set_from_object_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"),) }
    @from_object.setter
    def from_object(self, from_object:"ISTKObject") -> None:
        return self._intf.set_property(ChainConnection._metadata, ChainConnection._set_from_object_metadata, from_object)

    _get_to_object_metadata = { "offset" : _get_to_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def to_object(self) -> "ISTKObject":
        """To object for a connection."""
        return self._intf.get_property(ChainConnection._metadata, ChainConnection._get_to_object_metadata)

    _set_to_object_metadata = { "offset" : _set_to_object_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"),) }
    @to_object.setter
    def to_object(self, to_object:"ISTKObject") -> None:
        return self._intf.set_property(ChainConnection._metadata, ChainConnection._set_to_object_metadata, to_object)

    _get_min_num_uses_metadata = { "offset" : _get_min_num_uses_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def min_num_uses(self) -> int:
        """Get or set the minimum number of uses for a connection."""
        return self._intf.get_property(ChainConnection._metadata, ChainConnection._get_min_num_uses_metadata)

    _set_min_num_uses_metadata = { "offset" : _set_min_num_uses_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @min_num_uses.setter
    def min_num_uses(self, value:int) -> None:
        return self._intf.set_property(ChainConnection._metadata, ChainConnection._set_min_num_uses_metadata, value)

    _get_max_num_uses_metadata = { "offset" : _get_max_num_uses_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def max_num_uses(self) -> int:
        """Get or set the maximum number of uses for a connection."""
        return self._intf.get_property(ChainConnection._metadata, ChainConnection._get_max_num_uses_metadata)

    _set_max_num_uses_metadata = { "offset" : _set_max_num_uses_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @max_num_uses.setter
    def max_num_uses(self, value:int) -> None:
        return self._intf.set_property(ChainConnection._metadata, ChainConnection._set_max_num_uses_metadata, value)

    _get_parent_platform_restriction_metadata = { "offset" : _get_parent_platform_restriction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ChainParentPlatformRestriction),) }
    @property
    def parent_platform_restriction(self) -> "ChainParentPlatformRestriction":
        """Get or set the parent platform restriction for a connection."""
        return self._intf.get_property(ChainConnection._metadata, ChainConnection._get_parent_platform_restriction_metadata)

    _set_parent_platform_restriction_metadata = { "offset" : _set_parent_platform_restriction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ChainParentPlatformRestriction),) }
    @parent_platform_restriction.setter
    def parent_platform_restriction(self, value:"ChainParentPlatformRestriction") -> None:
        return self._intf.set_property(ChainConnection._metadata, ChainConnection._set_parent_platform_restriction_metadata, value)

    _property_names[from_object] = "from_object"
    _property_names[to_object] = "to_object"
    _property_names[min_num_uses] = "min_num_uses"
    _property_names[max_num_uses] = "max_num_uses"
    _property_names[parent_platform_restriction] = "parent_platform_restriction"

    def __init__(self, source_object=None):
        """Construct an object of type ChainConnection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ChainConnection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ChainConnection, [ChainConnection, ])

agcls.AgClassCatalog.add_catalog_entry((5708102957916866723, 9581946718873291180), ChainConnection)
agcls.AgTypeNameMap["ChainConnection"] = ChainConnection

class ChainConnectionCollection(SupportsDeleteCallback):
    """Represents a collection of connections."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _item_by_from_to_objects_method_offset = 4
    _remove_at_method_offset = 5
    _remove_method_offset = 6
    _add_method_offset = 7
    _add_with_parent_restriction_method_offset = 8
    _clear_method_offset = 9
    _metadata = {
        "iid_data" : (5195502671165047412, 7678720674165656501),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ChainConnectionCollection)
    def __iter__(self):
        """Create an iterator for the ChainConnectionCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "ChainConnection":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(ChainConnectionCollection._metadata, ChainConnectionCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "ChainConnection":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(ChainConnectionCollection._metadata, ChainConnectionCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(ChainConnectionCollection._metadata, ChainConnectionCollection._get__new_enum_metadata)

    _item_by_from_to_objects_metadata = { "offset" : _item_by_from_to_objects_method_offset,
            "arg_types" : (agcom.PVOID, agcom.PVOID, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"), agmarshall.InterfaceInArg("ISTKObject"), agmarshall.InterfaceOutArg,) }
    def item_by_from_to_objects(self, from_object:"ISTKObject", to_object:"ISTKObject") -> "ChainConnection":
        """Given the From and To objects of a connection, returns the element in the collection."""
        return self._intf.invoke(ChainConnectionCollection._metadata, ChainConnectionCollection._item_by_from_to_objects_metadata, from_object, to_object, OutArg())

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the connection with the input index."""
        return self._intf.invoke(ChainConnectionCollection._metadata, ChainConnectionCollection._remove_at_metadata, index)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.PVOID, agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"), agmarshall.InterfaceInArg("ISTKObject"),) }
    def remove(self, from_object:"ISTKObject", to_object:"ISTKObject") -> None:
        """Remove the connection for the input from-to object pair."""
        return self._intf.invoke(ChainConnectionCollection._metadata, ChainConnectionCollection._remove_metadata, from_object, to_object)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.PVOID, agcom.PVOID, agcom.INT, agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"), agmarshall.InterfaceInArg("ISTKObject"), agmarshall.IntArg, agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def add(self, from_object:"ISTKObject", to_object:"ISTKObject", min_num_uses:int, max_num_uses:int) -> "ChainConnection":
        """Add and returns a new connection with the corresponding values."""
        return self._intf.invoke(ChainConnectionCollection._metadata, ChainConnectionCollection._add_metadata, from_object, to_object, min_num_uses, max_num_uses, OutArg())

    _add_with_parent_restriction_metadata = { "offset" : _add_with_parent_restriction_method_offset,
            "arg_types" : (agcom.PVOID, agcom.PVOID, agcom.INT, agcom.INT, agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceInArg("ISTKObject"), agmarshall.InterfaceInArg("ISTKObject"), agmarshall.IntArg, agmarshall.IntArg, agmarshall.EnumArg(ChainParentPlatformRestriction), agmarshall.InterfaceOutArg,) }
    def add_with_parent_restriction(self, from_object:"ISTKObject", to_object:"ISTKObject", min_num_uses:int, max_num_uses:int, parent_restriction:"ChainParentPlatformRestriction") -> "ChainConnection":
        """Add with the option for a parent restriction and returns a new connection with the corresponding values. A Constellation or Subset must be one of the input objects."""
        return self._intf.invoke(ChainConnectionCollection._metadata, ChainConnectionCollection._add_with_parent_restriction_metadata, from_object, to_object, min_num_uses, max_num_uses, parent_restriction, OutArg())

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear all connections values from the collection."""
        return self._intf.invoke(ChainConnectionCollection._metadata, ChainConnectionCollection._clear_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type ChainConnectionCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ChainConnectionCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ChainConnectionCollection, [ChainConnectionCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4950372512658498029, 12630129775381741732), ChainConnectionCollection)
agcls.AgTypeNameMap["ChainConnectionCollection"] = ChainConnectionCollection

class ChainOptimalStrandOpts(SupportsDeleteCallback):
    """Chain optimal strand options."""

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_method_offset = 1
    _set_compute_method_offset = 2
    _get_sampling_time_step_method_offset = 3
    _set_sampling_time_step_method_offset = 4
    _get_include_access_edge_times_in_samples_method_offset = 5
    _set_include_access_edge_times_in_samples_method_offset = 6
    _get_num_strands_to_store_method_offset = 7
    _set_num_strands_to_store_method_offset = 8
    _get_type_method_offset = 9
    _set_type_method_offset = 10
    _get_link_comparison_type_method_offset = 11
    _set_link_comparison_type_method_offset = 12
    _get_strand_comparison_type_method_offset = 13
    _set_strand_comparison_type_method_offset = 14
    _get_calc_scalar_type_method_offset = 15
    _set_calc_scalar_type_method_offset = 16
    _get_calc_scalar_name_method_offset = 17
    _set_calc_scalar_name_method_offset = 18
    _get_calc_scalar_file_name_method_offset = 19
    _set_calc_scalar_file_name_method_offset = 20
    _metadata = {
        "iid_data" : (4804052521849233740, 1547912209808627343),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ChainOptimalStrandOpts)

    _get_compute_metadata = { "offset" : _get_compute_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute(self) -> bool:
        """Compute optimal strands."""
        return self._intf.get_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._get_compute_metadata)

    _set_compute_metadata = { "offset" : _set_compute_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute.setter
    def compute(self, compute:bool) -> None:
        return self._intf.set_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._set_compute_metadata, compute)

    _get_sampling_time_step_metadata = { "offset" : _get_sampling_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sampling_time_step(self) -> float:
        """Time step used to sample optimal strand metric when computing optimal strands."""
        return self._intf.get_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._get_sampling_time_step_metadata)

    _set_sampling_time_step_metadata = { "offset" : _set_sampling_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sampling_time_step.setter
    def sampling_time_step(self, sample_time_step:float) -> None:
        return self._intf.set_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._set_sampling_time_step_metadata, sample_time_step)

    _get_include_access_edge_times_in_samples_metadata = { "offset" : _get_include_access_edge_times_in_samples_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_access_edge_times_in_samples(self) -> bool:
        """Include all chain connection access pairs when computing sample times for optimal strands."""
        return self._intf.get_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._get_include_access_edge_times_in_samples_metadata)

    _set_include_access_edge_times_in_samples_metadata = { "offset" : _set_include_access_edge_times_in_samples_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_access_edge_times_in_samples.setter
    def include_access_edge_times_in_samples(self, value:bool) -> None:
        return self._intf.set_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._set_include_access_edge_times_in_samples_metadata, value)

    _get_num_strands_to_store_metadata = { "offset" : _get_num_strands_to_store_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def num_strands_to_store(self) -> int:
        """Maximum number of objects in all strands for the Chain."""
        return self._intf.get_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._get_num_strands_to_store_metadata)

    _set_num_strands_to_store_metadata = { "offset" : _set_num_strands_to_store_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @num_strands_to_store.setter
    def num_strands_to_store(self, value:int) -> None:
        return self._intf.set_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._set_num_strands_to_store_metadata, value)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ChainOptimalStrandMetricType),) }
    @property
    def type(self) -> "ChainOptimalStrandMetricType":
        """Optimal path type."""
        return self._intf.get_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._get_type_metadata)

    _set_type_metadata = { "offset" : _set_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ChainOptimalStrandMetricType),) }
    @type.setter
    def type(self, value:"ChainOptimalStrandMetricType") -> None:
        return self._intf.set_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._set_type_metadata, value)

    _get_link_comparison_type_metadata = { "offset" : _get_link_comparison_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ChainOptimalStrandLinkCompareType),) }
    @property
    def link_comparison_type(self) -> "ChainOptimalStrandLinkCompareType":
        """Optimal path comparison type (min, max or sum) used when comparing connections of a strand when computing an overall value of the metric for a strand."""
        return self._intf.get_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._get_link_comparison_type_metadata)

    _set_link_comparison_type_metadata = { "offset" : _set_link_comparison_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ChainOptimalStrandLinkCompareType),) }
    @link_comparison_type.setter
    def link_comparison_type(self, value:"ChainOptimalStrandLinkCompareType") -> None:
        return self._intf.set_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._set_link_comparison_type_metadata, value)

    _get_strand_comparison_type_metadata = { "offset" : _get_strand_comparison_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ChainOptimalStrandCompareStrandsType),) }
    @property
    def strand_comparison_type(self) -> "ChainOptimalStrandCompareStrandsType":
        """Optimal path comparison type (min or max) used when comparing strands."""
        return self._intf.get_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._get_strand_comparison_type_metadata)

    _set_strand_comparison_type_metadata = { "offset" : _set_strand_comparison_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ChainOptimalStrandCompareStrandsType),) }
    @strand_comparison_type.setter
    def strand_comparison_type(self, value:"ChainOptimalStrandCompareStrandsType") -> None:
        return self._intf.set_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._set_strand_comparison_type_metadata, value)

    _get_calc_scalar_type_metadata = { "offset" : _get_calc_scalar_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ChainOptimalStrandCalculationScalarMetricType),) }
    @property
    def calc_scalar_type(self) -> "ChainOptimalStrandCalculationScalarMetricType":
        """Optimal path AWB calculation scalar type used when the optiml path type is set to use a calculation scalar."""
        return self._intf.get_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._get_calc_scalar_type_metadata)

    _set_calc_scalar_type_metadata = { "offset" : _set_calc_scalar_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ChainOptimalStrandCalculationScalarMetricType),) }
    @calc_scalar_type.setter
    def calc_scalar_type(self, value:"ChainOptimalStrandCalculationScalarMetricType") -> None:
        return self._intf.set_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._set_calc_scalar_type_metadata, value)

    _get_calc_scalar_name_metadata = { "offset" : _get_calc_scalar_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def calc_scalar_name(self) -> str:
        """Optimal path AWB calculation scalar to evaluate to determine optimal strands."""
        return self._intf.get_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._get_calc_scalar_name_metadata)

    _set_calc_scalar_name_metadata = { "offset" : _set_calc_scalar_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @calc_scalar_name.setter
    def calc_scalar_name(self, value:str) -> None:
        return self._intf.set_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._set_calc_scalar_name_metadata, value)

    _get_calc_scalar_file_name_metadata = { "offset" : _get_calc_scalar_file_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def calc_scalar_file_name(self) -> str:
        """Optimal path AWB calculation scalar file (.awb) to evaluate to determine optimal strands."""
        return self._intf.get_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._get_calc_scalar_file_name_metadata)

    _set_calc_scalar_file_name_metadata = { "offset" : _set_calc_scalar_file_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @calc_scalar_file_name.setter
    def calc_scalar_file_name(self, value:str) -> None:
        return self._intf.set_property(ChainOptimalStrandOpts._metadata, ChainOptimalStrandOpts._set_calc_scalar_file_name_metadata, value)

    _property_names[compute] = "compute"
    _property_names[sampling_time_step] = "sampling_time_step"
    _property_names[include_access_edge_times_in_samples] = "include_access_edge_times_in_samples"
    _property_names[num_strands_to_store] = "num_strands_to_store"
    _property_names[type] = "type"
    _property_names[link_comparison_type] = "link_comparison_type"
    _property_names[strand_comparison_type] = "strand_comparison_type"
    _property_names[calc_scalar_type] = "calc_scalar_type"
    _property_names[calc_scalar_name] = "calc_scalar_name"
    _property_names[calc_scalar_file_name] = "calc_scalar_file_name"

    def __init__(self, source_object=None):
        """Construct an object of type ChainOptimalStrandOpts."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ChainOptimalStrandOpts)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ChainOptimalStrandOpts, [ChainOptimalStrandOpts, ])

agcls.AgClassCatalog.add_catalog_entry((4902715843816575590, 5468111696387718562), ChainOptimalStrandOpts)
agcls.AgTypeNameMap["ChainOptimalStrandOpts"] = ChainOptimalStrandOpts

class ChainGraphics2DStatic(SupportsDeleteCallback):
    """2D static graphics for a chain."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _get_line_width_method_offset = 5
    _set_line_width_method_offset = 6
    _metadata = {
        "iid_data" : (4923708397200270829, 11357470468408980390),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ChainGraphics2DStatic)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to have the 2D graphics window display complete chain access for objects in the chain, based on applicable time and object constraints. Accesses among chain objects are displayed as thick lines that overlay ground tracks."""
        return self._intf.get_property(ChainGraphics2DStatic._metadata, ChainGraphics2DStatic._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(ChainGraphics2DStatic._metadata, ChainGraphics2DStatic._set_show_graphics_metadata, is_visible)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the color in which chain graphics are displayed."""
        return self._intf.get_property(ChainGraphics2DStatic._metadata, ChainGraphics2DStatic._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(ChainGraphics2DStatic._metadata, ChainGraphics2DStatic._set_color_metadata, color)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Get or set the width of the line that overlays the ground track in the 2D Graphics window."""
        return self._intf.get_property(ChainGraphics2DStatic._metadata, ChainGraphics2DStatic._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(ChainGraphics2DStatic._metadata, ChainGraphics2DStatic._set_line_width_metadata, line_width)

    _property_names[show_graphics] = "show_graphics"
    _property_names[color] = "color"
    _property_names[line_width] = "line_width"

    def __init__(self, source_object=None):
        """Construct an object of type ChainGraphics2DStatic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ChainGraphics2DStatic)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ChainGraphics2DStatic, [ChainGraphics2DStatic, ])

agcls.AgClassCatalog.add_catalog_entry((5182232048542451639, 7082522711665252767), ChainGraphics2DStatic)
agcls.AgTypeNameMap["ChainGraphics2DStatic"] = ChainGraphics2DStatic

class ChainGraphics2DAnimation(SupportsDeleteCallback):
    """2D Animation graphics for a chain."""

    _num_methods = 26
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_highlight_method_offset = 1
    _set_show_highlight_method_offset = 2
    _get_show_line_method_offset = 3
    _set_show_line_method_offset = 4
    _get_show_link_numbers_in_strands_method_offset = 5
    _set_show_link_numbers_in_strands_method_offset = 6
    _get_color_method_offset = 7
    _set_color_method_offset = 8
    _get_line_width_method_offset = 9
    _set_line_width_method_offset = 10
    _get_show_optimal_path_line_method_offset = 11
    _set_show_optimal_path_line_method_offset = 12
    _get_optimal_path_color_method_offset = 13
    _set_optimal_path_color_method_offset = 14
    _get_optimal_path_line_width_method_offset = 15
    _set_optimal_path_line_width_method_offset = 16
    _get_use_hide_animation_graphics_2d_if_more_than_n_strands_method_offset = 17
    _set_use_hide_animation_graphics_2d_if_more_than_n_strands_method_offset = 18
    _get_hide_animation_graphics_2d_if_more_than_n_strands_number_method_offset = 19
    _set_hide_animation_graphics_2d_if_more_than_n_strands_number_method_offset = 20
    _get_number_of_optimal_strands_to_display_method_offset = 21
    _set_number_of_optimal_strands_to_display_method_offset = 22
    _get_optimal_path_color_ramp_start_color_method_offset = 23
    _set_optimal_path_color_ramp_start_color_method_offset = 24
    _get_optimal_path_color_ramp_end_color_method_offset = 25
    _set_optimal_path_color_ramp_end_color_method_offset = 26
    _metadata = {
        "iid_data" : (5464836513326565729, 5906404154344463028),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ChainGraphics2DAnimation)

    _get_show_highlight_metadata = { "offset" : _get_show_highlight_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_highlight(self) -> bool:
        """Opt whether to display access in bold print during animation. A box appears around each object during access."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_show_highlight_metadata)

    _set_show_highlight_metadata = { "offset" : _set_show_highlight_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_highlight.setter
    def show_highlight(self, show_highlight:bool) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_show_highlight_metadata, show_highlight)

    _get_show_line_metadata = { "offset" : _get_show_line_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_line(self) -> bool:
        """Opt whether to display lines between the valid strands in the chain during animation."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_show_line_metadata)

    _set_show_line_metadata = { "offset" : _set_show_line_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_line.setter
    def show_line(self, show_line:bool) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_show_line_metadata, show_line)

    _get_show_link_numbers_in_strands_metadata = { "offset" : _get_show_link_numbers_in_strands_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_link_numbers_in_strands(self) -> bool:
        """Opt whether to have each link line in the valid strand lines is numbered to show the sequence of the links between the objects in the chain."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_show_link_numbers_in_strands_metadata)

    _set_show_link_numbers_in_strands_metadata = { "offset" : _set_show_link_numbers_in_strands_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_link_numbers_in_strands.setter
    def show_link_numbers_in_strands(self, show_direction:bool) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_show_link_numbers_in_strands_metadata, show_direction)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the color in which valid strand lines are to be displayed during animation."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_color_metadata, color)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Get or set the width of the valid strand lines used in animation graphics."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_line_width_metadata, line_width)

    _get_show_optimal_path_line_metadata = { "offset" : _get_show_optimal_path_line_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_optimal_path_line(self) -> bool:
        """Opt whether to display lines for the optimal strands in the chain during animation."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_show_optimal_path_line_metadata)

    _set_show_optimal_path_line_metadata = { "offset" : _set_show_optimal_path_line_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_optimal_path_line.setter
    def show_optimal_path_line(self, optimal_path_is_line_visible:bool) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_show_optimal_path_line_metadata, optimal_path_is_line_visible)

    _get_optimal_path_color_metadata = { "offset" : _get_optimal_path_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def optimal_path_color(self) -> agcolor.Color:
        """Do not use this property, as it is deprecated. Use OptimalPathColorRampStartColor. Gets or sets the color in which the optimal strands lines are to be displayed during animation."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_optimal_path_color_metadata)

    _set_optimal_path_color_metadata = { "offset" : _set_optimal_path_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @optimal_path_color.setter
    def optimal_path_color(self, optimal_path_color:agcolor.Color) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_optimal_path_color_metadata, optimal_path_color)

    _get_optimal_path_line_width_metadata = { "offset" : _get_optimal_path_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def optimal_path_line_width(self) -> "LineWidth":
        """Get or set the width of the optimal strands lines used in animation graphics."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_optimal_path_line_width_metadata)

    _set_optimal_path_line_width_metadata = { "offset" : _set_optimal_path_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @optimal_path_line_width.setter
    def optimal_path_line_width(self, line_width:"LineWidth") -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_optimal_path_line_width_metadata, line_width)

    _get_use_hide_animation_graphics_2d_if_more_than_n_strands_metadata = { "offset" : _get_use_hide_animation_graphics_2d_if_more_than_n_strands_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_hide_animation_graphics_2d_if_more_than_n_strands(self) -> bool:
        """Use the maximum number of animation strand lines to show. If there are more than the specified number of valid strands, the animation lines are not displayed."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_use_hide_animation_graphics_2d_if_more_than_n_strands_metadata)

    _set_use_hide_animation_graphics_2d_if_more_than_n_strands_metadata = { "offset" : _set_use_hide_animation_graphics_2d_if_more_than_n_strands_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_hide_animation_graphics_2d_if_more_than_n_strands.setter
    def use_hide_animation_graphics_2d_if_more_than_n_strands(self, value:bool) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_use_hide_animation_graphics_2d_if_more_than_n_strands_metadata, value)

    _get_hide_animation_graphics_2d_if_more_than_n_strands_number_metadata = { "offset" : _get_hide_animation_graphics_2d_if_more_than_n_strands_number_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def hide_animation_graphics_2d_if_more_than_n_strands_number(self) -> int:
        """Get or set the maximum number of animation strand lines to show. If there are more than the specified number of valid strands, the animation lines are not displayed."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_hide_animation_graphics_2d_if_more_than_n_strands_number_metadata)

    _set_hide_animation_graphics_2d_if_more_than_n_strands_number_metadata = { "offset" : _set_hide_animation_graphics_2d_if_more_than_n_strands_number_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @hide_animation_graphics_2d_if_more_than_n_strands_number.setter
    def hide_animation_graphics_2d_if_more_than_n_strands_number(self, value:int) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_hide_animation_graphics_2d_if_more_than_n_strands_number_metadata, value)

    _get_number_of_optimal_strands_to_display_metadata = { "offset" : _get_number_of_optimal_strands_to_display_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_optimal_strands_to_display(self) -> int:
        """The number of animation optimal strands lines to show."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_number_of_optimal_strands_to_display_metadata)

    _set_number_of_optimal_strands_to_display_metadata = { "offset" : _set_number_of_optimal_strands_to_display_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_optimal_strands_to_display.setter
    def number_of_optimal_strands_to_display(self, value:int) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_number_of_optimal_strands_to_display_metadata, value)

    _get_optimal_path_color_ramp_start_color_metadata = { "offset" : _get_optimal_path_color_ramp_start_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def optimal_path_color_ramp_start_color(self) -> agcolor.Color:
        """The start color for the color ramp in which the optimal strands lines are to be displayed during animation."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_optimal_path_color_ramp_start_color_metadata)

    _set_optimal_path_color_ramp_start_color_metadata = { "offset" : _set_optimal_path_color_ramp_start_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @optimal_path_color_ramp_start_color.setter
    def optimal_path_color_ramp_start_color(self, optimal_path_color_ramp_start_color:agcolor.Color) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_optimal_path_color_ramp_start_color_metadata, optimal_path_color_ramp_start_color)

    _get_optimal_path_color_ramp_end_color_metadata = { "offset" : _get_optimal_path_color_ramp_end_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def optimal_path_color_ramp_end_color(self) -> agcolor.Color:
        """The end color for the color ramp in which the optimal strands lines are to be displayed during animation."""
        return self._intf.get_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._get_optimal_path_color_ramp_end_color_metadata)

    _set_optimal_path_color_ramp_end_color_metadata = { "offset" : _set_optimal_path_color_ramp_end_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @optimal_path_color_ramp_end_color.setter
    def optimal_path_color_ramp_end_color(self, optimal_path_color_ramp_end_color:agcolor.Color) -> None:
        return self._intf.set_property(ChainGraphics2DAnimation._metadata, ChainGraphics2DAnimation._set_optimal_path_color_ramp_end_color_metadata, optimal_path_color_ramp_end_color)

    _property_names[show_highlight] = "show_highlight"
    _property_names[show_line] = "show_line"
    _property_names[show_link_numbers_in_strands] = "show_link_numbers_in_strands"
    _property_names[color] = "color"
    _property_names[line_width] = "line_width"
    _property_names[show_optimal_path_line] = "show_optimal_path_line"
    _property_names[optimal_path_color] = "optimal_path_color"
    _property_names[optimal_path_line_width] = "optimal_path_line_width"
    _property_names[use_hide_animation_graphics_2d_if_more_than_n_strands] = "use_hide_animation_graphics_2d_if_more_than_n_strands"
    _property_names[hide_animation_graphics_2d_if_more_than_n_strands_number] = "hide_animation_graphics_2d_if_more_than_n_strands_number"
    _property_names[number_of_optimal_strands_to_display] = "number_of_optimal_strands_to_display"
    _property_names[optimal_path_color_ramp_start_color] = "optimal_path_color_ramp_start_color"
    _property_names[optimal_path_color_ramp_end_color] = "optimal_path_color_ramp_end_color"

    def __init__(self, source_object=None):
        """Construct an object of type ChainGraphics2DAnimation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ChainGraphics2DAnimation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ChainGraphics2DAnimation, [ChainGraphics2DAnimation, ])

agcls.AgClassCatalog.add_catalog_entry((5717621779132958520, 7074302929866274232), ChainGraphics2DAnimation)
agcls.AgTypeNameMap["ChainGraphics2DAnimation"] = ChainGraphics2DAnimation

class ChainGraphics(SupportsDeleteCallback):
    """2D graphics properties of a chain."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_static_method_offset = 1
    _get_animation_settings_method_offset = 2
    _get_show_graphics_method_offset = 3
    _set_show_graphics_method_offset = 4
    _get_show_graphics_2d_method_offset = 5
    _set_show_graphics_2d_method_offset = 6
    _metadata = {
        "iid_data" : (5354294897357140580, 6786652200952187810),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ChainGraphics)

    _get_static_metadata = { "offset" : _get_static_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def static(self) -> "ChainGraphics2DStatic":
        """Get the chain's 2D static graphics properties."""
        return self._intf.get_property(ChainGraphics._metadata, ChainGraphics._get_static_metadata)

    _get_animation_settings_metadata = { "offset" : _get_animation_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def animation_settings(self) -> "ChainGraphics2DAnimation":
        """Get the chain's 3D graphics properties."""
        return self._intf.get_property(ChainGraphics._metadata, ChainGraphics._get_animation_settings_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the chain are visible."""
        return self._intf.get_property(ChainGraphics._metadata, ChainGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(ChainGraphics._metadata, ChainGraphics._set_show_graphics_metadata, is_visible)

    _get_show_graphics_2d_metadata = { "offset" : _get_show_graphics_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics_2d(self) -> bool:
        """Specify whether graphics attributes of the chain are visible in 2D Windows."""
        return self._intf.get_property(ChainGraphics._metadata, ChainGraphics._get_show_graphics_2d_metadata)

    _set_show_graphics_2d_metadata = { "offset" : _set_show_graphics_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics_2d.setter
    def show_graphics_2d(self, is_visible:bool) -> None:
        return self._intf.set_property(ChainGraphics._metadata, ChainGraphics._set_show_graphics_2d_metadata, is_visible)

    _property_names[static] = "static"
    _property_names[animation_settings] = "animation_settings"
    _property_names[show_graphics] = "show_graphics"
    _property_names[show_graphics_2d] = "show_graphics_2d"

    def __init__(self, source_object=None):
        """Construct an object of type ChainGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ChainGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ChainGraphics, [ChainGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((4629720037662865285, 919793693102087046), ChainGraphics)
agcls.AgTypeNameMap["ChainGraphics"] = ChainGraphics

class ChainGraphics3D(SupportsDeleteCallback):
    """3D graphics properties of a chain."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_data_display_method_offset = 1
    _metadata = {
        "iid_data" : (5562625857246012888, 9061665286438729089),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ChainGraphics3D)

    _get_data_display_metadata = { "offset" : _get_data_display_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def data_display(self) -> "Graphics3DDataDisplayCollection":
        """Get the chains's 3D data display properties."""
        return self._intf.get_property(ChainGraphics3D._metadata, ChainGraphics3D._get_data_display_metadata)

    _property_names[data_display] = "data_display"

    def __init__(self, source_object=None):
        """Construct an object of type ChainGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ChainGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ChainGraphics3D, [ChainGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5634978347441788890, 7574166606283634326), ChainGraphics3D)
agcls.AgTypeNameMap["ChainGraphics3D"] = ChainGraphics3D

class RefractionCoefficients(SupportsDeleteCallback):
    """Coefficients for a polynomial in time_since_year_start that models the refraction index."""

    _num_methods = 22
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_c0_method_offset = 1
    _set_c0_method_offset = 2
    _get_c1_method_offset = 3
    _set_c1_method_offset = 4
    _get_c2_method_offset = 5
    _set_c2_method_offset = 6
    _get_c3_method_offset = 7
    _set_c3_method_offset = 8
    _get_c4_method_offset = 9
    _set_c4_method_offset = 10
    _get_c5_method_offset = 11
    _set_c5_method_offset = 12
    _get_c6_method_offset = 13
    _set_c6_method_offset = 14
    _get_c7_method_offset = 15
    _set_c7_method_offset = 16
    _get_c8_method_offset = 17
    _set_c8_method_offset = 18
    _get_c9_method_offset = 19
    _set_c9_method_offset = 20
    _get_c10_method_offset = 21
    _set_c10_method_offset = 22
    _metadata = {
        "iid_data" : (4896686308855643677, 2975835613538242182),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RefractionCoefficients)

    _get_c0_metadata = { "offset" : _get_c0_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c0(self) -> float:
        """Get or set the coefficient C0. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c0_metadata)

    _set_c0_metadata = { "offset" : _set_c0_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c0.setter
    def c0(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c0_metadata, value)

    _get_c1_metadata = { "offset" : _get_c1_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c1(self) -> float:
        """Get or set the coefficient C1. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c1_metadata)

    _set_c1_metadata = { "offset" : _set_c1_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c1.setter
    def c1(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c1_metadata, value)

    _get_c2_metadata = { "offset" : _get_c2_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c2(self) -> float:
        """Get or set the coefficient C2. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c2_metadata)

    _set_c2_metadata = { "offset" : _set_c2_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c2.setter
    def c2(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c2_metadata, value)

    _get_c3_metadata = { "offset" : _get_c3_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c3(self) -> float:
        """Get or set the coefficient C3. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c3_metadata)

    _set_c3_metadata = { "offset" : _set_c3_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c3.setter
    def c3(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c3_metadata, value)

    _get_c4_metadata = { "offset" : _get_c4_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c4(self) -> float:
        """Get or set the coefficient C4. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c4_metadata)

    _set_c4_metadata = { "offset" : _set_c4_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c4.setter
    def c4(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c4_metadata, value)

    _get_c5_metadata = { "offset" : _get_c5_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c5(self) -> float:
        """Get or set the coefficient C5. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c5_metadata)

    _set_c5_metadata = { "offset" : _set_c5_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c5.setter
    def c5(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c5_metadata, value)

    _get_c6_metadata = { "offset" : _get_c6_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c6(self) -> float:
        """Get or set the coefficient C6. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c6_metadata)

    _set_c6_metadata = { "offset" : _set_c6_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c6.setter
    def c6(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c6_metadata, value)

    _get_c7_metadata = { "offset" : _get_c7_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c7(self) -> float:
        """Get or set the coefficient C7. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c7_metadata)

    _set_c7_metadata = { "offset" : _set_c7_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c7.setter
    def c7(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c7_metadata, value)

    _get_c8_metadata = { "offset" : _get_c8_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c8(self) -> float:
        """Get or set the coefficient C8. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c8_metadata)

    _set_c8_metadata = { "offset" : _set_c8_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c8.setter
    def c8(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c8_metadata, value)

    _get_c9_metadata = { "offset" : _get_c9_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c9(self) -> float:
        """Get or set the coefficient C9. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c9_metadata)

    _set_c9_metadata = { "offset" : _set_c9_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c9.setter
    def c9(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c9_metadata, value)

    _get_c10_metadata = { "offset" : _get_c10_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c10(self) -> float:
        """Get or set the coefficient C10. Dimensionless."""
        return self._intf.get_property(RefractionCoefficients._metadata, RefractionCoefficients._get_c10_metadata)

    _set_c10_metadata = { "offset" : _set_c10_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c10.setter
    def c10(self, value:float) -> None:
        return self._intf.set_property(RefractionCoefficients._metadata, RefractionCoefficients._set_c10_metadata, value)

    _property_names[c0] = "c0"
    _property_names[c1] = "c1"
    _property_names[c2] = "c2"
    _property_names[c3] = "c3"
    _property_names[c4] = "c4"
    _property_names[c5] = "c5"
    _property_names[c6] = "c6"
    _property_names[c7] = "c7"
    _property_names[c8] = "c8"
    _property_names[c9] = "c9"
    _property_names[c10] = "c10"

    def __init__(self, source_object=None):
        """Construct an object of type RefractionCoefficients."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RefractionCoefficients)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RefractionCoefficients, [RefractionCoefficients, ])

agcls.AgClassCatalog.add_catalog_entry((4786527763549889396, 5962169845662501787), RefractionCoefficients)
agcls.AgTypeNameMap["RefractionCoefficients"] = RefractionCoefficients

class RefractionModelEffectiveRadiusMethod(SupportsDeleteCallback):
    """Effective Radius Method."""

    _num_methods = 8
    _vtable_offset = IRefractionModelBase._vtable_offset + IRefractionModelBase._num_methods
    _get_effective_radius_method_offset = 1
    _set_effective_radius_method_offset = 2
    _get_maximum_target_altitude_method_offset = 3
    _set_maximum_target_altitude_method_offset = 4
    _get_use_extrapolation_method_offset = 5
    _set_use_extrapolation_method_offset = 6
    _get_ceiling_method_offset = 7
    _set_ceiling_method_offset = 8
    _metadata = {
        "iid_data" : (5367353390590520692, 15342163326961831306),
        "vtable_reference" : IRefractionModelBase._vtable_offset + IRefractionModelBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RefractionModelEffectiveRadiusMethod)

    _get_effective_radius_metadata = { "offset" : _get_effective_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def effective_radius(self) -> float:
        """Effective radius used to compute refracted elevation. Dimensionless."""
        return self._intf.get_property(RefractionModelEffectiveRadiusMethod._metadata, RefractionModelEffectiveRadiusMethod._get_effective_radius_metadata)

    _set_effective_radius_metadata = { "offset" : _set_effective_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @effective_radius.setter
    def effective_radius(self, value:float) -> None:
        return self._intf.set_property(RefractionModelEffectiveRadiusMethod._metadata, RefractionModelEffectiveRadiusMethod._set_effective_radius_metadata, value)

    _get_maximum_target_altitude_metadata = { "offset" : _get_maximum_target_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_target_altitude(self) -> float:
        """Maximum altitude of target for which the refraction will be computed unless extrapolation is used. Uses Distance Dimension."""
        return self._intf.get_property(RefractionModelEffectiveRadiusMethod._metadata, RefractionModelEffectiveRadiusMethod._get_maximum_target_altitude_metadata)

    _set_maximum_target_altitude_metadata = { "offset" : _set_maximum_target_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_target_altitude.setter
    def maximum_target_altitude(self, value:float) -> None:
        return self._intf.set_property(RefractionModelEffectiveRadiusMethod._metadata, RefractionModelEffectiveRadiusMethod._set_maximum_target_altitude_metadata, value)

    _get_use_extrapolation_metadata = { "offset" : _get_use_extrapolation_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_extrapolation(self) -> bool:
        """Flag controls whether extrapolation is used past the maximum target altitude."""
        return self._intf.get_property(RefractionModelEffectiveRadiusMethod._metadata, RefractionModelEffectiveRadiusMethod._get_use_extrapolation_metadata)

    _set_use_extrapolation_metadata = { "offset" : _set_use_extrapolation_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_extrapolation.setter
    def use_extrapolation(self, value:bool) -> None:
        return self._intf.set_property(RefractionModelEffectiveRadiusMethod._metadata, RefractionModelEffectiveRadiusMethod._set_use_extrapolation_metadata, value)

    _get_ceiling_metadata = { "offset" : _get_ceiling_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ceiling(self) -> float:
        """Refraction will be ignored if object altitude is higher than the ceiling. Uses Distance Dimension."""
        return self._intf.get_property(RefractionModelEffectiveRadiusMethod._metadata, RefractionModelEffectiveRadiusMethod._get_ceiling_metadata)

    _set_ceiling_metadata = { "offset" : _set_ceiling_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ceiling.setter
    def ceiling(self, value:float) -> None:
        return self._intf.set_property(RefractionModelEffectiveRadiusMethod._metadata, RefractionModelEffectiveRadiusMethod._set_ceiling_metadata, value)

    _property_names[effective_radius] = "effective_radius"
    _property_names[maximum_target_altitude] = "maximum_target_altitude"
    _property_names[use_extrapolation] = "use_extrapolation"
    _property_names[ceiling] = "ceiling"

    def __init__(self, source_object=None):
        """Construct an object of type RefractionModelEffectiveRadiusMethod."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RefractionModelEffectiveRadiusMethod)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RefractionModelEffectiveRadiusMethod, [RefractionModelEffectiveRadiusMethod, ])

agcls.AgClassCatalog.add_catalog_entry((5161473632071840175, 17330254487937880230), RefractionModelEffectiveRadiusMethod)
agcls.AgTypeNameMap["RefractionModelEffectiveRadiusMethod"] = RefractionModelEffectiveRadiusMethod

class RefractionModelITURP8344(SupportsDeleteCallback):
    """ITU-R P.834-4."""

    _num_methods = 6
    _vtable_offset = IRefractionModelBase._vtable_offset + IRefractionModelBase._num_methods
    _get_ceiling_method_offset = 1
    _set_ceiling_method_offset = 2
    _get_atmosphere_altitude_method_offset = 3
    _set_atmosphere_altitude_method_offset = 4
    _get_knee_bend_factor_method_offset = 5
    _set_knee_bend_factor_method_offset = 6
    _metadata = {
        "iid_data" : (5754158585697178017, 4149139089091475381),
        "vtable_reference" : IRefractionModelBase._vtable_offset + IRefractionModelBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RefractionModelITURP8344)

    _get_ceiling_metadata = { "offset" : _get_ceiling_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ceiling(self) -> float:
        """Refraction will be ignored if object altitude is higher than the ceiling. Uses Distance Dimension."""
        return self._intf.get_property(RefractionModelITURP8344._metadata, RefractionModelITURP8344._get_ceiling_metadata)

    _set_ceiling_metadata = { "offset" : _set_ceiling_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ceiling.setter
    def ceiling(self, value:float) -> None:
        return self._intf.set_property(RefractionModelITURP8344._metadata, RefractionModelITURP8344._set_ceiling_metadata, value)

    _get_atmosphere_altitude_metadata = { "offset" : _get_atmosphere_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def atmosphere_altitude(self) -> float:
        """Altitude of the atmosphere. Used to compute the knee bend point of the refracted path. Uses Distance Dimension."""
        return self._intf.get_property(RefractionModelITURP8344._metadata, RefractionModelITURP8344._get_atmosphere_altitude_metadata)

    _set_atmosphere_altitude_metadata = { "offset" : _set_atmosphere_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @atmosphere_altitude.setter
    def atmosphere_altitude(self, value:float) -> None:
        return self._intf.set_property(RefractionModelITURP8344._metadata, RefractionModelITURP8344._set_atmosphere_altitude_metadata, value)

    _get_knee_bend_factor_metadata = { "offset" : _get_knee_bend_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def knee_bend_factor(self) -> float:
        """Used to compute the distance to the knee bend point of the refracted path. Dimensionless."""
        return self._intf.get_property(RefractionModelITURP8344._metadata, RefractionModelITURP8344._get_knee_bend_factor_metadata)

    _set_knee_bend_factor_metadata = { "offset" : _set_knee_bend_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @knee_bend_factor.setter
    def knee_bend_factor(self, value:float) -> None:
        return self._intf.set_property(RefractionModelITURP8344._metadata, RefractionModelITURP8344._set_knee_bend_factor_metadata, value)

    _property_names[ceiling] = "ceiling"
    _property_names[atmosphere_altitude] = "atmosphere_altitude"
    _property_names[knee_bend_factor] = "knee_bend_factor"

    def __init__(self, source_object=None):
        """Construct an object of type RefractionModelITURP8344."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RefractionModelITURP8344)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RefractionModelITURP8344, [RefractionModelITURP8344, ])

agcls.AgClassCatalog.add_catalog_entry((5078589289441745814, 7584024649826667431), RefractionModelITURP8344)
agcls.AgTypeNameMap["RefractionModelITURP8344"] = RefractionModelITURP8344

class RefractionModelSCFMethod(SupportsDeleteCallback):
    """SCF Method."""

    _num_methods = 15
    _vtable_offset = IRefractionModelBase._vtable_offset + IRefractionModelBase._num_methods
    _get_minimum_target_altitude_method_offset = 1
    _set_minimum_target_altitude_method_offset = 2
    _get_use_extrapolation_method_offset = 3
    _set_use_extrapolation_method_offset = 4
    _get_ceiling_method_offset = 5
    _set_ceiling_method_offset = 6
    _get_atmosphere_altitude_method_offset = 7
    _set_atmosphere_altitude_method_offset = 8
    _get_knee_bend_factor_method_offset = 9
    _set_knee_bend_factor_method_offset = 10
    _get_use_refraction_index_method_offset = 11
    _set_use_refraction_index_method_offset = 12
    _get_refraction_index_method_offset = 13
    _set_refraction_index_method_offset = 14
    _get_coefficients_method_offset = 15
    _metadata = {
        "iid_data" : (5603689131891705103, 15750233727617506948),
        "vtable_reference" : IRefractionModelBase._vtable_offset + IRefractionModelBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RefractionModelSCFMethod)

    _get_minimum_target_altitude_metadata = { "offset" : _get_minimum_target_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_target_altitude(self) -> float:
        """Minimum altitude of target for which the refraction will be computed unless extrapolation is used. Uses Distance Dimension."""
        return self._intf.get_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._get_minimum_target_altitude_metadata)

    _set_minimum_target_altitude_metadata = { "offset" : _set_minimum_target_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_target_altitude.setter
    def minimum_target_altitude(self, value:float) -> None:
        return self._intf.set_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._set_minimum_target_altitude_metadata, value)

    _get_use_extrapolation_metadata = { "offset" : _get_use_extrapolation_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_extrapolation(self) -> bool:
        """Flag controls whether extrapolation is used past the minimum target altitude."""
        return self._intf.get_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._get_use_extrapolation_metadata)

    _set_use_extrapolation_metadata = { "offset" : _set_use_extrapolation_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_extrapolation.setter
    def use_extrapolation(self, value:bool) -> None:
        return self._intf.set_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._set_use_extrapolation_metadata, value)

    _get_ceiling_metadata = { "offset" : _get_ceiling_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ceiling(self) -> float:
        """Refraction will be ignored if object altitude is higher than the ceiling. Uses Distance Dimension."""
        return self._intf.get_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._get_ceiling_metadata)

    _set_ceiling_metadata = { "offset" : _set_ceiling_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ceiling.setter
    def ceiling(self, value:float) -> None:
        return self._intf.set_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._set_ceiling_metadata, value)

    _get_atmosphere_altitude_metadata = { "offset" : _get_atmosphere_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def atmosphere_altitude(self) -> float:
        """Altitude of the atmosphere. Used to compute the knee bend point of the refracted path. Uses Distance Dimension."""
        return self._intf.get_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._get_atmosphere_altitude_metadata)

    _set_atmosphere_altitude_metadata = { "offset" : _set_atmosphere_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @atmosphere_altitude.setter
    def atmosphere_altitude(self, value:float) -> None:
        return self._intf.set_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._set_atmosphere_altitude_metadata, value)

    _get_knee_bend_factor_metadata = { "offset" : _get_knee_bend_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def knee_bend_factor(self) -> float:
        """Used to compute the distance to the knee bend point of the refracted path. Dimensionless."""
        return self._intf.get_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._get_knee_bend_factor_metadata)

    _set_knee_bend_factor_metadata = { "offset" : _set_knee_bend_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @knee_bend_factor.setter
    def knee_bend_factor(self, value:float) -> None:
        return self._intf.set_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._set_knee_bend_factor_metadata, value)

    _get_use_refraction_index_metadata = { "offset" : _get_use_refraction_index_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_refraction_index(self) -> bool:
        """Flag controls whether a constant refraction index is used or the refraction polynomial fit."""
        return self._intf.get_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._get_use_refraction_index_metadata)

    _set_use_refraction_index_metadata = { "offset" : _set_use_refraction_index_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_refraction_index.setter
    def use_refraction_index(self, value:bool) -> None:
        return self._intf.set_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._set_use_refraction_index_metadata, value)

    _get_refraction_index_metadata = { "offset" : _get_refraction_index_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def refraction_index(self) -> float:
        """Index of refraction at the surface. Dimensionless."""
        return self._intf.get_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._get_refraction_index_metadata)

    _set_refraction_index_metadata = { "offset" : _set_refraction_index_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @refraction_index.setter
    def refraction_index(self, value:float) -> None:
        return self._intf.set_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._set_refraction_index_metadata, value)

    _get_coefficients_metadata = { "offset" : _get_coefficients_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def coefficients(self) -> "RefractionCoefficients":
        """Get the polynomial coefficients."""
        return self._intf.get_property(RefractionModelSCFMethod._metadata, RefractionModelSCFMethod._get_coefficients_metadata)

    _property_names[minimum_target_altitude] = "minimum_target_altitude"
    _property_names[use_extrapolation] = "use_extrapolation"
    _property_names[ceiling] = "ceiling"
    _property_names[atmosphere_altitude] = "atmosphere_altitude"
    _property_names[knee_bend_factor] = "knee_bend_factor"
    _property_names[use_refraction_index] = "use_refraction_index"
    _property_names[refraction_index] = "refraction_index"
    _property_names[coefficients] = "coefficients"

    def __init__(self, source_object=None):
        """Construct an object of type RefractionModelSCFMethod."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RefractionModelSCFMethod)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RefractionModelSCFMethod, [RefractionModelSCFMethod, ])

agcls.AgClassCatalog.add_catalog_entry((5525980646624717033, 11259831886634315654), RefractionModelSCFMethod)
agcls.AgTypeNameMap["RefractionModelSCFMethod"] = RefractionModelSCFMethod

class FigureOfMeritDefinitionCompute(IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Compute options for navigation accuracy."""
    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionCompute."""
        SupportsDeleteCallback.__init__(self)
        IFigureOfMeritDefinitionCompute.__init__(self, source_object)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionCompute, [IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((5531874587312123719, 13070478786431056030), FigureOfMeritDefinitionCompute)
agcls.AgTypeNameMap["FigureOfMeritDefinitionCompute"] = FigureOfMeritDefinitionCompute

class FigureOfMeritDefinitionDataMinimumMaximum(IFigureOfMeritDefinitionData, SupportsDeleteCallback):
    """FigureOfMeritDefinitionDataMinimumMaximum."""

    _num_methods = 4
    _vtable_offset = IFigureOfMeritDefinitionData._vtable_offset + IFigureOfMeritDefinitionData._num_methods
    _get_minimum_value_method_offset = 1
    _set_minimum_value_method_offset = 2
    _get_maximum_value_method_offset = 3
    _set_maximum_value_method_offset = 4
    _metadata = {
        "iid_data" : (5213258242678945234, 9366329144971235469),
        "vtable_reference" : IFigureOfMeritDefinitionData._vtable_offset + IFigureOfMeritDefinitionData._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionDataMinimumMaximum)

    _get_minimum_value_metadata = { "offset" : _get_minimum_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_value(self) -> float:
        """Minimum value: minimum uncertainty at each point over the entire coverage interval."""
        return self._intf.get_property(FigureOfMeritDefinitionDataMinimumMaximum._metadata, FigureOfMeritDefinitionDataMinimumMaximum._get_minimum_value_metadata)

    _set_minimum_value_metadata = { "offset" : _set_minimum_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_value.setter
    def minimum_value(self, min_value:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionDataMinimumMaximum._metadata, FigureOfMeritDefinitionDataMinimumMaximum._set_minimum_value_metadata, min_value)

    _get_maximum_value_metadata = { "offset" : _get_maximum_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_value(self) -> float:
        """Maximum value: maximum uncertainty at each point over the entire coverage interval."""
        return self._intf.get_property(FigureOfMeritDefinitionDataMinimumMaximum._metadata, FigureOfMeritDefinitionDataMinimumMaximum._get_maximum_value_metadata)

    _set_maximum_value_metadata = { "offset" : _set_maximum_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_value.setter
    def maximum_value(self, max_value:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionDataMinimumMaximum._metadata, FigureOfMeritDefinitionDataMinimumMaximum._set_maximum_value_metadata, max_value)

    _property_names[minimum_value] = "minimum_value"
    _property_names[maximum_value] = "maximum_value"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionDataMinimumMaximum."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionDataMinimumMaximum)
        IFigureOfMeritDefinitionData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionDataMinimumMaximum, [FigureOfMeritDefinitionDataMinimumMaximum, IFigureOfMeritDefinitionData])

agcls.AgClassCatalog.add_catalog_entry((4943393229761230799, 5876396005785287858), FigureOfMeritDefinitionDataMinimumMaximum)
agcls.AgTypeNameMap["FigureOfMeritDefinitionDataMinimumMaximum"] = FigureOfMeritDefinitionDataMinimumMaximum

class FigureOfMeritDefinitionDataMinimumNumberOfAssets(IFigureOfMeritDefinitionData, SupportsDeleteCallback):
    """Minimum number of assets."""

    _num_methods = 2
    _vtable_offset = IFigureOfMeritDefinitionData._vtable_offset + IFigureOfMeritDefinitionData._num_methods
    _get_minimum_assets_method_offset = 1
    _set_minimum_assets_method_offset = 2
    _metadata = {
        "iid_data" : (5557996831097808692, 7093223812964085422),
        "vtable_reference" : IFigureOfMeritDefinitionData._vtable_offset + IFigureOfMeritDefinitionData._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionDataMinimumNumberOfAssets)

    _get_minimum_assets_metadata = { "offset" : _get_minimum_assets_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def minimum_assets(self) -> int:
        """Minimum number of assets used in calculating navigation accuracy."""
        return self._intf.get_property(FigureOfMeritDefinitionDataMinimumNumberOfAssets._metadata, FigureOfMeritDefinitionDataMinimumNumberOfAssets._get_minimum_assets_metadata)

    _set_minimum_assets_metadata = { "offset" : _set_minimum_assets_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @minimum_assets.setter
    def minimum_assets(self, value:int) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionDataMinimumNumberOfAssets._metadata, FigureOfMeritDefinitionDataMinimumNumberOfAssets._set_minimum_assets_metadata, value)

    _property_names[minimum_assets] = "minimum_assets"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionDataMinimumNumberOfAssets."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionDataMinimumNumberOfAssets)
        IFigureOfMeritDefinitionData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionDataMinimumNumberOfAssets, [FigureOfMeritDefinitionDataMinimumNumberOfAssets, IFigureOfMeritDefinitionData])

agcls.AgClassCatalog.add_catalog_entry((4795535947915775687, 3259880782943541653), FigureOfMeritDefinitionDataMinimumNumberOfAssets)
agcls.AgTypeNameMap["FigureOfMeritDefinitionDataMinimumNumberOfAssets"] = FigureOfMeritDefinitionDataMinimumNumberOfAssets

class FigureOfMeritDefinitionDataPercentLevel(IFigureOfMeritDefinitionData, SupportsDeleteCallback):
    """Specified percent level for the 'percent below' Navigation Accuracy compute option."""

    _num_methods = 2
    _vtable_offset = IFigureOfMeritDefinitionData._vtable_offset + IFigureOfMeritDefinitionData._num_methods
    _get_percent_level_method_offset = 1
    _set_percent_level_method_offset = 2
    _metadata = {
        "iid_data" : (4679421445861858429, 16054357893127729795),
        "vtable_reference" : IFigureOfMeritDefinitionData._vtable_offset + IFigureOfMeritDefinitionData._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionDataPercentLevel)

    _get_percent_level_metadata = { "offset" : _get_percent_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def percent_level(self) -> float:
        """Get or set the specified percent level for the Navigation Accuracy compute option that is stated in terms of the percent of the time that the uncertainty is less than the computed value."""
        return self._intf.get_property(FigureOfMeritDefinitionDataPercentLevel._metadata, FigureOfMeritDefinitionDataPercentLevel._get_percent_level_metadata)

    _set_percent_level_metadata = { "offset" : _set_percent_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @percent_level.setter
    def percent_level(self, value:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionDataPercentLevel._metadata, FigureOfMeritDefinitionDataPercentLevel._set_percent_level_metadata, value)

    _property_names[percent_level] = "percent_level"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionDataPercentLevel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionDataPercentLevel)
        IFigureOfMeritDefinitionData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionDataPercentLevel, [FigureOfMeritDefinitionDataPercentLevel, IFigureOfMeritDefinitionData])

agcls.AgClassCatalog.add_catalog_entry((5231607555749567307, 17305741550100852919), FigureOfMeritDefinitionDataPercentLevel)
agcls.AgTypeNameMap["FigureOfMeritDefinitionDataPercentLevel"] = FigureOfMeritDefinitionDataPercentLevel

class FigureOfMeritDefinitionDataBestN(IFigureOfMeritDefinitionData, SupportsDeleteCallback):
    """Navigation accuracy based on best N satellites."""

    _num_methods = 6
    _vtable_offset = IFigureOfMeritDefinitionData._vtable_offset + IFigureOfMeritDefinitionData._num_methods
    _get_best_n_method_offset = 1
    _set_best_n_method_offset = 2
    _get_best_n_metric_method_offset = 3
    _set_best_n_metric_method_offset = 4
    _is_best_n_metric_supported_method_offset = 5
    _get_best_n_metric_supported_types_method_offset = 6
    _metadata = {
        "iid_data" : (5277736981119799329, 17432684764590027396),
        "vtable_reference" : IFigureOfMeritDefinitionData._vtable_offset + IFigureOfMeritDefinitionData._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionDataBestN)

    _get_best_n_metadata = { "offset" : _get_best_n_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def best_n(self) -> int:
        """Navigation accuracy based on the specified number of satellites that yields the minimum GDOP."""
        return self._intf.get_property(FigureOfMeritDefinitionDataBestN._metadata, FigureOfMeritDefinitionDataBestN._get_best_n_metadata)

    _set_best_n_metadata = { "offset" : _set_best_n_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @best_n.setter
    def best_n(self, value:int) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionDataBestN._metadata, FigureOfMeritDefinitionDataBestN._set_best_n_metadata, value)

    _get_best_n_metric_metadata = { "offset" : _get_best_n_metric_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritMethod),) }
    @property
    def best_n_metric(self) -> "FigureOfMeritMethod":
        """Get or set the minimization metric for the best N computation."""
        return self._intf.get_property(FigureOfMeritDefinitionDataBestN._metadata, FigureOfMeritDefinitionDataBestN._get_best_n_metric_metadata)

    _set_best_n_metric_metadata = { "offset" : _set_best_n_metric_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritMethod),) }
    @best_n_metric.setter
    def best_n_metric(self, value:"FigureOfMeritMethod") -> None:
        return self._intf.set_property(FigureOfMeritDefinitionDataBestN._metadata, FigureOfMeritDefinitionDataBestN._set_best_n_metric_metadata, value)

    _is_best_n_metric_supported_metadata = { "offset" : _is_best_n_metric_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritMethod), agmarshall.VariantBoolArg,) }
    def is_best_n_metric_supported(self, best_n_metric:"FigureOfMeritMethod") -> bool:
        """Is the type of Best N metric supported?"""
        return self._intf.invoke(FigureOfMeritDefinitionDataBestN._metadata, FigureOfMeritDefinitionDataBestN._is_best_n_metric_supported_metadata, best_n_metric, OutArg())

    _get_best_n_metric_supported_types_metadata = { "offset" : _get_best_n_metric_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def best_n_metric_supported_types(self) -> list:
        """Best N supported types."""
        return self._intf.get_property(FigureOfMeritDefinitionDataBestN._metadata, FigureOfMeritDefinitionDataBestN._get_best_n_metric_supported_types_metadata)

    _property_names[best_n] = "best_n"
    _property_names[best_n_metric] = "best_n_metric"
    _property_names[best_n_metric_supported_types] = "best_n_metric_supported_types"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionDataBestN."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionDataBestN)
        IFigureOfMeritDefinitionData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionDataBestN, [FigureOfMeritDefinitionDataBestN, IFigureOfMeritDefinitionData])

agcls.AgClassCatalog.add_catalog_entry((5015625860426399360, 2238267326801843079), FigureOfMeritDefinitionDataBestN)
agcls.AgTypeNameMap["FigureOfMeritDefinitionDataBestN"] = FigureOfMeritDefinitionDataBestN

class FigureOfMeritDefinitionDataBest4(IFigureOfMeritDefinitionData, SupportsDeleteCallback):
    """Navigation accuracy based on best four satellites."""

    _num_methods = 4
    _vtable_offset = IFigureOfMeritDefinitionData._vtable_offset + IFigureOfMeritDefinitionData._num_methods
    _get_best_4_metric_method_offset = 1
    _set_best_4_metric_method_offset = 2
    _is_best_4_metric_supported_method_offset = 3
    _get_best_4_metric_supported_types_method_offset = 4
    _metadata = {
        "iid_data" : (5369364205142306490, 11176394973388720060),
        "vtable_reference" : IFigureOfMeritDefinitionData._vtable_offset + IFigureOfMeritDefinitionData._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionDataBest4)

    _get_best_4_metric_metadata = { "offset" : _get_best_4_metric_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritMethod),) }
    @property
    def best_4_metric(self) -> "FigureOfMeritMethod":
        """Get or set the minimization metric for the best 4 computation."""
        return self._intf.get_property(FigureOfMeritDefinitionDataBest4._metadata, FigureOfMeritDefinitionDataBest4._get_best_4_metric_metadata)

    _set_best_4_metric_metadata = { "offset" : _set_best_4_metric_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritMethod),) }
    @best_4_metric.setter
    def best_4_metric(self, value:"FigureOfMeritMethod") -> None:
        return self._intf.set_property(FigureOfMeritDefinitionDataBest4._metadata, FigureOfMeritDefinitionDataBest4._set_best_4_metric_metadata, value)

    _is_best_4_metric_supported_metadata = { "offset" : _is_best_4_metric_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritMethod), agmarshall.VariantBoolArg,) }
    def is_best_4_metric_supported(self, best_4_metric:"FigureOfMeritMethod") -> bool:
        """Is the type of Best 4 metric supported?"""
        return self._intf.invoke(FigureOfMeritDefinitionDataBest4._metadata, FigureOfMeritDefinitionDataBest4._is_best_4_metric_supported_metadata, best_4_metric, OutArg())

    _get_best_4_metric_supported_types_metadata = { "offset" : _get_best_4_metric_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def best_4_metric_supported_types(self) -> list:
        """Best 4 supported types."""
        return self._intf.get_property(FigureOfMeritDefinitionDataBest4._metadata, FigureOfMeritDefinitionDataBest4._get_best_4_metric_supported_types_metadata)

    _property_names[best_4_metric] = "best_4_metric"
    _property_names[best_4_metric_supported_types] = "best_4_metric_supported_types"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionDataBest4."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionDataBest4)
        IFigureOfMeritDefinitionData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionDataBest4, [FigureOfMeritDefinitionDataBest4, IFigureOfMeritDefinitionData])

agcls.AgClassCatalog.add_catalog_entry((4843549943833011512, 3187521262258173340), FigureOfMeritDefinitionDataBest4)
agcls.AgTypeNameMap["FigureOfMeritDefinitionDataBest4"] = FigureOfMeritDefinitionDataBest4

class FigureOfMeritDefinitionAccessConstraint(IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Access Constraint Figure of Merit."""

    _num_methods = 8
    _vtable_offset = IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods
    _get_across_assets_method_offset = 1
    _set_across_assets_method_offset = 2
    _get_time_step_method_offset = 3
    _set_time_step_method_offset = 4
    _get_constraint_name_method_offset = 5
    _set_constraint_name_method_offset = 6
    _get_constraint_method_offset = 7
    _set_constraint_method_offset = 8
    _metadata = {
        "iid_data" : (5014024857163489911, 6225869521041214353),
        "vtable_reference" : IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionAccessConstraint)

    _get_across_assets_metadata = { "offset" : _get_across_assets_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritAcrossAssets),) }
    @property
    def across_assets(self) -> "FigureOfMeritAcrossAssets":
        """Value of the constraint that is to be selected based on all currently available assets."""
        return self._intf.get_property(FigureOfMeritDefinitionAccessConstraint._metadata, FigureOfMeritDefinitionAccessConstraint._get_across_assets_metadata)

    _set_across_assets_metadata = { "offset" : _set_across_assets_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritAcrossAssets),) }
    @across_assets.setter
    def across_assets(self, across_assets:"FigureOfMeritAcrossAssets") -> None:
        return self._intf.set_property(FigureOfMeritDefinitionAccessConstraint._metadata, FigureOfMeritDefinitionAccessConstraint._set_across_assets_metadata, across_assets)

    _get_time_step_metadata = { "offset" : _get_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_step(self) -> float:
        """Get or set the value to be used during the sampling of the dynamic definition for use in the static definition."""
        return self._intf.get_property(FigureOfMeritDefinitionAccessConstraint._metadata, FigureOfMeritDefinitionAccessConstraint._get_time_step_metadata)

    _set_time_step_metadata = { "offset" : _set_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_step.setter
    def time_step(self, time_step:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionAccessConstraint._metadata, FigureOfMeritDefinitionAccessConstraint._set_time_step_metadata, time_step)

    _get_constraint_name_metadata = { "offset" : _get_constraint_name_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritConstraintName),) }
    @property
    def constraint_name(self) -> "FigureOfMeritConstraintName":
        """Name of the access constraint as an enumeration. If the constraint is not in FigureOfMeritConstraintName then use Constraint instead."""
        return self._intf.get_property(FigureOfMeritDefinitionAccessConstraint._metadata, FigureOfMeritDefinitionAccessConstraint._get_constraint_name_metadata)

    _set_constraint_name_metadata = { "offset" : _set_constraint_name_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritConstraintName),) }
    @constraint_name.setter
    def constraint_name(self, constraint_name:"FigureOfMeritConstraintName") -> None:
        return self._intf.set_property(FigureOfMeritDefinitionAccessConstraint._metadata, FigureOfMeritDefinitionAccessConstraint._set_constraint_name_metadata, constraint_name)

    _get_constraint_metadata = { "offset" : _get_constraint_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def constraint(self) -> str:
        """Name of the access constraint."""
        return self._intf.get_property(FigureOfMeritDefinitionAccessConstraint._metadata, FigureOfMeritDefinitionAccessConstraint._get_constraint_metadata)

    _set_constraint_metadata = { "offset" : _set_constraint_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @constraint.setter
    def constraint(self, constraint_name:str) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionAccessConstraint._metadata, FigureOfMeritDefinitionAccessConstraint._set_constraint_metadata, constraint_name)

    _property_names[across_assets] = "across_assets"
    _property_names[time_step] = "time_step"
    _property_names[constraint_name] = "constraint_name"
    _property_names[constraint] = "constraint"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionAccessConstraint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionAccessConstraint)
        IFigureOfMeritDefinitionCompute.__init__(self, source_object)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionAccessConstraint, [FigureOfMeritDefinitionAccessConstraint, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((5190165829965842331, 6216946428550350215), FigureOfMeritDefinitionAccessConstraint)
agcls.AgTypeNameMap["FigureOfMeritDefinitionAccessConstraint"] = FigureOfMeritDefinitionAccessConstraint

class FigureOfMeritSatisfaction(SupportsDeleteCallback):
    """Satisfaction properties for a Figure of Merit."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_satisfaction_method_offset = 1
    _set_enable_satisfaction_method_offset = 2
    _get_satisfaction_type_method_offset = 3
    _set_satisfaction_type_method_offset = 4
    _get_satisfaction_threshold_method_offset = 5
    _set_satisfaction_threshold_method_offset = 6
    _get_invalid_data_indicator_method_offset = 7
    _set_invalid_data_indicator_method_offset = 8
    _get_use_value_range_check_method_offset = 9
    _set_use_value_range_check_method_offset = 10
    _get_minimum_value_range_method_offset = 11
    _set_minimum_value_range_method_offset = 12
    _get_maximum_value_range_method_offset = 13
    _set_maximum_value_range_method_offset = 14
    _get_exclude_value_range_method_offset = 15
    _set_exclude_value_range_method_offset = 16
    _metadata = {
        "iid_data" : (5372737379561323094, 16459430738207159481),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritSatisfaction)

    _get_enable_satisfaction_metadata = { "offset" : _get_enable_satisfaction_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_satisfaction(self) -> bool:
        """Specify whether to apply the graphical properties of the figure of merit only when a chosen satisfaction criterion is met."""
        return self._intf.get_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._get_enable_satisfaction_metadata)

    _set_enable_satisfaction_metadata = { "offset" : _set_enable_satisfaction_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_satisfaction.setter
    def enable_satisfaction(self, apply_satisfaction:bool) -> None:
        return self._intf.set_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._set_enable_satisfaction_metadata, apply_satisfaction)

    _get_satisfaction_type_metadata = { "offset" : _get_satisfaction_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritSatisfactionType),) }
    @property
    def satisfaction_type(self) -> "FigureOfMeritSatisfactionType":
        """Get or set the relationship to the specified threshold that must be achieved to satisfy the Figure of Merit."""
        return self._intf.get_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._get_satisfaction_type_metadata)

    _set_satisfaction_type_metadata = { "offset" : _set_satisfaction_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritSatisfactionType),) }
    @satisfaction_type.setter
    def satisfaction_type(self, satisfaction_type:"FigureOfMeritSatisfactionType") -> None:
        return self._intf.set_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._set_satisfaction_type_metadata, satisfaction_type)

    _get_satisfaction_threshold_metadata = { "offset" : _get_satisfaction_threshold_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def satisfaction_threshold(self) -> typing.Any:
        """Get or set the threshold for satisfying the Figure of Merit."""
        return self._intf.get_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._get_satisfaction_threshold_metadata)

    _set_satisfaction_threshold_metadata = { "offset" : _set_satisfaction_threshold_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @satisfaction_threshold.setter
    def satisfaction_threshold(self, satisfaction_threshold:typing.Any) -> None:
        return self._intf.set_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._set_satisfaction_threshold_metadata, satisfaction_threshold)

    _get_invalid_data_indicator_metadata = { "offset" : _get_invalid_data_indicator_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def invalid_data_indicator(self) -> typing.Any:
        """A value to indicate when contouring is invalid."""
        return self._intf.get_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._get_invalid_data_indicator_metadata)

    _set_invalid_data_indicator_metadata = { "offset" : _set_invalid_data_indicator_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @invalid_data_indicator.setter
    def invalid_data_indicator(self, invalid_data_indicator:typing.Any) -> None:
        return self._intf.set_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._set_invalid_data_indicator_metadata, invalid_data_indicator)

    _get_use_value_range_check_metadata = { "offset" : _get_use_value_range_check_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_value_range_check(self) -> bool:
        """Enable FOM Values Limits for computing Statistics."""
        return self._intf.get_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._get_use_value_range_check_metadata)

    _set_use_value_range_check_metadata = { "offset" : _set_use_value_range_check_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_value_range_check.setter
    def use_value_range_check(self, value:bool) -> None:
        return self._intf.set_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._set_use_value_range_check_metadata, value)

    _get_minimum_value_range_metadata = { "offset" : _get_minimum_value_range_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum_value_range(self) -> typing.Any:
        """Get or set the Min Value in the range."""
        return self._intf.get_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._get_minimum_value_range_metadata)

    _set_minimum_value_range_metadata = { "offset" : _set_minimum_value_range_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum_value_range.setter
    def minimum_value_range(self, value:typing.Any) -> None:
        return self._intf.set_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._set_minimum_value_range_metadata, value)

    _get_maximum_value_range_metadata = { "offset" : _get_maximum_value_range_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_value_range(self) -> typing.Any:
        """Get or set the Max Value in the range."""
        return self._intf.get_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._get_maximum_value_range_metadata)

    _set_maximum_value_range_metadata = { "offset" : _set_maximum_value_range_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum_value_range.setter
    def maximum_value_range(self, value:typing.Any) -> None:
        return self._intf.set_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._set_maximum_value_range_metadata, value)

    _get_exclude_value_range_metadata = { "offset" : _get_exclude_value_range_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def exclude_value_range(self) -> bool:
        """Exclude Value Range."""
        return self._intf.get_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._get_exclude_value_range_metadata)

    _set_exclude_value_range_metadata = { "offset" : _set_exclude_value_range_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @exclude_value_range.setter
    def exclude_value_range(self, value:bool) -> None:
        return self._intf.set_property(FigureOfMeritSatisfaction._metadata, FigureOfMeritSatisfaction._set_exclude_value_range_metadata, value)

    _property_names[enable_satisfaction] = "enable_satisfaction"
    _property_names[satisfaction_type] = "satisfaction_type"
    _property_names[satisfaction_threshold] = "satisfaction_threshold"
    _property_names[invalid_data_indicator] = "invalid_data_indicator"
    _property_names[use_value_range_check] = "use_value_range_check"
    _property_names[minimum_value_range] = "minimum_value_range"
    _property_names[maximum_value_range] = "maximum_value_range"
    _property_names[exclude_value_range] = "exclude_value_range"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritSatisfaction."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritSatisfaction)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritSatisfaction, [FigureOfMeritSatisfaction, ])

agcls.AgClassCatalog.add_catalog_entry((5714723963885066939, 8738334924340735402), FigureOfMeritSatisfaction)
agcls.AgTypeNameMap["FigureOfMeritSatisfaction"] = FigureOfMeritSatisfaction

class FigureOfMerit(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """
    Figure of Merit properties.

    Examples
    --------
    Configure the Contours of the figure of merit (FOM) and define a color ramp:
    >>> # CoverageDefinition coverage: Coverage object
    >>> # FigureOfMerit fom: Figure Of Merit object
    >>> satisfaction = coverage.graphics.static
    >>> satisfaction.show_region = False
    >>> Animation = fom.graphics_3d.animation_graphics_3d_settings
    >>> Animation.show_graphics = False
    >>> VOcontours = fom.graphics_3d.static
    >>> VOcontours.show_graphics = True
    >>> contours = fom.graphics.static.contours
    >>> contours.show_graphics = True
    >>> contours.contour_type = FigureOfMeritGraphics2DContourType.SMOOTH_FILL
    >>> contours.color_method = FigureOfMeritGraphics2DColorMethod.COLOR_RAMP
    >>> contours.level_attributes.remove_all()
    >>>
    >>> contours.level_attributes.add_level_range(590, 660, 10)  # Start, Start, Step
    >>> contours.ramp_color.start_color = Colors.Red
    >>> contours.ramp_color.end_color = Colors.Blue

    Create a new Figure of Merit of type Access Duration:
    >>> # CoverageDefinition coverage: Coverage object
    >>> fom = coverage.children.new(STKObjectType.FIGURE_OF_MERIT, "AccessDuration")
    >>> fom.set_definition_type(FigureOfMeritDefinitionType.ACCESS_DURATION)
    >>> fom.definition.set_compute_type(FigureOfMeritCompute.MAXIMUM)
    """

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_definition_type_method_offset = 1
    _set_definition_type_method_offset = 2
    _is_definition_type_supported_method_offset = 3
    _get_definition_supported_types_method_offset = 4
    _get_definition_method_offset = 5
    _set_access_constraint_definition_method_offset = 6
    _get_graphics_method_offset = 7
    _get_graphics_3d_method_offset = 8
    _get_grid_inspector_method_offset = 9
    _set_access_constraint_definition_name_method_offset = 10
    _set_scalar_calculation_definition_method_offset = 11
    _metadata = {
        "iid_data" : (4640908666250216033, 3417354523410357417),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMerit)

    _get_definition_type_metadata = { "offset" : _get_definition_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritDefinitionType),) }
    @property
    def definition_type(self) -> "FigureOfMeritDefinitionType":
        """Definition type for the FOM."""
        return self._intf.get_property(FigureOfMerit._metadata, FigureOfMerit._get_definition_type_metadata)

    _set_definition_type_metadata = { "offset" : _set_definition_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritDefinitionType),) }
    def set_definition_type(self, defn:"FigureOfMeritDefinitionType") -> None:
        """Set the definition type."""
        return self._intf.invoke(FigureOfMerit._metadata, FigureOfMerit._set_definition_type_metadata, defn)

    _is_definition_type_supported_metadata = { "offset" : _is_definition_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritDefinitionType), agmarshall.VariantBoolArg,) }
    def is_definition_type_supported(self, defn:"FigureOfMeritDefinitionType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(FigureOfMerit._metadata, FigureOfMerit._is_definition_type_supported_metadata, defn, OutArg())

    _get_definition_supported_types_metadata = { "offset" : _get_definition_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def definition_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(FigureOfMerit._metadata, FigureOfMerit._get_definition_supported_types_metadata)

    _get_definition_metadata = { "offset" : _get_definition_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def definition(self) -> "IFigureOfMeritDefinition":
        """Definition properties of the FOM."""
        return self._intf.get_property(FigureOfMerit._metadata, FigureOfMerit._get_definition_metadata)

    _set_access_constraint_definition_metadata = { "offset" : _set_access_constraint_definition_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritConstraintName), agmarshall.InterfaceOutArg,) }
    def set_access_constraint_definition(self, constraint_name:"FigureOfMeritConstraintName") -> "FigureOfMeritDefinitionAccessConstraint":
        """Set the access constraint definition."""
        return self._intf.invoke(FigureOfMerit._metadata, FigureOfMerit._set_access_constraint_definition_metadata, constraint_name, OutArg())

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "FigureOfMeritGraphics":
        """2D graphics properties of the FOM."""
        return self._intf.get_property(FigureOfMerit._metadata, FigureOfMerit._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "FigureOfMeritGraphics3D":
        """3D graphics properties of the FOM."""
        return self._intf.get_property(FigureOfMerit._metadata, FigureOfMerit._get_graphics_3d_metadata)

    _get_grid_inspector_metadata = { "offset" : _get_grid_inspector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def grid_inspector(self) -> "FigureOfMeritGridInspector":
        """Get the Grid inspector tool."""
        return self._intf.get_property(FigureOfMerit._metadata, FigureOfMerit._get_grid_inspector_metadata)

    _set_access_constraint_definition_name_metadata = { "offset" : _set_access_constraint_definition_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def set_access_constraint_definition_name(self, constraint_name:str) -> "FigureOfMeritDefinitionAccessConstraint":
        """Set the access constraint definition by name."""
        return self._intf.invoke(FigureOfMerit._metadata, FigureOfMerit._set_access_constraint_definition_name_metadata, constraint_name, OutArg())

    _set_scalar_calculation_definition_metadata = { "offset" : _set_scalar_calculation_definition_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def set_scalar_calculation_definition(self, calc_scalar:str) -> "FigureOfMeritDefinitionScalarCalculation":
        """Set the scalar calculation definition."""
        return self._intf.invoke(FigureOfMerit._metadata, FigureOfMerit._set_scalar_calculation_definition_metadata, calc_scalar, OutArg())

    _property_names[definition_type] = "definition_type"
    _property_names[definition_supported_types] = "definition_supported_types"
    _property_names[definition] = "definition"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[grid_inspector] = "grid_inspector"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMerit."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMerit)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMerit, [FigureOfMerit, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5637489314275856665, 15047614264368808355), FigureOfMerit)
agcls.AgTypeNameMap["FigureOfMerit"] = FigureOfMerit

class FigureOfMeritDefinitionAccessSeparation(IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Access Separation Figure of Merit."""

    _num_methods = 1
    _vtable_offset = IFigureOfMeritDefinition._vtable_offset + IFigureOfMeritDefinition._num_methods
    _get_minimum_maximum_data_method_offset = 1
    _metadata = {
        "iid_data" : (4662418486140603140, 1776342424411469480),
        "vtable_reference" : IFigureOfMeritDefinition._vtable_offset + IFigureOfMeritDefinition._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionAccessSeparation)

    _get_minimum_maximum_data_metadata = { "offset" : _get_minimum_maximum_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def minimum_maximum_data(self) -> "FigureOfMeritDefinitionDataMinimumMaximum":
        """Minimum and maximum time intervals for determining if two or more coverage intervals occur within a specified time interval."""
        return self._intf.get_property(FigureOfMeritDefinitionAccessSeparation._metadata, FigureOfMeritDefinitionAccessSeparation._get_minimum_maximum_data_metadata)

    _property_names[minimum_maximum_data] = "minimum_maximum_data"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionAccessSeparation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionAccessSeparation)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionAccessSeparation, [FigureOfMeritDefinitionAccessSeparation, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((4842092795521830649, 17523172424048348335), FigureOfMeritDefinitionAccessSeparation)
agcls.AgTypeNameMap["FigureOfMeritDefinitionAccessSeparation"] = FigureOfMeritDefinitionAccessSeparation

class FigureOfMeritDefinitionDilutionOfPrecision(IFigureOfMeritDefinitionDilutionOfPrecision, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Dilution Of Precision Figure of Merit."""
    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionDilutionOfPrecision."""
        SupportsDeleteCallback.__init__(self)
        IFigureOfMeritDefinitionDilutionOfPrecision.__init__(self, source_object)
        IFigureOfMeritDefinitionCompute.__init__(self, source_object)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionDilutionOfPrecision._private_init(self, intf)
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionDilutionOfPrecision, [IFigureOfMeritDefinitionDilutionOfPrecision, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((4672320914766244596, 2729302945195171715), FigureOfMeritDefinitionDilutionOfPrecision)
agcls.AgTypeNameMap["FigureOfMeritDefinitionDilutionOfPrecision"] = FigureOfMeritDefinitionDilutionOfPrecision

class FigureOfMeritDefinitionNavigationAccuracy(IFigureOfMeritDefinitionDilutionOfPrecision, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Navigation Accuracy."""

    _num_methods = 1
    _vtable_offset = IFigureOfMeritDefinitionDilutionOfPrecision._vtable_offset + IFigureOfMeritDefinitionDilutionOfPrecision._num_methods
    _get_uncertainties_method_offset = 1
    _metadata = {
        "iid_data" : (5343010486799026272, 3264468860317538475),
        "vtable_reference" : IFigureOfMeritDefinitionDilutionOfPrecision._vtable_offset + IFigureOfMeritDefinitionDilutionOfPrecision._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionNavigationAccuracy)

    _get_uncertainties_metadata = { "offset" : _get_uncertainties_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def uncertainties(self) -> "FigureOfMeritUncertainties":
        """A constant value that represents angular standard deviation of measurements away from the direction between the object on which the coverage is defined and a particular asset. Constant values are specified in units of degrees."""
        return self._intf.get_property(FigureOfMeritDefinitionNavigationAccuracy._metadata, FigureOfMeritDefinitionNavigationAccuracy._get_uncertainties_metadata)

    _property_names[uncertainties] = "uncertainties"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionNavigationAccuracy."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionNavigationAccuracy)
        IFigureOfMeritDefinitionDilutionOfPrecision.__init__(self, source_object)
        IFigureOfMeritDefinitionCompute.__init__(self, source_object)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionDilutionOfPrecision._private_init(self, intf)
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionNavigationAccuracy, [FigureOfMeritDefinitionNavigationAccuracy, IFigureOfMeritDefinitionDilutionOfPrecision, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((5350384301603261315, 1694688730284045991), FigureOfMeritDefinitionNavigationAccuracy)
agcls.AgTypeNameMap["FigureOfMeritDefinitionNavigationAccuracy"] = FigureOfMeritDefinitionNavigationAccuracy

class FigureOfMeritAssetListElement(SupportsDeleteCallback):
    """Asset list item (for Navigation Accuracy FOM)."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_method_type_method_offset = 1
    _set_method_type_method_offset = 2
    _get_method_method_offset = 3
    _get_asset_method_offset = 4
    _metadata = {
        "iid_data" : (5417701524061546271, 16762643626134878351),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritAssetListElement)

    _get_method_type_metadata = { "offset" : _get_method_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritNavigationAccuracyMethod),) }
    @property
    def method_type(self) -> "FigureOfMeritNavigationAccuracyMethod":
        """Type of method used to specify range uncertainty."""
        return self._intf.get_property(FigureOfMeritAssetListElement._metadata, FigureOfMeritAssetListElement._get_method_type_metadata)

    _set_method_type_metadata = { "offset" : _set_method_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritNavigationAccuracyMethod),) }
    @method_type.setter
    def method_type(self, method_type:"FigureOfMeritNavigationAccuracyMethod") -> None:
        return self._intf.set_property(FigureOfMeritAssetListElement._metadata, FigureOfMeritAssetListElement._set_method_type_metadata, method_type)

    _get_method_metadata = { "offset" : _get_method_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def method(self) -> "IFigureOfMeritNavigationAccuracyMethod":
        """Range uncertainty method."""
        return self._intf.get_property(FigureOfMeritAssetListElement._metadata, FigureOfMeritAssetListElement._get_method_metadata)

    _get_asset_metadata = { "offset" : _get_asset_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def asset(self) -> str:
        """Asset used in specifying range uncertainty."""
        return self._intf.get_property(FigureOfMeritAssetListElement._metadata, FigureOfMeritAssetListElement._get_asset_metadata)

    _property_names[method_type] = "method_type"
    _property_names[method] = "method"
    _property_names[asset] = "asset"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritAssetListElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritAssetListElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritAssetListElement, [FigureOfMeritAssetListElement, ])

agcls.AgClassCatalog.add_catalog_entry((5098702532059843628, 5218325578395017134), FigureOfMeritAssetListElement)
agcls.AgTypeNameMap["FigureOfMeritAssetListElement"] = FigureOfMeritAssetListElement

class FigureOfMeritAssetListCollection(SupportsDeleteCallback):
    """List of assets available for specifying range uncertainty (for Navigation Accuracy FOM)."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (4632465977975768959, 10207962900271032205),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritAssetListCollection)
    def __iter__(self):
        """Create an iterator for the FigureOfMeritAssetListCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "FigureOfMeritAssetListElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(FigureOfMeritAssetListCollection._metadata, FigureOfMeritAssetListCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "FigureOfMeritAssetListElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(FigureOfMeritAssetListCollection._metadata, FigureOfMeritAssetListCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(FigureOfMeritAssetListCollection._metadata, FigureOfMeritAssetListCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritAssetListCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritAssetListCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritAssetListCollection, [FigureOfMeritAssetListCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5486539952674372709, 10190305291891860364), FigureOfMeritAssetListCollection)
agcls.AgTypeNameMap["FigureOfMeritAssetListCollection"] = FigureOfMeritAssetListCollection

class FigureOfMeritUncertainties(SupportsDeleteCallback):
    """Receiver range uncertainty (for Navigation Accuracy FOM)."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_receiver_range_method_offset = 1
    _set_receiver_range_method_offset = 2
    _get_asset_list_method_offset = 3
    _metadata = {
        "iid_data" : (5066087091635768559, 8227590048891742377),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritUncertainties)

    _get_receiver_range_metadata = { "offset" : _get_receiver_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def receiver_range(self) -> float:
        """Receiver range uncertainty value."""
        return self._intf.get_property(FigureOfMeritUncertainties._metadata, FigureOfMeritUncertainties._get_receiver_range_metadata)

    _set_receiver_range_metadata = { "offset" : _set_receiver_range_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @receiver_range.setter
    def receiver_range(self, receiver_range:float) -> None:
        return self._intf.set_property(FigureOfMeritUncertainties._metadata, FigureOfMeritUncertainties._set_receiver_range_metadata, receiver_range)

    _get_asset_list_metadata = { "offset" : _get_asset_list_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def asset_list(self) -> "FigureOfMeritAssetListCollection":
        """Get list of assets for specifying range uncertainty."""
        return self._intf.get_property(FigureOfMeritUncertainties._metadata, FigureOfMeritUncertainties._get_asset_list_metadata)

    _property_names[receiver_range] = "receiver_range"
    _property_names[asset_list] = "asset_list"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritUncertainties."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritUncertainties)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritUncertainties, [FigureOfMeritUncertainties, ])

agcls.AgClassCatalog.add_catalog_entry((5559774681665307232, 8709911343744120458), FigureOfMeritUncertainties)
agcls.AgTypeNameMap["FigureOfMeritUncertainties"] = FigureOfMeritUncertainties

class FigureOfMeritDefinitionResponseTime(IFigureOfMeritDefinitionResponseTime, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Response Time Figure of Merit."""
    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionResponseTime."""
        SupportsDeleteCallback.__init__(self)
        IFigureOfMeritDefinitionResponseTime.__init__(self, source_object)
        IFigureOfMeritDefinitionCompute.__init__(self, source_object)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionResponseTime._private_init(self, intf)
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionResponseTime, [IFigureOfMeritDefinitionResponseTime, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((5420116287352786254, 15781891729811128501), FigureOfMeritDefinitionResponseTime)
agcls.AgTypeNameMap["FigureOfMeritDefinitionResponseTime"] = FigureOfMeritDefinitionResponseTime

class FigureOfMeritDefinitionRevisitTime(IFigureOfMeritDefinitionResponseTime, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Revisit Time Figure of Merit."""

    _num_methods = 2
    _vtable_offset = IFigureOfMeritDefinitionResponseTime._vtable_offset + IFigureOfMeritDefinitionResponseTime._num_methods
    _get_end_gap_option_method_offset = 1
    _set_end_gap_option_method_offset = 2
    _metadata = {
        "iid_data" : (5490610956700387027, 7100277610591090825),
        "vtable_reference" : IFigureOfMeritDefinitionResponseTime._vtable_offset + IFigureOfMeritDefinitionResponseTime._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionRevisitTime)

    _get_end_gap_option_metadata = { "offset" : _get_end_gap_option_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritEndGapOption),) }
    @property
    def end_gap_option(self) -> "FigureOfMeritEndGapOption":
        """Control consideration of gaps at ends of the analysis interval."""
        return self._intf.get_property(FigureOfMeritDefinitionRevisitTime._metadata, FigureOfMeritDefinitionRevisitTime._get_end_gap_option_metadata)

    _set_end_gap_option_metadata = { "offset" : _set_end_gap_option_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritEndGapOption),) }
    @end_gap_option.setter
    def end_gap_option(self, end_gap_option:"FigureOfMeritEndGapOption") -> None:
        return self._intf.set_property(FigureOfMeritDefinitionRevisitTime._metadata, FigureOfMeritDefinitionRevisitTime._set_end_gap_option_metadata, end_gap_option)

    _property_names[end_gap_option] = "end_gap_option"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionRevisitTime."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionRevisitTime)
        IFigureOfMeritDefinitionResponseTime.__init__(self, source_object)
        IFigureOfMeritDefinitionCompute.__init__(self, source_object)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionResponseTime._private_init(self, intf)
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionRevisitTime, [FigureOfMeritDefinitionRevisitTime, IFigureOfMeritDefinitionResponseTime, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((5485437623734333542, 1478200894030146189), FigureOfMeritDefinitionRevisitTime)
agcls.AgTypeNameMap["FigureOfMeritDefinitionRevisitTime"] = FigureOfMeritDefinitionRevisitTime

class FigureOfMeritDefinitionSimpleCoverage(IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Simple Coverage Figure of Merit."""

    _num_methods = 0
    _vtable_offset = IFigureOfMeritDefinition._vtable_offset + IFigureOfMeritDefinition._num_methods
    _metadata = {
        "iid_data" : (4877930297904799427, 17529075317950463624),
        "vtable_reference" : IFigureOfMeritDefinition._vtable_offset + IFigureOfMeritDefinition._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionSimpleCoverage)


    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionSimpleCoverage."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionSimpleCoverage)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionSimpleCoverage, [FigureOfMeritDefinitionSimpleCoverage, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((4632685622493765685, 16312237938682993042), FigureOfMeritDefinitionSimpleCoverage)
agcls.AgTypeNameMap["FigureOfMeritDefinitionSimpleCoverage"] = FigureOfMeritDefinitionSimpleCoverage

class FigureOfMeritDefinitionTimeAverageGap(IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Time Average Gap Figure of Merit."""

    _num_methods = 0
    _vtable_offset = IFigureOfMeritDefinition._vtable_offset + IFigureOfMeritDefinition._num_methods
    _metadata = {
        "iid_data" : (5676109316532445915, 14061381454083715002),
        "vtable_reference" : IFigureOfMeritDefinition._vtable_offset + IFigureOfMeritDefinition._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionTimeAverageGap)


    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionTimeAverageGap."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionTimeAverageGap)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionTimeAverageGap, [FigureOfMeritDefinitionTimeAverageGap, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((4880556357873140003, 5579042497112744124), FigureOfMeritDefinitionTimeAverageGap)
agcls.AgTypeNameMap["FigureOfMeritDefinitionTimeAverageGap"] = FigureOfMeritDefinitionTimeAverageGap

class FigureOfMeritDefinitionSystemAgeOfData(IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition, SupportsDeleteCallback):
    """System Age of Data Figure of Merit."""

    _num_methods = 20
    _vtable_offset = IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods
    _get_command_station_path_method_offset = 1
    _set_command_station_path_method_offset = 2
    _get_receive_station_path_method_offset = 3
    _set_receive_station_path_method_offset = 4
    _get_command_preparation_time_method_offset = 5
    _set_command_preparation_time_method_offset = 6
    _get_commanding_time_method_offset = 7
    _set_commanding_time_method_offset = 8
    _get_pre_collection_time_method_offset = 9
    _set_pre_collection_time_method_offset = 10
    _get_collection_time_method_offset = 11
    _set_collection_time_method_offset = 12
    _get_post_collection_time_method_offset = 13
    _set_post_collection_time_method_offset = 14
    _get_downlink_time_method_offset = 15
    _set_downlink_time_method_offset = 16
    _get_allow_forward_crosslink_method_offset = 17
    _set_allow_forward_crosslink_method_offset = 18
    _get_time_step_method_offset = 19
    _set_time_step_method_offset = 20
    _metadata = {
        "iid_data" : (4729787925449535093, 3126965251524778429),
        "vtable_reference" : IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionSystemAgeOfData)

    _get_command_station_path_metadata = { "offset" : _get_command_station_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def command_station_path(self) -> str:
        """Instance path for the commanding object. NONE can be used to clear the commanding object."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._get_command_station_path_metadata)

    _set_command_station_path_metadata = { "offset" : _set_command_station_path_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @command_station_path.setter
    def command_station_path(self, command:str) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._set_command_station_path_metadata, command)

    _get_receive_station_path_metadata = { "offset" : _get_receive_station_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def receive_station_path(self) -> str:
        """Instance path for the receiving object. NONE can be used to clear the receiving object."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._get_receive_station_path_metadata)

    _set_receive_station_path_metadata = { "offset" : _set_receive_station_path_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @receive_station_path.setter
    def receive_station_path(self, command:str) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._set_receive_station_path_metadata, command)

    _get_command_preparation_time_metadata = { "offset" : _get_command_preparation_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def command_preparation_time(self) -> float:
        """Amount of time in seconds required for command preparation."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._get_command_preparation_time_metadata)

    _set_command_preparation_time_metadata = { "offset" : _set_command_preparation_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @command_preparation_time.setter
    def command_preparation_time(self, command_prep_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._set_command_preparation_time_metadata, command_prep_time)

    _get_commanding_time_metadata = { "offset" : _get_commanding_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def commanding_time(self) -> float:
        """Amount of time in seconds required for transmission of the prepared command from the CommandStation to the assets."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._get_commanding_time_metadata)

    _set_commanding_time_metadata = { "offset" : _set_commanding_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @commanding_time.setter
    def commanding_time(self, commanding_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._set_commanding_time_metadata, commanding_time)

    _get_pre_collection_time_metadata = { "offset" : _get_pre_collection_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pre_collection_time(self) -> float:
        """Amount of time in seconds required from receipt of commanding until a collection can be performed by the assets."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._get_pre_collection_time_metadata)

    _set_pre_collection_time_metadata = { "offset" : _set_pre_collection_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pre_collection_time.setter
    def pre_collection_time(self, pre_collection_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._set_pre_collection_time_metadata, pre_collection_time)

    _get_collection_time_metadata = { "offset" : _get_collection_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def collection_time(self) -> float:
        """Amount of time in seconds required for data collection."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._get_collection_time_metadata)

    _set_collection_time_metadata = { "offset" : _set_collection_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @collection_time.setter
    def collection_time(self, collection_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._set_collection_time_metadata, collection_time)

    _get_post_collection_time_metadata = { "offset" : _get_post_collection_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def post_collection_time(self) -> float:
        """Amount of time in seconds required from asset collection until data can be transmitted to the ReceiveStation."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._get_post_collection_time_metadata)

    _set_post_collection_time_metadata = { "offset" : _set_post_collection_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @post_collection_time.setter
    def post_collection_time(self, post_collection_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._set_post_collection_time_metadata, post_collection_time)

    _get_downlink_time_metadata = { "offset" : _get_downlink_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def downlink_time(self) -> float:
        """Amount of time in seconds required for transmission of the collected data from the assets to the ReceiveStation."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._get_downlink_time_metadata)

    _set_downlink_time_metadata = { "offset" : _set_downlink_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @downlink_time.setter
    def downlink_time(self, downlink_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._set_downlink_time_metadata, downlink_time)

    _get_allow_forward_crosslink_metadata = { "offset" : _get_allow_forward_crosslink_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_forward_crosslink(self) -> bool:
        """Determine if a single cross-link between assets is allowed to be used to minimize the response time."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._get_allow_forward_crosslink_metadata)

    _set_allow_forward_crosslink_metadata = { "offset" : _set_allow_forward_crosslink_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_forward_crosslink.setter
    def allow_forward_crosslink(self, value:bool) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._set_allow_forward_crosslink_metadata, value)

    _get_time_step_metadata = { "offset" : _get_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_step(self) -> float:
        """Get or set the value in seconds to be used during the computation of satisfaction intervals."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._get_time_step_metadata)

    _set_time_step_metadata = { "offset" : _set_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_step.setter
    def time_step(self, time_step:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemAgeOfData._metadata, FigureOfMeritDefinitionSystemAgeOfData._set_time_step_metadata, time_step)

    _property_names[command_station_path] = "command_station_path"
    _property_names[receive_station_path] = "receive_station_path"
    _property_names[command_preparation_time] = "command_preparation_time"
    _property_names[commanding_time] = "commanding_time"
    _property_names[pre_collection_time] = "pre_collection_time"
    _property_names[collection_time] = "collection_time"
    _property_names[post_collection_time] = "post_collection_time"
    _property_names[downlink_time] = "downlink_time"
    _property_names[allow_forward_crosslink] = "allow_forward_crosslink"
    _property_names[time_step] = "time_step"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionSystemAgeOfData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionSystemAgeOfData)
        IFigureOfMeritDefinitionCompute.__init__(self, source_object)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionSystemAgeOfData, [FigureOfMeritDefinitionSystemAgeOfData, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((5745423844841700215, 1129578823465499784), FigureOfMeritDefinitionSystemAgeOfData)
agcls.AgTypeNameMap["FigureOfMeritDefinitionSystemAgeOfData"] = FigureOfMeritDefinitionSystemAgeOfData

class FigureOfMeritGraphics2DContours(IFigureOfMeritGraphics2DContours, SupportsDeleteCallback):
    """Coverage contours."""
    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DContours."""
        SupportsDeleteCallback.__init__(self)
        IFigureOfMeritGraphics2DContours.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritGraphics2DContours._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DContours, [IFigureOfMeritGraphics2DContours])

agcls.AgClassCatalog.add_catalog_entry((5141124008707081246, 2092745303450640514), FigureOfMeritGraphics2DContours)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DContours"] = FigureOfMeritGraphics2DContours

class FigureOfMeritGraphics2DAttributes(IFigureOfMeritGraphics2DAttributes, SupportsDeleteCallback):
    """Figure of Merit 2D graphics properties."""
    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DAttributes."""
        SupportsDeleteCallback.__init__(self)
        IFigureOfMeritGraphics2DAttributes.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritGraphics2DAttributes._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DAttributes, [IFigureOfMeritGraphics2DAttributes])

agcls.AgClassCatalog.add_catalog_entry((5583033323757692405, 3113681789322279301), FigureOfMeritGraphics2DAttributes)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DAttributes"] = FigureOfMeritGraphics2DAttributes

class FigureOfMeritGraphics2DContoursAnimation(IFigureOfMeritGraphics2DContours, SupportsDeleteCallback):
    """Animation contour properties."""

    _num_methods = 0
    _vtable_offset = IFigureOfMeritGraphics2DContours._vtable_offset + IFigureOfMeritGraphics2DContours._num_methods
    _metadata = {
        "iid_data" : (5030693630578846372, 11383658642948292797),
        "vtable_reference" : IFigureOfMeritGraphics2DContours._vtable_offset + IFigureOfMeritGraphics2DContours._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DContoursAnimation)


    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DContoursAnimation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DContoursAnimation)
        IFigureOfMeritGraphics2DContours.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritGraphics2DContours._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DContoursAnimation, [FigureOfMeritGraphics2DContoursAnimation, IFigureOfMeritGraphics2DContours])

agcls.AgClassCatalog.add_catalog_entry((5466846711386388908, 3144360441977341630), FigureOfMeritGraphics2DContoursAnimation)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DContoursAnimation"] = FigureOfMeritGraphics2DContoursAnimation

class FigureOfMeritGraphics2DAttributesAnimation(IFigureOfMeritGraphics2DAttributes, SupportsDeleteCallback):
    """Animation graphics for a Figure of Merit."""

    _num_methods = 2
    _vtable_offset = IFigureOfMeritGraphics2DAttributes._vtable_offset + IFigureOfMeritGraphics2DAttributes._num_methods
    _get_accumulation_method_offset = 1
    _set_accumulation_method_offset = 2
    _metadata = {
        "iid_data" : (5676165026614852090, 1990290064823301504),
        "vtable_reference" : IFigureOfMeritGraphics2DAttributes._vtable_offset + IFigureOfMeritGraphics2DAttributes._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DAttributesAnimation)

    _get_accumulation_metadata = { "offset" : _get_accumulation_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DAccumulation),) }
    @property
    def accumulation(self) -> "FigureOfMeritGraphics2DAccumulation":
        """Accumulation method to control the sense and persistence of the animation graphics."""
        return self._intf.get_property(FigureOfMeritGraphics2DAttributesAnimation._metadata, FigureOfMeritGraphics2DAttributesAnimation._get_accumulation_metadata)

    _set_accumulation_metadata = { "offset" : _set_accumulation_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DAccumulation),) }
    @accumulation.setter
    def accumulation(self, accumulation:"FigureOfMeritGraphics2DAccumulation") -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DAttributesAnimation._metadata, FigureOfMeritGraphics2DAttributesAnimation._set_accumulation_metadata, accumulation)

    _property_names[accumulation] = "accumulation"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DAttributesAnimation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DAttributesAnimation)
        IFigureOfMeritGraphics2DAttributes.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritGraphics2DAttributes._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DAttributesAnimation, [FigureOfMeritGraphics2DAttributesAnimation, IFigureOfMeritGraphics2DAttributes])

agcls.AgClassCatalog.add_catalog_entry((4964078884542613562, 12047864033299415951), FigureOfMeritGraphics2DAttributesAnimation)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DAttributesAnimation"] = FigureOfMeritGraphics2DAttributesAnimation

class FigureOfMeritGraphics(SupportsDeleteCallback):
    """2D graphics for a Figure of Merit."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_static_method_offset = 1
    _get_animation_settings_method_offset = 2
    _get_show_graphics_method_offset = 3
    _set_show_graphics_method_offset = 4
    _metadata = {
        "iid_data" : (5631002823754325366, 15541840400781961874),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics)

    _get_static_metadata = { "offset" : _get_static_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def static(self) -> "IFigureOfMeritGraphics2DAttributes":
        """Get the static graphics."""
        return self._intf.get_property(FigureOfMeritGraphics._metadata, FigureOfMeritGraphics._get_static_metadata)

    _get_animation_settings_metadata = { "offset" : _get_animation_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def animation_settings(self) -> "FigureOfMeritGraphics2DAttributesAnimation":
        """Get the animation graphics."""
        return self._intf.get_property(FigureOfMeritGraphics._metadata, FigureOfMeritGraphics._get_animation_settings_metadata)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Specify whether graphics attributes of the Figure of Merit are visible."""
        return self._intf.get_property(FigureOfMeritGraphics._metadata, FigureOfMeritGraphics._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(FigureOfMeritGraphics._metadata, FigureOfMeritGraphics._set_show_graphics_metadata, is_visible)

    _property_names[static] = "static"
    _property_names[animation_settings] = "animation_settings"
    _property_names[show_graphics] = "show_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics, [FigureOfMeritGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((4777736574237784041, 17835741838636892059), FigureOfMeritGraphics)
agcls.AgTypeNameMap["FigureOfMeritGraphics"] = FigureOfMeritGraphics

class FigureOfMeritGraphics2DRampColor(SupportsDeleteCallback):
    """Color ramp method for contours: select start and end colors to define spectrum segment."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_color_method_offset = 1
    _set_start_color_method_offset = 2
    _get_end_color_method_offset = 3
    _set_end_color_method_offset = 4
    _metadata = {
        "iid_data" : (5099585374263536257, 6019374622789052349),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DRampColor)

    _get_start_color_metadata = { "offset" : _get_start_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def start_color(self) -> agcolor.Color:
        """Start color for color ramp method."""
        return self._intf.get_property(FigureOfMeritGraphics2DRampColor._metadata, FigureOfMeritGraphics2DRampColor._get_start_color_metadata)

    _set_start_color_metadata = { "offset" : _set_start_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @start_color.setter
    def start_color(self, start_color:agcolor.Color) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DRampColor._metadata, FigureOfMeritGraphics2DRampColor._set_start_color_metadata, start_color)

    _get_end_color_metadata = { "offset" : _get_end_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def end_color(self) -> agcolor.Color:
        """End color for color ramp method."""
        return self._intf.get_property(FigureOfMeritGraphics2DRampColor._metadata, FigureOfMeritGraphics2DRampColor._get_end_color_metadata)

    _set_end_color_metadata = { "offset" : _set_end_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @end_color.setter
    def end_color(self, end_color:agcolor.Color) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DRampColor._metadata, FigureOfMeritGraphics2DRampColor._set_end_color_metadata, end_color)

    _property_names[start_color] = "start_color"
    _property_names[end_color] = "end_color"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DRampColor."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DRampColor)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DRampColor, [FigureOfMeritGraphics2DRampColor, ])

agcls.AgClassCatalog.add_catalog_entry((5663809353622902698, 13354784119661898907), FigureOfMeritGraphics2DRampColor)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DRampColor"] = FigureOfMeritGraphics2DRampColor

class FigureOfMeritGraphics2DLevelAttributesElement(SupportsDeleteCallback):
    """2D graphics attributes of contour levels."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_level_method_offset = 1
    _set_level_method_offset = 2
    _get_color_method_offset = 3
    _set_color_method_offset = 4
    _metadata = {
        "iid_data" : (5330493963083695313, 1984008093808826771),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DLevelAttributesElement)

    _get_level_metadata = { "offset" : _get_level_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def level(self) -> typing.Any:
        """Get or set the contour level for which graphics properties are being defined."""
        return self._intf.get_property(FigureOfMeritGraphics2DLevelAttributesElement._metadata, FigureOfMeritGraphics2DLevelAttributesElement._get_level_metadata)

    _set_level_metadata = { "offset" : _set_level_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @level.setter
    def level(self, level:typing.Any) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DLevelAttributesElement._metadata, FigureOfMeritGraphics2DLevelAttributesElement._set_level_metadata, level)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the color assigned to the given contour level."""
        return self._intf.get_property(FigureOfMeritGraphics2DLevelAttributesElement._metadata, FigureOfMeritGraphics2DLevelAttributesElement._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DLevelAttributesElement._metadata, FigureOfMeritGraphics2DLevelAttributesElement._set_color_metadata, value)

    _property_names[level] = "level"
    _property_names[color] = "color"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DLevelAttributesElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DLevelAttributesElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DLevelAttributesElement, [FigureOfMeritGraphics2DLevelAttributesElement, ])

agcls.AgClassCatalog.add_catalog_entry((5458825522961285285, 4165542178174370195), FigureOfMeritGraphics2DLevelAttributesElement)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DLevelAttributesElement"] = FigureOfMeritGraphics2DLevelAttributesElement

class FigureOfMeritGraphics2DLevelAttributesCollection(SupportsDeleteCallback):
    """Level Attributes."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_level_range_method_offset = 6
    _add_level_method_offset = 7
    _metadata = {
        "iid_data" : (5147768505440667062, 5886340785619027105),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DLevelAttributesCollection)
    def __iter__(self):
        """Create an iterator for the FigureOfMeritGraphics2DLevelAttributesCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "FigureOfMeritGraphics2DLevelAttributesElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(FigureOfMeritGraphics2DLevelAttributesCollection._metadata, FigureOfMeritGraphics2DLevelAttributesCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "FigureOfMeritGraphics2DLevelAttributesElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(FigureOfMeritGraphics2DLevelAttributesCollection._metadata, FigureOfMeritGraphics2DLevelAttributesCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(FigureOfMeritGraphics2DLevelAttributesCollection._metadata, FigureOfMeritGraphics2DLevelAttributesCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(FigureOfMeritGraphics2DLevelAttributesCollection._metadata, FigureOfMeritGraphics2DLevelAttributesCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(FigureOfMeritGraphics2DLevelAttributesCollection._metadata, FigureOfMeritGraphics2DLevelAttributesCollection._remove_all_metadata, )

    _add_level_range_metadata = { "offset" : _add_level_range_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def add_level_range(self, start:typing.Any, stop:typing.Any, step:typing.Any) -> None:
        """Add a new element to the collection."""
        return self._intf.invoke(FigureOfMeritGraphics2DLevelAttributesCollection._metadata, FigureOfMeritGraphics2DLevelAttributesCollection._add_level_range_metadata, start, stop, step)

    _add_level_metadata = { "offset" : _add_level_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def add_level(self, level:typing.Any) -> "FigureOfMeritGraphics2DLevelAttributesElement":
        """Add a new element to the collection."""
        return self._intf.invoke(FigureOfMeritGraphics2DLevelAttributesCollection._metadata, FigureOfMeritGraphics2DLevelAttributesCollection._add_level_metadata, level, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DLevelAttributesCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DLevelAttributesCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DLevelAttributesCollection, [FigureOfMeritGraphics2DLevelAttributesCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4983706690228074871, 17333192296417975187), FigureOfMeritGraphics2DLevelAttributesCollection)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DLevelAttributesCollection"] = FigureOfMeritGraphics2DLevelAttributesCollection

class FigureOfMeritGraphics2DPositionOnMap(SupportsDeleteCallback):
    """Coordinates of contour legend in pixels on 2D map."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_x_method_offset = 1
    _set_x_method_offset = 2
    _get_y_method_offset = 3
    _set_y_method_offset = 4
    _metadata = {
        "iid_data" : (5588835179548139093, 2798841366437148563),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DPositionOnMap)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def x(self) -> int:
        """Get or set the X coordinate of the contour legend on the 2D map."""
        return self._intf.get_property(FigureOfMeritGraphics2DPositionOnMap._metadata, FigureOfMeritGraphics2DPositionOnMap._get_x_metadata)

    _set_x_metadata = { "offset" : _set_x_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @x.setter
    def x(self, x:int) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DPositionOnMap._metadata, FigureOfMeritGraphics2DPositionOnMap._set_x_metadata, x)

    _get_y_metadata = { "offset" : _get_y_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def y(self) -> int:
        """Get or set the Y coordinate of the contour legend on the 2D map."""
        return self._intf.get_property(FigureOfMeritGraphics2DPositionOnMap._metadata, FigureOfMeritGraphics2DPositionOnMap._get_y_metadata)

    _set_y_metadata = { "offset" : _set_y_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @y.setter
    def y(self, y:int) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DPositionOnMap._metadata, FigureOfMeritGraphics2DPositionOnMap._set_y_metadata, y)

    _property_names[x] = "x"
    _property_names[y] = "y"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DPositionOnMap."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DPositionOnMap)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DPositionOnMap, [FigureOfMeritGraphics2DPositionOnMap, ])

agcls.AgClassCatalog.add_catalog_entry((5304317294078702737, 10007890522443202949), FigureOfMeritGraphics2DPositionOnMap)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DPositionOnMap"] = FigureOfMeritGraphics2DPositionOnMap

class FigureOfMeritGraphics2DColorOptions(SupportsDeleteCallback):
    """Color options for contour legend."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_background_method_offset = 1
    _set_background_method_offset = 2
    _get_text_method_offset = 3
    _set_text_method_offset = 4
    _get_background_color_method_offset = 5
    _set_background_color_method_offset = 6
    _get_text_color_method_offset = 7
    _set_text_color_method_offset = 8
    _metadata = {
        "iid_data" : (5632159083217097198, 18305046691816789172),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DColorOptions)

    _get_background_metadata = { "offset" : _get_background_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def background(self) -> agcolor.Color:
        """Do not use this property, as it is deprecated. Background color of legend."""
        return self._intf.get_property(FigureOfMeritGraphics2DColorOptions._metadata, FigureOfMeritGraphics2DColorOptions._get_background_metadata)

    _set_background_metadata = { "offset" : _set_background_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @background.setter
    def background(self, background:agcolor.Color) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DColorOptions._metadata, FigureOfMeritGraphics2DColorOptions._set_background_metadata, background)

    _get_text_metadata = { "offset" : _get_text_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def text(self) -> agcolor.Color:
        """Do not use this property, as it is deprecated. Text color of legend."""
        return self._intf.get_property(FigureOfMeritGraphics2DColorOptions._metadata, FigureOfMeritGraphics2DColorOptions._get_text_metadata)

    _set_text_metadata = { "offset" : _set_text_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @text.setter
    def text(self, text:agcolor.Color) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DColorOptions._metadata, FigureOfMeritGraphics2DColorOptions._set_text_metadata, text)

    _get_background_color_metadata = { "offset" : _get_background_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def background_color(self) -> agcolor.Color:
        """Background color of legend."""
        return self._intf.get_property(FigureOfMeritGraphics2DColorOptions._metadata, FigureOfMeritGraphics2DColorOptions._get_background_color_metadata)

    _set_background_color_metadata = { "offset" : _set_background_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @background_color.setter
    def background_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DColorOptions._metadata, FigureOfMeritGraphics2DColorOptions._set_background_color_metadata, color)

    _get_text_color_metadata = { "offset" : _get_text_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def text_color(self) -> agcolor.Color:
        """Text color of legend."""
        return self._intf.get_property(FigureOfMeritGraphics2DColorOptions._metadata, FigureOfMeritGraphics2DColorOptions._get_text_color_metadata)

    _set_text_color_metadata = { "offset" : _set_text_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @text_color.setter
    def text_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DColorOptions._metadata, FigureOfMeritGraphics2DColorOptions._set_text_color_metadata, color)

    _property_names[background] = "background"
    _property_names[text] = "text"
    _property_names[background_color] = "background_color"
    _property_names[text_color] = "text_color"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DColorOptions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DColorOptions)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DColorOptions, [FigureOfMeritGraphics2DColorOptions, ])

agcls.AgClassCatalog.add_catalog_entry((4684104341339017937, 14544201565239020199), FigureOfMeritGraphics2DColorOptions)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DColorOptions"] = FigureOfMeritGraphics2DColorOptions

class FigureOfMeritGraphics2DLegendWindow(SupportsDeleteCallback):
    """Properties of contour legend on 2D map."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_on_map_method_offset = 1
    _set_show_on_map_method_offset = 2
    _get_position_on_map_method_offset = 3
    _metadata = {
        "iid_data" : (5492531146822172637, 2403612580535460767),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DLegendWindow)

    _get_show_on_map_metadata = { "offset" : _get_show_on_map_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_on_map(self) -> bool:
        """Opt whether to display the legend on the 2D map."""
        return self._intf.get_property(FigureOfMeritGraphics2DLegendWindow._metadata, FigureOfMeritGraphics2DLegendWindow._get_show_on_map_metadata)

    _set_show_on_map_metadata = { "offset" : _set_show_on_map_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_on_map.setter
    def show_on_map(self, show_on_map:bool) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DLegendWindow._metadata, FigureOfMeritGraphics2DLegendWindow._set_show_on_map_metadata, show_on_map)

    _get_position_on_map_metadata = { "offset" : _get_position_on_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position_on_map(self) -> "FigureOfMeritGraphics2DPositionOnMap":
        """Get the position of the contour legend on the 2D map in pixel coordinates."""
        return self._intf.get_property(FigureOfMeritGraphics2DLegendWindow._metadata, FigureOfMeritGraphics2DLegendWindow._get_position_on_map_metadata)

    _property_names[show_on_map] = "show_on_map"
    _property_names[position_on_map] = "position_on_map"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DLegendWindow."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DLegendWindow)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DLegendWindow, [FigureOfMeritGraphics2DLegendWindow, ])

agcls.AgClassCatalog.add_catalog_entry((5071241253652050386, 9028786111855433903), FigureOfMeritGraphics2DLegendWindow)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DLegendWindow"] = FigureOfMeritGraphics2DLegendWindow

class FigureOfMeritGraphics3DLegendWindow(SupportsDeleteCallback):
    """3D graphics contours legend."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_on_map_method_offset = 1
    _set_show_on_map_method_offset = 2
    _get_position_on_map_method_offset = 3
    _get_translucency_method_offset = 4
    _set_translucency_method_offset = 5
    _metadata = {
        "iid_data" : (5709836073301841196, 17366782324876072622),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics3DLegendWindow)

    _get_show_on_map_metadata = { "offset" : _get_show_on_map_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_on_map(self) -> bool:
        """Opt whether to display a contour legend."""
        return self._intf.get_property(FigureOfMeritGraphics3DLegendWindow._metadata, FigureOfMeritGraphics3DLegendWindow._get_show_on_map_metadata)

    _set_show_on_map_metadata = { "offset" : _set_show_on_map_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_on_map.setter
    def show_on_map(self, show_on_map:bool) -> None:
        return self._intf.set_property(FigureOfMeritGraphics3DLegendWindow._metadata, FigureOfMeritGraphics3DLegendWindow._set_show_on_map_metadata, show_on_map)

    _get_position_on_map_metadata = { "offset" : _get_position_on_map_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position_on_map(self) -> "FigureOfMeritGraphics2DPositionOnMap":
        """Position where the contour legend is displayed."""
        return self._intf.get_property(FigureOfMeritGraphics3DLegendWindow._metadata, FigureOfMeritGraphics3DLegendWindow._get_position_on_map_metadata)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Translucency of the contour legend display."""
        return self._intf.get_property(FigureOfMeritGraphics3DLegendWindow._metadata, FigureOfMeritGraphics3DLegendWindow._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, value:float) -> None:
        return self._intf.set_property(FigureOfMeritGraphics3DLegendWindow._metadata, FigureOfMeritGraphics3DLegendWindow._set_translucency_metadata, value)

    _property_names[show_on_map] = "show_on_map"
    _property_names[position_on_map] = "position_on_map"
    _property_names[translucency] = "translucency"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics3DLegendWindow."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics3DLegendWindow)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics3DLegendWindow, [FigureOfMeritGraphics3DLegendWindow, ])

agcls.AgClassCatalog.add_catalog_entry((5680898720459634852, 10729251357588394162), FigureOfMeritGraphics3DLegendWindow)
agcls.AgTypeNameMap["FigureOfMeritGraphics3DLegendWindow"] = FigureOfMeritGraphics3DLegendWindow

class FigureOfMeritGraphics2DTextOptions(SupportsDeleteCallback):
    """Text display options for contour legend."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_title_method_offset = 1
    _set_title_method_offset = 2
    _get_number_of_decimal_digits_method_offset = 3
    _set_number_of_decimal_digits_method_offset = 4
    _get_floating_point_format_method_offset = 5
    _set_floating_point_format_method_offset = 6
    _metadata = {
        "iid_data" : (4784583265437198863, 15252766279425942415),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DTextOptions)

    _get_title_metadata = { "offset" : _get_title_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def title(self) -> str:
        """Legend title."""
        return self._intf.get_property(FigureOfMeritGraphics2DTextOptions._metadata, FigureOfMeritGraphics2DTextOptions._get_title_metadata)

    _set_title_metadata = { "offset" : _set_title_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @title.setter
    def title(self, title:str) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DTextOptions._metadata, FigureOfMeritGraphics2DTextOptions._set_title_metadata, title)

    _get_number_of_decimal_digits_metadata = { "offset" : _get_number_of_decimal_digits_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_decimal_digits(self) -> int:
        """Number of decimal digits to use in range values in legend."""
        return self._intf.get_property(FigureOfMeritGraphics2DTextOptions._metadata, FigureOfMeritGraphics2DTextOptions._get_number_of_decimal_digits_metadata)

    _set_number_of_decimal_digits_metadata = { "offset" : _set_number_of_decimal_digits_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_decimal_digits.setter
    def number_of_decimal_digits(self, num_decimal_digits:int) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DTextOptions._metadata, FigureOfMeritGraphics2DTextOptions._set_number_of_decimal_digits_metadata, num_decimal_digits)

    _get_floating_point_format_metadata = { "offset" : _get_floating_point_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DFloatingPointFormat),) }
    @property
    def floating_point_format(self) -> "FigureOfMeritGraphics2DFloatingPointFormat":
        """Text format for floating point numbers."""
        return self._intf.get_property(FigureOfMeritGraphics2DTextOptions._metadata, FigureOfMeritGraphics2DTextOptions._get_floating_point_format_metadata)

    _set_floating_point_format_metadata = { "offset" : _set_floating_point_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DFloatingPointFormat),) }
    @floating_point_format.setter
    def floating_point_format(self, floating_point_format:"FigureOfMeritGraphics2DFloatingPointFormat") -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DTextOptions._metadata, FigureOfMeritGraphics2DTextOptions._set_floating_point_format_metadata, floating_point_format)

    _property_names[title] = "title"
    _property_names[number_of_decimal_digits] = "number_of_decimal_digits"
    _property_names[floating_point_format] = "floating_point_format"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DTextOptions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DTextOptions)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DTextOptions, [FigureOfMeritGraphics2DTextOptions, ])

agcls.AgClassCatalog.add_catalog_entry((5209062537207709894, 12823249701245391763), FigureOfMeritGraphics2DTextOptions)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DTextOptions"] = FigureOfMeritGraphics2DTextOptions

class FigureOfMeritGraphics2DRangeColorOptions(SupportsDeleteCallback):
    """Range color options for contour legend."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_direction_method_offset = 1
    _set_direction_method_offset = 2
    _get_maximum_squares_per_row_method_offset = 3
    _set_maximum_squares_per_row_method_offset = 4
    _get_maximum_squares_per_column_method_offset = 5
    _set_maximum_squares_per_column_method_offset = 6
    _get_color_square_width_method_offset = 7
    _set_color_square_width_method_offset = 8
    _get_color_square_height_method_offset = 9
    _set_color_square_height_method_offset = 10
    _metadata = {
        "iid_data" : (5243772233508049968, 5795074573747962538),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DRangeColorOptions)

    _get_direction_metadata = { "offset" : _get_direction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DDirection),) }
    @property
    def direction(self) -> "FigureOfMeritGraphics2DDirection":
        """Direction and level order for layout of color squares."""
        return self._intf.get_property(FigureOfMeritGraphics2DRangeColorOptions._metadata, FigureOfMeritGraphics2DRangeColorOptions._get_direction_metadata)

    _set_direction_metadata = { "offset" : _set_direction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DDirection),) }
    @direction.setter
    def direction(self, direction:"FigureOfMeritGraphics2DDirection") -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DRangeColorOptions._metadata, FigureOfMeritGraphics2DRangeColorOptions._set_direction_metadata, direction)

    _get_maximum_squares_per_row_metadata = { "offset" : _get_maximum_squares_per_row_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_squares_per_row(self) -> int:
        """Maximum number of color squares per row."""
        return self._intf.get_property(FigureOfMeritGraphics2DRangeColorOptions._metadata, FigureOfMeritGraphics2DRangeColorOptions._get_maximum_squares_per_row_metadata)

    _set_maximum_squares_per_row_metadata = { "offset" : _set_maximum_squares_per_row_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_squares_per_row.setter
    def maximum_squares_per_row(self, max_squares_per_row:int) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DRangeColorOptions._metadata, FigureOfMeritGraphics2DRangeColorOptions._set_maximum_squares_per_row_metadata, max_squares_per_row)

    _get_maximum_squares_per_column_metadata = { "offset" : _get_maximum_squares_per_column_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_squares_per_column(self) -> int:
        """Maximum number of color squares per column."""
        return self._intf.get_property(FigureOfMeritGraphics2DRangeColorOptions._metadata, FigureOfMeritGraphics2DRangeColorOptions._get_maximum_squares_per_column_metadata)

    _set_maximum_squares_per_column_metadata = { "offset" : _set_maximum_squares_per_column_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_squares_per_column.setter
    def maximum_squares_per_column(self, max_squares_per_column:int) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DRangeColorOptions._metadata, FigureOfMeritGraphics2DRangeColorOptions._set_maximum_squares_per_column_metadata, max_squares_per_column)

    _get_color_square_width_metadata = { "offset" : _get_color_square_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def color_square_width(self) -> int:
        """Color square width in pixels."""
        return self._intf.get_property(FigureOfMeritGraphics2DRangeColorOptions._metadata, FigureOfMeritGraphics2DRangeColorOptions._get_color_square_width_metadata)

    _set_color_square_width_metadata = { "offset" : _set_color_square_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @color_square_width.setter
    def color_square_width(self, color_square_width:int) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DRangeColorOptions._metadata, FigureOfMeritGraphics2DRangeColorOptions._set_color_square_width_metadata, color_square_width)

    _get_color_square_height_metadata = { "offset" : _get_color_square_height_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def color_square_height(self) -> int:
        """Color square height in pixels."""
        return self._intf.get_property(FigureOfMeritGraphics2DRangeColorOptions._metadata, FigureOfMeritGraphics2DRangeColorOptions._get_color_square_height_metadata)

    _set_color_square_height_metadata = { "offset" : _set_color_square_height_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @color_square_height.setter
    def color_square_height(self, color_square_height:int) -> None:
        return self._intf.set_property(FigureOfMeritGraphics2DRangeColorOptions._metadata, FigureOfMeritGraphics2DRangeColorOptions._set_color_square_height_metadata, color_square_height)

    _property_names[direction] = "direction"
    _property_names[maximum_squares_per_row] = "maximum_squares_per_row"
    _property_names[maximum_squares_per_column] = "maximum_squares_per_column"
    _property_names[color_square_width] = "color_square_width"
    _property_names[color_square_height] = "color_square_height"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DRangeColorOptions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DRangeColorOptions)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DRangeColorOptions, [FigureOfMeritGraphics2DRangeColorOptions, ])

agcls.AgClassCatalog.add_catalog_entry((4902194483226152585, 1829872196080706695), FigureOfMeritGraphics2DRangeColorOptions)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DRangeColorOptions"] = FigureOfMeritGraphics2DRangeColorOptions

class FigureOfMeritGraphics2DLegend(SupportsDeleteCallback):
    """Contour legend properties."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_color_options_method_offset = 1
    _get_text_options_method_offset = 2
    _get_range_color_options_method_offset = 3
    _get_graphics_2d_window_method_offset = 4
    _get_graphics_3d_window_method_offset = 5
    _metadata = {
        "iid_data" : (5183890354468895553, 4066844794164606882),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics2DLegend)

    _get_color_options_metadata = { "offset" : _get_color_options_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def color_options(self) -> "FigureOfMeritGraphics2DColorOptions":
        """Color options for contour legend."""
        return self._intf.get_property(FigureOfMeritGraphics2DLegend._metadata, FigureOfMeritGraphics2DLegend._get_color_options_metadata)

    _get_text_options_metadata = { "offset" : _get_text_options_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def text_options(self) -> "FigureOfMeritGraphics2DTextOptions":
        """Text options for contour legend."""
        return self._intf.get_property(FigureOfMeritGraphics2DLegend._metadata, FigureOfMeritGraphics2DLegend._get_text_options_metadata)

    _get_range_color_options_metadata = { "offset" : _get_range_color_options_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range_color_options(self) -> "FigureOfMeritGraphics2DRangeColorOptions":
        """Range color options for contour legend."""
        return self._intf.get_property(FigureOfMeritGraphics2DLegend._metadata, FigureOfMeritGraphics2DLegend._get_range_color_options_metadata)

    _get_graphics_2d_window_metadata = { "offset" : _get_graphics_2d_window_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_2d_window(self) -> "FigureOfMeritGraphics2DLegendWindow":
        """Get the 2D graphics window on which the legend is to display."""
        return self._intf.get_property(FigureOfMeritGraphics2DLegend._metadata, FigureOfMeritGraphics2DLegend._get_graphics_2d_window_metadata)

    _get_graphics_3d_window_metadata = { "offset" : _get_graphics_3d_window_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d_window(self) -> "FigureOfMeritGraphics3DLegendWindow":
        """Get the 3D graphics window on which the legend is to display."""
        return self._intf.get_property(FigureOfMeritGraphics2DLegend._metadata, FigureOfMeritGraphics2DLegend._get_graphics_3d_window_metadata)

    _property_names[color_options] = "color_options"
    _property_names[text_options] = "text_options"
    _property_names[range_color_options] = "range_color_options"
    _property_names[graphics_2d_window] = "graphics_2d_window"
    _property_names[graphics_3d_window] = "graphics_3d_window"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics2DLegend."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics2DLegend)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics2DLegend, [FigureOfMeritGraphics2DLegend, ])

agcls.AgClassCatalog.add_catalog_entry((4614851112770981729, 4117286617726205573), FigureOfMeritGraphics2DLegend)
agcls.AgTypeNameMap["FigureOfMeritGraphics2DLegend"] = FigureOfMeritGraphics2DLegend

class FigureOfMeritNavigationAccuracyMethodElevationAngle(IFigureOfMeritNavigationAccuracyMethod, SupportsDeleteCallback):
    """Elevation Angle method for uncertainty in range measurements for the Navigation Accuracy Figure of Merit."""

    _num_methods = 3
    _vtable_offset = IFigureOfMeritNavigationAccuracyMethod._vtable_offset + IFigureOfMeritNavigationAccuracyMethod._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_file_path_method_offset = 3
    _metadata = {
        "iid_data" : (5149553372578066652, 15478877948861470608),
        "vtable_reference" : IFigureOfMeritNavigationAccuracyMethod._vtable_offset + IFigureOfMeritNavigationAccuracyMethod._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritNavigationAccuracyMethodElevationAngle)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Name of file used to import a table of elevation-dependent uncertainty data."""
        return self._intf.get_property(FigureOfMeritNavigationAccuracyMethodElevationAngle._metadata, FigureOfMeritNavigationAccuracyMethodElevationAngle._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, filename:str) -> None:
        return self._intf.set_property(FigureOfMeritNavigationAccuracyMethodElevationAngle._metadata, FigureOfMeritNavigationAccuracyMethodElevationAngle._set_filename_metadata, filename)

    _get_file_path_metadata = { "offset" : _get_file_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file_path(self) -> str:
        """Full file name and path used to import a table of elevation-dependent uncertainty data."""
        return self._intf.get_property(FigureOfMeritNavigationAccuracyMethodElevationAngle._metadata, FigureOfMeritNavigationAccuracyMethodElevationAngle._get_file_path_metadata)

    _property_names[filename] = "filename"
    _property_names[file_path] = "file_path"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritNavigationAccuracyMethodElevationAngle."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritNavigationAccuracyMethodElevationAngle)
        IFigureOfMeritNavigationAccuracyMethod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritNavigationAccuracyMethod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritNavigationAccuracyMethodElevationAngle, [FigureOfMeritNavigationAccuracyMethodElevationAngle, IFigureOfMeritNavigationAccuracyMethod])

agcls.AgClassCatalog.add_catalog_entry((5390753150133811344, 17494857108871627394), FigureOfMeritNavigationAccuracyMethodElevationAngle)
agcls.AgTypeNameMap["FigureOfMeritNavigationAccuracyMethodElevationAngle"] = FigureOfMeritNavigationAccuracyMethodElevationAngle

class FigureOfMeritNavigationAccuracyMethodConstant(IFigureOfMeritNavigationAccuracyMethod, SupportsDeleteCallback):
    """Constant Value method for uncertainty in range measurements for the Navigation Accuracy Figure of Merit."""

    _num_methods = 2
    _vtable_offset = IFigureOfMeritNavigationAccuracyMethod._vtable_offset + IFigureOfMeritNavigationAccuracyMethod._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _metadata = {
        "iid_data" : (4939957069915535505, 7433035314905048510),
        "vtable_reference" : IFigureOfMeritNavigationAccuracyMethod._vtable_offset + IFigureOfMeritNavigationAccuracyMethod._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritNavigationAccuracyMethodConstant)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of uncertainty in range measurements."""
        return self._intf.get_property(FigureOfMeritNavigationAccuracyMethodConstant._metadata, FigureOfMeritNavigationAccuracyMethodConstant._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(FigureOfMeritNavigationAccuracyMethodConstant._metadata, FigureOfMeritNavigationAccuracyMethodConstant._set_value_metadata, value)

    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritNavigationAccuracyMethodConstant."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritNavigationAccuracyMethodConstant)
        IFigureOfMeritNavigationAccuracyMethod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritNavigationAccuracyMethod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritNavigationAccuracyMethodConstant, [FigureOfMeritNavigationAccuracyMethodConstant, IFigureOfMeritNavigationAccuracyMethod])

agcls.AgClassCatalog.add_catalog_entry((4617973430193700240, 12334546096760469390), FigureOfMeritNavigationAccuracyMethodConstant)
agcls.AgTypeNameMap["FigureOfMeritNavigationAccuracyMethodConstant"] = FigureOfMeritNavigationAccuracyMethodConstant

class FigureOfMeritGraphics3DAttributes(SupportsDeleteCallback):
    """3D static graphics properties for a Figure of Merit."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_method_offset = 1
    _set_show_graphics_method_offset = 2
    _get_translucency_method_offset = 3
    _set_translucency_method_offset = 4
    _get_point_size_method_offset = 5
    _set_point_size_method_offset = 6
    _metadata = {
        "iid_data" : (5244996137591785929, 1646158707671198893),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics3DAttributes)

    _get_show_graphics_metadata = { "offset" : _get_show_graphics_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics(self) -> bool:
        """Opt whether to display coverage data for all points based on evaluation over the entire coverage interval."""
        return self._intf.get_property(FigureOfMeritGraphics3DAttributes._metadata, FigureOfMeritGraphics3DAttributes._get_show_graphics_metadata)

    _set_show_graphics_metadata = { "offset" : _set_show_graphics_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics.setter
    def show_graphics(self, is_visible:bool) -> None:
        return self._intf.set_property(FigureOfMeritGraphics3DAttributes._metadata, FigureOfMeritGraphics3DAttributes._set_show_graphics_metadata, is_visible)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Percentage translucency of the static graphics when grid points are filled."""
        return self._intf.get_property(FigureOfMeritGraphics3DAttributes._metadata, FigureOfMeritGraphics3DAttributes._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, translucency:float) -> None:
        return self._intf.set_property(FigureOfMeritGraphics3DAttributes._metadata, FigureOfMeritGraphics3DAttributes._set_translucency_metadata, translucency)

    _get_point_size_metadata = { "offset" : _get_point_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def point_size(self) -> float:
        """Get or set the size of a grid point for static graphics when grid points are not filled and smooth contours are not used."""
        return self._intf.get_property(FigureOfMeritGraphics3DAttributes._metadata, FigureOfMeritGraphics3DAttributes._get_point_size_metadata)

    _set_point_size_metadata = { "offset" : _set_point_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @point_size.setter
    def point_size(self, point_size:float) -> None:
        return self._intf.set_property(FigureOfMeritGraphics3DAttributes._metadata, FigureOfMeritGraphics3DAttributes._set_point_size_metadata, point_size)

    _property_names[show_graphics] = "show_graphics"
    _property_names[translucency] = "translucency"
    _property_names[point_size] = "point_size"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics3DAttributes."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics3DAttributes)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics3DAttributes, [FigureOfMeritGraphics3DAttributes, ])

agcls.AgClassCatalog.add_catalog_entry((5188903774580945351, 2192983602258125955), FigureOfMeritGraphics3DAttributes)
agcls.AgTypeNameMap["FigureOfMeritGraphics3DAttributes"] = FigureOfMeritGraphics3DAttributes

class FigureOfMeritGraphics3D(SupportsDeleteCallback):
    """Figure of Merit 3D graphics."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_static_method_offset = 1
    _get_animation_graphics_3d_settings_method_offset = 2
    _get_granularity_method_offset = 3
    _set_granularity_method_offset = 4
    _get_pixels_per_degree_method_offset = 5
    _set_pixels_per_degree_method_offset = 6
    _metadata = {
        "iid_data" : (5308025587370933883, 15828014858740846765),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGraphics3D)

    _get_static_metadata = { "offset" : _get_static_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def static(self) -> "FigureOfMeritGraphics3DAttributes":
        """Get the static graphics."""
        return self._intf.get_property(FigureOfMeritGraphics3D._metadata, FigureOfMeritGraphics3D._get_static_metadata)

    _get_animation_graphics_3d_settings_metadata = { "offset" : _get_animation_graphics_3d_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def animation_graphics_3d_settings(self) -> "FigureOfMeritGraphics3DAttributes":
        """Get the animation graphics:."""
        return self._intf.get_property(FigureOfMeritGraphics3D._metadata, FigureOfMeritGraphics3D._get_animation_graphics_3d_settings_metadata)

    _get_granularity_metadata = { "offset" : _get_granularity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def granularity(self) -> float:
        """Fill granularity: the sampling distance between points used when grid points are filled and smooth contours are not used."""
        return self._intf.get_property(FigureOfMeritGraphics3D._metadata, FigureOfMeritGraphics3D._get_granularity_metadata)

    _set_granularity_metadata = { "offset" : _set_granularity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @granularity.setter
    def granularity(self, granularity:float) -> None:
        return self._intf.set_property(FigureOfMeritGraphics3D._metadata, FigureOfMeritGraphics3D._set_granularity_metadata, granularity)

    _get_pixels_per_degree_metadata = { "offset" : _get_pixels_per_degree_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pixels_per_degree(self) -> float:
        """Get or set the number of pixels used in one degree in the temporary file created when smooth contours are used."""
        return self._intf.get_property(FigureOfMeritGraphics3D._metadata, FigureOfMeritGraphics3D._get_pixels_per_degree_metadata)

    _set_pixels_per_degree_metadata = { "offset" : _set_pixels_per_degree_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pixels_per_degree.setter
    def pixels_per_degree(self, pixels_per_deg:float) -> None:
        return self._intf.set_property(FigureOfMeritGraphics3D._metadata, FigureOfMeritGraphics3D._set_pixels_per_degree_metadata, pixels_per_deg)

    _property_names[static] = "static"
    _property_names[animation_graphics_3d_settings] = "animation_graphics_3d_settings"
    _property_names[granularity] = "granularity"
    _property_names[pixels_per_degree] = "pixels_per_degree"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGraphics3D, [FigureOfMeritGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5092623199903070561, 8177835774116195460), FigureOfMeritGraphics3D)
agcls.AgTypeNameMap["FigureOfMeritGraphics3D"] = FigureOfMeritGraphics3D

class AttitudeProfileGPS(IVehicleAttitudeProfile, SupportsDeleteCallback):
    """GPS Attitude profile."""

    _num_methods = 2
    _vtable_offset = IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods
    _get_model_type_method_offset = 1
    _set_model_type_method_offset = 2
    _metadata = {
        "iid_data" : (5247056000443054275, 17572897246039665289),
        "vtable_reference" : IVehicleAttitudeProfile._vtable_offset + IVehicleAttitudeProfile._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AttitudeProfileGPS)

    _get_model_type_metadata = { "offset" : _get_model_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(GPSAttitudeModelType),) }
    @property
    def model_type(self) -> "GPSAttitudeModelType":
        """Get or set the GPS attitude model type."""
        return self._intf.get_property(AttitudeProfileGPS._metadata, AttitudeProfileGPS._get_model_type_metadata)

    _set_model_type_metadata = { "offset" : _set_model_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(GPSAttitudeModelType),) }
    @model_type.setter
    def model_type(self, model_type:"GPSAttitudeModelType") -> None:
        return self._intf.set_property(AttitudeProfileGPS._metadata, AttitudeProfileGPS._set_model_type_metadata, model_type)

    _property_names[model_type] = "model_type"

    def __init__(self, source_object=None):
        """Construct an object of type AttitudeProfileGPS."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AttitudeProfileGPS)
        IVehicleAttitudeProfile.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeProfile._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AttitudeProfileGPS, [AttitudeProfileGPS, IVehicleAttitudeProfile])

agcls.AgClassCatalog.add_catalog_entry((5720510923509811731, 10922085899185409196), AttitudeProfileGPS)
agcls.AgTypeNameMap["AttitudeProfileGPS"] = AttitudeProfileGPS

class STKObjectModelContext(SupportsDeleteCallback):
    """Represents a factory class to create instances of the STKObjectRoot class."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _create_method_offset = 1
    _create_restrictive_method_offset = 2
    _metadata = {
        "iid_data" : (5596363533784184342, 13832444535515838629),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, STKObjectModelContext)

    _create_metadata = { "offset" : _create_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def create(self) -> "STKObjectRoot":
        """Create a non-restrictive root object."""
        return self._intf.invoke(STKObjectModelContext._metadata, STKObjectModelContext._create_metadata, OutArg())

    _create_restrictive_metadata = { "offset" : _create_restrictive_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def create_restrictive(self) -> "STKObjectRoot":
        """Create a restrictive root object."""
        return self._intf.invoke(STKObjectModelContext._metadata, STKObjectModelContext._create_restrictive_metadata, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type STKObjectModelContext."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, STKObjectModelContext)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, STKObjectModelContext, [STKObjectModelContext, ])

agcls.AgClassCatalog.add_catalog_entry((4914359684448815004, 17994888022236927364), STKObjectModelContext)
agcls.AgTypeNameMap["STKObjectModelContext"] = STKObjectModelContext

class MilitaryStandard2525bSymbols(SupportsDeleteCallback):
    """Represents the automation interface to generate 2525b symbology markers (military standard)."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_fill_enabled_method_offset = 1
    _set_fill_enabled_method_offset = 2
    _get_symbol_image_size_method_offset = 3
    _set_symbol_image_size_method_offset = 4
    _create_symbol_method_offset = 5
    _metadata = {
        "iid_data" : (4787946624537806669, 8488196018949483679),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MilitaryStandard2525bSymbols)

    _get_fill_enabled_metadata = { "offset" : _get_fill_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def fill_enabled(self) -> bool:
        """Turn on or off the fill for symbol id."""
        return self._intf.get_property(MilitaryStandard2525bSymbols._metadata, MilitaryStandard2525bSymbols._get_fill_enabled_metadata)

    _set_fill_enabled_metadata = { "offset" : _set_fill_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @fill_enabled.setter
    def fill_enabled(self, fill_enabled:bool) -> None:
        return self._intf.set_property(MilitaryStandard2525bSymbols._metadata, MilitaryStandard2525bSymbols._set_fill_enabled_metadata, fill_enabled)

    _get_symbol_image_size_metadata = { "offset" : _get_symbol_image_size_method_offset,
            "arg_types" : (POINTER(agcom.UINT),),
            "marshallers" : (agmarshall.UIntArg,) }
    @property
    def symbol_image_size(self) -> int:
        """Get or set the size for the symbol id. Dimensionless."""
        return self._intf.get_property(MilitaryStandard2525bSymbols._metadata, MilitaryStandard2525bSymbols._get_symbol_image_size_metadata)

    _set_symbol_image_size_metadata = { "offset" : _set_symbol_image_size_method_offset,
            "arg_types" : (agcom.UINT,),
            "marshallers" : (agmarshall.UIntArg,) }
    @symbol_image_size.setter
    def symbol_image_size(self, n_image_size:int) -> None:
        return self._intf.set_property(MilitaryStandard2525bSymbols._metadata, MilitaryStandard2525bSymbols._set_symbol_image_size_metadata, n_image_size)

    _create_symbol_metadata = { "offset" : _create_symbol_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def create_symbol(self, symbol_id:str, save_image_file_path:str) -> None:
        """Generate a 2525b symbol. Image will be saved to the file specified by SaveImageFilePath."""
        return self._intf.invoke(MilitaryStandard2525bSymbols._metadata, MilitaryStandard2525bSymbols._create_symbol_metadata, symbol_id, save_image_file_path)

    _property_names[fill_enabled] = "fill_enabled"
    _property_names[symbol_image_size] = "symbol_image_size"

    def __init__(self, source_object=None):
        """Construct an object of type MilitaryStandard2525bSymbols."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MilitaryStandard2525bSymbols)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MilitaryStandard2525bSymbols, [MilitaryStandard2525bSymbols, ])

agcls.AgClassCatalog.add_catalog_entry((5140810558128523156, 10872305554871987342), MilitaryStandard2525bSymbols)
agcls.AgTypeNameMap["MilitaryStandard2525bSymbols"] = MilitaryStandard2525bSymbols

class CoverageGridInspector(SupportsDeleteCallback):
    """Provide access to the Coverage Definition grid inspector properties."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _select_point_method_offset = 1
    _select_region_method_offset = 2
    _get_point_coverage_method_offset = 3
    _get_point_daily_coverage_method_offset = 4
    _get_point_probability_of_coverage_method_offset = 5
    _get_region_coverage_method_offset = 6
    _get_region_full_coverage_method_offset = 7
    _get_region_pass_coverage_method_offset = 8
    _clear_selection_method_offset = 9
    _get_message_method_offset = 10
    _get_grid_point_selection_method_offset = 11
    _metadata = {
        "iid_data" : (5350697261660556207, 17850302729821775791),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageGridInspector)

    _select_point_metadata = { "offset" : _select_point_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def select_point(self, lat:typing.Any, lon:typing.Any) -> None:
        """Lat param uses Latitude Dimension. Lon param uses Longitude Dimension."""
        return self._intf.invoke(CoverageGridInspector._metadata, CoverageGridInspector._select_point_metadata, lat, lon)

    _select_region_metadata = { "offset" : _select_region_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def select_region(self, region_name:str) -> None:
        """Select a region."""
        return self._intf.invoke(CoverageGridInspector._metadata, CoverageGridInspector._select_region_metadata, region_name)

    _get_point_coverage_metadata = { "offset" : _get_point_coverage_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point_coverage(self) -> "IDataProviderInfo":
        """Access for the point selected in the graphics window."""
        return self._intf.get_property(CoverageGridInspector._metadata, CoverageGridInspector._get_point_coverage_metadata)

    _get_point_daily_coverage_metadata = { "offset" : _get_point_daily_coverage_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point_daily_coverage(self) -> "IDataProviderInfo":
        """Access times for the point selected in the graphics window."""
        return self._intf.get_property(CoverageGridInspector._metadata, CoverageGridInspector._get_point_daily_coverage_metadata)

    _get_point_probability_of_coverage_metadata = { "offset" : _get_point_probability_of_coverage_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point_probability_of_coverage(self) -> "IDataProviderInfo":
        """Get the probability of coverage for the point selected in the graphics window being achieved as a function of the time past a request for coverage."""
        return self._intf.get_property(CoverageGridInspector._metadata, CoverageGridInspector._get_point_probability_of_coverage_metadata)

    _get_region_coverage_metadata = { "offset" : _get_region_coverage_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def region_coverage(self) -> "IDataProviderInfo":
        """Summary of coverage for the region selected in the graphics window."""
        return self._intf.get_property(CoverageGridInspector._metadata, CoverageGridInspector._get_region_coverage_metadata)

    _get_region_full_coverage_metadata = { "offset" : _get_region_full_coverage_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def region_full_coverage(self) -> "IDataProviderInfo":
        """Summary of the coverage intervals for the selected region, including access start and end times, duration of each interval and the percentage of the region covered during each pass."""
        return self._intf.get_property(CoverageGridInspector._metadata, CoverageGridInspector._get_region_full_coverage_metadata)

    _get_region_pass_coverage_metadata = { "offset" : _get_region_pass_coverage_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def region_pass_coverage(self) -> "IDataProviderInfo":
        """Detailed information about the intervals of time when each asset can provide coverage to the selected region."""
        return self._intf.get_property(CoverageGridInspector._metadata, CoverageGridInspector._get_region_pass_coverage_metadata)

    _clear_selection_metadata = { "offset" : _clear_selection_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear_selection(self) -> None:
        """Clear the selected point or region."""
        return self._intf.invoke(CoverageGridInspector._metadata, CoverageGridInspector._clear_selection_metadata, )

    _get_message_metadata = { "offset" : _get_message_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def message(self) -> str:
        """Retrieve the message when a point or region is selected."""
        return self._intf.get_property(CoverageGridInspector._metadata, CoverageGridInspector._get_message_metadata)

    _get_grid_point_selection_metadata = { "offset" : _get_grid_point_selection_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_grid_point_selection(self) -> "CoverageGridPointSelection":
        """Return a collection of grid points that allows the user to select points into the grid inspector."""
        return self._intf.invoke(CoverageGridInspector._metadata, CoverageGridInspector._get_grid_point_selection_metadata, OutArg())

    _property_names[point_coverage] = "point_coverage"
    _property_names[point_daily_coverage] = "point_daily_coverage"
    _property_names[point_probability_of_coverage] = "point_probability_of_coverage"
    _property_names[region_coverage] = "region_coverage"
    _property_names[region_full_coverage] = "region_full_coverage"
    _property_names[region_pass_coverage] = "region_pass_coverage"
    _property_names[message] = "message"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageGridInspector."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageGridInspector)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageGridInspector, [CoverageGridInspector, ])

agcls.AgClassCatalog.add_catalog_entry((5163896417623061570, 1404046981673810067), CoverageGridInspector)
agcls.AgTypeNameMap["CoverageGridInspector"] = CoverageGridInspector

class FigureOfMeritGridInspector(SupportsDeleteCallback):
    """Provide access to the FOM grid inspector properties."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _select_point_method_offset = 1
    _clear_selection_method_offset = 2
    _select_region_method_offset = 3
    _get_region_figure_of_merit_method_offset = 4
    _get_region_satisfaction_method_offset = 5
    _get_point_figure_of_merit_method_offset = 6
    _get_point_satisfaction_method_offset = 7
    _get_message_method_offset = 8
    _metadata = {
        "iid_data" : (5594134952771874892, 17160795280756765880),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritGridInspector)

    _select_point_metadata = { "offset" : _select_point_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg,) }
    def select_point(self, lat:typing.Any, lon:typing.Any) -> None:
        """Select point."""
        return self._intf.invoke(FigureOfMeritGridInspector._metadata, FigureOfMeritGridInspector._select_point_metadata, lat, lon)

    _clear_selection_metadata = { "offset" : _clear_selection_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear_selection(self) -> None:
        """Clear the selected point or region."""
        return self._intf.invoke(FigureOfMeritGridInspector._metadata, FigureOfMeritGridInspector._clear_selection_metadata, )

    _select_region_metadata = { "offset" : _select_region_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def select_region(self, region_name:str) -> None:
        """Select a region."""
        return self._intf.invoke(FigureOfMeritGridInspector._metadata, FigureOfMeritGridInspector._select_region_metadata, region_name)

    _get_region_figure_of_merit_metadata = { "offset" : _get_region_figure_of_merit_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def region_figure_of_merit(self) -> "IDataProviderInfo":
        """Retrieve the Region FOM data provider."""
        return self._intf.get_property(FigureOfMeritGridInspector._metadata, FigureOfMeritGridInspector._get_region_figure_of_merit_metadata)

    _get_region_satisfaction_metadata = { "offset" : _get_region_satisfaction_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def region_satisfaction(self) -> "IDataProviderInfo":
        """Retrieve the Region Satisfaction data provider."""
        return self._intf.get_property(FigureOfMeritGridInspector._metadata, FigureOfMeritGridInspector._get_region_satisfaction_metadata)

    _get_point_figure_of_merit_metadata = { "offset" : _get_point_figure_of_merit_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point_figure_of_merit(self) -> "IDataProviderInfo":
        """Retrieve the Point FOM data provider."""
        return self._intf.get_property(FigureOfMeritGridInspector._metadata, FigureOfMeritGridInspector._get_point_figure_of_merit_metadata)

    _get_point_satisfaction_metadata = { "offset" : _get_point_satisfaction_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point_satisfaction(self) -> "IDataProviderInfo":
        """Retrieve the Point Satisfaction data provider."""
        return self._intf.get_property(FigureOfMeritGridInspector._metadata, FigureOfMeritGridInspector._get_point_satisfaction_metadata)

    _get_message_metadata = { "offset" : _get_message_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def message(self) -> str:
        """Retrieve the message when a point or region is selected."""
        return self._intf.get_property(FigureOfMeritGridInspector._metadata, FigureOfMeritGridInspector._get_message_metadata)

    _property_names[region_figure_of_merit] = "region_figure_of_merit"
    _property_names[region_satisfaction] = "region_satisfaction"
    _property_names[point_figure_of_merit] = "point_figure_of_merit"
    _property_names[point_satisfaction] = "point_satisfaction"
    _property_names[message] = "message"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritGridInspector."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritGridInspector)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritGridInspector, [FigureOfMeritGridInspector, ])

agcls.AgClassCatalog.add_catalog_entry((5397258299193533703, 16199992731814547846), FigureOfMeritGridInspector)
agcls.AgTypeNameMap["FigureOfMeritGridInspector"] = FigureOfMeritGridInspector

class Graphics3DVaporTrail(SupportsDeleteCallback):
    """Configure the vapor trail 3D attributes."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_visible_method_offset = 1
    _set_visible_method_offset = 2
    _get_maximum_number_of_puffs_method_offset = 3
    _set_maximum_number_of_puffs_method_offset = 4
    _get_density_method_offset = 5
    _set_density_method_offset = 6
    _get_radius_method_offset = 7
    _set_radius_method_offset = 8
    _get_color_method_offset = 9
    _set_color_method_offset = 10
    _get_use_attach_point_method_offset = 11
    _set_use_attach_point_method_offset = 12
    _get_attachment_point_name_method_offset = 13
    _set_attachment_point_name_method_offset = 14
    _get_image_filename_method_offset = 15
    _set_image_filename_method_offset = 16
    _get_available_attachment_points_method_offset = 17
    _get_display_interval_method_offset = 18
    _metadata = {
        "iid_data" : (4882961134002340629, 6239843464438519215),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DVaporTrail)

    _get_visible_metadata = { "offset" : _get_visible_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def visible(self) -> bool:
        """Control whether to display the vapor trail in the 3D window."""
        return self._intf.get_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._get_visible_metadata)

    _set_visible_metadata = { "offset" : _set_visible_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @visible.setter
    def visible(self, show:bool) -> None:
        return self._intf.set_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._set_visible_metadata, show)

    _get_maximum_number_of_puffs_metadata = { "offset" : _get_maximum_number_of_puffs_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_number_of_puffs(self) -> int:
        """Maximum number of puffs trailing the vapor source. A higher number represents a longer vapor trail. Dimensionless."""
        return self._intf.get_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._get_maximum_number_of_puffs_metadata)

    _set_maximum_number_of_puffs_metadata = { "offset" : _set_maximum_number_of_puffs_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_number_of_puffs.setter
    def maximum_number_of_puffs(self, max_num:int) -> None:
        return self._intf.set_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._set_maximum_number_of_puffs_metadata, max_num)

    _get_density_metadata = { "offset" : _get_density_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def density(self) -> float:
        """Vapor density for a puff. A higher number produces denser looking vapor."""
        return self._intf.get_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._get_density_metadata)

    _set_density_metadata = { "offset" : _set_density_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @density.setter
    def density(self, density:float) -> None:
        return self._intf.set_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._set_density_metadata, density)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """True scale size for a puff. Uses Distance Dimension."""
        return self._intf.get_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._get_radius_metadata)

    _set_radius_metadata = { "offset" : _set_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius.setter
    def radius(self, radius:float) -> None:
        return self._intf.set_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._set_radius_metadata, radius)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Color of the vapor trail."""
        return self._intf.get_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._set_color_metadata, color)

    _get_use_attach_point_metadata = { "offset" : _get_use_attach_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_attach_point(self) -> bool:
        """If the model file for the object has attach points, use this attribute and the AttachPointName attribute to specify the point where the vapor trail should be attached. Otherwise the vapor trail will be attached to the center of the model."""
        return self._intf.get_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._get_use_attach_point_metadata)

    _set_use_attach_point_metadata = { "offset" : _set_use_attach_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_attach_point.setter
    def use_attach_point(self, use_attach:bool) -> None:
        return self._intf.set_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._set_use_attach_point_metadata, use_attach)

    _get_attachment_point_name_metadata = { "offset" : _get_attachment_point_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def attachment_point_name(self) -> str:
        """The name of the point on the object's model where the vapor trail will be attached."""
        return self._intf.get_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._get_attachment_point_name_metadata)

    _set_attachment_point_name_metadata = { "offset" : _set_attachment_point_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @attachment_point_name.setter
    def attachment_point_name(self, attach_name:str) -> None:
        return self._intf.set_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._set_attachment_point_name_metadata, attach_name)

    _get_image_filename_metadata = { "offset" : _get_image_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def image_filename(self) -> str:
        """Image file used to display the vapor trail."""
        return self._intf.get_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._get_image_filename_metadata)

    _set_image_filename_metadata = { "offset" : _set_image_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @image_filename.setter
    def image_filename(self, image_file:str) -> None:
        return self._intf.set_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._set_image_filename_metadata, image_file)

    _get_available_attachment_points_metadata = { "offset" : _get_available_attachment_points_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_attachment_points(self) -> list:
        """Get a list of available attach points."""
        return self._intf.get_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._get_available_attachment_points_metadata)

    _get_display_interval_metadata = { "offset" : _get_display_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def display_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Define a display interval of the vapor trail in the 3D window."""
        return self._intf.get_property(Graphics3DVaporTrail._metadata, Graphics3DVaporTrail._get_display_interval_metadata)

    _property_names[visible] = "visible"
    _property_names[maximum_number_of_puffs] = "maximum_number_of_puffs"
    _property_names[density] = "density"
    _property_names[radius] = "radius"
    _property_names[color] = "color"
    _property_names[use_attach_point] = "use_attach_point"
    _property_names[attachment_point_name] = "attachment_point_name"
    _property_names[image_filename] = "image_filename"
    _property_names[available_attachment_points] = "available_attachment_points"
    _property_names[display_interval] = "display_interval"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DVaporTrail."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DVaporTrail)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DVaporTrail, [Graphics3DVaporTrail, ])

agcls.AgClassCatalog.add_catalog_entry((5437982322456711751, 2403308545079833263), Graphics3DVaporTrail)
agcls.AgTypeNameMap["Graphics3DVaporTrail"] = Graphics3DVaporTrail

class VehicleTargetPointingIntervalCollection(SupportsDeleteCallback):
    """Represents a collection of scheduled targeting intervals."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5356620083604835495, 10008881923875875726),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleTargetPointingIntervalCollection)
    def __iter__(self):
        """Create an iterator for the VehicleTargetPointingIntervalCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "AttitudeScheduleTimesElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleTargetPointingIntervalCollection._metadata, VehicleTargetPointingIntervalCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "AttitudeScheduleTimesElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleTargetPointingIntervalCollection._metadata, VehicleTargetPointingIntervalCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleTargetPointingIntervalCollection._metadata, VehicleTargetPointingIntervalCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleTargetPointingIntervalCollection._metadata, VehicleTargetPointingIntervalCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleTargetPointingIntervalCollection._metadata, VehicleTargetPointingIntervalCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def add(self, start_time:typing.Any, stop_time:typing.Any) -> "AttitudeScheduleTimesElement":
        """Add a new element to the collection. Start/Stop Times use DateFormat Dimension."""
        return self._intf.invoke(VehicleTargetPointingIntervalCollection._metadata, VehicleTargetPointingIntervalCollection._add_metadata, start_time, stop_time, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleTargetPointingIntervalCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleTargetPointingIntervalCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleTargetPointingIntervalCollection, [VehicleTargetPointingIntervalCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5124293694023913704, 17765303864979831942), VehicleTargetPointingIntervalCollection)
agcls.AgTypeNameMap["VehicleTargetPointingIntervalCollection"] = VehicleTargetPointingIntervalCollection

class AccessConstraintPluginMinMax(IAccessConstraintMinMaxBase, IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for min/max plugin constraints."""

    _num_methods = 4
    _vtable_offset = IAccessConstraintMinMaxBase._vtable_offset + IAccessConstraintMinMaxBase._num_methods
    _get_raw_plugin_object_method_offset = 1
    _get_property_method_offset = 2
    _set_property_method_offset = 3
    _get_available_properties_method_offset = 4
    _metadata = {
        "iid_data" : (4996872696039503811, 12541255560426888888),
        "vtable_reference" : IAccessConstraintMinMaxBase._vtable_offset + IAccessConstraintMinMaxBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintPluginMinMax)

    _get_raw_plugin_object_metadata = { "offset" : _get_raw_plugin_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_raw_plugin_object(self) -> typing.Any:
        """Return a raw pointer to the access plugin constraint."""
        return self._intf.invoke(AccessConstraintPluginMinMax._metadata, AccessConstraintPluginMinMax._get_raw_plugin_object_metadata, OutArg())

    _get_property_metadata = { "offset" : _get_property_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg,) }
    def get_property(self, path:str) -> typing.Any:
        """Get a property."""
        return self._intf.invoke(AccessConstraintPluginMinMax._metadata, AccessConstraintPluginMinMax._get_property_metadata, path, OutArg())

    _set_property_metadata = { "offset" : _set_property_method_offset,
            "arg_types" : (agcom.BSTR, agcom.Variant,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg,) }
    def set_property(self, path:str, value:typing.Any) -> None:
        """Set a property."""
        return self._intf.invoke(AccessConstraintPluginMinMax._metadata, AccessConstraintPluginMinMax._set_property_metadata, path, value)

    _get_available_properties_metadata = { "offset" : _get_available_properties_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_properties(self) -> list:
        """Available properties."""
        return self._intf.get_property(AccessConstraintPluginMinMax._metadata, AccessConstraintPluginMinMax._get_available_properties_metadata)

    _property_names[available_properties] = "available_properties"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintPluginMinMax."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintPluginMinMax)
        IAccessConstraintMinMaxBase.__init__(self, source_object)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraintMinMaxBase._private_init(self, intf)
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintPluginMinMax, [AccessConstraintPluginMinMax, IAccessConstraintMinMaxBase, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((4736292829809346323, 322104576383358128), AccessConstraintPluginMinMax)
agcls.AgTypeNameMap["AccessConstraintPluginMinMax"] = AccessConstraintPluginMinMax

class ConstellationConstraints(SupportsDeleteCallback):
    """Constellation Constraints."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_from_parent_constraint_method_offset = 1
    _set_from_parent_constraint_method_offset = 2
    _get_to_parent_constraint_method_offset = 3
    _set_to_parent_constraint_method_offset = 4
    _get_from_restriction_type_method_offset = 5
    _set_from_restriction_type_method_offset = 6
    _get_from_restriction_method_offset = 7
    _get_to_restriction_type_method_offset = 8
    _set_to_restriction_type_method_offset = 9
    _get_to_restriction_method_offset = 10
    _metadata = {
        "iid_data" : (4690893069478252777, 6659160322904158859),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ConstellationConstraints)

    _get_from_parent_constraint_metadata = { "offset" : _get_from_parent_constraint_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ConstellationFromToParentConstraint),) }
    @property
    def from_parent_constraint(self) -> "ConstellationFromToParentConstraint":
        """Constrain accesses for constellation objects when used in a chain by parent relationships when in the 'from' access position."""
        return self._intf.get_property(ConstellationConstraints._metadata, ConstellationConstraints._get_from_parent_constraint_metadata)

    _set_from_parent_constraint_metadata = { "offset" : _set_from_parent_constraint_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ConstellationFromToParentConstraint),) }
    @from_parent_constraint.setter
    def from_parent_constraint(self, value:"ConstellationFromToParentConstraint") -> None:
        return self._intf.set_property(ConstellationConstraints._metadata, ConstellationConstraints._set_from_parent_constraint_metadata, value)

    _get_to_parent_constraint_metadata = { "offset" : _get_to_parent_constraint_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ConstellationFromToParentConstraint),) }
    @property
    def to_parent_constraint(self) -> "ConstellationFromToParentConstraint":
        """Constrain accesses for constellation objects when used in a chain by parent relationships when in the 'to' access position."""
        return self._intf.get_property(ConstellationConstraints._metadata, ConstellationConstraints._get_to_parent_constraint_metadata)

    _set_to_parent_constraint_metadata = { "offset" : _set_to_parent_constraint_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ConstellationFromToParentConstraint),) }
    @to_parent_constraint.setter
    def to_parent_constraint(self, value:"ConstellationFromToParentConstraint") -> None:
        return self._intf.set_property(ConstellationConstraints._metadata, ConstellationConstraints._set_to_parent_constraint_metadata, value)

    _get_from_restriction_type_metadata = { "offset" : _get_from_restriction_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ConstellationConstraintRestrictionType),) }
    @property
    def from_restriction_type(self) -> "ConstellationConstraintRestrictionType":
        """Get the current restriction type when in the from access position."""
        return self._intf.get_property(ConstellationConstraints._metadata, ConstellationConstraints._get_from_restriction_type_metadata)

    _set_from_restriction_type_metadata = { "offset" : _set_from_restriction_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ConstellationConstraintRestrictionType),) }
    def set_from_restriction_type(self, restriction:"ConstellationConstraintRestrictionType") -> None:
        """Set a new restriction type when in the from access position."""
        return self._intf.invoke(ConstellationConstraints._metadata, ConstellationConstraints._set_from_restriction_type_metadata, restriction)

    _get_from_restriction_metadata = { "offset" : _get_from_restriction_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def from_restriction(self) -> "IConstellationConstraintRestriction":
        """Return a restriction corresponding to the restriction type when in the from access position."""
        return self._intf.get_property(ConstellationConstraints._metadata, ConstellationConstraints._get_from_restriction_metadata)

    _get_to_restriction_type_metadata = { "offset" : _get_to_restriction_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ConstellationConstraintRestrictionType),) }
    @property
    def to_restriction_type(self) -> "ConstellationConstraintRestrictionType":
        """Get the current restriction type when in the to access position."""
        return self._intf.get_property(ConstellationConstraints._metadata, ConstellationConstraints._get_to_restriction_type_metadata)

    _set_to_restriction_type_metadata = { "offset" : _set_to_restriction_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ConstellationConstraintRestrictionType),) }
    def set_to_restriction_type(self, restriction:"ConstellationConstraintRestrictionType") -> None:
        """Set a new restriction type when in the to access position."""
        return self._intf.invoke(ConstellationConstraints._metadata, ConstellationConstraints._set_to_restriction_type_metadata, restriction)

    _get_to_restriction_metadata = { "offset" : _get_to_restriction_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def to_restriction(self) -> "IConstellationConstraintRestriction":
        """Return a restriction corresponding to the restriction type when in the to access position."""
        return self._intf.get_property(ConstellationConstraints._metadata, ConstellationConstraints._get_to_restriction_metadata)

    _property_names[from_parent_constraint] = "from_parent_constraint"
    _property_names[to_parent_constraint] = "to_parent_constraint"
    _property_names[from_restriction_type] = "from_restriction_type"
    _property_names[from_restriction] = "from_restriction"
    _property_names[to_restriction_type] = "to_restriction_type"
    _property_names[to_restriction] = "to_restriction"

    def __init__(self, source_object=None):
        """Construct an object of type ConstellationConstraints."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ConstellationConstraints)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ConstellationConstraints, [ConstellationConstraints, ])

agcls.AgClassCatalog.add_catalog_entry((5578760176347651723, 5799297367271579266), ConstellationConstraints)
agcls.AgTypeNameMap["ConstellationConstraints"] = ConstellationConstraints

class ConstellationConstraintObjectRestriction(IConstellationConstraintRestriction, SupportsDeleteCallback):
    """A restriction interface that is satisfied only when specified number of objects meets the conditions for the chain access."""

    _num_methods = 2
    _vtable_offset = IConstellationConstraintRestriction._vtable_offset + IConstellationConstraintRestriction._num_methods
    _get_number_of_objects_method_offset = 1
    _set_number_of_objects_method_offset = 2
    _metadata = {
        "iid_data" : (4741730390081370053, 18391330122314464911),
        "vtable_reference" : IConstellationConstraintRestriction._vtable_offset + IConstellationConstraintRestriction._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ConstellationConstraintObjectRestriction)

    _get_number_of_objects_metadata = { "offset" : _get_number_of_objects_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_objects(self) -> int:
        """A number of objects that must be satisfied to meet conditions for the chain access. Dimensionless."""
        return self._intf.get_property(ConstellationConstraintObjectRestriction._metadata, ConstellationConstraintObjectRestriction._get_number_of_objects_metadata)

    _set_number_of_objects_metadata = { "offset" : _set_number_of_objects_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_objects.setter
    def number_of_objects(self, value:int) -> None:
        return self._intf.set_property(ConstellationConstraintObjectRestriction._metadata, ConstellationConstraintObjectRestriction._set_number_of_objects_metadata, value)

    _property_names[number_of_objects] = "number_of_objects"

    def __init__(self, source_object=None):
        """Construct an object of type ConstellationConstraintObjectRestriction."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ConstellationConstraintObjectRestriction)
        IConstellationConstraintRestriction.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IConstellationConstraintRestriction._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ConstellationConstraintObjectRestriction, [ConstellationConstraintObjectRestriction, IConstellationConstraintRestriction])

agcls.AgClassCatalog.add_catalog_entry((5485268400131493758, 2464623055052104858), ConstellationConstraintObjectRestriction)
agcls.AgTypeNameMap["ConstellationConstraintObjectRestriction"] = ConstellationConstraintObjectRestriction

class ConstellationConstraintRestriction(IConstellationConstraintRestriction, SupportsDeleteCallback):
    """Class related to the constellation constraint restrictions."""
    def __init__(self, source_object=None):
        """Construct an object of type ConstellationConstraintRestriction."""
        SupportsDeleteCallback.__init__(self)
        IConstellationConstraintRestriction.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IConstellationConstraintRestriction._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ConstellationConstraintRestriction, [IConstellationConstraintRestriction])

agcls.AgClassCatalog.add_catalog_entry((5153171094762290387, 5640805191281733016), ConstellationConstraintRestriction)
agcls.AgTypeNameMap["ConstellationConstraintRestriction"] = ConstellationConstraintRestriction

class Constellation(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """
    Configuration options for constellations.

    Examples
    --------
    Define a constellation:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> # Satellite satellite: Satellite object
    >>> constellation = root.current_scenario.children.new(STKObjectType.CONSTELLATION, "MyConstellation")
    >>> constellation.objects.add_object(satellite)
    >>> constellation.objects.add("*/Facility/MyFacility")
    """

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_objects_method_offset = 1
    _get_constraints_method_offset = 2
    _get_graphics_method_offset = 3
    _get_routing_method_offset = 4
    _metadata = {
        "iid_data" : (4994261108434128909, 14057337444525436326),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Constellation)

    _get_objects_metadata = { "offset" : _get_objects_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def objects(self) -> "ObjectLinkCollection":
        """Get the collection of objects in the chain."""
        return self._intf.get_property(Constellation._metadata, Constellation._get_objects_metadata)

    _get_constraints_metadata = { "offset" : _get_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def constraints(self) -> "ConstellationConstraints":
        """Get the constellation's constraints."""
        return self._intf.get_property(Constellation._metadata, Constellation._get_constraints_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "ConstellationGraphics":
        """Constellation's 2D graphics settings."""
        return self._intf.get_property(Constellation._metadata, Constellation._get_graphics_metadata)

    _get_routing_metadata = { "offset" : _get_routing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def routing(self) -> "ConstellationRouting":
        """Constellation's routing settings."""
        return self._intf.get_property(Constellation._metadata, Constellation._get_routing_metadata)

    _property_names[objects] = "objects"
    _property_names[constraints] = "constraints"
    _property_names[graphics] = "graphics"
    _property_names[routing] = "routing"

    def __init__(self, source_object=None):
        """Construct an object of type Constellation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Constellation)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Constellation, [Constellation, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5113395961354841851, 15146281456980998531), Constellation)
agcls.AgTypeNameMap["Constellation"] = Constellation

class ConstellationGraphics(SupportsDeleteCallback):
    """Graphics options for constellation."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _hide_graphics_method_offset = 1
    _restore_graphics_method_offset = 2
    _metadata = {
        "iid_data" : (5652402916145189238, 5572974495615936394),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ConstellationGraphics)

    _hide_graphics_metadata = { "offset" : _hide_graphics_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def hide_graphics(self) -> None:
        """Remove the graphics for all objects within the constellation from the 2D Graphics window."""
        return self._intf.invoke(ConstellationGraphics._metadata, ConstellationGraphics._hide_graphics_metadata, )

    _restore_graphics_metadata = { "offset" : _restore_graphics_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def restore_graphics(self) -> None:
        """Restore the graphics for all objects within the constellation in the 2D Graphics window."""
        return self._intf.invoke(ConstellationGraphics._metadata, ConstellationGraphics._restore_graphics_metadata, )


    def __init__(self, source_object=None):
        """Construct an object of type ConstellationGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ConstellationGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ConstellationGraphics, [ConstellationGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5601132922117064746, 11626557344303257256), ConstellationGraphics)
agcls.AgTypeNameMap["ConstellationGraphics"] = ConstellationGraphics

class ConstellationRouting(SupportsDeleteCallback):
    """Routing options for constellation."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_routing_file_method_offset = 1
    _set_use_routing_file_method_offset = 2
    _get_routing_filename_method_offset = 3
    _set_routing_filename_method_offset = 4
    _metadata = {
        "iid_data" : (5592815919854606090, 5593518131754797244),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ConstellationRouting)

    _get_use_routing_file_metadata = { "offset" : _get_use_routing_file_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_routing_file(self) -> bool:
        """Opt to use a .routing file to when the constellation is used in a Chain."""
        return self._intf.get_property(ConstellationRouting._metadata, ConstellationRouting._get_use_routing_file_metadata)

    _set_use_routing_file_metadata = { "offset" : _set_use_routing_file_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_routing_file.setter
    def use_routing_file(self, use_routing_file:bool) -> None:
        return self._intf.set_property(ConstellationRouting._metadata, ConstellationRouting._set_use_routing_file_metadata, use_routing_file)

    _get_routing_filename_metadata = { "offset" : _get_routing_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def routing_filename(self) -> str:
        """Get or set the name of the .routing file used when the Constellation is in a chain."""
        return self._intf.get_property(ConstellationRouting._metadata, ConstellationRouting._get_routing_filename_metadata)

    _set_routing_filename_metadata = { "offset" : _set_routing_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @routing_filename.setter
    def routing_filename(self, routing_file:str) -> None:
        return self._intf.set_property(ConstellationRouting._metadata, ConstellationRouting._set_routing_filename_metadata, routing_file)

    _property_names[use_routing_file] = "use_routing_file"
    _property_names[routing_filename] = "routing_filename"

    def __init__(self, source_object=None):
        """Construct an object of type ConstellationRouting."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ConstellationRouting)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ConstellationRouting, [ConstellationRouting, ])

agcls.AgClassCatalog.add_catalog_entry((4728247305947745257, 9743769347161409922), ConstellationRouting)
agcls.AgTypeNameMap["ConstellationRouting"] = ConstellationRouting

class EventDetectionNoSubSampling(IEventDetectionStrategy, SupportsDeleteCallback):
    """Define event detection strategy that uses samples only (without sub-sampling)."""

    _num_methods = 0
    _vtable_offset = IEventDetectionStrategy._vtable_offset + IEventDetectionStrategy._num_methods
    _metadata = {
        "iid_data" : (4858490480703287700, 1685837354037303205),
        "vtable_reference" : IEventDetectionStrategy._vtable_offset + IEventDetectionStrategy._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EventDetectionNoSubSampling)


    def __init__(self, source_object=None):
        """Construct an object of type EventDetectionNoSubSampling."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EventDetectionNoSubSampling)
        IEventDetectionStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEventDetectionStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EventDetectionNoSubSampling, [EventDetectionNoSubSampling, IEventDetectionStrategy])

agcls.AgClassCatalog.add_catalog_entry((5000242414977485148, 11870272235856390839), EventDetectionNoSubSampling)
agcls.AgTypeNameMap["EventDetectionNoSubSampling"] = EventDetectionNoSubSampling

class EventDetectionSubSampling(IEventDetectionStrategy, SupportsDeleteCallback):
    """Interface for event detection strategy involving subsampling."""

    _num_methods = 6
    _vtable_offset = IEventDetectionStrategy._vtable_offset + IEventDetectionStrategy._num_methods
    _get_time_convergence_method_offset = 1
    _set_time_convergence_method_offset = 2
    _get_absolute_value_convergence_method_offset = 3
    _set_absolute_value_convergence_method_offset = 4
    _get_relative_value_convergence_method_offset = 5
    _set_relative_value_convergence_method_offset = 6
    _metadata = {
        "iid_data" : (4679348052049938358, 3540531898247902396),
        "vtable_reference" : IEventDetectionStrategy._vtable_offset + IEventDetectionStrategy._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EventDetectionSubSampling)

    _get_time_convergence_metadata = { "offset" : _get_time_convergence_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_convergence(self) -> float:
        """Time convergence value used in access computations. Uses Time Dimension."""
        return self._intf.get_property(EventDetectionSubSampling._metadata, EventDetectionSubSampling._get_time_convergence_metadata)

    _set_time_convergence_metadata = { "offset" : _set_time_convergence_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_convergence.setter
    def time_convergence(self, time_convergence:float) -> None:
        return self._intf.set_property(EventDetectionSubSampling._metadata, EventDetectionSubSampling._set_time_convergence_metadata, time_convergence)

    _get_absolute_value_convergence_metadata = { "offset" : _get_absolute_value_convergence_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def absolute_value_convergence(self) -> float:
        """Use absolute convergence value for access. Dimensionless."""
        return self._intf.get_property(EventDetectionSubSampling._metadata, EventDetectionSubSampling._get_absolute_value_convergence_metadata)

    _set_absolute_value_convergence_metadata = { "offset" : _set_absolute_value_convergence_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @absolute_value_convergence.setter
    def absolute_value_convergence(self, abs_value_convergence:float) -> None:
        return self._intf.set_property(EventDetectionSubSampling._metadata, EventDetectionSubSampling._set_absolute_value_convergence_metadata, abs_value_convergence)

    _get_relative_value_convergence_metadata = { "offset" : _get_relative_value_convergence_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def relative_value_convergence(self) -> float:
        """Use relative convergence value for access. Dimensionless."""
        return self._intf.get_property(EventDetectionSubSampling._metadata, EventDetectionSubSampling._get_relative_value_convergence_metadata)

    _set_relative_value_convergence_metadata = { "offset" : _set_relative_value_convergence_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @relative_value_convergence.setter
    def relative_value_convergence(self, rel_value_convergence:float) -> None:
        return self._intf.set_property(EventDetectionSubSampling._metadata, EventDetectionSubSampling._set_relative_value_convergence_metadata, rel_value_convergence)

    _property_names[time_convergence] = "time_convergence"
    _property_names[absolute_value_convergence] = "absolute_value_convergence"
    _property_names[relative_value_convergence] = "relative_value_convergence"

    def __init__(self, source_object=None):
        """Construct an object of type EventDetectionSubSampling."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EventDetectionSubSampling)
        IEventDetectionStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEventDetectionStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EventDetectionSubSampling, [EventDetectionSubSampling, IEventDetectionStrategy])

agcls.AgClassCatalog.add_catalog_entry((5442942929726398247, 170462559276519307), EventDetectionSubSampling)
agcls.AgTypeNameMap["EventDetectionSubSampling"] = EventDetectionSubSampling

class SamplingMethodAdaptive(ISamplingMethodStrategy, SupportsDeleteCallback):
    """Define an adaptive sampling method."""

    _num_methods = 4
    _vtable_offset = ISamplingMethodStrategy._vtable_offset + ISamplingMethodStrategy._num_methods
    _get_maximum_time_step_method_offset = 1
    _set_maximum_time_step_method_offset = 2
    _get_minimum_time_step_method_offset = 3
    _set_minimum_time_step_method_offset = 4
    _metadata = {
        "iid_data" : (4648808223036591542, 8753563488679226279),
        "vtable_reference" : ISamplingMethodStrategy._vtable_offset + ISamplingMethodStrategy._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SamplingMethodAdaptive)

    _get_maximum_time_step_metadata = { "offset" : _get_maximum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_time_step(self) -> float:
        """Maximum sampling step size used in access calculations. Uses Time Dimension."""
        return self._intf.get_property(SamplingMethodAdaptive._metadata, SamplingMethodAdaptive._get_maximum_time_step_metadata)

    _set_maximum_time_step_metadata = { "offset" : _set_maximum_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_time_step.setter
    def maximum_time_step(self, max_time_step:float) -> None:
        return self._intf.set_property(SamplingMethodAdaptive._metadata, SamplingMethodAdaptive._set_maximum_time_step_metadata, max_time_step)

    _get_minimum_time_step_metadata = { "offset" : _get_minimum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_time_step(self) -> float:
        """Minimum sampling step size used in access calculations. Uses Time Dimension."""
        return self._intf.get_property(SamplingMethodAdaptive._metadata, SamplingMethodAdaptive._get_minimum_time_step_metadata)

    _set_minimum_time_step_metadata = { "offset" : _set_minimum_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_time_step.setter
    def minimum_time_step(self, min_time_step:float) -> None:
        return self._intf.set_property(SamplingMethodAdaptive._metadata, SamplingMethodAdaptive._set_minimum_time_step_metadata, min_time_step)

    _property_names[maximum_time_step] = "maximum_time_step"
    _property_names[minimum_time_step] = "minimum_time_step"

    def __init__(self, source_object=None):
        """Construct an object of type SamplingMethodAdaptive."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SamplingMethodAdaptive)
        ISamplingMethodStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISamplingMethodStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SamplingMethodAdaptive, [SamplingMethodAdaptive, ISamplingMethodStrategy])

agcls.AgClassCatalog.add_catalog_entry((5008734376871227563, 13816328263885621389), SamplingMethodAdaptive)
agcls.AgTypeNameMap["SamplingMethodAdaptive"] = SamplingMethodAdaptive

class SamplingMethodFixedStep(ISamplingMethodStrategy, SupportsDeleteCallback):
    """Define a fixed time-step sampling method."""

    _num_methods = 4
    _vtable_offset = ISamplingMethodStrategy._vtable_offset + ISamplingMethodStrategy._num_methods
    _get_fixed_time_step_method_offset = 1
    _set_fixed_time_step_method_offset = 2
    _get_time_bound_method_offset = 3
    _set_time_bound_method_offset = 4
    _metadata = {
        "iid_data" : (4810358249812019218, 6350437042724994454),
        "vtable_reference" : ISamplingMethodStrategy._vtable_offset + ISamplingMethodStrategy._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SamplingMethodFixedStep)

    _get_fixed_time_step_metadata = { "offset" : _get_fixed_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fixed_time_step(self) -> float:
        """Fixed sampling time step. Uses Time Dimension."""
        return self._intf.get_property(SamplingMethodFixedStep._metadata, SamplingMethodFixedStep._get_fixed_time_step_metadata)

    _set_fixed_time_step_metadata = { "offset" : _set_fixed_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fixed_time_step.setter
    def fixed_time_step(self, fixed_time_step:float) -> None:
        return self._intf.set_property(SamplingMethodFixedStep._metadata, SamplingMethodFixedStep._set_fixed_time_step_metadata, fixed_time_step)

    _get_time_bound_metadata = { "offset" : _get_time_bound_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_bound(self) -> float:
        """Duration used to align sample times with UTC. Uses Time Dimension."""
        return self._intf.get_property(SamplingMethodFixedStep._metadata, SamplingMethodFixedStep._get_time_bound_metadata)

    _set_time_bound_metadata = { "offset" : _set_time_bound_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_bound.setter
    def time_bound(self, time_bound:float) -> None:
        return self._intf.set_property(SamplingMethodFixedStep._metadata, SamplingMethodFixedStep._set_time_bound_metadata, time_bound)

    _property_names[fixed_time_step] = "fixed_time_step"
    _property_names[time_bound] = "time_bound"

    def __init__(self, source_object=None):
        """Construct an object of type SamplingMethodFixedStep."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SamplingMethodFixedStep)
        ISamplingMethodStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISamplingMethodStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SamplingMethodFixedStep, [SamplingMethodFixedStep, ISamplingMethodStrategy])

agcls.AgClassCatalog.add_catalog_entry((5336903131240332581, 7170500265571945369), SamplingMethodFixedStep)
agcls.AgTypeNameMap["SamplingMethodFixedStep"] = SamplingMethodFixedStep

class SensorAccessAdvancedSettings(IAccessAdvanced, SupportsDeleteCallback):
    """Interface for configuring sensor's advanced targeting access computation properties."""

    _num_methods = 0
    _vtable_offset = IAccessAdvanced._vtable_offset + IAccessAdvanced._num_methods
    _metadata = {
        "iid_data" : (5559105164726284438, 5018545289908344495),
        "vtable_reference" : IAccessAdvanced._vtable_offset + IAccessAdvanced._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorAccessAdvancedSettings)


    def __init__(self, source_object=None):
        """Construct an object of type SensorAccessAdvancedSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorAccessAdvancedSettings)
        IAccessAdvanced.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessAdvanced._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorAccessAdvancedSettings, [SensorAccessAdvancedSettings, IAccessAdvanced])

agcls.AgClassCatalog.add_catalog_entry((5002676322669288062, 2550602604747699848), SensorAccessAdvancedSettings)
agcls.AgTypeNameMap["SensorAccessAdvancedSettings"] = SensorAccessAdvancedSettings

class VehicleAccessAdvancedSettings(IAccessAdvanced, SupportsDeleteCallback):
    """Interface for configuring a vehicle's advanced targeting access computation properties."""

    _num_methods = 4
    _vtable_offset = IAccessAdvanced._vtable_offset + IAccessAdvanced._num_methods
    _get_use_light_time_delay_method_offset = 1
    _set_use_light_time_delay_method_offset = 2
    _get_time_sense_method_offset = 3
    _set_time_sense_method_offset = 4
    _metadata = {
        "iid_data" : (5221789735012626678, 17215259608705693873),
        "vtable_reference" : IAccessAdvanced._vtable_offset + IAccessAdvanced._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAccessAdvancedSettings)

    _get_use_light_time_delay_metadata = { "offset" : _get_use_light_time_delay_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_light_time_delay(self) -> bool:
        """Opt whether light time delay is applied when computing accesses."""
        return self._intf.get_property(VehicleAccessAdvancedSettings._metadata, VehicleAccessAdvancedSettings._get_use_light_time_delay_metadata)

    _set_use_light_time_delay_metadata = { "offset" : _set_use_light_time_delay_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_light_time_delay.setter
    def use_light_time_delay(self, use_light_time_delay:bool) -> None:
        return self._intf.set_property(VehicleAccessAdvancedSettings._metadata, VehicleAccessAdvancedSettings._set_use_light_time_delay_metadata, use_light_time_delay)

    _get_time_sense_metadata = { "offset" : _get_time_sense_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(IvTimeSense),) }
    @property
    def time_sense(self) -> "IvTimeSense":
        """Signal sense of the clock host."""
        return self._intf.get_property(VehicleAccessAdvancedSettings._metadata, VehicleAccessAdvancedSettings._get_time_sense_metadata)

    _set_time_sense_metadata = { "offset" : _set_time_sense_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(IvTimeSense),) }
    @time_sense.setter
    def time_sense(self, time_sense:"IvTimeSense") -> None:
        return self._intf.set_property(VehicleAccessAdvancedSettings._metadata, VehicleAccessAdvancedSettings._set_time_sense_metadata, time_sense)

    _property_names[use_light_time_delay] = "use_light_time_delay"
    _property_names[time_sense] = "time_sense"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAccessAdvancedSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAccessAdvancedSettings)
        IAccessAdvanced.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessAdvanced._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAccessAdvancedSettings, [VehicleAccessAdvancedSettings, IAccessAdvanced])

agcls.AgClassCatalog.add_catalog_entry((5674127080159753899, 4655346519151488660), VehicleAccessAdvancedSettings)
agcls.AgTypeNameMap["VehicleAccessAdvancedSettings"] = VehicleAccessAdvancedSettings

class AccessSampling(SupportsDeleteCallback):
    """Define properties and methods to configure the sampling strategy used in access computations."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _set_type_method_offset = 2
    _is_type_supported_method_offset = 3
    _get_supported_types_method_offset = 4
    _get_strategy_method_offset = 5
    _metadata = {
        "iid_data" : (5653711381785291043, 10509446716291925672),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessSampling)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SamplingMethod),) }
    @property
    def type(self) -> "SamplingMethod":
        """Type of sampling method used."""
        return self._intf.get_property(AccessSampling._metadata, AccessSampling._get_type_metadata)

    _set_type_metadata = { "offset" : _set_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SamplingMethod),) }
    def set_type(self, sampling_method:"SamplingMethod") -> None:
        """Set the type of sampling method."""
        return self._intf.invoke(AccessSampling._metadata, AccessSampling._set_type_metadata, sampling_method)

    _is_type_supported_metadata = { "offset" : _is_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(SamplingMethod), agmarshall.VariantBoolArg,) }
    def is_type_supported(self, sampling_method:"SamplingMethod") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(AccessSampling._metadata, AccessSampling._is_type_supported_metadata, sampling_method, OutArg())

    _get_supported_types_metadata = { "offset" : _get_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(AccessSampling._metadata, AccessSampling._get_supported_types_metadata)

    _get_strategy_metadata = { "offset" : _get_strategy_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def strategy(self) -> "ISamplingMethodStrategy":
        """Sampling method strategy."""
        return self._intf.get_property(AccessSampling._metadata, AccessSampling._get_strategy_metadata)

    _property_names[type] = "type"
    _property_names[supported_types] = "supported_types"
    _property_names[strategy] = "strategy"

    def __init__(self, source_object=None):
        """Construct an object of type AccessSampling."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessSampling)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessSampling, [AccessSampling, ])

agcls.AgClassCatalog.add_catalog_entry((4671723875794045926, 12712560248565949843), AccessSampling)
agcls.AgTypeNameMap["AccessSampling"] = AccessSampling

class AccessEventDetection(SupportsDeleteCallback):
    """Define properties and methods to configure the event detection strategy used in access computations."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _set_type_method_offset = 2
    _is_type_supported_method_offset = 3
    _get_supported_types_method_offset = 4
    _get_strategy_method_offset = 5
    _metadata = {
        "iid_data" : (4721265330175678838, 868174859399571097),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessEventDetection)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EventDetection),) }
    @property
    def type(self) -> "EventDetection":
        """Get the type of event detection (e.g., with or without subsampling)."""
        return self._intf.get_property(AccessEventDetection._metadata, AccessEventDetection._get_type_metadata)

    _set_type_metadata = { "offset" : _set_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EventDetection),) }
    def set_type(self, event_detection:"EventDetection") -> None:
        """Set the event detection type."""
        return self._intf.invoke(AccessEventDetection._metadata, AccessEventDetection._set_type_metadata, event_detection)

    _is_type_supported_metadata = { "offset" : _is_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(EventDetection), agmarshall.VariantBoolArg,) }
    def is_type_supported(self, event_detection:"EventDetection") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(AccessEventDetection._metadata, AccessEventDetection._is_type_supported_metadata, event_detection, OutArg())

    _get_supported_types_metadata = { "offset" : _get_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(AccessEventDetection._metadata, AccessEventDetection._get_supported_types_metadata)

    _get_strategy_metadata = { "offset" : _get_strategy_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def strategy(self) -> "IEventDetectionStrategy":
        """Get the selected event detection strategy."""
        return self._intf.get_property(AccessEventDetection._metadata, AccessEventDetection._get_strategy_metadata)

    _property_names[type] = "type"
    _property_names[supported_types] = "supported_types"
    _property_names[strategy] = "strategy"

    def __init__(self, source_object=None):
        """Construct an object of type AccessEventDetection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessEventDetection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessEventDetection, [AccessEventDetection, ])

agcls.AgClassCatalog.add_catalog_entry((5331148692516204323, 12297269658158332807), AccessEventDetection)
agcls.AgTypeNameMap["AccessEventDetection"] = AccessEventDetection

class SensorGraphics3DProjectionElement(SupportsDeleteCallback):
    """Represents elements of the space and target projection collections."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_method_offset = 1
    _set_time_method_offset = 2
    _get_distance_method_offset = 3
    _set_distance_method_offset = 4
    _metadata = {
        "iid_data" : (4811146306330955433, 14708049441475260828),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorGraphics3DProjectionElement)

    _get_time_metadata = { "offset" : _get_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def time(self) -> typing.Any:
        """Time used together with distance to compute the space projection. Uses DateFormat Dimension."""
        return self._intf.get_property(SensorGraphics3DProjectionElement._metadata, SensorGraphics3DProjectionElement._get_time_metadata)

    _set_time_metadata = { "offset" : _set_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @time.setter
    def time(self, time:typing.Any) -> None:
        return self._intf.set_property(SensorGraphics3DProjectionElement._metadata, SensorGraphics3DProjectionElement._set_time_metadata, time)

    _get_distance_metadata = { "offset" : _get_distance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def distance(self) -> float:
        """Distance used together with time to compute the space projection. Uses Distance Dimension."""
        return self._intf.get_property(SensorGraphics3DProjectionElement._metadata, SensorGraphics3DProjectionElement._get_distance_metadata)

    _set_distance_metadata = { "offset" : _set_distance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @distance.setter
    def distance(self, distance:float) -> None:
        return self._intf.set_property(SensorGraphics3DProjectionElement._metadata, SensorGraphics3DProjectionElement._set_distance_metadata, distance)

    _property_names[time] = "time"
    _property_names[distance] = "distance"

    def __init__(self, source_object=None):
        """Construct an object of type SensorGraphics3DProjectionElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorGraphics3DProjectionElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorGraphics3DProjectionElement, [SensorGraphics3DProjectionElement, ])

agcls.AgClassCatalog.add_catalog_entry((5616723973319170351, 14920294512577202861), SensorGraphics3DProjectionElement)
agcls.AgTypeNameMap["SensorGraphics3DProjectionElement"] = SensorGraphics3DProjectionElement

class SensorGraphics3DSpaceProjectionCollection(SupportsDeleteCallback):
    """Time Dependent Space Projection List."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5195813910003161712, 1565745777584577447),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorGraphics3DSpaceProjectionCollection)
    def __iter__(self):
        """Create an iterator for the SensorGraphics3DSpaceProjectionCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "SensorGraphics3DProjectionElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(SensorGraphics3DSpaceProjectionCollection._metadata, SensorGraphics3DSpaceProjectionCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "SensorGraphics3DProjectionElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(SensorGraphics3DSpaceProjectionCollection._metadata, SensorGraphics3DSpaceProjectionCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(SensorGraphics3DSpaceProjectionCollection._metadata, SensorGraphics3DSpaceProjectionCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(SensorGraphics3DSpaceProjectionCollection._metadata, SensorGraphics3DSpaceProjectionCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(SensorGraphics3DSpaceProjectionCollection._metadata, SensorGraphics3DSpaceProjectionCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "SensorGraphics3DProjectionElement":
        """Add a new element to the collection."""
        return self._intf.invoke(SensorGraphics3DSpaceProjectionCollection._metadata, SensorGraphics3DSpaceProjectionCollection._add_metadata, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type SensorGraphics3DSpaceProjectionCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorGraphics3DSpaceProjectionCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorGraphics3DSpaceProjectionCollection, [SensorGraphics3DSpaceProjectionCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5257369916018287389, 8470409498700990130), SensorGraphics3DSpaceProjectionCollection)
agcls.AgTypeNameMap["SensorGraphics3DSpaceProjectionCollection"] = SensorGraphics3DSpaceProjectionCollection

class SensorGraphics3DTargetProjectionCollection(SupportsDeleteCallback):
    """Time Dependent Target Projection List."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5489292317990338881, 12387169597607272620),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorGraphics3DTargetProjectionCollection)
    def __iter__(self):
        """Create an iterator for the SensorGraphics3DTargetProjectionCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "SensorGraphics3DProjectionElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(SensorGraphics3DTargetProjectionCollection._metadata, SensorGraphics3DTargetProjectionCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "SensorGraphics3DProjectionElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(SensorGraphics3DTargetProjectionCollection._metadata, SensorGraphics3DTargetProjectionCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(SensorGraphics3DTargetProjectionCollection._metadata, SensorGraphics3DTargetProjectionCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(SensorGraphics3DTargetProjectionCollection._metadata, SensorGraphics3DTargetProjectionCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(SensorGraphics3DTargetProjectionCollection._metadata, SensorGraphics3DTargetProjectionCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "SensorGraphics3DProjectionElement":
        """Add a new element to the collection."""
        return self._intf.invoke(SensorGraphics3DTargetProjectionCollection._metadata, SensorGraphics3DTargetProjectionCollection._add_metadata, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type SensorGraphics3DTargetProjectionCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorGraphics3DTargetProjectionCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorGraphics3DTargetProjectionCollection, [SensorGraphics3DTargetProjectionCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4954541558912328557, 8339277480544761476), SensorGraphics3DTargetProjectionCollection)
agcls.AgTypeNameMap["SensorGraphics3DTargetProjectionCollection"] = SensorGraphics3DTargetProjectionCollection

class CentralBodyTerrainCollectionElement(SupportsDeleteCallback):
    """Element of collection of terrain associated with central body."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_central_body_method_offset = 1
    _get_terrain_collection_method_offset = 2
    _get_altitude_method_offset = 3
    _get_altitude_batch_method_offset = 4
    _get_altitudes_between_points_at_resolution_method_offset = 5
    _get_extent_maximum_resolution_method_offset = 6
    _metadata = {
        "iid_data" : (5573101028770913700, 11755446330399207860),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CentralBodyTerrainCollectionElement)

    _get_central_body_metadata = { "offset" : _get_central_body_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body(self) -> str:
        """Name of central body."""
        return self._intf.get_property(CentralBodyTerrainCollectionElement._metadata, CentralBodyTerrainCollectionElement._get_central_body_metadata)

    _get_terrain_collection_metadata = { "offset" : _get_terrain_collection_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def terrain_collection(self) -> "TerrainCollection":
        """Terrain collection."""
        return self._intf.get_property(CentralBodyTerrainCollectionElement._metadata, CentralBodyTerrainCollectionElement._get_terrain_collection_metadata)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.LONG, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.EnumArg(AltitudeReferenceType), agmarshall.DoubleArg,) }
    def get_altitude(self, lat:typing.Any, lon:typing.Any, alt_ref:"AltitudeReferenceType") -> float:
        """Return the altitude at the specified position relative to the input reference surface. If the specified position is outside terrain sources, the altitude of 0.0 relative to the default reference ellipsoid (WGS84 for Earth) is returned."""
        return self._intf.invoke(CentralBodyTerrainCollectionElement._metadata, CentralBodyTerrainCollectionElement._get_altitude_metadata, lat, lon, alt_ref, OutArg())

    _get_altitude_batch_metadata = { "offset" : _get_altitude_batch_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), agcom.LONG, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.EnumArg(AltitudeReferenceType), agmarshall.LPSafearrayArg,) }
    def get_altitude_batch(self, lat_lons:list, alt_ref:"AltitudeReferenceType") -> list:
        """Return the altitudes at the specified position array relative to the input reference surface. If a specified position is outside terrain sources, the altitude of 0.0 relative to the default reference ellipsoid (WGS84 for Earth) is used."""
        return self._intf.invoke(CentralBodyTerrainCollectionElement._metadata, CentralBodyTerrainCollectionElement._get_altitude_batch_metadata, lat_lons, alt_ref, OutArg())

    _get_altitudes_between_points_at_resolution_metadata = { "offset" : _get_altitudes_between_points_at_resolution_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.Variant, agcom.Variant, agcom.Variant, agcom.LONG, agcom.LONG, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.EnumArg(DistanceOnSphere), agmarshall.EnumArg(AltitudeReferenceType), agmarshall.LPSafearrayArg,) }
    def get_altitudes_between_points_at_resolution(self, southwest_latitude:typing.Any, southwest_longitude:typing.Any, northeast_latitude:typing.Any, northeast_longitude:typing.Any, step_size:typing.Any, distance_type:"DistanceOnSphere", alt_ref:"AltitudeReferenceType") -> list:
        """Return the terrain profile at the specified resolution relative to the input reference surface. If a position along the profile is outside terrain sources, the altitude of 0.0 relative to the default reference ellipsoid (WGS84 for Earth) is used."""
        return self._intf.invoke(CentralBodyTerrainCollectionElement._metadata, CentralBodyTerrainCollectionElement._get_altitudes_between_points_at_resolution_metadata, southwest_latitude, southwest_longitude, northeast_latitude, northeast_longitude, step_size, distance_type, alt_ref, OutArg())

    _get_extent_maximum_resolution_metadata = { "offset" : _get_extent_maximum_resolution_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.Variant, agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def get_extent_maximum_resolution(self, southwest_latitude:typing.Any, southwest_longitude:typing.Any, northeast_latitude:typing.Any, northeast_longitude:typing.Any) -> float:
        """Return the highest resolution for any terrain that overlaps the specified rectangle."""
        return self._intf.invoke(CentralBodyTerrainCollectionElement._metadata, CentralBodyTerrainCollectionElement._get_extent_maximum_resolution_metadata, southwest_latitude, southwest_longitude, northeast_latitude, northeast_longitude, OutArg())

    _property_names[central_body] = "central_body"
    _property_names[terrain_collection] = "terrain_collection"

    def __init__(self, source_object=None):
        """Construct an object of type CentralBodyTerrainCollectionElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CentralBodyTerrainCollectionElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CentralBodyTerrainCollectionElement, [CentralBodyTerrainCollectionElement, ])

agcls.AgClassCatalog.add_catalog_entry((5219533968782263326, 16126468796410014626), CentralBodyTerrainCollectionElement)
agcls.AgTypeNameMap["CentralBodyTerrainCollectionElement"] = CentralBodyTerrainCollectionElement

class CentralBodyTerrainCollection(SupportsDeleteCallback):
    """Represents a collection of terrains associated with central bodies. This collection enables adding terrain to any central bodies and not just to the current scenario's central body."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _get_total_cache_size_method_offset = 4
    _set_total_cache_size_method_offset = 5
    _get_item_by_index_method_offset = 6
    _get_item_by_name_method_offset = 7
    _metadata = {
        "iid_data" : (4992312824179193713, 15619000497690764944),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CentralBodyTerrainCollection)
    def __iter__(self):
        """Create an iterator for the CentralBodyTerrainCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "CentralBodyTerrainCollectionElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(CentralBodyTerrainCollection._metadata, CentralBodyTerrainCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:typing.Any) -> "CentralBodyTerrainCollectionElement":
        """Given an index or a name of a central body, returns an element in the collection."""
        return self._intf.invoke(CentralBodyTerrainCollection._metadata, CentralBodyTerrainCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(CentralBodyTerrainCollection._metadata, CentralBodyTerrainCollection._get__new_enum_metadata)

    _get_total_cache_size_metadata = { "offset" : _get_total_cache_size_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def total_cache_size(self) -> int:
        """Total cache size (not individual terrain sources) for the analytical terrain in the scenario. Dimensionless."""
        return self._intf.get_property(CentralBodyTerrainCollection._metadata, CentralBodyTerrainCollection._get_total_cache_size_metadata)

    _set_total_cache_size_metadata = { "offset" : _set_total_cache_size_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @total_cache_size.setter
    def total_cache_size(self, total_cache_size:int) -> None:
        return self._intf.set_property(CentralBodyTerrainCollection._metadata, CentralBodyTerrainCollection._set_total_cache_size_metadata, total_cache_size)

    _get_item_by_index_metadata = { "offset" : _get_item_by_index_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_index(self, index:int) -> "CentralBodyTerrainCollectionElement":
        """Retrieve a central body terrain from the collection by index."""
        return self._intf.invoke(CentralBodyTerrainCollection._metadata, CentralBodyTerrainCollection._get_item_by_index_metadata, index, OutArg())

    _get_item_by_name_metadata = { "offset" : _get_item_by_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_name(self, name:str) -> "CentralBodyTerrainCollectionElement":
        """Retrieve a central body terrain from the collection by name."""
        return self._intf.invoke(CentralBodyTerrainCollection._metadata, CentralBodyTerrainCollection._get_item_by_name_metadata, name, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[total_cache_size] = "total_cache_size"

    def __init__(self, source_object=None):
        """Construct an object of type CentralBodyTerrainCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CentralBodyTerrainCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CentralBodyTerrainCollection, [CentralBodyTerrainCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5357804070568899402, 9093351818680180378), CentralBodyTerrainCollection)
agcls.AgTypeNameMap["CentralBodyTerrainCollection"] = CentralBodyTerrainCollection

class SatelliteExportTools(SupportsDeleteCallback):
    r"""
    Interface used to define the export to data file options.

    Examples
    --------
    Export an ephemeris file to a scenario folder:
    >>> # STKObjectRoot root: STK Object Model Root
    >>> # Satellite satellite: Satellite object
    >>> scenPath = root.execute_command("GetDirectory / Scenario").item(0)
    >>> satelliteFilePath = "%s\\%s.e" % (scenPath, satellite.instance_name)
    >>> satelliteFilePath = satelliteFilePath.replace("\\", "\\\\")
    >>> satellite.export_tools.get_ephemeris_stk_export_tool().export(satelliteFilePath)
    """

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ephemeris_ccsds_export_tool_method_offset = 1
    _get_ephemeris_stk_export_tool_method_offset = 2
    _get_ephemeris_spice_export_tool_method_offset = 3
    _get_ephemeris_code500_export_tool_method_offset = 4
    _get_propagator_definition_export_tool_method_offset = 5
    _get_attitude_export_tool_method_offset = 6
    _get_ephemeris_stk_binary_export_tool_method_offset = 7
    _get_ephemeris_ccsds_v2_export_tool_method_offset = 8
    _metadata = {
        "iid_data" : (4754590576007280066, 1346147218685142195),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SatelliteExportTools)

    _get_ephemeris_ccsds_export_tool_metadata = { "offset" : _get_ephemeris_ccsds_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_ccsds_export_tool(self) -> "VehicleEphemerisCCSDSExportTool":
        """Return an Ephemeris file of the CCSDS ephemeris type for export."""
        return self._intf.invoke(SatelliteExportTools._metadata, SatelliteExportTools._get_ephemeris_ccsds_export_tool_metadata, OutArg())

    _get_ephemeris_stk_export_tool_metadata = { "offset" : _get_ephemeris_stk_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_export_tool(self) -> "VehicleEphemerisExportTool":
        """Return an Ephemeris file of the STK ephemeris type for export."""
        return self._intf.invoke(SatelliteExportTools._metadata, SatelliteExportTools._get_ephemeris_stk_export_tool_metadata, OutArg())

    _get_ephemeris_spice_export_tool_metadata = { "offset" : _get_ephemeris_spice_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_spice_export_tool(self) -> "VehicleEphemerisSPICEExportTool":
        """Return an Ephemeris file of the Spice ephemeris type for export."""
        return self._intf.invoke(SatelliteExportTools._metadata, SatelliteExportTools._get_ephemeris_spice_export_tool_metadata, OutArg())

    _get_ephemeris_code500_export_tool_metadata = { "offset" : _get_ephemeris_code500_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_code500_export_tool(self) -> "VehicleEphemerisCode500ExportTool":
        """Return an Ephemeris file of the Code500Ephem ephemeris type for export; AgAsCode500.dll must be copied to your install data's 'Modules' directory."""
        return self._intf.invoke(SatelliteExportTools._metadata, SatelliteExportTools._get_ephemeris_code500_export_tool_metadata, OutArg())

    _get_propagator_definition_export_tool_metadata = { "offset" : _get_propagator_definition_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_propagator_definition_export_tool(self) -> "PropagatorDefinitionExportTool":
        """Return a Propagator (Prop Def) file for export."""
        return self._intf.invoke(SatelliteExportTools._metadata, SatelliteExportTools._get_propagator_definition_export_tool_metadata, OutArg())

    _get_attitude_export_tool_metadata = { "offset" : _get_attitude_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_attitude_export_tool(self) -> "VehicleAttitudeExportTool":
        """Return an Attitude file for export."""
        return self._intf.invoke(SatelliteExportTools._metadata, SatelliteExportTools._get_attitude_export_tool_metadata, OutArg())

    _get_ephemeris_stk_binary_export_tool_metadata = { "offset" : _get_ephemeris_stk_binary_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_binary_export_tool(self) -> "VehicleEphemerisBinaryExportTool":
        """Return an Ephemeris file of the STK Binary ephemeris type for export."""
        return self._intf.invoke(SatelliteExportTools._metadata, SatelliteExportTools._get_ephemeris_stk_binary_export_tool_metadata, OutArg())

    _get_ephemeris_ccsds_v2_export_tool_metadata = { "offset" : _get_ephemeris_ccsds_v2_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_ccsds_v2_export_tool(self) -> "VehicleEphemerisCCSDSv2ExportTool":
        """Return an Ephemeris file of the CCSDS v2 ephemeris type for export."""
        return self._intf.invoke(SatelliteExportTools._metadata, SatelliteExportTools._get_ephemeris_ccsds_v2_export_tool_metadata, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type SatelliteExportTools."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SatelliteExportTools)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SatelliteExportTools, [SatelliteExportTools, ])

agcls.AgClassCatalog.add_catalog_entry((4997041846252939354, 18437966484799795850), SatelliteExportTools)
agcls.AgTypeNameMap["SatelliteExportTools"] = SatelliteExportTools

class LaunchVehicleExportTools(SupportsDeleteCallback):
    """Interface for a launch vehicle object."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ephemeris_stk_export_tool_method_offset = 1
    _get_propagator_definition_export_tool_method_offset = 2
    _get_attitude_export_tool_method_offset = 3
    _get_ephemeris_stk_binary_export_tool_method_offset = 4
    _metadata = {
        "iid_data" : (5359472707048304525, 16328926560783145360),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaunchVehicleExportTools)

    _get_ephemeris_stk_export_tool_metadata = { "offset" : _get_ephemeris_stk_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_export_tool(self) -> "VehicleEphemerisExportTool":
        """Return the ephemeris export tool."""
        return self._intf.invoke(LaunchVehicleExportTools._metadata, LaunchVehicleExportTools._get_ephemeris_stk_export_tool_metadata, OutArg())

    _get_propagator_definition_export_tool_metadata = { "offset" : _get_propagator_definition_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_propagator_definition_export_tool(self) -> "PropagatorDefinitionExportTool":
        """Return the Prop Def export tool."""
        return self._intf.invoke(LaunchVehicleExportTools._metadata, LaunchVehicleExportTools._get_propagator_definition_export_tool_metadata, OutArg())

    _get_attitude_export_tool_metadata = { "offset" : _get_attitude_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_attitude_export_tool(self) -> "VehicleAttitudeExportTool":
        """Return the attitude export tool."""
        return self._intf.invoke(LaunchVehicleExportTools._metadata, LaunchVehicleExportTools._get_attitude_export_tool_metadata, OutArg())

    _get_ephemeris_stk_binary_export_tool_metadata = { "offset" : _get_ephemeris_stk_binary_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_binary_export_tool(self) -> "VehicleEphemerisBinaryExportTool":
        """Return an Ephemeris file of the STK Binary ephemeris type for export."""
        return self._intf.invoke(LaunchVehicleExportTools._metadata, LaunchVehicleExportTools._get_ephemeris_stk_binary_export_tool_metadata, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type LaunchVehicleExportTools."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaunchVehicleExportTools)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaunchVehicleExportTools, [LaunchVehicleExportTools, ])

agcls.AgClassCatalog.add_catalog_entry((5058356139732985956, 13337852541807218843), LaunchVehicleExportTools)
agcls.AgTypeNameMap["LaunchVehicleExportTools"] = LaunchVehicleExportTools

class GroundVehicleExportTools(SupportsDeleteCallback):
    """Interface used to define the export to data file options."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ephemeris_stk_export_tool_method_offset = 1
    _get_propagator_definition_export_tool_method_offset = 2
    _get_attitude_export_tool_method_offset = 3
    _get_ephemeris_stk_binary_export_tool_method_offset = 4
    _metadata = {
        "iid_data" : (5237525126291703011, 15231927186501368237),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, GroundVehicleExportTools)

    _get_ephemeris_stk_export_tool_metadata = { "offset" : _get_ephemeris_stk_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_export_tool(self) -> "VehicleEphemerisExportTool":
        """Return the ephemeris export tool."""
        return self._intf.invoke(GroundVehicleExportTools._metadata, GroundVehicleExportTools._get_ephemeris_stk_export_tool_metadata, OutArg())

    _get_propagator_definition_export_tool_metadata = { "offset" : _get_propagator_definition_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_propagator_definition_export_tool(self) -> "PropagatorDefinitionExportTool":
        """Return the Prop Def export tool."""
        return self._intf.invoke(GroundVehicleExportTools._metadata, GroundVehicleExportTools._get_propagator_definition_export_tool_metadata, OutArg())

    _get_attitude_export_tool_metadata = { "offset" : _get_attitude_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_attitude_export_tool(self) -> "VehicleAttitudeExportTool":
        """Return the attitude export tool."""
        return self._intf.invoke(GroundVehicleExportTools._metadata, GroundVehicleExportTools._get_attitude_export_tool_metadata, OutArg())

    _get_ephemeris_stk_binary_export_tool_metadata = { "offset" : _get_ephemeris_stk_binary_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_binary_export_tool(self) -> "VehicleEphemerisBinaryExportTool":
        """Return an Ephemeris file of the STK Binary ephemeris type for export."""
        return self._intf.invoke(GroundVehicleExportTools._metadata, GroundVehicleExportTools._get_ephemeris_stk_binary_export_tool_metadata, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type GroundVehicleExportTools."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, GroundVehicleExportTools)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, GroundVehicleExportTools, [GroundVehicleExportTools, ])

agcls.AgClassCatalog.add_catalog_entry((5509802162940099117, 3351315630189084044), GroundVehicleExportTools)
agcls.AgTypeNameMap["GroundVehicleExportTools"] = GroundVehicleExportTools

class MissileExportTools(SupportsDeleteCallback):
    """Interface used to define the export to data file options."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ephemeris_stk_export_tool_method_offset = 1
    _get_propagator_definition_export_tool_method_offset = 2
    _get_attitude_export_tool_method_offset = 3
    _get_ephemeris_stk_binary_export_tool_method_offset = 4
    _metadata = {
        "iid_data" : (5458835348208358888, 9607810934958939016),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MissileExportTools)

    _get_ephemeris_stk_export_tool_metadata = { "offset" : _get_ephemeris_stk_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_export_tool(self) -> "VehicleEphemerisExportTool":
        """Return the ephemeris export tool."""
        return self._intf.invoke(MissileExportTools._metadata, MissileExportTools._get_ephemeris_stk_export_tool_metadata, OutArg())

    _get_propagator_definition_export_tool_metadata = { "offset" : _get_propagator_definition_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_propagator_definition_export_tool(self) -> "PropagatorDefinitionExportTool":
        """Return the Prop Def export tool."""
        return self._intf.invoke(MissileExportTools._metadata, MissileExportTools._get_propagator_definition_export_tool_metadata, OutArg())

    _get_attitude_export_tool_metadata = { "offset" : _get_attitude_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_attitude_export_tool(self) -> "VehicleAttitudeExportTool":
        """Return the attitude export tool."""
        return self._intf.invoke(MissileExportTools._metadata, MissileExportTools._get_attitude_export_tool_metadata, OutArg())

    _get_ephemeris_stk_binary_export_tool_metadata = { "offset" : _get_ephemeris_stk_binary_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_binary_export_tool(self) -> "VehicleEphemerisBinaryExportTool":
        """Return an Ephemeris file of the STK Binary ephemeris type for export."""
        return self._intf.invoke(MissileExportTools._metadata, MissileExportTools._get_ephemeris_stk_binary_export_tool_metadata, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type MissileExportTools."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MissileExportTools)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MissileExportTools, [MissileExportTools, ])

agcls.AgClassCatalog.add_catalog_entry((5547318031880152894, 9337493564683066262), MissileExportTools)
agcls.AgTypeNameMap["MissileExportTools"] = MissileExportTools

class AircraftExportTools(SupportsDeleteCallback):
    """Interface used to define the export to data file options."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ephemeris_stk_export_tool_method_offset = 1
    _get_propagator_definition_export_tool_method_offset = 2
    _get_attitude_export_tool_method_offset = 3
    _get_ephemeris_stk_binary_export_tool_method_offset = 4
    _metadata = {
        "iid_data" : (5170792310226151494, 9571053674061980314),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AircraftExportTools)

    _get_ephemeris_stk_export_tool_metadata = { "offset" : _get_ephemeris_stk_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_export_tool(self) -> "VehicleEphemerisExportTool":
        """Return the ephemeris export tool."""
        return self._intf.invoke(AircraftExportTools._metadata, AircraftExportTools._get_ephemeris_stk_export_tool_metadata, OutArg())

    _get_propagator_definition_export_tool_metadata = { "offset" : _get_propagator_definition_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_propagator_definition_export_tool(self) -> "PropagatorDefinitionExportTool":
        """Return the Prop Def export tool."""
        return self._intf.invoke(AircraftExportTools._metadata, AircraftExportTools._get_propagator_definition_export_tool_metadata, OutArg())

    _get_attitude_export_tool_metadata = { "offset" : _get_attitude_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_attitude_export_tool(self) -> "VehicleAttitudeExportTool":
        """Return the Attitude export tool."""
        return self._intf.invoke(AircraftExportTools._metadata, AircraftExportTools._get_attitude_export_tool_metadata, OutArg())

    _get_ephemeris_stk_binary_export_tool_metadata = { "offset" : _get_ephemeris_stk_binary_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_binary_export_tool(self) -> "VehicleEphemerisBinaryExportTool":
        """Return an Ephemeris file of the STK Binary ephemeris type for export."""
        return self._intf.invoke(AircraftExportTools._metadata, AircraftExportTools._get_ephemeris_stk_binary_export_tool_metadata, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type AircraftExportTools."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AircraftExportTools)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AircraftExportTools, [AircraftExportTools, ])

agcls.AgClassCatalog.add_catalog_entry((4751509745223848078, 1281891599607618959), AircraftExportTools)
agcls.AgTypeNameMap["AircraftExportTools"] = AircraftExportTools

class ShipExportTools(SupportsDeleteCallback):
    """Interface used to define the export to data file options."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ephemeris_stk_export_tool_method_offset = 1
    _get_propagator_definition_export_tool_method_offset = 2
    _get_attitude_export_tool_method_offset = 3
    _get_ephemeris_stk_binary_export_tool_method_offset = 4
    _metadata = {
        "iid_data" : (4841344612278833324, 9338992015588404382),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ShipExportTools)

    _get_ephemeris_stk_export_tool_metadata = { "offset" : _get_ephemeris_stk_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_export_tool(self) -> "VehicleEphemerisExportTool":
        """Return the ephemeris export tool."""
        return self._intf.invoke(ShipExportTools._metadata, ShipExportTools._get_ephemeris_stk_export_tool_metadata, OutArg())

    _get_propagator_definition_export_tool_metadata = { "offset" : _get_propagator_definition_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_propagator_definition_export_tool(self) -> "PropagatorDefinitionExportTool":
        """Return the Prop Def export tool."""
        return self._intf.invoke(ShipExportTools._metadata, ShipExportTools._get_propagator_definition_export_tool_metadata, OutArg())

    _get_attitude_export_tool_metadata = { "offset" : _get_attitude_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_attitude_export_tool(self) -> "VehicleAttitudeExportTool":
        """Return the attitude export tool."""
        return self._intf.invoke(ShipExportTools._metadata, ShipExportTools._get_attitude_export_tool_metadata, OutArg())

    _get_ephemeris_stk_binary_export_tool_metadata = { "offset" : _get_ephemeris_stk_binary_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_ephemeris_stk_binary_export_tool(self) -> "VehicleEphemerisBinaryExportTool":
        """Return an Ephemeris file of the STK Binary ephemeris type for export."""
        return self._intf.invoke(ShipExportTools._metadata, ShipExportTools._get_ephemeris_stk_binary_export_tool_metadata, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type ShipExportTools."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ShipExportTools)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ShipExportTools, [ShipExportTools, ])

agcls.AgClassCatalog.add_catalog_entry((4772447243461641133, 3970865945128603269), ShipExportTools)
agcls.AgTypeNameMap["ShipExportTools"] = ShipExportTools

class VehicleEphemerisCode500ExportTool(SupportsDeleteCallback):
    """The Code 500 Ephemeris type for the Export Ephemeris/Attitude Tool."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_satellite_identifer_method_offset = 1
    _set_satellite_identifer_method_offset = 2
    _get_step_size_method_offset = 3
    _get_time_period_method_offset = 4
    _export_method_offset = 5
    _metadata = {
        "iid_data" : (5144832711296572774, 7435931564553403523),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEphemerisCode500ExportTool)

    _get_satellite_identifer_metadata = { "offset" : _get_satellite_identifer_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def satellite_identifer(self) -> int:
        """Get or set the identifying number for the satellite ephemeris being created. Dimensionless."""
        return self._intf.get_property(VehicleEphemerisCode500ExportTool._metadata, VehicleEphemerisCode500ExportTool._get_satellite_identifer_metadata)

    _set_satellite_identifer_metadata = { "offset" : _set_satellite_identifer_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @satellite_identifer.setter
    def satellite_identifer(self, id:int) -> None:
        return self._intf.set_property(VehicleEphemerisCode500ExportTool._metadata, VehicleEphemerisCode500ExportTool._set_satellite_identifer_metadata, id)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def step_size(self) -> "ExportToolStepSize":
        """If the Use Ephemeris Steps option is not selected, enter a Step Size to be used for the vehicle."""
        return self._intf.get_property(VehicleEphemerisCode500ExportTool._metadata, VehicleEphemerisCode500ExportTool._get_step_size_metadata)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "ExportToolTimePeriod":
        """Set the time period. Options are Use Entire Ephemeris - STK creates a data file using the Start and Stop Time specified in the vehicle's Orbit tab or Specify Time Period - STK creates a data file using the Start and Stop Time specified here."""
        return self._intf.get_property(VehicleEphemerisCode500ExportTool._metadata, VehicleEphemerisCode500ExportTool._get_time_period_metadata)

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export(self, file_name:str) -> None:
        """Export the ephemeris file."""
        return self._intf.invoke(VehicleEphemerisCode500ExportTool._metadata, VehicleEphemerisCode500ExportTool._export_metadata, file_name)

    _property_names[satellite_identifer] = "satellite_identifer"
    _property_names[step_size] = "step_size"
    _property_names[time_period] = "time_period"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEphemerisCode500ExportTool."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEphemerisCode500ExportTool)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEphemerisCode500ExportTool, [VehicleEphemerisCode500ExportTool, ])

agcls.AgClassCatalog.add_catalog_entry((4790657098926312818, 14431395776796877500), VehicleEphemerisCode500ExportTool)
agcls.AgTypeNameMap["VehicleEphemerisCode500ExportTool"] = VehicleEphemerisCode500ExportTool

class VehicleEphemerisCCSDSExportTool(SupportsDeleteCallback):
    """The CCSDS Ephemeris type for the Export Ephemeris/Attitude Tool."""

    _num_methods = 24
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_originator_method_offset = 1
    _set_originator_method_offset = 2
    _get_object_identifier_method_offset = 3
    _set_object_identifier_method_offset = 4
    _get_object_name_method_offset = 5
    _set_object_name_method_offset = 6
    _get_central_body_name_method_offset = 7
    _set_central_body_name_method_offset = 8
    _get_reference_frame_method_offset = 9
    _set_reference_frame_method_offset = 10
    _get_date_format_method_offset = 11
    _set_date_format_method_offset = 12
    _get_ephemeris_format_method_offset = 13
    _set_ephemeris_format_method_offset = 14
    _get_time_precision_method_offset = 15
    _set_time_precision_method_offset = 16
    _get_step_size_method_offset = 17
    _get_time_period_method_offset = 18
    _get_reference_frames_supported_method_offset = 19
    _get_use_satellite_center_and_frame_method_offset = 20
    _set_use_satellite_center_and_frame_method_offset = 21
    _export_method_offset = 22
    _get_time_system_method_offset = 23
    _set_time_system_method_offset = 24
    _metadata = {
        "iid_data" : (4767445588306861280, 8682691855551035054),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEphemerisCCSDSExportTool)

    _get_originator_metadata = { "offset" : _get_originator_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def originator(self) -> str:
        """A string that specifies an identifier of the organization producing the data file."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_originator_metadata)

    _set_originator_metadata = { "offset" : _set_originator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @originator.setter
    def originator(self, originator:str) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._set_originator_metadata, originator)

    _get_object_identifier_metadata = { "offset" : _get_object_identifier_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def object_identifier(self) -> str:
        """A string defining the Object ID - to be specified as the international spacecraft designator, also known as an NSSDC identifier."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_object_identifier_metadata)

    _set_object_identifier_metadata = { "offset" : _set_object_identifier_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @object_identifier.setter
    def object_identifier(self, id:str) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._set_object_identifier_metadata, id)

    _get_object_name_metadata = { "offset" : _get_object_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def object_name(self) -> str:
        """A name for the Object. By recommendation of the CCSDS standard, the name from the SPACEWARN Bulletin should be used."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_object_name_metadata)

    _set_object_name_metadata = { "offset" : _set_object_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @object_name.setter
    def object_name(self, name:str) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._set_object_name_metadata, name)

    _get_central_body_name_metadata = { "offset" : _get_central_body_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body_name(self) -> str:
        """Get or set the central body of the coordinate system in which to express the ephemeris."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_central_body_name_metadata)

    _set_central_body_name_metadata = { "offset" : _set_central_body_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @central_body_name.setter
    def central_body_name(self, name:str) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._set_central_body_name_metadata, name)

    _get_reference_frame_metadata = { "offset" : _get_reference_frame_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CCSDSReferenceFrame),) }
    @property
    def reference_frame(self) -> "CCSDSReferenceFrame":
        """Get or set the reference frame in which to express the ephemeris. Some frames are allowed for use only when the CentralBodyName is Earth or Moon."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_reference_frame_metadata)

    _set_reference_frame_metadata = { "offset" : _set_reference_frame_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CCSDSReferenceFrame),) }
    @reference_frame.setter
    def reference_frame(self, reference_frame:"CCSDSReferenceFrame") -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._set_reference_frame_metadata, reference_frame)

    _get_date_format_metadata = { "offset" : _get_date_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CCSDSDateFormat),) }
    @property
    def date_format(self) -> "CCSDSDateFormat":
        """Get or set the desired date format."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_date_format_metadata)

    _set_date_format_metadata = { "offset" : _set_date_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CCSDSDateFormat),) }
    @date_format.setter
    def date_format(self, date_format:"CCSDSDateFormat") -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._set_date_format_metadata, date_format)

    _get_ephemeris_format_metadata = { "offset" : _get_ephemeris_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CCSDSEphemerisFormatType),) }
    @property
    def ephemeris_format(self) -> "CCSDSEphemerisFormatType":
        """Get or set the desired format to be used for representing the position and velocity information as either scientific notation or floating point notation. Scientific notation is recommended when possible."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_ephemeris_format_metadata)

    _set_ephemeris_format_metadata = { "offset" : _set_ephemeris_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CCSDSEphemerisFormatType),) }
    @ephemeris_format.setter
    def ephemeris_format(self, ephem_format:"CCSDSEphemerisFormatType") -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._set_ephemeris_format_metadata, ephem_format)

    _get_time_precision_metadata = { "offset" : _get_time_precision_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def time_precision(self) -> int:
        """If selected, STK uses the Step Size specified in the vehicle's Basic properties. If not selected, specify a Step Size. Dimensionless."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_time_precision_metadata)

    _set_time_precision_metadata = { "offset" : _set_time_precision_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @time_precision.setter
    def time_precision(self, time_precision:int) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._set_time_precision_metadata, time_precision)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def step_size(self) -> "ExportToolStepSize":
        """If the Use Ephemeris Steps option is not selected, enter a Step Size to be used for the vehicle."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_step_size_metadata)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "ExportToolTimePeriod":
        """Set the time period. Options are Use Entire Ephemeris - STK creates a data file using the Start and Stop Time specified in the vehicle's Orbit tab or Specify Time Period - STK creates a data file using the Start and Stop Time specified here."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_time_period_metadata)

    _get_reference_frames_supported_metadata = { "offset" : _get_reference_frames_supported_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def reference_frames_supported(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_reference_frames_supported_metadata)

    _get_use_satellite_center_and_frame_metadata = { "offset" : _get_use_satellite_center_and_frame_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_satellite_center_and_frame(self) -> bool:
        """Use the satellite center and frame. Setting the property to 'True' will cause CentralBody and ReferenceFrame properties become read-only."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_use_satellite_center_and_frame_metadata)

    _set_use_satellite_center_and_frame_metadata = { "offset" : _set_use_satellite_center_and_frame_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_satellite_center_and_frame.setter
    def use_satellite_center_and_frame(self, use_satellite:bool) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._set_use_satellite_center_and_frame_metadata, use_satellite)

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export(self, file_name:str) -> None:
        """Export the ephemeris file."""
        return self._intf.invoke(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._export_metadata, file_name)

    _get_time_system_metadata = { "offset" : _get_time_system_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CCSDSTimeSystem),) }
    @property
    def time_system(self) -> "CCSDSTimeSystem":
        """Get or set the time system of the ephemeris."""
        return self._intf.get_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._get_time_system_metadata)

    _set_time_system_metadata = { "offset" : _set_time_system_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CCSDSTimeSystem),) }
    @time_system.setter
    def time_system(self, time_system:"CCSDSTimeSystem") -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSExportTool._metadata, VehicleEphemerisCCSDSExportTool._set_time_system_metadata, time_system)

    _property_names[originator] = "originator"
    _property_names[object_identifier] = "object_identifier"
    _property_names[object_name] = "object_name"
    _property_names[central_body_name] = "central_body_name"
    _property_names[reference_frame] = "reference_frame"
    _property_names[date_format] = "date_format"
    _property_names[ephemeris_format] = "ephemeris_format"
    _property_names[time_precision] = "time_precision"
    _property_names[step_size] = "step_size"
    _property_names[time_period] = "time_period"
    _property_names[reference_frames_supported] = "reference_frames_supported"
    _property_names[use_satellite_center_and_frame] = "use_satellite_center_and_frame"
    _property_names[time_system] = "time_system"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEphemerisCCSDSExportTool."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEphemerisCCSDSExportTool)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEphemerisCCSDSExportTool, [VehicleEphemerisCCSDSExportTool, ])

agcls.AgClassCatalog.add_catalog_entry((4672952330199263828, 15767511867948493966), VehicleEphemerisCCSDSExportTool)
agcls.AgTypeNameMap["VehicleEphemerisCCSDSExportTool"] = VehicleEphemerisCCSDSExportTool

class VehicleEphemerisExportTool(SupportsDeleteCallback):
    """The STK Ephemeris type for the Export Ephemeris/Attitude Tool."""

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_coordinate_system_method_offset = 1
    _set_coordinate_system_method_offset = 2
    _get_central_body_name_method_offset = 3
    _set_central_body_name_method_offset = 4
    _get_version_format_method_offset = 5
    _set_version_format_method_offset = 6
    _get_include_interpolation_boundaries_method_offset = 7
    _set_include_interpolation_boundaries_method_offset = 8
    _get_time_period_method_offset = 9
    _get_step_size_method_offset = 10
    _get_covariance_type_method_offset = 11
    _set_covariance_type_method_offset = 12
    _export_method_offset = 13
    _get_use_vehicle_central_body_method_offset = 14
    _set_use_vehicle_central_body_method_offset = 15
    _metadata = {
        "iid_data" : (4666056014962764002, 18288462010828203965),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEphemerisExportTool)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EphemerisCoordinateSystemType),) }
    @property
    def coordinate_system(self) -> "EphemerisCoordinateSystemType":
        """Get or set the coordinate system in which to express the ephemeris."""
        return self._intf.get_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._get_coordinate_system_metadata)

    _set_coordinate_system_metadata = { "offset" : _set_coordinate_system_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EphemerisCoordinateSystemType),) }
    @coordinate_system.setter
    def coordinate_system(self, coordinate_system:"EphemerisCoordinateSystemType") -> None:
        return self._intf.set_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._set_coordinate_system_metadata, coordinate_system)

    _get_central_body_name_metadata = { "offset" : _get_central_body_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body_name(self) -> str:
        """Get or set the central body of the coordinate system in which to express the ephemeris."""
        return self._intf.get_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._get_central_body_name_metadata)

    _set_central_body_name_metadata = { "offset" : _set_central_body_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @central_body_name.setter
    def central_body_name(self, name:str) -> None:
        return self._intf.set_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._set_central_body_name_metadata, name)

    _get_version_format_metadata = { "offset" : _get_version_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ExportToolVersionFormat),) }
    @property
    def version_format(self) -> "ExportToolVersionFormat":
        """Provide the option to generate files compatible with prior versions of STK."""
        return self._intf.get_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._get_version_format_metadata)

    _set_version_format_metadata = { "offset" : _set_version_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ExportToolVersionFormat),) }
    @version_format.setter
    def version_format(self, version:"ExportToolVersionFormat") -> None:
        return self._intf.set_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._set_version_format_metadata, version)

    _get_include_interpolation_boundaries_metadata = { "offset" : _get_include_interpolation_boundaries_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_interpolation_boundaries(self) -> bool:
        """Include or ignore interpolation boundaries."""
        return self._intf.get_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._get_include_interpolation_boundaries_metadata)

    _set_include_interpolation_boundaries_metadata = { "offset" : _set_include_interpolation_boundaries_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_interpolation_boundaries.setter
    def include_interpolation_boundaries(self, include_interp:bool) -> None:
        return self._intf.set_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._set_include_interpolation_boundaries_metadata, include_interp)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "ExportToolTimePeriod":
        """Set the time period. Options are Use Entire Ephemeris - STK creates a data file using the Start and Stop Time specified in the vehicle's Orbit tab or Specify Time Period - STK creates a data file using the Start and Stop Time specified here."""
        return self._intf.get_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._get_time_period_metadata)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def step_size(self) -> "ExportToolStepSize":
        """If the Use Ephemeris Steps option is not selected, enter a Step Size to be used for the vehicle."""
        return self._intf.get_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._get_step_size_metadata)

    _get_covariance_type_metadata = { "offset" : _get_covariance_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EphemerisCovarianceType),) }
    @property
    def covariance_type(self) -> "EphemerisCovarianceType":
        """Choose to export position covariance (3x3), position/velocity covariance (6x6), or no covariance information. CovarianceType is valid only if the vehicle has ephemeris with covariance."""
        return self._intf.get_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._get_covariance_type_metadata)

    _set_covariance_type_metadata = { "offset" : _set_covariance_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EphemerisCovarianceType),) }
    @covariance_type.setter
    def covariance_type(self, covariance_type:"EphemerisCovarianceType") -> None:
        """Export Position Covariance Type. CovarianceType is valid only if the vehicle has ephemeris with covariance."""
        return self._intf.set_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._set_covariance_type_metadata, covariance_type)

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export(self, file_name:str) -> None:
        """Export the ephemeris file."""
        return self._intf.invoke(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._export_metadata, file_name)

    _get_use_vehicle_central_body_metadata = { "offset" : _get_use_vehicle_central_body_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_vehicle_central_body(self) -> bool:
        """Uses vehicle's central body."""
        return self._intf.get_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._get_use_vehicle_central_body_metadata)

    _set_use_vehicle_central_body_metadata = { "offset" : _set_use_vehicle_central_body_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_vehicle_central_body.setter
    def use_vehicle_central_body(self, use_vehicle_central_body:bool) -> None:
        return self._intf.set_property(VehicleEphemerisExportTool._metadata, VehicleEphemerisExportTool._set_use_vehicle_central_body_metadata, use_vehicle_central_body)

    _property_names[coordinate_system] = "coordinate_system"
    _property_names[central_body_name] = "central_body_name"
    _property_names[version_format] = "version_format"
    _property_names[include_interpolation_boundaries] = "include_interpolation_boundaries"
    _property_names[time_period] = "time_period"
    _property_names[step_size] = "step_size"
    _property_names[covariance_type] = "covariance_type"
    _property_names[use_vehicle_central_body] = "use_vehicle_central_body"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEphemerisExportTool."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEphemerisExportTool)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEphemerisExportTool, [VehicleEphemerisExportTool, ])

agcls.AgClassCatalog.add_catalog_entry((4959101882972560683, 3838486810856330903), VehicleEphemerisExportTool)
agcls.AgTypeNameMap["VehicleEphemerisExportTool"] = VehicleEphemerisExportTool

class VehicleEphemerisSPICEExportTool(SupportsDeleteCallback):
    """The SPICE Ephemeris type for the Export Ephemeris/Attitude Tool."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_central_body_name_method_offset = 1
    _set_central_body_name_method_offset = 2
    _get_satellite_identifer_method_offset = 3
    _set_satellite_identifer_method_offset = 4
    _get_interpolation_type_method_offset = 5
    _set_interpolation_type_method_offset = 6
    _get_interpolation_method_offset = 7
    _set_interpolation_method_offset = 8
    _get_step_size_method_offset = 9
    _get_time_period_method_offset = 10
    _export_method_offset = 11
    _get_use_vehicle_central_body_method_offset = 12
    _set_use_vehicle_central_body_method_offset = 13
    _metadata = {
        "iid_data" : (5081341458836571645, 10507373939827886248),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEphemerisSPICEExportTool)

    _get_central_body_name_metadata = { "offset" : _get_central_body_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body_name(self) -> str:
        """Get or set the central body of the satellite."""
        return self._intf.get_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._get_central_body_name_metadata)

    _set_central_body_name_metadata = { "offset" : _set_central_body_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @central_body_name.setter
    def central_body_name(self, name:str) -> None:
        return self._intf.set_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._set_central_body_name_metadata, name)

    _get_satellite_identifer_metadata = { "offset" : _get_satellite_identifer_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def satellite_identifer(self) -> int:
        """Get or set the identifying number for the satellite ephemeris being created. Dimensionless."""
        return self._intf.get_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._get_satellite_identifer_metadata)

    _set_satellite_identifer_metadata = { "offset" : _set_satellite_identifer_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @satellite_identifer.setter
    def satellite_identifer(self, id:int) -> None:
        return self._intf.set_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._set_satellite_identifer_metadata, id)

    _get_interpolation_type_metadata = { "offset" : _get_interpolation_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpiceInterpolation),) }
    @property
    def interpolation_type(self) -> "SpiceInterpolation":
        """Get or set the interpolation type."""
        return self._intf.get_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._get_interpolation_type_metadata)

    _set_interpolation_type_metadata = { "offset" : _set_interpolation_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpiceInterpolation),) }
    @interpolation_type.setter
    def interpolation_type(self, interpolation_type:"SpiceInterpolation") -> None:
        return self._intf.set_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._set_interpolation_type_metadata, interpolation_type)

    _get_interpolation_metadata = { "offset" : _get_interpolation_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def interpolation(self) -> int:
        """Get or set the interpolation order value between 1 and 15. If the interpolation type is Type 13 (Hermitian), and then you are required to enter an odd interpolation order value."""
        return self._intf.get_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._get_interpolation_metadata)

    _set_interpolation_metadata = { "offset" : _set_interpolation_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @interpolation.setter
    def interpolation(self, interpolation_value:int) -> None:
        return self._intf.set_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._set_interpolation_metadata, interpolation_value)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def step_size(self) -> "ExportToolStepSize":
        """If the Use Ephemeris Steps option is not selected, enter a Step Size to be used for the vehicle."""
        return self._intf.get_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._get_step_size_metadata)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "ExportToolTimePeriod":
        """Set the time period. Options are Use Entire Ephemeris - STK creates a data file using the Start and Stop Time specified in the vehicle's Orbit tab or Specify Time Period - STK creates a data file using the Start and Stop Time specified here."""
        return self._intf.get_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._get_time_period_metadata)

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export(self, file_name:str) -> None:
        """Export the ephemeris file."""
        return self._intf.invoke(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._export_metadata, file_name)

    _get_use_vehicle_central_body_metadata = { "offset" : _get_use_vehicle_central_body_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_vehicle_central_body(self) -> bool:
        """Uses vehicle's central body."""
        return self._intf.get_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._get_use_vehicle_central_body_metadata)

    _set_use_vehicle_central_body_metadata = { "offset" : _set_use_vehicle_central_body_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_vehicle_central_body.setter
    def use_vehicle_central_body(self, use_vehicle_central_body:bool) -> None:
        return self._intf.set_property(VehicleEphemerisSPICEExportTool._metadata, VehicleEphemerisSPICEExportTool._set_use_vehicle_central_body_metadata, use_vehicle_central_body)

    _property_names[central_body_name] = "central_body_name"
    _property_names[satellite_identifer] = "satellite_identifer"
    _property_names[interpolation_type] = "interpolation_type"
    _property_names[interpolation] = "interpolation"
    _property_names[step_size] = "step_size"
    _property_names[time_period] = "time_period"
    _property_names[use_vehicle_central_body] = "use_vehicle_central_body"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEphemerisSPICEExportTool."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEphemerisSPICEExportTool)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEphemerisSPICEExportTool, [VehicleEphemerisSPICEExportTool, ])

agcls.AgClassCatalog.add_catalog_entry((5377286169172364278, 206551889330367676), VehicleEphemerisSPICEExportTool)
agcls.AgTypeNameMap["VehicleEphemerisSPICEExportTool"] = VehicleEphemerisSPICEExportTool

class ExportToolTimePeriod(SupportsDeleteCallback):
    """Specify Time Period."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_method_offset = 1
    _set_start_method_offset = 2
    _get_stop_method_offset = 3
    _set_stop_method_offset = 4
    _get_time_period_type_method_offset = 5
    _set_time_period_type_method_offset = 6
    _metadata = {
        "iid_data" : (4687414111815895799, 5287896138573503911),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ExportToolTimePeriod)

    _get_start_metadata = { "offset" : _get_start_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start(self) -> typing.Any:
        """Get or set the start time of export interval. Uses DateFormate Dimension."""
        return self._intf.get_property(ExportToolTimePeriod._metadata, ExportToolTimePeriod._get_start_metadata)

    _set_start_metadata = { "offset" : _set_start_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start.setter
    def start(self, start_time:typing.Any) -> None:
        return self._intf.set_property(ExportToolTimePeriod._metadata, ExportToolTimePeriod._set_start_metadata, start_time)

    _get_stop_metadata = { "offset" : _get_stop_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop(self) -> typing.Any:
        """Get or set the stop time of export interval. Uses DateFormat Dimension."""
        return self._intf.get_property(ExportToolTimePeriod._metadata, ExportToolTimePeriod._get_stop_metadata)

    _set_stop_metadata = { "offset" : _set_stop_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop.setter
    def stop(self, stop_time:typing.Any) -> None:
        return self._intf.set_property(ExportToolTimePeriod._metadata, ExportToolTimePeriod._set_stop_metadata, stop_time)

    _get_time_period_type_metadata = { "offset" : _get_time_period_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ExportToolTimePeriodType),) }
    @property
    def time_period_type(self) -> "ExportToolTimePeriodType":
        """Specify the time period type to use."""
        return self._intf.get_property(ExportToolTimePeriod._metadata, ExportToolTimePeriod._get_time_period_type_metadata)

    _set_time_period_type_metadata = { "offset" : _set_time_period_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ExportToolTimePeriodType),) }
    @time_period_type.setter
    def time_period_type(self, time_period_type:"ExportToolTimePeriodType") -> None:
        """Specify the time period type to use."""
        return self._intf.set_property(ExportToolTimePeriod._metadata, ExportToolTimePeriod._set_time_period_type_metadata, time_period_type)

    _property_names[start] = "start"
    _property_names[stop] = "stop"
    _property_names[time_period_type] = "time_period_type"

    def __init__(self, source_object=None):
        """Construct an object of type ExportToolTimePeriod."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ExportToolTimePeriod)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ExportToolTimePeriod, [ExportToolTimePeriod, ])

agcls.AgClassCatalog.add_catalog_entry((5397073184804891915, 7999562652078911151), ExportToolTimePeriod)
agcls.AgTypeNameMap["ExportToolTimePeriod"] = ExportToolTimePeriod

class VehicleAttitudeExportTool(SupportsDeleteCallback):
    """Attitude file for the Export Ephemeris/Attitude File Tool."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_coordinate_axes_type_method_offset = 1
    _set_coordinate_axes_type_method_offset = 2
    _get_coordinate_axes_method_offset = 3
    _get_time_period_method_offset = 4
    _get_include_method_offset = 5
    _set_include_method_offset = 6
    _get_version_format_method_offset = 7
    _set_version_format_method_offset = 8
    _get_step_size_method_offset = 9
    _get_supported_coordinate_axes_method_offset = 10
    _get_central_body_name_method_offset = 11
    _export_method_offset = 12
    _metadata = {
        "iid_data" : (5310835307281711261, 7927212109698126483),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeExportTool)

    _get_coordinate_axes_type_metadata = { "offset" : _get_coordinate_axes_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AttitudeCoordinateAxes),) }
    @property
    def coordinate_axes_type(self) -> "AttitudeCoordinateAxes":
        """Get the coordinate axes to be used in the file."""
        return self._intf.get_property(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._get_coordinate_axes_type_metadata)

    _set_coordinate_axes_type_metadata = { "offset" : _set_coordinate_axes_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AttitudeCoordinateAxes),) }
    def set_coordinate_axes_type(self, coordinate_axes:"AttitudeCoordinateAxes") -> None:
        """Select the coordinate axes to be used in the file."""
        return self._intf.invoke(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._set_coordinate_axes_type_metadata, coordinate_axes)

    _get_coordinate_axes_metadata = { "offset" : _get_coordinate_axes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def coordinate_axes(self) -> "IVehicleCoordinateAxes":
        """Select a custom coordinate axes."""
        return self._intf.get_property(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._get_coordinate_axes_metadata)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "ExportToolTimePeriod":
        """Set the time period. Options are Use Entire Ephemeris - STK creates a data file using the Start and Stop Time specified in the vehicle's Orbit tab or Specify Time Period - STK creates a data file using the Start and Stop Time specified here."""
        return self._intf.get_property(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._get_time_period_metadata)

    _get_include_metadata = { "offset" : _get_include_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AttitudeInclude),) }
    @property
    def include(self) -> "AttitudeInclude":
        """Get or set the details to include in the data file."""
        return self._intf.get_property(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._get_include_metadata)

    _set_include_metadata = { "offset" : _set_include_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AttitudeInclude),) }
    @include.setter
    def include(self, details:"AttitudeInclude") -> None:
        return self._intf.set_property(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._set_include_metadata, details)

    _get_version_format_metadata = { "offset" : _get_version_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ExportToolVersionFormat),) }
    @property
    def version_format(self) -> "ExportToolVersionFormat":
        """Provide the option to generate files compatible with prior versions of STK."""
        return self._intf.get_property(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._get_version_format_metadata)

    _set_version_format_metadata = { "offset" : _set_version_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ExportToolVersionFormat),) }
    @version_format.setter
    def version_format(self, version:"ExportToolVersionFormat") -> None:
        return self._intf.set_property(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._set_version_format_metadata, version)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def step_size(self) -> "ExportToolStepSize":
        """If the Use Ephemeris Steps option is not selected, enter a Step Size to be used for the vehicle."""
        return self._intf.get_property(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._get_step_size_metadata)

    _get_supported_coordinate_axes_metadata = { "offset" : _get_supported_coordinate_axes_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_coordinate_axes(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._get_supported_coordinate_axes_metadata)

    _get_central_body_name_metadata = { "offset" : _get_central_body_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body_name(self) -> str:
        """Get the central body of the satellite."""
        return self._intf.get_property(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._get_central_body_name_metadata)

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export(self, file_name:str) -> None:
        """Export the Attitude file."""
        return self._intf.invoke(VehicleAttitudeExportTool._metadata, VehicleAttitudeExportTool._export_metadata, file_name)

    _property_names[coordinate_axes_type] = "coordinate_axes_type"
    _property_names[coordinate_axes] = "coordinate_axes"
    _property_names[time_period] = "time_period"
    _property_names[include] = "include"
    _property_names[version_format] = "version_format"
    _property_names[step_size] = "step_size"
    _property_names[supported_coordinate_axes] = "supported_coordinate_axes"
    _property_names[central_body_name] = "central_body_name"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeExportTool."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeExportTool)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeExportTool, [VehicleAttitudeExportTool, ])

agcls.AgClassCatalog.add_catalog_entry((5346668916958573410, 15451486539534102656), VehicleAttitudeExportTool)
agcls.AgTypeNameMap["VehicleAttitudeExportTool"] = VehicleAttitudeExportTool

class PropagatorDefinitionExportTool(SupportsDeleteCallback):
    """Interface used to define the export to data file options."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _export_method_offset = 1
    _metadata = {
        "iid_data" : (5621338672919290974, 7534418385274076072),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorDefinitionExportTool)

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export(self, file_name:str) -> None:
        """Export the Propagator (Prop Def) file."""
        return self._intf.invoke(PropagatorDefinitionExportTool._metadata, PropagatorDefinitionExportTool._export_metadata, file_name)


    def __init__(self, source_object=None):
        """Construct an object of type PropagatorDefinitionExportTool."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorDefinitionExportTool)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorDefinitionExportTool, [PropagatorDefinitionExportTool, ])

agcls.AgClassCatalog.add_catalog_entry((5735100623697979830, 7003642869694206086), PropagatorDefinitionExportTool)
agcls.AgTypeNameMap["PropagatorDefinitionExportTool"] = PropagatorDefinitionExportTool

class VehicleCoordinateAxesCustom(IVehicleCoordinateAxes, SupportsDeleteCallback):
    """Custom."""

    _num_methods = 2
    _vtable_offset = IVehicleCoordinateAxes._vtable_offset + IVehicleCoordinateAxes._num_methods
    _get_reference_axes_name_method_offset = 1
    _set_reference_axes_name_method_offset = 2
    _metadata = {
        "iid_data" : (5693695251224807429, 16909015697362898061),
        "vtable_reference" : IVehicleCoordinateAxes._vtable_offset + IVehicleCoordinateAxes._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleCoordinateAxesCustom)

    _get_reference_axes_name_metadata = { "offset" : _get_reference_axes_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reference_axes_name(self) -> str:
        """Get or set the specified reference axes."""
        return self._intf.get_property(VehicleCoordinateAxesCustom._metadata, VehicleCoordinateAxesCustom._get_reference_axes_name_metadata)

    _set_reference_axes_name_metadata = { "offset" : _set_reference_axes_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @reference_axes_name.setter
    def reference_axes_name(self, name:str) -> None:
        return self._intf.set_property(VehicleCoordinateAxesCustom._metadata, VehicleCoordinateAxesCustom._set_reference_axes_name_metadata, name)

    _property_names[reference_axes_name] = "reference_axes_name"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleCoordinateAxesCustom."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleCoordinateAxesCustom)
        IVehicleCoordinateAxes.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleCoordinateAxes._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleCoordinateAxesCustom, [VehicleCoordinateAxesCustom, IVehicleCoordinateAxes])

agcls.AgClassCatalog.add_catalog_entry((5548286435128717071, 9329651895157994636), VehicleCoordinateAxesCustom)
agcls.AgTypeNameMap["VehicleCoordinateAxesCustom"] = VehicleCoordinateAxesCustom

class ExportToolStepSize(SupportsDeleteCallback):
    """The step size."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _get_step_size_type_method_offset = 3
    _set_step_size_type_method_offset = 4
    _get_time_array_method_offset = 5
    _set_time_array_method_offset = 6
    _metadata = {
        "iid_data" : (4639589736279941941, 16453262664839735735),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ExportToolStepSize)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Step size value. Uses Time Dimension."""
        return self._intf.get_property(ExportToolStepSize._metadata, ExportToolStepSize._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, step_size_value:float) -> None:
        return self._intf.set_property(ExportToolStepSize._metadata, ExportToolStepSize._set_value_metadata, step_size_value)

    _get_step_size_type_metadata = { "offset" : _get_step_size_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ExportToolStepSizeType),) }
    @property
    def step_size_type(self) -> "ExportToolStepSizeType":
        """Step Size Type."""
        return self._intf.get_property(ExportToolStepSize._metadata, ExportToolStepSize._get_step_size_type_metadata)

    _set_step_size_type_metadata = { "offset" : _set_step_size_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ExportToolStepSizeType),) }
    @step_size_type.setter
    def step_size_type(self, step_size_type:"ExportToolStepSizeType") -> None:
        """Step Size Type."""
        return self._intf.set_property(ExportToolStepSize._metadata, ExportToolStepSize._set_step_size_type_metadata, step_size_type)

    _get_time_array_metadata = { "offset" : _get_time_array_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def time_array(self) -> str:
        """Get or set the time array component for the vehicle."""
        return self._intf.get_property(ExportToolStepSize._metadata, ExportToolStepSize._get_time_array_metadata)

    _set_time_array_metadata = { "offset" : _set_time_array_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @time_array.setter
    def time_array(self, name:str) -> None:
        return self._intf.set_property(ExportToolStepSize._metadata, ExportToolStepSize._set_time_array_metadata, name)

    _property_names[value] = "value"
    _property_names[step_size_type] = "step_size_type"
    _property_names[time_array] = "time_array"

    def __init__(self, source_object=None):
        """Construct an object of type ExportToolStepSize."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ExportToolStepSize)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ExportToolStepSize, [ExportToolStepSize, ])

agcls.AgClassCatalog.add_catalog_entry((4658874589434315700, 15930538177176818347), ExportToolStepSize)
agcls.AgTypeNameMap["ExportToolStepSize"] = ExportToolStepSize

class ProgressBarEventArguments(SupportsDeleteCallback):
    """Represents a structure used by the Percent Complete events."""

    _num_methods = 5
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _cancel_method_offset = 1
    _get_canceled_method_offset = 2
    _get_can_cancel_method_offset = 3
    _get_percent_completed_method_offset = 4
    _get_message_method_offset = 5
    _metadata = {
        "iid_data" : (5475606283840395752, 11970304623516823700),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ProgressBarEventArguments)

    _cancel_metadata = { "offset" : _cancel_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def cancel(self) -> None:
        """Cancel a lengthy operation."""
        return self._intf.invoke(ProgressBarEventArguments._metadata, ProgressBarEventArguments._cancel_metadata, )

    _get_canceled_metadata = { "offset" : _get_canceled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def canceled(self) -> bool:
        """Return whether the lengthy operation has been canceled."""
        return self._intf.get_property(ProgressBarEventArguments._metadata, ProgressBarEventArguments._get_canceled_metadata)

    _get_can_cancel_metadata = { "offset" : _get_can_cancel_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def can_cancel(self) -> bool:
        """Return whether the lengthy operation can be canceled."""
        return self._intf.get_property(ProgressBarEventArguments._metadata, ProgressBarEventArguments._get_can_cancel_metadata)

    _get_percent_completed_metadata = { "offset" : _get_percent_completed_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def percent_completed(self) -> int:
        """Return the current progress status. The value returned is greater or equal to 0 and less or equal to 100."""
        return self._intf.get_property(ProgressBarEventArguments._metadata, ProgressBarEventArguments._get_percent_completed_metadata)

    _get_message_metadata = { "offset" : _get_message_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def message(self) -> str:
        """Get a progress message."""
        return self._intf.get_property(ProgressBarEventArguments._metadata, ProgressBarEventArguments._get_message_metadata)

    _property_names[canceled] = "canceled"
    _property_names[can_cancel] = "can_cancel"
    _property_names[percent_completed] = "percent_completed"
    _property_names[message] = "message"

    def __init__(self, source_object=None):
        """Construct an object of type ProgressBarEventArguments."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ProgressBarEventArguments)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ProgressBarEventArguments, [ProgressBarEventArguments, ])

agcls.AgClassCatalog.add_catalog_entry((4710475999205124228, 12540471324031298739), ProgressBarEventArguments)
agcls.AgTypeNameMap["ProgressBarEventArguments"] = ProgressBarEventArguments

class STKObjectChangedEventArguments(SupportsDeleteCallback):
    """Contains information about the changes in the object's state."""

    _num_methods = 1
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_path_method_offset = 1
    _metadata = {
        "iid_data" : (5173510683657732838, 6829933382659783844),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, STKObjectChangedEventArguments)

    _get_path_metadata = { "offset" : _get_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def path(self) -> str:
        """Object file path."""
        return self._intf.get_property(STKObjectChangedEventArguments._metadata, STKObjectChangedEventArguments._get_path_metadata)

    _property_names[path] = "path"

    def __init__(self, source_object=None):
        """Construct an object of type STKObjectChangedEventArguments."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, STKObjectChangedEventArguments)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, STKObjectChangedEventArguments, [STKObjectChangedEventArguments, ])

agcls.AgClassCatalog.add_catalog_entry((5666857765644611896, 11945424201685098392), STKObjectChangedEventArguments)
agcls.AgTypeNameMap["STKObjectChangedEventArguments"] = STKObjectChangedEventArguments

class VehicleEclipsingBodies(SupportsDeleteCallback):
    """Interface for eclipsing bodies."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_available_eclipsing_bodies_method_offset = 1
    _get_assigned_eclipsing_bodies_method_offset = 2
    _is_eclipsing_body_assigned_method_offset = 3
    _assign_eclipsing_body_method_offset = 4
    _remove_eclipsing_body_method_offset = 5
    _remove_all_eclipsing_bodies_method_offset = 6
    _metadata = {
        "iid_data" : (5495196946725434131, 422793723934616737),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEclipsingBodies)

    _get_available_eclipsing_bodies_metadata = { "offset" : _get_available_eclipsing_bodies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_eclipsing_bodies(self) -> list:
        """Get the available eclipsing bodies."""
        return self._intf.get_property(VehicleEclipsingBodies._metadata, VehicleEclipsingBodies._get_available_eclipsing_bodies_metadata)

    _get_assigned_eclipsing_bodies_metadata = { "offset" : _get_assigned_eclipsing_bodies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def assigned_eclipsing_bodies(self) -> list:
        """Get the assigned eclipsing bodies."""
        return self._intf.get_property(VehicleEclipsingBodies._metadata, VehicleEclipsingBodies._get_assigned_eclipsing_bodies_metadata)

    _is_eclipsing_body_assigned_metadata = { "offset" : _is_eclipsing_body_assigned_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def is_eclipsing_body_assigned(self, eclipsing_body:str) -> bool:
        """Return true if the eclipsing body is assigned."""
        return self._intf.invoke(VehicleEclipsingBodies._metadata, VehicleEclipsingBodies._is_eclipsing_body_assigned_metadata, eclipsing_body, OutArg())

    _assign_eclipsing_body_metadata = { "offset" : _assign_eclipsing_body_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def assign_eclipsing_body(self, eclipsing_body:str) -> None:
        """Add an eclipsing body."""
        return self._intf.invoke(VehicleEclipsingBodies._metadata, VehicleEclipsingBodies._assign_eclipsing_body_metadata, eclipsing_body)

    _remove_eclipsing_body_metadata = { "offset" : _remove_eclipsing_body_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove_eclipsing_body(self, eclipsing_body:str) -> None:
        """Remove an eclipsing body."""
        return self._intf.invoke(VehicleEclipsingBodies._metadata, VehicleEclipsingBodies._remove_eclipsing_body_metadata, eclipsing_body)

    _remove_all_eclipsing_bodies_metadata = { "offset" : _remove_all_eclipsing_bodies_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all_eclipsing_bodies(self) -> None:
        """Remove all eclipsing bodies."""
        return self._intf.invoke(VehicleEclipsingBodies._metadata, VehicleEclipsingBodies._remove_all_eclipsing_bodies_metadata, )

    _property_names[available_eclipsing_bodies] = "available_eclipsing_bodies"
    _property_names[assigned_eclipsing_bodies] = "assigned_eclipsing_bodies"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEclipsingBodies."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEclipsingBodies)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEclipsingBodies, [VehicleEclipsingBodies, ])

agcls.AgClassCatalog.add_catalog_entry((4753085912101185367, 5835874566386056127), VehicleEclipsingBodies)
agcls.AgTypeNameMap["VehicleEclipsingBodies"] = VehicleEclipsingBodies

class LocationVectorGeometryToolPoint(ILocationData, SupportsDeleteCallback):
    """The location based upon a Vector Geometry Tool Point."""

    _num_methods = 2
    _vtable_offset = ILocationData._vtable_offset + ILocationData._num_methods
    _get_point_path_method_offset = 1
    _set_point_path_method_offset = 2
    _metadata = {
        "iid_data" : (5022287290233341476, 17560206532069391008),
        "vtable_reference" : ILocationData._vtable_offset + ILocationData._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LocationVectorGeometryToolPoint)

    _get_point_path_metadata = { "offset" : _get_point_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def point_path(self) -> str:
        """Location based upon a Vector Geometry Tool Point."""
        return self._intf.get_property(LocationVectorGeometryToolPoint._metadata, LocationVectorGeometryToolPoint._get_point_path_metadata)

    _set_point_path_metadata = { "offset" : _set_point_path_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @point_path.setter
    def point_path(self, point:str) -> None:
        return self._intf.set_property(LocationVectorGeometryToolPoint._metadata, LocationVectorGeometryToolPoint._set_point_path_metadata, point)

    _property_names[point_path] = "point_path"

    def __init__(self, source_object=None):
        """Construct an object of type LocationVectorGeometryToolPoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LocationVectorGeometryToolPoint)
        ILocationData.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILocationData._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LocationVectorGeometryToolPoint, [LocationVectorGeometryToolPoint, ILocationData])

agcls.AgClassCatalog.add_catalog_entry((5565840015464732368, 13647229279686749322), LocationVectorGeometryToolPoint)
agcls.AgTypeNameMap["LocationVectorGeometryToolPoint"] = LocationVectorGeometryToolPoint

class TimePeriod(IAccessInterval, ITimePeriod, SupportsDeleteCallback):
    """Provide methods and properties to configure start and stop times."""
    def __init__(self, source_object=None):
        """Construct an object of type TimePeriod."""
        SupportsDeleteCallback.__init__(self)
        IAccessInterval.__init__(self, source_object)
        ITimePeriod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessInterval._private_init(self, intf)
        ITimePeriod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TimePeriod, [IAccessInterval, ITimePeriod])

agcls.AgClassCatalog.add_catalog_entry((4838173195934225426, 7401046785096716962), TimePeriod)
agcls.AgTypeNameMap["TimePeriod"] = TimePeriod

class TimePeriodValue(SupportsDeleteCallback):
    """Provide methods and properties to configure a time value."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _get_type_method_offset = 3
    _set_type_method_offset = 4
    _metadata = {
        "iid_data" : (4904366239471465229, 9580161120265830329),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TimePeriodValue)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def value(self) -> typing.Any:
        """A time value. The value can be a string or a double."""
        return self._intf.get_property(TimePeriodValue._metadata, TimePeriodValue._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @value.setter
    def value(self, value:typing.Any) -> None:
        return self._intf.set_property(TimePeriodValue._metadata, TimePeriodValue._set_value_metadata, value)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TimePeriodValueType),) }
    @property
    def type(self) -> "TimePeriodValueType":
        """A time value type."""
        return self._intf.get_property(TimePeriodValue._metadata, TimePeriodValue._get_type_metadata)

    _set_type_metadata = { "offset" : _set_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TimePeriodValueType),) }
    @type.setter
    def type(self, time_type:"TimePeriodValueType") -> None:
        return self._intf.set_property(TimePeriodValue._metadata, TimePeriodValue._set_type_metadata, time_type)

    _property_names[value] = "value"
    _property_names[type] = "type"

    def __init__(self, source_object=None):
        """Construct an object of type TimePeriodValue."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TimePeriodValue)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TimePeriodValue, [TimePeriodValue, ])

agcls.AgClassCatalog.add_catalog_entry((5030186368910981445, 9078843403325314968), TimePeriodValue)
agcls.AgTypeNameMap["TimePeriodValue"] = TimePeriodValue

class SpatialState(SupportsDeleteCallback):
    """Represents a position and an attitude of an object."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_fixed_position_method_offset = 1
    _get_inertial_position_method_offset = 2
    _get_inertial_orientation_method_offset = 3
    _get_fixed_orientation_method_offset = 4
    _get_current_time_method_offset = 5
    _get_central_body_method_offset = 6
    _get_start_time_method_offset = 7
    _get_stop_time_method_offset = 8
    _get_is_available_method_offset = 9
    _query_velocity_fixed_method_offset = 10
    _query_velocity_inertial_method_offset = 11
    _metadata = {
        "iid_data" : (4665689651031841412, 8887006671015983245),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpatialState)

    _get_fixed_position_metadata = { "offset" : _get_fixed_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def fixed_position(self) -> "IPosition":
        """Return a position of the vehicle in central body fixed frame."""
        return self._intf.get_property(SpatialState._metadata, SpatialState._get_fixed_position_metadata)

    _get_inertial_position_metadata = { "offset" : _get_inertial_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def inertial_position(self) -> "IPosition":
        """Return a position of the vehicle in central body inertial frame."""
        return self._intf.get_property(SpatialState._metadata, SpatialState._get_inertial_position_metadata)

    _get_inertial_orientation_metadata = { "offset" : _get_inertial_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def inertial_orientation(self) -> "IOrientation":
        """Return an attitude of the vehicle in central body inertial frame."""
        return self._intf.get_property(SpatialState._metadata, SpatialState._get_inertial_orientation_metadata)

    _get_fixed_orientation_metadata = { "offset" : _get_fixed_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def fixed_orientation(self) -> "IOrientation":
        """Return an attitude of the vehicle in central body fixed frame."""
        return self._intf.get_property(SpatialState._metadata, SpatialState._get_fixed_orientation_metadata)

    _get_current_time_metadata = { "offset" : _get_current_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def current_time(self) -> typing.Any:
        """Return the current time."""
        return self._intf.get_property(SpatialState._metadata, SpatialState._get_current_time_metadata)

    _get_central_body_metadata = { "offset" : _get_central_body_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body(self) -> str:
        """Return a name of the central body."""
        return self._intf.get_property(SpatialState._metadata, SpatialState._get_central_body_metadata)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Return the start time."""
        return self._intf.get_property(SpatialState._metadata, SpatialState._get_start_time_metadata)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Return the stop time."""
        return self._intf.get_property(SpatialState._metadata, SpatialState._get_stop_time_metadata)

    _get_is_available_metadata = { "offset" : _get_is_available_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_available(self) -> bool:
        """Return whether the spatial state is valid."""
        return self._intf.get_property(SpatialState._metadata, SpatialState._get_is_available_metadata)

    _query_velocity_fixed_metadata = { "offset" : _query_velocity_fixed_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE), POINTER(agcom.DOUBLE), POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def query_velocity_fixed(self) -> typing.Tuple[float, float, float]:
        """Return a velocity of the vehicle in central body fixed frame."""
        return self._intf.invoke(SpatialState._metadata, SpatialState._query_velocity_fixed_metadata, OutArg(), OutArg(), OutArg())

    _query_velocity_inertial_metadata = { "offset" : _query_velocity_inertial_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE), POINTER(agcom.DOUBLE), POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def query_velocity_inertial(self) -> typing.Tuple[float, float, float]:
        """Return a velocity of the vehicle in central body inertial frame."""
        return self._intf.invoke(SpatialState._metadata, SpatialState._query_velocity_inertial_metadata, OutArg(), OutArg(), OutArg())

    _property_names[fixed_position] = "fixed_position"
    _property_names[inertial_position] = "inertial_position"
    _property_names[inertial_orientation] = "inertial_orientation"
    _property_names[fixed_orientation] = "fixed_orientation"
    _property_names[current_time] = "current_time"
    _property_names[central_body] = "central_body"
    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[is_available] = "is_available"

    def __init__(self, source_object=None):
        """Construct an object of type SpatialState."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpatialState)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpatialState, [SpatialState, ])

agcls.AgClassCatalog.add_catalog_entry((5248112464975736862, 16011560640132547230), SpatialState)
agcls.AgTypeNameMap["SpatialState"] = SpatialState

class VehicleSpatialInformation(SupportsDeleteCallback):
    """Represents a spatial information of the vehicle."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_state_method_offset = 1
    _get_recycle_method_offset = 2
    _get_available_times_method_offset = 3
    _metadata = {
        "iid_data" : (4710945185578425887, 7231871931087371916),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleSpatialInformation)

    _get_state_metadata = { "offset" : _get_state_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def get_state(self, time:typing.Any) -> "SpatialState":
        """Return a spatial state of the vehicle at specified time."""
        return self._intf.invoke(VehicleSpatialInformation._metadata, VehicleSpatialInformation._get_state_metadata, time, OutArg())

    _get_recycle_metadata = { "offset" : _get_recycle_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def recycle(self) -> bool:
        """Control whether to reuse the same spatial state object in subsequent calls to GetState."""
        return self._intf.get_property(VehicleSpatialInformation._metadata, VehicleSpatialInformation._get_recycle_metadata)

    _get_available_times_metadata = { "offset" : _get_available_times_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_available_times(self) -> "TimeIntervalCollectionReadOnly":
        """Return a collection of available intervals."""
        return self._intf.invoke(VehicleSpatialInformation._metadata, VehicleSpatialInformation._get_available_times_metadata, OutArg())

    _property_names[recycle] = "recycle"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleSpatialInformation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleSpatialInformation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleSpatialInformation, [VehicleSpatialInformation, ])

agcls.AgClassCatalog.add_catalog_entry((4719316991867920753, 11961467687450841014), VehicleSpatialInformation)
agcls.AgTypeNameMap["VehicleSpatialInformation"] = VehicleSpatialInformation

class OnePointAccess(SupportsDeleteCallback):
    """
    One Point Access.

    Examples
    --------
    Compute an access for one point:
    >>> # ISTKObject facility: Facility object
    >>> onePtAccess = facility.create_one_point_access("Satellite/MySatellite")
    >>>
    >>> # Configure properties (if necessary)
    >>> onePtAccess.start_time = root.current_scenario.start_time
    >>> onePtAccess.stop_time = root.current_scenario.stop_time
    >>> onePtAccess.step_size = 600
    >>> onePtAccess.summary_option = OnePointAccessSummary.DETAILED
    >>>
    >>> # Compute results
    >>> results = onePtAccess.compute()
    >>>
    >>> # Print results
    >>> for i in range(0, results.count):
    >>>     result = results.item(i)
    >>>     print("Time: %s HasAccess: %s" % (result.time, str(result.access_is_satisfied)))
    >>>
    >>>     for j in range(0, result.constraints.count):
    >>>         constraint = result.constraints.item(j)
    >>>         print(
    >>>             "Constraint: %s Object: %s Status: %s Value:%s"
    >>>             % (constraint.constraint, constraint.object_path, constraint.status, str(constraint.value))
    >>>         )
    """

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _compute_method_offset = 1
    _remove_method_offset = 2
    _get_summary_option_method_offset = 3
    _set_summary_option_method_offset = 4
    _get_start_time_method_offset = 5
    _set_start_time_method_offset = 6
    _get_stop_time_method_offset = 7
    _set_stop_time_method_offset = 8
    _get_step_size_method_offset = 9
    _set_step_size_method_offset = 10
    _get_output_to_file_method_offset = 11
    _set_output_to_file_method_offset = 12
    _get_output_filename_method_offset = 13
    _set_output_filename_method_offset = 14
    _compute_first_satisfaction_method_offset = 15
    _metadata = {
        "iid_data" : (5001775536288638708, 2865174239797456014),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OnePointAccess)

    _compute_metadata = { "offset" : _compute_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def compute(self) -> "OnePointAccessResultCollection":
        """Compute one point access results using the StartTime, StopTime, StepSize, and SummaryOption."""
        return self._intf.invoke(OnePointAccess._metadata, OnePointAccess._compute_metadata, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove(self) -> None:
        """Remove the one point access component that was created."""
        return self._intf.invoke(OnePointAccess._metadata, OnePointAccess._remove_metadata, )

    _get_summary_option_metadata = { "offset" : _get_summary_option_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(OnePointAccessSummary),) }
    @property
    def summary_option(self) -> "OnePointAccessSummary":
        """Summary option that specifies the level of detail to provide in the computed results."""
        return self._intf.get_property(OnePointAccess._metadata, OnePointAccess._get_summary_option_metadata)

    _set_summary_option_metadata = { "offset" : _set_summary_option_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(OnePointAccessSummary),) }
    @summary_option.setter
    def summary_option(self, value:"OnePointAccessSummary") -> None:
        return self._intf.set_property(OnePointAccess._metadata, OnePointAccess._set_summary_option_metadata, value)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Get or set the start time. Uses current animation time if none is entered."""
        return self._intf.get_property(OnePointAccess._metadata, OnePointAccess._get_start_time_metadata)

    _set_start_time_metadata = { "offset" : _set_start_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start_time.setter
    def start_time(self, start_time:typing.Any) -> None:
        return self._intf.set_property(OnePointAccess._metadata, OnePointAccess._set_start_time_metadata, start_time)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Get or set the stop time. Uses current animation time if none is entered.  Set this to the same value as StartTime to report at a single time."""
        return self._intf.get_property(OnePointAccess._metadata, OnePointAccess._get_stop_time_metadata)

    _set_stop_time_metadata = { "offset" : _set_stop_time_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop_time.setter
    def stop_time(self, stop_time:typing.Any) -> None:
        return self._intf.set_property(OnePointAccess._metadata, OnePointAccess._set_stop_time_metadata, stop_time)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step_size(self) -> float:
        """Get or set the step size. Default is 60 seconds."""
        return self._intf.get_property(OnePointAccess._metadata, OnePointAccess._get_step_size_metadata)

    _set_step_size_metadata = { "offset" : _set_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step_size.setter
    def step_size(self, step_size:float) -> None:
        return self._intf.set_property(OnePointAccess._metadata, OnePointAccess._set_step_size_metadata, step_size)

    _get_output_to_file_metadata = { "offset" : _get_output_to_file_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def output_to_file(self) -> bool:
        """Whether to output to a file."""
        return self._intf.get_property(OnePointAccess._metadata, OnePointAccess._get_output_to_file_metadata)

    _set_output_to_file_metadata = { "offset" : _set_output_to_file_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @output_to_file.setter
    def output_to_file(self, value:bool) -> None:
        return self._intf.set_property(OnePointAccess._metadata, OnePointAccess._set_output_to_file_metadata, value)

    _get_output_filename_metadata = { "offset" : _get_output_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def output_filename(self) -> str:
        """If set to do so, results will be output to a file with this name."""
        return self._intf.get_property(OnePointAccess._metadata, OnePointAccess._get_output_filename_metadata)

    _set_output_filename_metadata = { "offset" : _set_output_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @output_filename.setter
    def output_filename(self, file_name:str) -> None:
        return self._intf.set_property(OnePointAccess._metadata, OnePointAccess._set_output_filename_metadata, file_name)

    _compute_first_satisfaction_metadata = { "offset" : _compute_first_satisfaction_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.LONG, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.LongArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def compute_first_satisfaction(self, start_time:typing.Any, stop_time:typing.Any, max_num_accesses_to_find:int, min_duration:float) -> "TimeIntervalCollectionReadOnly":
        """Compute and reports the first N satisfaction intervals (where N <= MaxNumAccessesToFind) over the specified interval whose spans meet the specified minimum duration. Does not use output file."""
        return self._intf.invoke(OnePointAccess._metadata, OnePointAccess._compute_first_satisfaction_metadata, start_time, stop_time, max_num_accesses_to_find, min_duration, OutArg())

    _property_names[summary_option] = "summary_option"
    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[step_size] = "step_size"
    _property_names[output_to_file] = "output_to_file"
    _property_names[output_filename] = "output_filename"

    def __init__(self, source_object=None):
        """Construct an object of type OnePointAccess."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OnePointAccess)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OnePointAccess, [OnePointAccess, ])

agcls.AgClassCatalog.add_catalog_entry((5254953308513593013, 8876614606825714051), OnePointAccess)
agcls.AgTypeNameMap["OnePointAccess"] = OnePointAccess

class OnePointAccessResultCollection(SupportsDeleteCallback):
    """Represents the data sets for one point access."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5515801442511518350, 6266057787934530695),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OnePointAccessResultCollection)
    def __iter__(self):
        """Create an iterator for the OnePointAccessResultCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "OnePointAccessResult":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(OnePointAccessResultCollection._metadata, OnePointAccessResultCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "OnePointAccessResult":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(OnePointAccessResultCollection._metadata, OnePointAccessResultCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(OnePointAccessResultCollection._metadata, OnePointAccessResultCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type OnePointAccessResultCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OnePointAccessResultCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OnePointAccessResultCollection, [OnePointAccessResultCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5258268350437197016, 9715829575708676540), OnePointAccessResultCollection)
agcls.AgTypeNameMap["OnePointAccessResultCollection"] = OnePointAccessResultCollection

class OnePointAccessResult(SupportsDeleteCallback):
    """One Point Access Result."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_access_is_satisfied_method_offset = 1
    _get_time_method_offset = 2
    _get_constraints_method_offset = 3
    _metadata = {
        "iid_data" : (5735333397366777593, 17136443980918341275),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OnePointAccessResult)

    _get_access_is_satisfied_metadata = { "offset" : _get_access_is_satisfied_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def access_is_satisfied(self) -> bool:
        """Indicate whether all constraints are satisfied at this time."""
        return self._intf.get_property(OnePointAccessResult._metadata, OnePointAccessResult._get_access_is_satisfied_metadata)

    _get_time_metadata = { "offset" : _get_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def time(self) -> typing.Any:
        """Get the time of evaluation of the constraints in a OnePointAccess Compute request."""
        return self._intf.get_property(OnePointAccessResult._metadata, OnePointAccessResult._get_time_metadata)

    _get_constraints_metadata = { "offset" : _get_constraints_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def constraints(self) -> "OnePointAccessConstraintCollection":
        """List of constraints evaluated at this time."""
        return self._intf.get_property(OnePointAccessResult._metadata, OnePointAccessResult._get_constraints_metadata)

    _property_names[access_is_satisfied] = "access_is_satisfied"
    _property_names[time] = "time"
    _property_names[constraints] = "constraints"

    def __init__(self, source_object=None):
        """Construct an object of type OnePointAccessResult."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OnePointAccessResult)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OnePointAccessResult, [OnePointAccessResult, ])

agcls.AgClassCatalog.add_catalog_entry((5299101274071458010, 6117323020515678596), OnePointAccessResult)
agcls.AgTypeNameMap["OnePointAccessResult"] = OnePointAccessResult

class OnePointAccessConstraintCollection(SupportsDeleteCallback):
    """Represents the access constraints for the one point access computation."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5039805490946323754, 12245834332279285171),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OnePointAccessConstraintCollection)
    def __iter__(self):
        """Create an iterator for the OnePointAccessConstraintCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "OnePointAccessConstraint":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(OnePointAccessConstraintCollection._metadata, OnePointAccessConstraintCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "OnePointAccessConstraint":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(OnePointAccessConstraintCollection._metadata, OnePointAccessConstraintCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(OnePointAccessConstraintCollection._metadata, OnePointAccessConstraintCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type OnePointAccessConstraintCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OnePointAccessConstraintCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OnePointAccessConstraintCollection, [OnePointAccessConstraintCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5295999317280871064, 16621847362406318258), OnePointAccessConstraintCollection)
agcls.AgTypeNameMap["OnePointAccessConstraintCollection"] = OnePointAccessConstraintCollection

class OnePointAccessConstraint(SupportsDeleteCallback):
    """One Point Access Result."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_status_method_offset = 1
    _get_constraint_method_offset = 2
    _get_value_method_offset = 3
    _get_object_path_method_offset = 4
    _metadata = {
        "iid_data" : (4927329908159970627, 3887237717377916346),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OnePointAccessConstraint)

    _get_status_metadata = { "offset" : _get_status_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(OnePointAccessStatus),) }
    @property
    def status(self) -> "OnePointAccessStatus":
        """An indicator describing the status  of whether the constraint is satisfied or violated at the computed time."""
        return self._intf.get_property(OnePointAccessConstraint._metadata, OnePointAccessConstraint._get_status_metadata)

    _get_constraint_metadata = { "offset" : _get_constraint_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AccessConstraintType),) }
    @property
    def constraint(self) -> "AccessConstraintType":
        """Get the type of the constraint being evaluated."""
        return self._intf.get_property(OnePointAccessConstraint._metadata, OnePointAccessConstraint._get_constraint_metadata)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Get the value of the constraint at the computed time, in internal units."""
        return self._intf.get_property(OnePointAccessConstraint._metadata, OnePointAccessConstraint._get_value_metadata)

    _get_object_path_metadata = { "offset" : _get_object_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def object_path(self) -> str:
        """Get the object path of the owner of the constraint."""
        return self._intf.get_property(OnePointAccessConstraint._metadata, OnePointAccessConstraint._get_object_path_metadata)

    _property_names[status] = "status"
    _property_names[constraint] = "constraint"
    _property_names[value] = "value"
    _property_names[object_path] = "object_path"

    def __init__(self, source_object=None):
        """Construct an object of type OnePointAccessConstraint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OnePointAccessConstraint)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OnePointAccessConstraint, [OnePointAccessConstraint, ])

agcls.AgClassCatalog.add_catalog_entry((5707745845813592415, 9517348891238923658), OnePointAccessConstraint)
agcls.AgTypeNameMap["OnePointAccessConstraint"] = OnePointAccessConstraint

class PropagatorRealtime(IPropagator, SupportsDeleteCallback):
    """Realtime propagator interface."""

    _num_methods = 13
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_duration_method_offset = 2
    _get_interpolation_order_method_offset = 3
    _set_interpolation_order_method_offset = 4
    _get_look_ahead_propagator_method_offset = 5
    _set_look_ahead_propagator_method_offset = 6
    _get_supported_look_ahead_propagators_method_offset = 7
    _is_look_ahead_propagator_supported_method_offset = 8
    _get_time_step_method_offset = 9
    _set_time_step_method_offset = 10
    _get_timeout_gap_method_offset = 11
    _set_timeout_gap_method_offset = 12
    _get_point_builder_method_offset = 13
    _metadata = {
        "iid_data" : (5344043743071731215, 8376465782410026631),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorRealtime)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Set the vehicle's propagator to Realtime."""
        return self._intf.invoke(PropagatorRealtime._metadata, PropagatorRealtime._propagate_metadata, )

    _get_duration_metadata = { "offset" : _get_duration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def duration(self) -> "VehicleDuration":
        """Get look ahead/look behind duration values."""
        return self._intf.get_property(PropagatorRealtime._metadata, PropagatorRealtime._get_duration_metadata)

    _get_interpolation_order_metadata = { "offset" : _get_interpolation_order_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def interpolation_order(self) -> int:
        """The interpolation order. Dimensionless."""
        return self._intf.get_property(PropagatorRealtime._metadata, PropagatorRealtime._get_interpolation_order_metadata)

    _set_interpolation_order_metadata = { "offset" : _set_interpolation_order_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @interpolation_order.setter
    def interpolation_order(self, order:int) -> None:
        return self._intf.set_property(PropagatorRealtime._metadata, PropagatorRealtime._set_interpolation_order_metadata, order)

    _get_look_ahead_propagator_metadata = { "offset" : _get_look_ahead_propagator_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LookAheadPropagator),) }
    @property
    def look_ahead_propagator(self) -> "LookAheadPropagator":
        """A name of the lookahead propagator."""
        return self._intf.get_property(PropagatorRealtime._metadata, PropagatorRealtime._get_look_ahead_propagator_metadata)

    _set_look_ahead_propagator_metadata = { "offset" : _set_look_ahead_propagator_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LookAheadPropagator),) }
    @look_ahead_propagator.setter
    def look_ahead_propagator(self, propagator:"LookAheadPropagator") -> None:
        return self._intf.set_property(PropagatorRealtime._metadata, PropagatorRealtime._set_look_ahead_propagator_metadata, propagator)

    _get_supported_look_ahead_propagators_metadata = { "offset" : _get_supported_look_ahead_propagators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_look_ahead_propagators(self) -> list:
        """Return an array of supported lookahead propagators."""
        return self._intf.get_property(PropagatorRealtime._metadata, PropagatorRealtime._get_supported_look_ahead_propagators_metadata)

    _is_look_ahead_propagator_supported_metadata = { "offset" : _is_look_ahead_propagator_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(LookAheadPropagator), agmarshall.VariantBoolArg,) }
    def is_look_ahead_propagator_supported(self, propagator:"LookAheadPropagator") -> bool:
        """Return whether the specified look ahead propagator is supported."""
        return self._intf.invoke(PropagatorRealtime._metadata, PropagatorRealtime._is_look_ahead_propagator_supported_metadata, propagator, OutArg())

    _get_time_step_metadata = { "offset" : _get_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_step(self) -> float:
        """Specify the interval between computed ephemeris output points. Valid value is between 0.1 and 9999.0 seconds."""
        return self._intf.get_property(PropagatorRealtime._metadata, PropagatorRealtime._get_time_step_metadata)

    _set_time_step_metadata = { "offset" : _set_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_step.setter
    def time_step(self, time_step:float) -> None:
        return self._intf.set_property(PropagatorRealtime._metadata, PropagatorRealtime._set_time_step_metadata, time_step)

    _get_timeout_gap_metadata = { "offset" : _get_timeout_gap_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def timeout_gap(self) -> float:
        """Specify the time after which look ahead values are considered to be ``stale`` (that is, the data has dropped out). Valid value is between 1.0 and 1000000.0 seconds."""
        return self._intf.get_property(PropagatorRealtime._metadata, PropagatorRealtime._get_timeout_gap_metadata)

    _set_timeout_gap_metadata = { "offset" : _set_timeout_gap_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @timeout_gap.setter
    def timeout_gap(self, timeout_gap:float) -> None:
        return self._intf.set_property(PropagatorRealtime._metadata, PropagatorRealtime._set_timeout_gap_metadata, timeout_gap)

    _get_point_builder_metadata = { "offset" : _get_point_builder_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point_builder(self) -> "PropagatorRealtimePointBuilder":
        """Get a object to create ephemeris data for a vehicle by sending it point by point."""
        return self._intf.get_property(PropagatorRealtime._metadata, PropagatorRealtime._get_point_builder_metadata)

    _property_names[duration] = "duration"
    _property_names[interpolation_order] = "interpolation_order"
    _property_names[look_ahead_propagator] = "look_ahead_propagator"
    _property_names[supported_look_ahead_propagators] = "supported_look_ahead_propagators"
    _property_names[time_step] = "time_step"
    _property_names[timeout_gap] = "timeout_gap"
    _property_names[point_builder] = "point_builder"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorRealtime."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorRealtime)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorRealtime, [PropagatorRealtime, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((5293131012914221328, 4144777494356913563), PropagatorRealtime)
agcls.AgTypeNameMap["PropagatorRealtime"] = PropagatorRealtime

class PropagatorRealtimePointBuilder(SupportsDeleteCallback):
    """Allow the user to create vehicle's ephemeris by appending ephemeris points."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ephemeris_in_b1950_frame_method_offset = 1
    _get_ephemeris_in_central_body_fixed_frame_method_offset = 2
    _get_ephemeris_in_central_body_inertial_frame_method_offset = 3
    _get_ephemeris_in_heading_pitch_method_offset = 4
    _get_ephemeris_in_latitude_longituide_altitude_method_offset = 5
    _get_ephemeris_in_latitude_longitude_altitude_above_terrain_method_offset = 6
    _get_ephemeris_in_latitude_longitude_altitude_above_mean_sea_level__method_offset = 7
    _get_ephemeris_in_utm_method_offset = 8
    _get_points_in_frame_method_offset = 9
    _remove_all_points_method_offset = 10
    _metadata = {
        "iid_data" : (5443679284611620231, 9487396821583096974),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorRealtimePointBuilder)

    _get_ephemeris_in_b1950_frame_metadata = { "offset" : _get_ephemeris_in_b1950_frame_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_in_b1950_frame(self) -> "PropagatorRealtimeCartesianPoints":
        """The input values are in the B1950 coordinate frame."""
        return self._intf.get_property(PropagatorRealtimePointBuilder._metadata, PropagatorRealtimePointBuilder._get_ephemeris_in_b1950_frame_metadata)

    _get_ephemeris_in_central_body_fixed_frame_metadata = { "offset" : _get_ephemeris_in_central_body_fixed_frame_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_in_central_body_fixed_frame(self) -> "PropagatorRealtimeCartesianPoints":
        """Origin is at the center of the Earth and axes which are fixed to the Earth."""
        return self._intf.get_property(PropagatorRealtimePointBuilder._metadata, PropagatorRealtimePointBuilder._get_ephemeris_in_central_body_fixed_frame_metadata)

    _get_ephemeris_in_central_body_inertial_frame_metadata = { "offset" : _get_ephemeris_in_central_body_inertial_frame_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_in_central_body_inertial_frame(self) -> "PropagatorRealtimeCartesianPoints":
        """Origin is at the center of the Earth and axes which are fixed in inertial space. The inertial coordinate system is J2000."""
        return self._intf.get_property(PropagatorRealtimePointBuilder._metadata, PropagatorRealtimePointBuilder._get_ephemeris_in_central_body_inertial_frame_metadata)

    _get_ephemeris_in_heading_pitch_metadata = { "offset" : _get_ephemeris_in_heading_pitch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_in_heading_pitch(self) -> "PropagatorRealtimeHeadingPitch":
        """Lat & Lon are entered in Lat & Lon units. Alt is in Distance unit. Heading & Pitch are in degrees. Speed is in Distance/Time. Heading is entered as degrees from North and is the rotation about the Z-axis; Pitch is the rotation about the Y-axis."""
        return self._intf.get_property(PropagatorRealtimePointBuilder._metadata, PropagatorRealtimePointBuilder._get_ephemeris_in_heading_pitch_metadata)

    _get_ephemeris_in_latitude_longituide_altitude_metadata = { "offset" : _get_ephemeris_in_latitude_longituide_altitude_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_in_latitude_longituide_altitude(self) -> "PropagatorRealtimeDeticPoints":
        """The LLA measures <Alt> from the surface of the Earth, or 0."""
        return self._intf.get_property(PropagatorRealtimePointBuilder._metadata, PropagatorRealtimePointBuilder._get_ephemeris_in_latitude_longituide_altitude_metadata)

    _get_ephemeris_in_latitude_longitude_altitude_above_terrain_metadata = { "offset" : _get_ephemeris_in_latitude_longitude_altitude_above_terrain_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_in_latitude_longitude_altitude_above_terrain(self) -> "PropagatorRealtimeDeticPoints":
        """The AGL_LLA considers terrain at the specified location when measuring <Alt>."""
        return self._intf.get_property(PropagatorRealtimePointBuilder._metadata, PropagatorRealtimePointBuilder._get_ephemeris_in_latitude_longitude_altitude_above_terrain_metadata)

    _get_ephemeris_in_latitude_longitude_altitude_above_mean_sea_level__metadata = { "offset" : _get_ephemeris_in_latitude_longitude_altitude_above_mean_sea_level__method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_in_latitude_longitude_altitude_above_mean_sea_level_(self) -> "PropagatorRealtimeDeticPoints":
        """The MSL_LLA considers mean sea level at the specified location when measuring <Alt>."""
        return self._intf.get_property(PropagatorRealtimePointBuilder._metadata, PropagatorRealtimePointBuilder._get_ephemeris_in_latitude_longitude_altitude_above_mean_sea_level__metadata)

    _get_ephemeris_in_utm_metadata = { "offset" : _get_ephemeris_in_utm_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_in_utm(self) -> "PropagatorRealtimeUTMPoints":
        """Valid values for ZoneStr are A, B, Y, Z or ddc, where 00<dd<61 and c is C-X. Easting, Northing and Alt are entered in distance units. LonRate and LatRate are entered in degrees/second. AltRate is entered in units/second."""
        return self._intf.get_property(PropagatorRealtimePointBuilder._metadata, PropagatorRealtimePointBuilder._get_ephemeris_in_utm_metadata)

    _get_points_in_frame_metadata = { "offset" : _get_points_in_frame_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_points_in_frame(self, reference_frame:str) -> "PropagatorRealtimeCartesianPoints":
        """Allow adding points using specified reference frame."""
        return self._intf.invoke(PropagatorRealtimePointBuilder._metadata, PropagatorRealtimePointBuilder._get_points_in_frame_metadata, reference_frame, OutArg())

    _remove_all_points_metadata = { "offset" : _remove_all_points_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all_points(self) -> None:
        """Remove any points add to the vehicle's realtime ephemeris."""
        return self._intf.invoke(PropagatorRealtimePointBuilder._metadata, PropagatorRealtimePointBuilder._remove_all_points_metadata, )

    _property_names[ephemeris_in_b1950_frame] = "ephemeris_in_b1950_frame"
    _property_names[ephemeris_in_central_body_fixed_frame] = "ephemeris_in_central_body_fixed_frame"
    _property_names[ephemeris_in_central_body_inertial_frame] = "ephemeris_in_central_body_inertial_frame"
    _property_names[ephemeris_in_heading_pitch] = "ephemeris_in_heading_pitch"
    _property_names[ephemeris_in_latitude_longituide_altitude] = "ephemeris_in_latitude_longituide_altitude"
    _property_names[ephemeris_in_latitude_longitude_altitude_above_terrain] = "ephemeris_in_latitude_longitude_altitude_above_terrain"
    _property_names[ephemeris_in_latitude_longitude_altitude_above_mean_sea_level_] = "ephemeris_in_latitude_longitude_altitude_above_mean_sea_level_"
    _property_names[ephemeris_in_utm] = "ephemeris_in_utm"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorRealtimePointBuilder."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorRealtimePointBuilder)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorRealtimePointBuilder, [PropagatorRealtimePointBuilder, ])

agcls.AgClassCatalog.add_catalog_entry((5276531544626697012, 14032172887715820459), PropagatorRealtimePointBuilder)
agcls.AgTypeNameMap["PropagatorRealtimePointBuilder"] = PropagatorRealtimePointBuilder

class PropagatorRealtimeCartesianPoints(SupportsDeleteCallback):
    """Add one ephemeris point using cartesian coordinates."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _add_position_method_offset = 1
    _add_method_offset = 2
    _metadata = {
        "iid_data" : (5724429747991478358, 5726908735688952222),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorRealtimeCartesianPoints)

    _add_position_metadata = { "offset" : _add_position_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add_position(self, time:typing.Any, x:float, y:float, z:float) -> None:
        """Add an ephemeris point. Epoch uses DateFormat dimension."""
        return self._intf.invoke(PropagatorRealtimeCartesianPoints._metadata, PropagatorRealtimeCartesianPoints._add_position_metadata, time, x, y, z)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add(self, time:typing.Any, x:float, y:float, z:float, vx:float, vy:float, vz:float) -> None:
        """Add an ephemeris point using position and velocity. Epoch uses DateFormat dimension."""
        return self._intf.invoke(PropagatorRealtimeCartesianPoints._metadata, PropagatorRealtimeCartesianPoints._add_metadata, time, x, y, z, vx, vy, vz)


    def __init__(self, source_object=None):
        """Construct an object of type PropagatorRealtimeCartesianPoints."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorRealtimeCartesianPoints)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorRealtimeCartesianPoints, [PropagatorRealtimeCartesianPoints, ])

agcls.AgClassCatalog.add_catalog_entry((5537760273346525602, 1541124999398299065), PropagatorRealtimeCartesianPoints)
agcls.AgTypeNameMap["PropagatorRealtimeCartesianPoints"] = PropagatorRealtimeCartesianPoints

class PropagatorRealtimeHeadingPitch(SupportsDeleteCallback):
    """Add one ephemeris point using latitude/longitude/altitude coordinate system."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _add_method_offset = 1
    _metadata = {
        "iid_data" : (5591325026031584130, 2050783744072520355),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorRealtimeHeadingPitch)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add(self, time:typing.Any, lat:float, lon:float, alt:float, heading:float, pitch:float, speed:float) -> None:
        """Add an ephemeris point using position, heading, pitch and speed. Epoch uses DateFormat dimension. Lat uses Latitude dimension. Lon uses Longitude dimension. Alt uses Distance dimension. Heading/Pitch use Angle dimension."""
        return self._intf.invoke(PropagatorRealtimeHeadingPitch._metadata, PropagatorRealtimeHeadingPitch._add_metadata, time, lat, lon, alt, heading, pitch, speed)


    def __init__(self, source_object=None):
        """Construct an object of type PropagatorRealtimeHeadingPitch."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorRealtimeHeadingPitch)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorRealtimeHeadingPitch, [PropagatorRealtimeHeadingPitch, ])

agcls.AgClassCatalog.add_catalog_entry((5282638054077298240, 7968858978642662321), PropagatorRealtimeHeadingPitch)
agcls.AgTypeNameMap["PropagatorRealtimeHeadingPitch"] = PropagatorRealtimeHeadingPitch

class PropagatorRealtimeDeticPoints(SupportsDeleteCallback):
    """Add one ephemeris point using latitude/longitude/altitude coordinate system."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _add_position_method_offset = 1
    _add_method_offset = 2
    _add_position_batch_method_offset = 3
    _add_batch_method_offset = 4
    _metadata = {
        "iid_data" : (4925251608766489133, 17529645705748807090),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorRealtimeDeticPoints)

    _add_position_metadata = { "offset" : _add_position_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add_position(self, time:typing.Any, lat:float, lon:float, alt:float) -> None:
        """Add an ephemeris point without velocity. Epoch uses DateFormat dimension. Lat uses Latitude dimension. Lon uses Longitude dimension. Alt uses Distance dimension."""
        return self._intf.invoke(PropagatorRealtimeDeticPoints._metadata, PropagatorRealtimeDeticPoints._add_position_metadata, time, lat, lon, alt)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add(self, time:typing.Any, lat:float, lon:float, alt:float, lat_rate:float, lon_rate:float, alt_rate:float) -> None:
        """Add an ephemeris point using position and velocity. Epoch uses DateFormat dimension. Lat uses Latitude dimension. Lon uses Longitude dimension. Alt uses Distance dimension."""
        return self._intf.invoke(PropagatorRealtimeDeticPoints._metadata, PropagatorRealtimeDeticPoints._add_metadata, time, lat, lon, alt, lat_rate, lon_rate, alt_rate)

    _add_position_batch_metadata = { "offset" : _add_position_batch_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg,) }
    def add_position_batch(self, times:list, lats:list, lons:list, alts:list) -> None:
        """Add data points without velocity information."""
        return self._intf.invoke(PropagatorRealtimeDeticPoints._metadata, PropagatorRealtimeDeticPoints._add_position_batch_metadata, times, lats, lons, alts)

    _add_batch_metadata = { "offset" : _add_batch_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY), POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg, agmarshall.LPSafearrayArg,) }
    def add_batch(self, times:list, lats:list, lons:list, alts:list, lat_rates:list, lon_rates:list, alt_rates:list) -> None:
        """Add data points with velocity information."""
        return self._intf.invoke(PropagatorRealtimeDeticPoints._metadata, PropagatorRealtimeDeticPoints._add_batch_metadata, times, lats, lons, alts, lat_rates, lon_rates, alt_rates)


    def __init__(self, source_object=None):
        """Construct an object of type PropagatorRealtimeDeticPoints."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorRealtimeDeticPoints)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorRealtimeDeticPoints, [PropagatorRealtimeDeticPoints, ])

agcls.AgClassCatalog.add_catalog_entry((5390315080869112241, 16626309397842336643), PropagatorRealtimeDeticPoints)
agcls.AgTypeNameMap["PropagatorRealtimeDeticPoints"] = PropagatorRealtimeDeticPoints

class PropagatorRealtimeUTMPoints(SupportsDeleteCallback):
    """Add one ephemeris point."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _add_position_method_offset = 1
    _add_method_offset = 2
    _metadata = {
        "iid_data" : (5569322631210351942, 14845969683474087310),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorRealtimeUTMPoints)

    _add_position_metadata = { "offset" : _add_position_method_offset,
            "arg_types" : (agcom.Variant, agcom.BSTR, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.BStrArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add_position(self, time:typing.Any, zone_str:str, easting:float, northing:float, alt:float) -> None:
        """Add an ephemeris point using position only. Valid values for <ZoneStr> are A, B, Y, Z or ddc, where 00<dd<61 and c is C-X. Easting, Northing and Alt are entered in Distance."""
        return self._intf.invoke(PropagatorRealtimeUTMPoints._metadata, PropagatorRealtimeUTMPoints._add_position_metadata, time, zone_str, easting, northing, alt)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.Variant, agcom.BSTR, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.VariantArg, agmarshall.BStrArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def add(self, time:typing.Any, zone_str:str, easting:float, northing:float, alt:float, lon_rate:float, lat_rate:float, alt_rate:float) -> None:
        """Add an ephemeris point. Valid values for <ZoneStr> are A, B, Y, Z or ddc, where 00<dd<61 and c is C-X. Easting, Northing and Alt are entered in Distance. LonRate and LatRate are entered in degrees/second. AltRate is entered in Distance/second."""
        return self._intf.invoke(PropagatorRealtimeUTMPoints._metadata, PropagatorRealtimeUTMPoints._add_metadata, time, zone_str, easting, northing, alt, lon_rate, lat_rate, alt_rate)


    def __init__(self, source_object=None):
        """Construct an object of type PropagatorRealtimeUTMPoints."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorRealtimeUTMPoints)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorRealtimeUTMPoints, [PropagatorRealtimeUTMPoints, ])

agcls.AgClassCatalog.add_catalog_entry((4902294990308373566, 9917936719706193594), PropagatorRealtimeUTMPoints)
agcls.AgTypeNameMap["PropagatorRealtimeUTMPoints"] = PropagatorRealtimeUTMPoints

class SolarRadiationPressureModelGPS(ISRPModelBase, SupportsDeleteCallback):
    """GPS Solar Radiation Pressure Model."""

    _num_methods = 4
    _vtable_offset = ISRPModelBase._vtable_offset + ISRPModelBase._num_methods
    _get_scale_method_offset = 1
    _set_scale_method_offset = 2
    _get_y_bias_method_offset = 3
    _set_y_bias_method_offset = 4
    _metadata = {
        "iid_data" : (5614016402694692531, 6044540693987366814),
        "vtable_reference" : ISRPModelBase._vtable_offset + ISRPModelBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SolarRadiationPressureModelGPS)

    _get_scale_metadata = { "offset" : _get_scale_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scale(self) -> float:
        """Multiplicative factor on top of nominal GPS solar pressure model for acceleration in the satellite body fixed X-Z plane, which contains the sun to satellite line. Also known as K1, the nominal value is near 1.0."""
        return self._intf.get_property(SolarRadiationPressureModelGPS._metadata, SolarRadiationPressureModelGPS._get_scale_metadata)

    _set_scale_metadata = { "offset" : _set_scale_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scale.setter
    def scale(self, scale:float) -> None:
        return self._intf.set_property(SolarRadiationPressureModelGPS._metadata, SolarRadiationPressureModelGPS._set_scale_metadata, scale)

    _get_y_bias_metadata = { "offset" : _get_y_bias_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_bias(self) -> float:
        """Acceleration along the body-fixed Y axis of the satellite. Input is unitless but is multiplied by 1.0e-12 m/s2 to yield an acceleration perpendicular to the sun-to-satellite line. Also known as K2, the nominally value is in the range of -1 < YBias < 1."""
        return self._intf.get_property(SolarRadiationPressureModelGPS._metadata, SolarRadiationPressureModelGPS._get_y_bias_metadata)

    _set_y_bias_metadata = { "offset" : _set_y_bias_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_bias.setter
    def y_bias(self, y_bias:float) -> None:
        return self._intf.set_property(SolarRadiationPressureModelGPS._metadata, SolarRadiationPressureModelGPS._set_y_bias_metadata, y_bias)

    _property_names[scale] = "scale"
    _property_names[y_bias] = "y_bias"

    def __init__(self, source_object=None):
        """Construct an object of type SolarRadiationPressureModelGPS."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SolarRadiationPressureModelGPS)
        ISRPModelBase.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISRPModelBase._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SolarRadiationPressureModelGPS, [SolarRadiationPressureModelGPS, ISRPModelBase])

agcls.AgClassCatalog.add_catalog_entry((5729394009870922360, 6640075363439895693), SolarRadiationPressureModelGPS)
agcls.AgTypeNameMap["SolarRadiationPressureModelGPS"] = SolarRadiationPressureModelGPS

class SolarRadiationPressureModelSpherical(ISRPModelBase, SupportsDeleteCallback):
    """Spherical Solar Radiation Pressure Model."""

    _num_methods = 4
    _vtable_offset = ISRPModelBase._vtable_offset + ISRPModelBase._num_methods
    _get_cr_method_offset = 1
    _set_cr_method_offset = 2
    _get_area_mass_ratio_method_offset = 3
    _set_area_mass_ratio_method_offset = 4
    _metadata = {
        "iid_data" : (5676165666010311076, 16646933224897359529),
        "vtable_reference" : ISRPModelBase._vtable_offset + ISRPModelBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SolarRadiationPressureModelSpherical)

    _get_cr_metadata = { "offset" : _get_cr_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cr(self) -> float:
        """Solar radiation pressure coefficient. Dimensionless."""
        return self._intf.get_property(SolarRadiationPressureModelSpherical._metadata, SolarRadiationPressureModelSpherical._get_cr_metadata)

    _set_cr_metadata = { "offset" : _set_cr_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cr.setter
    def cr(self, cr:float) -> None:
        return self._intf.set_property(SolarRadiationPressureModelSpherical._metadata, SolarRadiationPressureModelSpherical._set_cr_metadata, cr)

    _get_area_mass_ratio_metadata = { "offset" : _get_area_mass_ratio_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def area_mass_ratio(self) -> float:
        """Get or set the area-to-mass ratio to be used in SRP calculations. Uses AreaPerMass Dimension."""
        return self._intf.get_property(SolarRadiationPressureModelSpherical._metadata, SolarRadiationPressureModelSpherical._get_area_mass_ratio_metadata)

    _set_area_mass_ratio_metadata = { "offset" : _set_area_mass_ratio_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @area_mass_ratio.setter
    def area_mass_ratio(self, area_mass_ratio:float) -> None:
        return self._intf.set_property(SolarRadiationPressureModelSpherical._metadata, SolarRadiationPressureModelSpherical._set_area_mass_ratio_metadata, area_mass_ratio)

    _property_names[cr] = "cr"
    _property_names[area_mass_ratio] = "area_mass_ratio"

    def __init__(self, source_object=None):
        """Construct an object of type SolarRadiationPressureModelSpherical."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SolarRadiationPressureModelSpherical)
        ISRPModelBase.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISRPModelBase._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SolarRadiationPressureModelSpherical, [SolarRadiationPressureModelSpherical, ISRPModelBase])

agcls.AgClassCatalog.add_catalog_entry((5285624654241246643, 6683483466404008358), SolarRadiationPressureModelSpherical)
agcls.AgTypeNameMap["SolarRadiationPressureModelSpherical"] = SolarRadiationPressureModelSpherical

class SolarRadiationPressureModelPlugin(ISRPModelBase, SupportsDeleteCallback):
    """Plugin Light Reflection Model."""

    _num_methods = 4
    _vtable_offset = ISRPModelBase._vtable_offset + ISRPModelBase._num_methods
    _get_plugin_name_method_offset = 1
    _set_plugin_name_method_offset = 2
    _get_plugin_settings_method_offset = 3
    _get_available_plugins_method_offset = 4
    _metadata = {
        "iid_data" : (4873253841433338615, 11916961285895592073),
        "vtable_reference" : ISRPModelBase._vtable_offset + ISRPModelBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SolarRadiationPressureModelPlugin)

    _get_plugin_name_metadata = { "offset" : _get_plugin_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def plugin_name(self) -> str:
        """Get or set the complete name of the plugin."""
        return self._intf.get_property(SolarRadiationPressureModelPlugin._metadata, SolarRadiationPressureModelPlugin._get_plugin_name_metadata)

    _set_plugin_name_metadata = { "offset" : _set_plugin_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @plugin_name.setter
    def plugin_name(self, plugin_name:str) -> None:
        return self._intf.set_property(SolarRadiationPressureModelPlugin._metadata, SolarRadiationPressureModelPlugin._set_plugin_name_metadata, plugin_name)

    _get_plugin_settings_metadata = { "offset" : _get_plugin_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_settings(self) -> "SolarRadiationPressureModelPluginSettings":
        """Get the parameters of the selected plugin."""
        return self._intf.get_property(SolarRadiationPressureModelPlugin._metadata, SolarRadiationPressureModelPlugin._get_plugin_settings_metadata)

    _get_available_plugins_metadata = { "offset" : _get_available_plugins_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_plugins(self) -> list:
        """Get the list of all the available plugins."""
        return self._intf.get_property(SolarRadiationPressureModelPlugin._metadata, SolarRadiationPressureModelPlugin._get_available_plugins_metadata)

    _property_names[plugin_name] = "plugin_name"
    _property_names[plugin_settings] = "plugin_settings"
    _property_names[available_plugins] = "available_plugins"

    def __init__(self, source_object=None):
        """Construct an object of type SolarRadiationPressureModelPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SolarRadiationPressureModelPlugin)
        ISRPModelBase.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISRPModelBase._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SolarRadiationPressureModelPlugin, [SolarRadiationPressureModelPlugin, ISRPModelBase])

agcls.AgClassCatalog.add_catalog_entry((4658717398300228488, 15389107141811820219), SolarRadiationPressureModelPlugin)
agcls.AgTypeNameMap["SolarRadiationPressureModelPlugin"] = SolarRadiationPressureModelPlugin

class SolarRadiationPressureModelPluginSettings(SupportsDeleteCallback):
    """Plugin Light Reflection Model Settings."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_property_method_offset = 1
    _set_property_method_offset = 2
    _get_available_properties_method_offset = 3
    _metadata = {
        "iid_data" : (4867756803522432019, 14912203345201637043),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SolarRadiationPressureModelPluginSettings)

    _get_property_metadata = { "offset" : _get_property_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg,) }
    def get_property(self, path:str) -> typing.Any:
        """Get a property."""
        return self._intf.invoke(SolarRadiationPressureModelPluginSettings._metadata, SolarRadiationPressureModelPluginSettings._get_property_metadata, path, OutArg())

    _set_property_metadata = { "offset" : _set_property_method_offset,
            "arg_types" : (agcom.BSTR, agcom.Variant,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg,) }
    def set_property(self, path:str, value:typing.Any) -> None:
        """Set a property."""
        return self._intf.invoke(SolarRadiationPressureModelPluginSettings._metadata, SolarRadiationPressureModelPluginSettings._set_property_metadata, path, value)

    _get_available_properties_metadata = { "offset" : _get_available_properties_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_properties(self) -> list:
        """Available properties."""
        return self._intf.get_property(SolarRadiationPressureModelPluginSettings._metadata, SolarRadiationPressureModelPluginSettings._get_available_properties_metadata)

    _property_names[available_properties] = "available_properties"

    def __init__(self, source_object=None):
        """Construct an object of type SolarRadiationPressureModelPluginSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SolarRadiationPressureModelPluginSettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SolarRadiationPressureModelPluginSettings, [SolarRadiationPressureModelPluginSettings, ])

agcls.AgClassCatalog.add_catalog_entry((5635178289779390122, 9788686036174884997), SolarRadiationPressureModelPluginSettings)
agcls.AgTypeNameMap["SolarRadiationPressureModelPluginSettings"] = SolarRadiationPressureModelPluginSettings

class VehicleHPOPSolarRadiationPressureModel(SupportsDeleteCallback):
    """HPOP Solar Radiation Pressure Model."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_model_type_method_offset = 1
    _set_model_type_method_offset = 2
    _is_model_type_supported_method_offset = 3
    _get_model_supported_types_method_offset = 4
    _get_model_method_offset = 5
    _metadata = {
        "iid_data" : (5598115013087209203, 12780981664572059549),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPSolarRadiationPressureModel)

    _get_model_type_metadata = { "offset" : _get_model_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SolarRadiationPressureModelType),) }
    @property
    def model_type(self) -> "SolarRadiationPressureModelType":
        """Return a type of the active solar radiation pressure model."""
        return self._intf.get_property(VehicleHPOPSolarRadiationPressureModel._metadata, VehicleHPOPSolarRadiationPressureModel._get_model_type_metadata)

    _set_model_type_metadata = { "offset" : _set_model_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SolarRadiationPressureModelType),) }
    def set_model_type(self, srp_model:"SolarRadiationPressureModelType") -> None:
        """Change the active solar radiation pressure model type."""
        return self._intf.invoke(VehicleHPOPSolarRadiationPressureModel._metadata, VehicleHPOPSolarRadiationPressureModel._set_model_type_metadata, srp_model)

    _is_model_type_supported_metadata = { "offset" : _is_model_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(SolarRadiationPressureModelType), agmarshall.VariantBoolArg,) }
    def is_model_type_supported(self, srp_model:"SolarRadiationPressureModelType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleHPOPSolarRadiationPressureModel._metadata, VehicleHPOPSolarRadiationPressureModel._is_model_type_supported_metadata, srp_model, OutArg())

    _get_model_supported_types_metadata = { "offset" : _get_model_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def model_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleHPOPSolarRadiationPressureModel._metadata, VehicleHPOPSolarRadiationPressureModel._get_model_supported_types_metadata)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "ISRPModelBase":
        """Return the active solar radiation pressure model."""
        return self._intf.get_property(VehicleHPOPSolarRadiationPressureModel._metadata, VehicleHPOPSolarRadiationPressureModel._get_model_metadata)

    _property_names[model_type] = "model_type"
    _property_names[model_supported_types] = "model_supported_types"
    _property_names[model] = "model"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPSolarRadiationPressureModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPSolarRadiationPressureModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPSolarRadiationPressureModel, [VehicleHPOPSolarRadiationPressureModel, ])

agcls.AgClassCatalog.add_catalog_entry((5064400869902681783, 9033102774224151190), VehicleHPOPSolarRadiationPressureModel)
agcls.AgTypeNameMap["VehicleHPOPSolarRadiationPressureModel"] = VehicleHPOPSolarRadiationPressureModel

class VehicleHPOPDragModelSpherical(IVehicleHPOPDragModel, SupportsDeleteCallback):
    """Spherical Drag Model."""

    _num_methods = 4
    _vtable_offset = IVehicleHPOPDragModel._vtable_offset + IVehicleHPOPDragModel._num_methods
    _get_cd_method_offset = 1
    _set_cd_method_offset = 2
    _get_area_mass_ratio_method_offset = 3
    _set_area_mass_ratio_method_offset = 4
    _metadata = {
        "iid_data" : (4768604887010036681, 9452097685062186172),
        "vtable_reference" : IVehicleHPOPDragModel._vtable_offset + IVehicleHPOPDragModel._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPDragModelSpherical)

    _get_cd_metadata = { "offset" : _get_cd_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cd(self) -> float:
        """Drag coefficient. Dimensionless."""
        return self._intf.get_property(VehicleHPOPDragModelSpherical._metadata, VehicleHPOPDragModelSpherical._get_cd_metadata)

    _set_cd_metadata = { "offset" : _set_cd_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cd.setter
    def cd(self, cd:float) -> None:
        return self._intf.set_property(VehicleHPOPDragModelSpherical._metadata, VehicleHPOPDragModelSpherical._set_cd_metadata, cd)

    _get_area_mass_ratio_metadata = { "offset" : _get_area_mass_ratio_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def area_mass_ratio(self) -> float:
        """Get or set the area-to-mass ratio to be used in drag calculations. Uses AreaPerMass Dimension."""
        return self._intf.get_property(VehicleHPOPDragModelSpherical._metadata, VehicleHPOPDragModelSpherical._get_area_mass_ratio_metadata)

    _set_area_mass_ratio_metadata = { "offset" : _set_area_mass_ratio_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @area_mass_ratio.setter
    def area_mass_ratio(self, area_mass_ratio:float) -> None:
        return self._intf.set_property(VehicleHPOPDragModelSpherical._metadata, VehicleHPOPDragModelSpherical._set_area_mass_ratio_metadata, area_mass_ratio)

    _property_names[cd] = "cd"
    _property_names[area_mass_ratio] = "area_mass_ratio"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPDragModelSpherical."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPDragModelSpherical)
        IVehicleHPOPDragModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleHPOPDragModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPDragModelSpherical, [VehicleHPOPDragModelSpherical, IVehicleHPOPDragModel])

agcls.AgClassCatalog.add_catalog_entry((5513774009428848715, 12939721718717524873), VehicleHPOPDragModelSpherical)
agcls.AgTypeNameMap["VehicleHPOPDragModelSpherical"] = VehicleHPOPDragModelSpherical

class VehicleHPOPDragModelPlugin(IVehicleHPOPDragModel, SupportsDeleteCallback):
    """Plugin Drag Model."""

    _num_methods = 4
    _vtable_offset = IVehicleHPOPDragModel._vtable_offset + IVehicleHPOPDragModel._num_methods
    _get_plugin_name_method_offset = 1
    _set_plugin_name_method_offset = 2
    _get_plugin_settings_method_offset = 3
    _get_available_plugins_method_offset = 4
    _metadata = {
        "iid_data" : (5402719938928579500, 400324900925838734),
        "vtable_reference" : IVehicleHPOPDragModel._vtable_offset + IVehicleHPOPDragModel._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPDragModelPlugin)

    _get_plugin_name_metadata = { "offset" : _get_plugin_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def plugin_name(self) -> str:
        """Get or set the complete name of the plugin."""
        return self._intf.get_property(VehicleHPOPDragModelPlugin._metadata, VehicleHPOPDragModelPlugin._get_plugin_name_metadata)

    _set_plugin_name_metadata = { "offset" : _set_plugin_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @plugin_name.setter
    def plugin_name(self, plugin_name:str) -> None:
        return self._intf.set_property(VehicleHPOPDragModelPlugin._metadata, VehicleHPOPDragModelPlugin._set_plugin_name_metadata, plugin_name)

    _get_plugin_settings_metadata = { "offset" : _get_plugin_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_settings(self) -> "VehicleHPOPDragModelPluginSettings":
        """Get the parameters of the selected plugin."""
        return self._intf.get_property(VehicleHPOPDragModelPlugin._metadata, VehicleHPOPDragModelPlugin._get_plugin_settings_metadata)

    _get_available_plugins_metadata = { "offset" : _get_available_plugins_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_plugins(self) -> list:
        """Get the list of all the available plugins."""
        return self._intf.get_property(VehicleHPOPDragModelPlugin._metadata, VehicleHPOPDragModelPlugin._get_available_plugins_metadata)

    _property_names[plugin_name] = "plugin_name"
    _property_names[plugin_settings] = "plugin_settings"
    _property_names[available_plugins] = "available_plugins"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPDragModelPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPDragModelPlugin)
        IVehicleHPOPDragModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleHPOPDragModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPDragModelPlugin, [VehicleHPOPDragModelPlugin, IVehicleHPOPDragModel])

agcls.AgClassCatalog.add_catalog_entry((4896777397666979833, 17250484158463291042), VehicleHPOPDragModelPlugin)
agcls.AgTypeNameMap["VehicleHPOPDragModelPlugin"] = VehicleHPOPDragModelPlugin

class VehicleHPOPDragModelPluginSettings(SupportsDeleteCallback):
    """Plugin Drag Model Settings."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_property_method_offset = 1
    _set_property_method_offset = 2
    _get_available_properties_method_offset = 3
    _metadata = {
        "iid_data" : (5502141704478331237, 3965253154601910438),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleHPOPDragModelPluginSettings)

    _get_property_metadata = { "offset" : _get_property_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg,) }
    def get_property(self, path:str) -> typing.Any:
        """Get a property."""
        return self._intf.invoke(VehicleHPOPDragModelPluginSettings._metadata, VehicleHPOPDragModelPluginSettings._get_property_metadata, path, OutArg())

    _set_property_metadata = { "offset" : _set_property_method_offset,
            "arg_types" : (agcom.BSTR, agcom.Variant,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg,) }
    def set_property(self, path:str, value:typing.Any) -> None:
        """Set a property."""
        return self._intf.invoke(VehicleHPOPDragModelPluginSettings._metadata, VehicleHPOPDragModelPluginSettings._set_property_metadata, path, value)

    _get_available_properties_metadata = { "offset" : _get_available_properties_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_properties(self) -> list:
        """Available properties."""
        return self._intf.get_property(VehicleHPOPDragModelPluginSettings._metadata, VehicleHPOPDragModelPluginSettings._get_available_properties_metadata)

    _property_names[available_properties] = "available_properties"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPDragModelPluginSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleHPOPDragModelPluginSettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPDragModelPluginSettings, [VehicleHPOPDragModelPluginSettings, ])

agcls.AgClassCatalog.add_catalog_entry((5491950622058235572, 14312631650634277556), VehicleHPOPDragModelPluginSettings)
agcls.AgTypeNameMap["VehicleHPOPDragModelPluginSettings"] = VehicleHPOPDragModelPluginSettings

class VehicleHPOPDragModel(IVehicleHPOPDragModel, SupportsDeleteCallback):
    """HPOP Drag Model Base CoClass."""
    def __init__(self, source_object=None):
        """Construct an object of type VehicleHPOPDragModel."""
        SupportsDeleteCallback.__init__(self)
        IVehicleHPOPDragModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleHPOPDragModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleHPOPDragModel, [IVehicleHPOPDragModel])

agcls.AgClassCatalog.add_catalog_entry((5756661885672448616, 2017322223062920852), VehicleHPOPDragModel)
agcls.AgTypeNameMap["VehicleHPOPDragModel"] = VehicleHPOPDragModel

class ScenarioAnimationTimePeriod(SupportsDeleteCallback):
    """ScenarioAnimationTimePeriod defines methods and properties to configure the scenario's animation time."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_start_time_method_offset = 1
    _get_stop_time_method_offset = 2
    _get_duration_method_offset = 3
    _set_duration_method_offset = 4
    _get_use_analysis_start_time_method_offset = 5
    _set_use_analysis_start_time_method_offset = 6
    _get_use_analysis_stop_time_method_offset = 7
    _set_use_analysis_stop_time_method_offset = 8
    _metadata = {
        "iid_data" : (4821663440873459934, 13248318225681056675),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScenarioAnimationTimePeriod)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def start_time(self) -> "TimePeriodValue":
        """Get the animation's start time. Uses DateFormat Dimension."""
        return self._intf.get_property(ScenarioAnimationTimePeriod._metadata, ScenarioAnimationTimePeriod._get_start_time_metadata)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def stop_time(self) -> "TimePeriodValue":
        """Get the animation's stop time. Uses DateFormat Dimension."""
        return self._intf.get_property(ScenarioAnimationTimePeriod._metadata, ScenarioAnimationTimePeriod._get_stop_time_metadata)

    _get_duration_metadata = { "offset" : _get_duration_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def duration(self) -> typing.Any:
        """A time duration. The value is a relative duration (i.e. ``+1 day``, ``+1 hour``)."""
        return self._intf.get_property(ScenarioAnimationTimePeriod._metadata, ScenarioAnimationTimePeriod._get_duration_metadata)

    _set_duration_metadata = { "offset" : _set_duration_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @duration.setter
    def duration(self, duration:typing.Any) -> None:
        return self._intf.set_property(ScenarioAnimationTimePeriod._metadata, ScenarioAnimationTimePeriod._set_duration_metadata, duration)

    _get_use_analysis_start_time_metadata = { "offset" : _get_use_analysis_start_time_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_analysis_start_time(self) -> bool:
        """Whether the animation start time is the same as the analysis's start time."""
        return self._intf.get_property(ScenarioAnimationTimePeriod._metadata, ScenarioAnimationTimePeriod._get_use_analysis_start_time_metadata)

    _set_use_analysis_start_time_metadata = { "offset" : _set_use_analysis_start_time_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_analysis_start_time.setter
    def use_analysis_start_time(self, use_analysis_start_time:bool) -> None:
        return self._intf.set_property(ScenarioAnimationTimePeriod._metadata, ScenarioAnimationTimePeriod._set_use_analysis_start_time_metadata, use_analysis_start_time)

    _get_use_analysis_stop_time_metadata = { "offset" : _get_use_analysis_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_analysis_stop_time(self) -> bool:
        """Whether the animation stop time is the same as the analysis's stop time."""
        return self._intf.get_property(ScenarioAnimationTimePeriod._metadata, ScenarioAnimationTimePeriod._get_use_analysis_stop_time_metadata)

    _set_use_analysis_stop_time_metadata = { "offset" : _set_use_analysis_stop_time_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_analysis_stop_time.setter
    def use_analysis_stop_time(self, use_analysis_stop_time:bool) -> None:
        return self._intf.set_property(ScenarioAnimationTimePeriod._metadata, ScenarioAnimationTimePeriod._set_use_analysis_stop_time_metadata, use_analysis_stop_time)

    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[duration] = "duration"
    _property_names[use_analysis_start_time] = "use_analysis_start_time"
    _property_names[use_analysis_stop_time] = "use_analysis_stop_time"

    def __init__(self, source_object=None):
        """Construct an object of type ScenarioAnimationTimePeriod."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScenarioAnimationTimePeriod)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScenarioAnimationTimePeriod, [ScenarioAnimationTimePeriod, ])

agcls.AgClassCatalog.add_catalog_entry((4802661048824170780, 403542113855800467), ScenarioAnimationTimePeriod)
agcls.AgTypeNameMap["ScenarioAnimationTimePeriod"] = ScenarioAnimationTimePeriod

class SensorProjectionConstantAltitude(IDisplayDistance, ISensorProjectionDisplayDistance, SupportsDeleteCallback):
    """SensorProjectionConstantAltitude Interface for setting projection altitude options for constant altitude for a sensor."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_minimum_method_offset = 1
    _set_minimum_method_offset = 2
    _get_maximum_method_offset = 3
    _set_maximum_method_offset = 4
    _get_number_of_steps_method_offset = 5
    _set_number_of_steps_method_offset = 6
    _get_projects_thru_crossing_method_offset = 7
    _set_projects_thru_crossing_method_offset = 8
    _get_altitude_crossing_sides_method_offset = 9
    _set_altitude_crossing_sides_method_offset = 10
    _get_direction_method_offset = 11
    _set_direction_method_offset = 12
    _get_exclude_horizon_arcs_method_offset = 13
    _set_exclude_horizon_arcs_method_offset = 14
    _metadata = {
        "iid_data" : (4681858368691663668, 14472223191988359602),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorProjectionConstantAltitude)

    _get_minimum_metadata = { "offset" : _get_minimum_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum(self) -> float:
        """Minimum altitude above the facility, place or target from which the sensor projects. Uses Distance Dimension."""
        return self._intf.get_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._get_minimum_metadata)

    _set_minimum_metadata = { "offset" : _set_minimum_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum.setter
    def minimum(self, value:float) -> None:
        return self._intf.set_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._set_minimum_metadata, value)

    _get_maximum_metadata = { "offset" : _get_maximum_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum(self) -> float:
        """Maximum altitude above the facility, place or target from which the sensor projects. Uses Distance Dimension."""
        return self._intf.get_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._get_maximum_metadata)

    _set_maximum_metadata = { "offset" : _set_maximum_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum.setter
    def maximum(self, value:float) -> None:
        return self._intf.set_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._set_maximum_metadata, value)

    _get_number_of_steps_metadata = { "offset" : _get_number_of_steps_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_steps(self) -> int:
        """Step count. Determines the interval between sensor projections. For a specified min/max altitude: the step count determines the number and altitude of projections to be displayed. Dimensionless."""
        return self._intf.get_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._get_number_of_steps_metadata)

    _set_number_of_steps_metadata = { "offset" : _set_number_of_steps_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_steps.setter
    def number_of_steps(self, value:int) -> None:
        return self._intf.set_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._set_number_of_steps_metadata, value)

    _get_projects_thru_crossing_metadata = { "offset" : _get_projects_thru_crossing_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def projects_thru_crossing(self) -> bool:
        """Specify whether the sensor's field-of-view will extend beyond specified crossings."""
        return self._intf.get_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._get_projects_thru_crossing_metadata)

    _set_projects_thru_crossing_metadata = { "offset" : _set_projects_thru_crossing_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @projects_thru_crossing.setter
    def projects_thru_crossing(self, show_ground_crossing:bool) -> None:
        return self._intf.set_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._set_projects_thru_crossing_metadata, show_ground_crossing)

    _get_altitude_crossing_sides_metadata = { "offset" : _get_altitude_crossing_sides_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorAltitudeCrossingSideType),) }
    @property
    def altitude_crossing_sides(self) -> "SensorAltitudeCrossingSideType":
        """Indicate which crossings are computed and displayed in the 2D Graphics window."""
        return self._intf.get_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._get_altitude_crossing_sides_metadata)

    _set_altitude_crossing_sides_metadata = { "offset" : _set_altitude_crossing_sides_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorAltitudeCrossingSideType),) }
    @altitude_crossing_sides.setter
    def altitude_crossing_sides(self, alt_crossing_sides:"SensorAltitudeCrossingSideType") -> None:
        return self._intf.set_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._set_altitude_crossing_sides_metadata, alt_crossing_sides)

    _get_direction_metadata = { "offset" : _get_direction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorAltitudeCrossingDirection),) }
    @property
    def direction(self) -> "SensorAltitudeCrossingDirection":
        """Indicate the direction in which the sensor's field of view crosses the specified altitude."""
        return self._intf.get_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._get_direction_metadata)

    _set_direction_metadata = { "offset" : _set_direction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorAltitudeCrossingDirection),) }
    @direction.setter
    def direction(self, direction:"SensorAltitudeCrossingDirection") -> None:
        return self._intf.set_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._set_direction_metadata, direction)

    _get_exclude_horizon_arcs_metadata = { "offset" : _get_exclude_horizon_arcs_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def exclude_horizon_arcs(self) -> bool:
        """Specify whether to exclude horizon arcs."""
        return self._intf.get_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._get_exclude_horizon_arcs_metadata)

    _set_exclude_horizon_arcs_metadata = { "offset" : _set_exclude_horizon_arcs_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @exclude_horizon_arcs.setter
    def exclude_horizon_arcs(self, value:bool) -> None:
        return self._intf.set_property(SensorProjectionConstantAltitude._metadata, SensorProjectionConstantAltitude._set_exclude_horizon_arcs_metadata, value)

    _property_names[minimum] = "minimum"
    _property_names[maximum] = "maximum"
    _property_names[number_of_steps] = "number_of_steps"
    _property_names[projects_thru_crossing] = "projects_thru_crossing"
    _property_names[altitude_crossing_sides] = "altitude_crossing_sides"
    _property_names[direction] = "direction"
    _property_names[exclude_horizon_arcs] = "exclude_horizon_arcs"

    def __init__(self, source_object=None):
        """Construct an object of type SensorProjectionConstantAltitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorProjectionConstantAltitude)
        IDisplayDistance.__init__(self, source_object)
        ISensorProjectionDisplayDistance.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDisplayDistance._private_init(self, intf)
        ISensorProjectionDisplayDistance._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorProjectionConstantAltitude, [SensorProjectionConstantAltitude, IDisplayDistance, ISensorProjectionDisplayDistance])

agcls.AgClassCatalog.add_catalog_entry((5384287488206946346, 2267242774694814390), SensorProjectionConstantAltitude)
agcls.AgTypeNameMap["SensorProjectionConstantAltitude"] = SensorProjectionConstantAltitude

class SensorProjectionObjectAltitude(IDisplayDistance, SupportsDeleteCallback):
    """SensorProjectionObjectAltitude Interface for setting projection altitude options for object altitude for a sensor."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_exclude_horizon_arcs_method_offset = 1
    _set_exclude_horizon_arcs_method_offset = 2
    _metadata = {
        "iid_data" : (4657983288986690189, 9095067370722369680),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorProjectionObjectAltitude)

    _get_exclude_horizon_arcs_metadata = { "offset" : _get_exclude_horizon_arcs_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def exclude_horizon_arcs(self) -> bool:
        """Specify whether to exclude horizon arcs."""
        return self._intf.get_property(SensorProjectionObjectAltitude._metadata, SensorProjectionObjectAltitude._get_exclude_horizon_arcs_metadata)

    _set_exclude_horizon_arcs_metadata = { "offset" : _set_exclude_horizon_arcs_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @exclude_horizon_arcs.setter
    def exclude_horizon_arcs(self, value:bool) -> None:
        return self._intf.set_property(SensorProjectionObjectAltitude._metadata, SensorProjectionObjectAltitude._set_exclude_horizon_arcs_metadata, value)

    _property_names[exclude_horizon_arcs] = "exclude_horizon_arcs"

    def __init__(self, source_object=None):
        """Construct an object of type SensorProjectionObjectAltitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorProjectionObjectAltitude)
        IDisplayDistance.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDisplayDistance._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorProjectionObjectAltitude, [SensorProjectionObjectAltitude, IDisplayDistance])

agcls.AgClassCatalog.add_catalog_entry((5023653093227593219, 5261407265919120291), SensorProjectionObjectAltitude)
agcls.AgTypeNameMap["SensorProjectionObjectAltitude"] = SensorProjectionObjectAltitude

class VehicleAttitudeRealTimeDataReference(SupportsDeleteCallback):
    """Real time attitude data reference."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_profile_type_method_offset = 1
    _set_profile_type_method_offset = 2
    _is_profile_type_supported_method_offset = 3
    _get_profile_supported_types_method_offset = 4
    _get_profile_method_offset = 5
    _metadata = {
        "iid_data" : (4947105511791777200, 14902369716625583013),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeRealTimeDataReference)

    _get_profile_type_metadata = { "offset" : _get_profile_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AttitudeProfile),) }
    @property
    def profile_type(self) -> "AttitudeProfile":
        """Get realtime data reference profile type."""
        return self._intf.get_property(VehicleAttitudeRealTimeDataReference._metadata, VehicleAttitudeRealTimeDataReference._get_profile_type_metadata)

    _set_profile_type_metadata = { "offset" : _set_profile_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AttitudeProfile),) }
    def set_profile_type(self, profile:"AttitudeProfile") -> None:
        """Set realtime data reference profile type."""
        return self._intf.invoke(VehicleAttitudeRealTimeDataReference._metadata, VehicleAttitudeRealTimeDataReference._set_profile_type_metadata, profile)

    _is_profile_type_supported_metadata = { "offset" : _is_profile_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(AttitudeProfile), agmarshall.VariantBoolArg,) }
    def is_profile_type_supported(self, profile:"AttitudeProfile") -> bool:
        """Get a value indicating whether the specified profile type can be used."""
        return self._intf.invoke(VehicleAttitudeRealTimeDataReference._metadata, VehicleAttitudeRealTimeDataReference._is_profile_type_supported_metadata, profile, OutArg())

    _get_profile_supported_types_metadata = { "offset" : _get_profile_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def profile_supported_types(self) -> list:
        """Return an array of valid profiles."""
        return self._intf.get_property(VehicleAttitudeRealTimeDataReference._metadata, VehicleAttitudeRealTimeDataReference._get_profile_supported_types_metadata)

    _get_profile_metadata = { "offset" : _get_profile_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def profile(self) -> "IVehicleAttitudeProfile":
        """Return a data reference profile or null if no data reference profile has yet been selected."""
        return self._intf.get_property(VehicleAttitudeRealTimeDataReference._metadata, VehicleAttitudeRealTimeDataReference._get_profile_metadata)

    _property_names[profile_type] = "profile_type"
    _property_names[profile_supported_types] = "profile_supported_types"
    _property_names[profile] = "profile"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeRealTimeDataReference."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeRealTimeDataReference)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeRealTimeDataReference, [VehicleAttitudeRealTimeDataReference, ])

agcls.AgClassCatalog.add_catalog_entry((4795860716946158212, 1984319924079331222), VehicleAttitudeRealTimeDataReference)
agcls.AgTypeNameMap["VehicleAttitudeRealTimeDataReference"] = VehicleAttitudeRealTimeDataReference

class MTOAnalysis(SupportsDeleteCallback):
    """MTO spatial state info."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_position_method_offset = 1
    _get_range_method_offset = 2
    _get_field_of_view_method_offset = 3
    _get_visibility_method_offset = 4
    _metadata = {
        "iid_data" : (5272142499568816954, 15471137755387500464),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOAnalysis)

    _get_position_metadata = { "offset" : _get_position_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def position(self) -> "MTOAnalysisPosition":
        """Return a spatial state of the mto at specified time."""
        return self._intf.get_property(MTOAnalysis._metadata, MTOAnalysis._get_position_metadata)

    _get_range_metadata = { "offset" : _get_range_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def range(self) -> "MTOAnalysisRange":
        """Return the range from an Mto track to another object."""
        return self._intf.get_property(MTOAnalysis._metadata, MTOAnalysis._get_range_metadata)

    _get_field_of_view_metadata = { "offset" : _get_field_of_view_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def field_of_view(self) -> "MTOAnalysisFieldOfView":
        """Return the field of view from an Mto track to a sensor."""
        return self._intf.get_property(MTOAnalysis._metadata, MTOAnalysis._get_field_of_view_metadata)

    _get_visibility_metadata = { "offset" : _get_visibility_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def visibility(self) -> "MTOAnalysisVisibility":
        """Return the visibility from an Mto track to another object."""
        return self._intf.get_property(MTOAnalysis._metadata, MTOAnalysis._get_visibility_metadata)

    _property_names[position] = "position"
    _property_names[range] = "range"
    _property_names[field_of_view] = "field_of_view"
    _property_names[visibility] = "visibility"

    def __init__(self, source_object=None):
        """Construct an object of type MTOAnalysis."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOAnalysis)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOAnalysis, [MTOAnalysis, ])

agcls.AgClassCatalog.add_catalog_entry((5649138297473183434, 13728021946626324118), MTOAnalysis)
agcls.AgTypeNameMap["MTOAnalysis"] = MTOAnalysis

class MTOAnalysisPosition(SupportsDeleteCallback):
    """MTO position."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_altitude_reference_method_offset = 1
    _set_altitude_reference_method_offset = 2
    _compute_all_tracks_method_offset = 3
    _compute_tracks_method_offset = 4
    _compute_track_method_offset = 5
    _metadata = {
        "iid_data" : (5146435477575062987, 15817339889540813229),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOAnalysisPosition)

    _get_altitude_reference_metadata = { "offset" : _get_altitude_reference_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AltitudeReferenceType),) }
    @property
    def altitude_reference(self) -> "AltitudeReferenceType":
        """Specify the altitude reference. Default is Ellipsoid."""
        return self._intf.get_property(MTOAnalysisPosition._metadata, MTOAnalysisPosition._get_altitude_reference_metadata)

    _set_altitude_reference_metadata = { "offset" : _set_altitude_reference_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AltitudeReferenceType),) }
    @altitude_reference.setter
    def altitude_reference(self, value:"AltitudeReferenceType") -> None:
        return self._intf.set_property(MTOAnalysisPosition._metadata, MTOAnalysisPosition._set_altitude_reference_metadata, value)

    _compute_all_tracks_metadata = { "offset" : _compute_all_tracks_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def compute_all_tracks(self, time:typing.Any) -> "MTOTrackPointCollection":
        """Compute the position of all tracks at the given time."""
        return self._intf.invoke(MTOAnalysisPosition._metadata, MTOAnalysisPosition._compute_all_tracks_metadata, time, OutArg())

    _compute_tracks_metadata = { "offset" : _compute_tracks_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def compute_tracks(self, track_ids:list, time:typing.Any) -> "MTOTrackPointCollection":
        """Compute the position of all track of given Id at the given time."""
        return self._intf.invoke(MTOAnalysisPosition._metadata, MTOAnalysisPosition._compute_tracks_metadata, track_ids, time, OutArg())

    _compute_track_metadata = { "offset" : _compute_track_method_offset,
            "arg_types" : (agcom.INT, agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def compute_track(self, track_id:int, time:typing.Any) -> "MTOTrackPoint":
        """Compute the position of the track Id at the given time."""
        return self._intf.invoke(MTOAnalysisPosition._metadata, MTOAnalysisPosition._compute_track_metadata, track_id, time, OutArg())

    _property_names[altitude_reference] = "altitude_reference"

    def __init__(self, source_object=None):
        """Construct an object of type MTOAnalysisPosition."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOAnalysisPosition)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOAnalysisPosition, [MTOAnalysisPosition, ])

agcls.AgClassCatalog.add_catalog_entry((4721276526300514110, 9859265241225858976), MTOAnalysisPosition)
agcls.AgTypeNameMap["MTOAnalysisPosition"] = MTOAnalysisPosition

class MTOAnalysisRange(SupportsDeleteCallback):
    """MTO range computation."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_lower_limit_method_offset = 1
    _set_lower_limit_method_offset = 2
    _get_upper_limit_method_offset = 3
    _set_upper_limit_method_offset = 4
    _get_object_interval_method_offset = 5
    _set_object_interval_method_offset = 6
    _get_object_data_method_offset = 7
    _set_object_data_method_offset = 8
    _get_object_path_method_offset = 9
    _set_object_path_method_offset = 10
    _is_any_track_in_range_method_offset = 11
    _are_all_tracks_in_range_method_offset = 12
    _is_track_in_range_method_offset = 13
    _compute_ranges_method_offset = 14
    _compute_all_ranges_method_offset = 15
    _get_entirety_method_offset = 16
    _set_entirety_method_offset = 17
    _are_tracks_in_range_method_offset = 18
    _metadata = {
        "iid_data" : (4963249451106111061, 8619649392679153818),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOAnalysisRange)

    _get_lower_limit_metadata = { "offset" : _get_lower_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lower_limit(self) -> float:
        """Get or set the lower range limit in Distance Units."""
        return self._intf.get_property(MTOAnalysisRange._metadata, MTOAnalysisRange._get_lower_limit_metadata)

    _set_lower_limit_metadata = { "offset" : _set_lower_limit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lower_limit.setter
    def lower_limit(self, value:float) -> None:
        return self._intf.set_property(MTOAnalysisRange._metadata, MTOAnalysisRange._set_lower_limit_metadata, value)

    _get_upper_limit_metadata = { "offset" : _get_upper_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def upper_limit(self) -> float:
        """Get or set the upper range limit in Distance Units."""
        return self._intf.get_property(MTOAnalysisRange._metadata, MTOAnalysisRange._get_upper_limit_metadata)

    _set_upper_limit_metadata = { "offset" : _set_upper_limit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @upper_limit.setter
    def upper_limit(self, value:float) -> None:
        return self._intf.set_property(MTOAnalysisRange._metadata, MTOAnalysisRange._set_upper_limit_metadata, value)

    _get_object_interval_metadata = { "offset" : _get_object_interval_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MTOObjectInterval),) }
    @property
    def object_interval(self) -> "MTOObjectInterval":
        """Use Extended to use the last point of the ephemeris span of the object for times past the last point. Default is Normal."""
        return self._intf.get_property(MTOAnalysisRange._metadata, MTOAnalysisRange._get_object_interval_metadata)

    _set_object_interval_metadata = { "offset" : _set_object_interval_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MTOObjectInterval),) }
    @object_interval.setter
    def object_interval(self, value:"MTOObjectInterval") -> None:
        return self._intf.set_property(MTOAnalysisRange._metadata, MTOAnalysisRange._set_object_interval_metadata, value)

    _get_object_data_metadata = { "offset" : _get_object_data_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def object_data(self) -> int:
        """If the Object to which range will be computed is an MTO, use this option to specify the track that will be used to compute that range. By default the MTO's ComputeTrack will be used."""
        return self._intf.get_property(MTOAnalysisRange._metadata, MTOAnalysisRange._get_object_data_metadata)

    _set_object_data_metadata = { "offset" : _set_object_data_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @object_data.setter
    def object_data(self, value:int) -> None:
        return self._intf.set_property(MTOAnalysisRange._metadata, MTOAnalysisRange._set_object_data_metadata, value)

    _get_object_path_metadata = { "offset" : _get_object_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def object_path(self) -> str:
        """Get or set the object to which range is being computed."""
        return self._intf.get_property(MTOAnalysisRange._metadata, MTOAnalysisRange._get_object_path_metadata)

    _set_object_path_metadata = { "offset" : _set_object_path_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @object_path.setter
    def object_path(self, path:str) -> None:
        """Get or set the object to which range is being computed."""
        return self._intf.set_property(MTOAnalysisRange._metadata, MTOAnalysisRange._set_object_path_metadata, path)

    _is_any_track_in_range_metadata = { "offset" : _is_any_track_in_range_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def is_any_track_in_range(self, time:typing.Any) -> bool:
        """Return true if any track is in range of the specified object."""
        return self._intf.invoke(MTOAnalysisRange._metadata, MTOAnalysisRange._is_any_track_in_range_metadata, time, OutArg())

    _are_all_tracks_in_range_metadata = { "offset" : _are_all_tracks_in_range_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def are_all_tracks_in_range(self, time:typing.Any) -> bool:
        """Return true if all tracks are in range of the specified object."""
        return self._intf.invoke(MTOAnalysisRange._metadata, MTOAnalysisRange._are_all_tracks_in_range_metadata, time, OutArg())

    _is_track_in_range_metadata = { "offset" : _is_track_in_range_method_offset,
            "arg_types" : (agcom.INT, agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.IntArg, agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def is_track_in_range(self, track_id:int, time:typing.Any) -> bool:
        """Return true is the track id is within range."""
        return self._intf.invoke(MTOAnalysisRange._metadata, MTOAnalysisRange._is_track_in_range_metadata, track_id, time, OutArg())

    _compute_ranges_metadata = { "offset" : _compute_ranges_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY), agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.EnumArg(MTORangeMode), agmarshall.LPSafearrayArg, agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_ranges(self, mode:"MTORangeMode", track_ids:list, time:typing.Any) -> list:
        """Return an array of track ids with a bool value if it's in range of the object."""
        return self._intf.invoke(MTOAnalysisRange._metadata, MTOAnalysisRange._compute_ranges_metadata, mode, track_ids, time, OutArg())

    _compute_all_ranges_metadata = { "offset" : _compute_all_ranges_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.EnumArg(MTORangeMode), agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_all_ranges(self, mode:"MTORangeMode", time:typing.Any) -> list:
        """Compute the range of all track ids. Returns an array of track ids with a bool value if it's in range of the object."""
        return self._intf.invoke(MTOAnalysisRange._metadata, MTOAnalysisRange._compute_all_ranges_metadata, mode, time, OutArg())

    _get_entirety_metadata = { "offset" : _get_entirety_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MTOEntirety),) }
    @property
    def entirety(self) -> "MTOEntirety":
        """Range Entirety."""
        return self._intf.get_property(MTOAnalysisRange._metadata, MTOAnalysisRange._get_entirety_metadata)

    _set_entirety_metadata = { "offset" : _set_entirety_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MTOEntirety),) }
    @entirety.setter
    def entirety(self, entirety:"MTOEntirety") -> None:
        return self._intf.set_property(MTOAnalysisRange._metadata, MTOAnalysisRange._set_entirety_metadata, entirety)

    _are_tracks_in_range_metadata = { "offset" : _are_tracks_in_range_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY), agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(MTOTrackEvaluationType), agmarshall.LPSafearrayArg, agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def are_tracks_in_range(self, all_or_any:"MTOTrackEvaluationType", track_ids:list, time:typing.Any) -> bool:
        """Return true if any track in the array is visible to the object."""
        return self._intf.invoke(MTOAnalysisRange._metadata, MTOAnalysisRange._are_tracks_in_range_metadata, all_or_any, track_ids, time, OutArg())

    _property_names[lower_limit] = "lower_limit"
    _property_names[upper_limit] = "upper_limit"
    _property_names[object_interval] = "object_interval"
    _property_names[object_data] = "object_data"
    _property_names[object_path] = "object_path"
    _property_names[entirety] = "entirety"

    def __init__(self, source_object=None):
        """Construct an object of type MTOAnalysisRange."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOAnalysisRange)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOAnalysisRange, [MTOAnalysisRange, ])

agcls.AgClassCatalog.add_catalog_entry((4656259101084139662, 15192100327666263726), MTOAnalysisRange)
agcls.AgTypeNameMap["MTOAnalysisRange"] = MTOAnalysisRange

class MTOAnalysisFieldOfView(SupportsDeleteCallback):
    """MTO Field Of View computation."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _is_any_track_in_field_of_view_method_offset = 1
    _are_all_tracks_in_field_of_view_method_offset = 2
    _is_track_in_field_of_view_method_offset = 3
    _compute_tracks_method_offset = 4
    _compute_all_tracks_method_offset = 5
    _get_sensor_method_offset = 6
    _set_sensor_method_offset = 7
    _get_entirety_method_offset = 8
    _set_entirety_method_offset = 9
    _are_tracks_in_field_of_view_method_offset = 10
    _metadata = {
        "iid_data" : (4613624587070459510, 489598872931706242),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOAnalysisFieldOfView)

    _is_any_track_in_field_of_view_metadata = { "offset" : _is_any_track_in_field_of_view_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def is_any_track_in_field_of_view(self, time:typing.Any) -> bool:
        """Return true if any track is in the field of view of the sensor at the given time."""
        return self._intf.invoke(MTOAnalysisFieldOfView._metadata, MTOAnalysisFieldOfView._is_any_track_in_field_of_view_metadata, time, OutArg())

    _are_all_tracks_in_field_of_view_metadata = { "offset" : _are_all_tracks_in_field_of_view_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def are_all_tracks_in_field_of_view(self, time:typing.Any) -> bool:
        """Return true if all tracks are in the field of view of the sensor at the given time."""
        return self._intf.invoke(MTOAnalysisFieldOfView._metadata, MTOAnalysisFieldOfView._are_all_tracks_in_field_of_view_metadata, time, OutArg())

    _is_track_in_field_of_view_metadata = { "offset" : _is_track_in_field_of_view_method_offset,
            "arg_types" : (agcom.INT, agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.IntArg, agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def is_track_in_field_of_view(self, track_id:int, time:typing.Any) -> bool:
        """Return true is the track is in the field of view of the sensor at the given time."""
        return self._intf.invoke(MTOAnalysisFieldOfView._metadata, MTOAnalysisFieldOfView._is_track_in_field_of_view_metadata, track_id, time, OutArg())

    _compute_tracks_metadata = { "offset" : _compute_tracks_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY), agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.EnumArg(MTOVisibilityMode), agmarshall.LPSafearrayArg, agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_tracks(self, mode:"MTOVisibilityMode", tracks:list, time:typing.Any) -> list:
        """Return an array of track ids and boolean values."""
        return self._intf.invoke(MTOAnalysisFieldOfView._metadata, MTOAnalysisFieldOfView._compute_tracks_metadata, mode, tracks, time, OutArg())

    _compute_all_tracks_metadata = { "offset" : _compute_all_tracks_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.EnumArg(MTOVisibilityMode), agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_all_tracks(self, mode:"MTOVisibilityMode", time:typing.Any) -> list:
        """Return an array of track ids and boolean values for all tracks."""
        return self._intf.invoke(MTOAnalysisFieldOfView._metadata, MTOAnalysisFieldOfView._compute_all_tracks_metadata, mode, time, OutArg())

    _get_sensor_metadata = { "offset" : _get_sensor_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def sensor(self) -> str:
        """Get or set the assigned sensor object."""
        return self._intf.get_property(MTOAnalysisFieldOfView._metadata, MTOAnalysisFieldOfView._get_sensor_metadata)

    _set_sensor_metadata = { "offset" : _set_sensor_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @sensor.setter
    def sensor(self, sensor_path:str) -> None:
        """Get or set the assigned sensor object."""
        return self._intf.set_property(MTOAnalysisFieldOfView._metadata, MTOAnalysisFieldOfView._set_sensor_metadata, sensor_path)

    _get_entirety_metadata = { "offset" : _get_entirety_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MTOEntirety),) }
    @property
    def entirety(self) -> "MTOEntirety":
        """Field Of View Entirety."""
        return self._intf.get_property(MTOAnalysisFieldOfView._metadata, MTOAnalysisFieldOfView._get_entirety_metadata)

    _set_entirety_metadata = { "offset" : _set_entirety_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MTOEntirety),) }
    @entirety.setter
    def entirety(self, entirety:"MTOEntirety") -> None:
        return self._intf.set_property(MTOAnalysisFieldOfView._metadata, MTOAnalysisFieldOfView._set_entirety_metadata, entirety)

    _are_tracks_in_field_of_view_metadata = { "offset" : _are_tracks_in_field_of_view_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY), agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(MTOTrackEvaluationType), agmarshall.LPSafearrayArg, agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def are_tracks_in_field_of_view(self, any_or_all:"MTOTrackEvaluationType", tracks:list, time:typing.Any) -> bool:
        """Return an array of track ids and boolean values."""
        return self._intf.invoke(MTOAnalysisFieldOfView._metadata, MTOAnalysisFieldOfView._are_tracks_in_field_of_view_metadata, any_or_all, tracks, time, OutArg())

    _property_names[sensor] = "sensor"
    _property_names[entirety] = "entirety"

    def __init__(self, source_object=None):
        """Construct an object of type MTOAnalysisFieldOfView."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOAnalysisFieldOfView)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOAnalysisFieldOfView, [MTOAnalysisFieldOfView, ])

agcls.AgClassCatalog.add_catalog_entry((5730973217030153096, 12528615189343210172), MTOAnalysisFieldOfView)
agcls.AgTypeNameMap["MTOAnalysisFieldOfView"] = MTOAnalysisFieldOfView

class MTOAnalysisVisibility(SupportsDeleteCallback):
    """MTO Visibility computation."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _show_any_track_method_offset = 1
    _are_all_tracks_visible_method_offset = 2
    _get_use_terrain_method_offset = 3
    _set_use_terrain_method_offset = 4
    _get_entirety_method_offset = 5
    _set_entirety_method_offset = 6
    _get_object_interval_method_offset = 7
    _set_object_interval_method_offset = 8
    _get_object_data_method_offset = 9
    _set_object_data_method_offset = 10
    _show_track_method_offset = 11
    _get_object_path_method_offset = 12
    _set_object_path_method_offset = 13
    _are_tracks_visible_method_offset = 14
    _compute_tracks_method_offset = 15
    _compute_all_tracks_method_offset = 16
    _metadata = {
        "iid_data" : (5240302015023296324, 13648743411242926514),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOAnalysisVisibility)

    _show_any_track_metadata = { "offset" : _show_any_track_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def show_any_track(self, time:typing.Any) -> bool:
        """Return true if any track is visible to the object."""
        return self._intf.invoke(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._show_any_track_metadata, time, OutArg())

    _are_all_tracks_visible_metadata = { "offset" : _are_all_tracks_visible_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def are_all_tracks_visible(self, time:typing.Any) -> bool:
        """Return true if all tracks are visible to the object."""
        return self._intf.invoke(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._are_all_tracks_visible_metadata, time, OutArg())

    _get_use_terrain_metadata = { "offset" : _get_use_terrain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain(self) -> bool:
        """Indicate whether to use terrain instead of line of sight. Default is Terrain Off."""
        return self._intf.get_property(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._get_use_terrain_metadata)

    _set_use_terrain_metadata = { "offset" : _set_use_terrain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain.setter
    def use_terrain(self, value:bool) -> None:
        return self._intf.set_property(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._set_use_terrain_metadata, value)

    _get_entirety_metadata = { "offset" : _get_entirety_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MTOEntirety),) }
    @property
    def entirety(self) -> "MTOEntirety":
        """Visibility Entirety."""
        return self._intf.get_property(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._get_entirety_metadata)

    _set_entirety_metadata = { "offset" : _set_entirety_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MTOEntirety),) }
    @entirety.setter
    def entirety(self, entirety:"MTOEntirety") -> None:
        return self._intf.set_property(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._set_entirety_metadata, entirety)

    _get_object_interval_metadata = { "offset" : _get_object_interval_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MTOObjectInterval),) }
    @property
    def object_interval(self) -> "MTOObjectInterval":
        """Use Extended to use the last point of the ephemeris span of the object for times past the last point. Default is Normal."""
        return self._intf.get_property(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._get_object_interval_metadata)

    _set_object_interval_metadata = { "offset" : _set_object_interval_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MTOObjectInterval),) }
    @object_interval.setter
    def object_interval(self, value:"MTOObjectInterval") -> None:
        return self._intf.set_property(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._set_object_interval_metadata, value)

    _get_object_data_metadata = { "offset" : _get_object_data_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def object_data(self) -> int:
        """If the Object to which range will be computed is an MTO, use this option to specify the track that will be used to compute that range. By default the MTO's ComputeTrack will be used."""
        return self._intf.get_property(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._get_object_data_metadata)

    _set_object_data_metadata = { "offset" : _set_object_data_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @object_data.setter
    def object_data(self, value:int) -> None:
        return self._intf.set_property(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._set_object_data_metadata, value)

    _show_track_metadata = { "offset" : _show_track_method_offset,
            "arg_types" : (agcom.INT, agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.IntArg, agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def show_track(self, track_id:int, time:typing.Any) -> bool:
        """Return true is the track is visible to the object."""
        return self._intf.invoke(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._show_track_metadata, track_id, time, OutArg())

    _get_object_path_metadata = { "offset" : _get_object_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def object_path(self) -> str:
        """Get or set the object used for the visibility computation."""
        return self._intf.get_property(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._get_object_path_metadata)

    _set_object_path_metadata = { "offset" : _set_object_path_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @object_path.setter
    def object_path(self, path:str) -> None:
        """Get or set the object used for the visibility computation."""
        return self._intf.set_property(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._set_object_path_metadata, path)

    _are_tracks_visible_metadata = { "offset" : _are_tracks_visible_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY), agcom.Variant, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(MTOTrackEvaluationType), agmarshall.LPSafearrayArg, agmarshall.VariantArg, agmarshall.VariantBoolArg,) }
    def are_tracks_visible(self, eval:"MTOTrackEvaluationType", track_ids:list, time:typing.Any) -> bool:
        """Return true if any track in the array is visible to the object."""
        return self._intf.invoke(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._are_tracks_visible_metadata, eval, track_ids, time, OutArg())

    _compute_tracks_metadata = { "offset" : _compute_tracks_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY), agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.EnumArg(MTOVisibilityMode), agmarshall.LPSafearrayArg, agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_tracks(self, mode:"MTOVisibilityMode", track_ids:list, time:typing.Any) -> list:
        """Return an array of track ids with a bool value indicating if it's visible to the specified object."""
        return self._intf.invoke(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._compute_tracks_metadata, mode, track_ids, time, OutArg())

    _compute_all_tracks_metadata = { "offset" : _compute_all_tracks_method_offset,
            "arg_types" : (agcom.LONG, agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.EnumArg(MTOVisibilityMode), agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_all_tracks(self, mode:"MTOVisibilityMode", time:typing.Any) -> list:
        """Return an array of track ids with a bool value indicating if it's visible to the specified object."""
        return self._intf.invoke(MTOAnalysisVisibility._metadata, MTOAnalysisVisibility._compute_all_tracks_metadata, mode, time, OutArg())

    _property_names[use_terrain] = "use_terrain"
    _property_names[entirety] = "entirety"
    _property_names[object_interval] = "object_interval"
    _property_names[object_data] = "object_data"
    _property_names[object_path] = "object_path"

    def __init__(self, source_object=None):
        """Construct an object of type MTOAnalysisVisibility."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOAnalysisVisibility)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOAnalysisVisibility, [MTOAnalysisVisibility, ])

agcls.AgClassCatalog.add_catalog_entry((4920715117770378367, 14112681250726246304), MTOAnalysisVisibility)
agcls.AgTypeNameMap["MTOAnalysisVisibility"] = MTOAnalysisVisibility

class PropagatorGPS(SupportsDeleteCallback):
    """Allow the user to configure and propagate a vehicle using the GPS propagator."""

    _num_methods = 11
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_prn_method_offset = 4
    _set_prn_method_offset = 5
    _get_available_prns_method_offset = 6
    _get_automatic_update_enabled_method_offset = 7
    _set_automatic_update_enabled_method_offset = 8
    _get_automatic_update_settings_method_offset = 9
    _get_specify_catalog_method_offset = 10
    _get_ephemeris_interval_method_offset = 11
    _metadata = {
        "iid_data" : (5331186698008352417, 13578702894689862321),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorGPS)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the satellite's path using the specified time interval."""
        return self._intf.invoke(PropagatorGPS._metadata, PropagatorGPS._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(PropagatorGPS._metadata, PropagatorGPS._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(PropagatorGPS._metadata, PropagatorGPS._set_step_metadata, step)

    _get_prn_metadata = { "offset" : _get_prn_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def prn(self) -> int:
        """Get or set the satellite PRN number per ICD-GPS-200. This is a required data item as it is the GPS user's primary means of identifying GPS satellites. It is equivalent to the space vehicle identification (SVID) number of the satellite."""
        return self._intf.get_property(PropagatorGPS._metadata, PropagatorGPS._get_prn_metadata)

    _set_prn_metadata = { "offset" : _set_prn_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @prn.setter
    def prn(self, prn:int) -> None:
        return self._intf.set_property(PropagatorGPS._metadata, PropagatorGPS._set_prn_metadata, prn)

    _get_available_prns_metadata = { "offset" : _get_available_prns_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_prns(self) -> list:
        """Return an array of available satellite Ids."""
        return self._intf.get_property(PropagatorGPS._metadata, PropagatorGPS._get_available_prns_metadata)

    _get_automatic_update_enabled_metadata = { "offset" : _get_automatic_update_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def automatic_update_enabled(self) -> bool:
        """Whether automatic update is enabled."""
        return self._intf.get_property(PropagatorGPS._metadata, PropagatorGPS._get_automatic_update_enabled_metadata)

    _set_automatic_update_enabled_metadata = { "offset" : _set_automatic_update_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @automatic_update_enabled.setter
    def automatic_update_enabled(self, auto_update_enabled:bool) -> None:
        return self._intf.set_property(PropagatorGPS._metadata, PropagatorGPS._set_automatic_update_enabled_metadata, auto_update_enabled)

    _get_automatic_update_settings_metadata = { "offset" : _get_automatic_update_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def automatic_update_settings(self) -> "VehicleGPSAutoUpdate":
        """Allow configuring the auto-update parameters and settings. AutoUpdateEnabled must be set to true in order to be able to change the auto-update properties."""
        return self._intf.get_property(PropagatorGPS._metadata, PropagatorGPS._get_automatic_update_settings_metadata)

    _get_specify_catalog_metadata = { "offset" : _get_specify_catalog_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def specify_catalog(self) -> "VehicleGPSSpecifyAlmanac":
        """Specify a catalog. AutoUpdateEnabled must be set to false in order to select an almanac."""
        return self._intf.get_property(PropagatorGPS._metadata, PropagatorGPS._get_specify_catalog_metadata)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(PropagatorGPS._metadata, PropagatorGPS._get_ephemeris_interval_metadata)

    _property_names[step] = "step"
    _property_names[prn] = "prn"
    _property_names[available_prns] = "available_prns"
    _property_names[automatic_update_enabled] = "automatic_update_enabled"
    _property_names[automatic_update_settings] = "automatic_update_settings"
    _property_names[specify_catalog] = "specify_catalog"
    _property_names[ephemeris_interval] = "ephemeris_interval"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorGPS."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorGPS)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorGPS, [PropagatorGPS, ])

agcls.AgClassCatalog.add_catalog_entry((5006228804202832037, 1312975262727816321), PropagatorGPS)
agcls.AgTypeNameMap["PropagatorGPS"] = PropagatorGPS

class AvailableFeatures(SupportsDeleteCallback):
    """Define methods to inquiry available and supported features, object types, etc."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _is_propagator_type_available_method_offset = 1
    _is_object_type_available_method_offset = 2
    _metadata = {
        "iid_data" : (5100530007451573608, 2506154785360215735),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AvailableFeatures)

    _is_propagator_type_available_metadata = { "offset" : _is_propagator_type_available_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(PropagatorType), agmarshall.VariantBoolArg,) }
    def is_propagator_type_available(self, propagator_type:"PropagatorType") -> bool:
        """Return true if the specified propagator is available."""
        return self._intf.invoke(AvailableFeatures._metadata, AvailableFeatures._is_propagator_type_available_metadata, propagator_type, OutArg())

    _is_object_type_available_metadata = { "offset" : _is_object_type_available_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(STKObjectType), agmarshall.VariantBoolArg,) }
    def is_object_type_available(self, object_type:"STKObjectType") -> bool:
        """Return true if the specified STK object type is available."""
        return self._intf.invoke(AvailableFeatures._metadata, AvailableFeatures._is_object_type_available_metadata, object_type, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type AvailableFeatures."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AvailableFeatures)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AvailableFeatures, [AvailableFeatures, ])

agcls.AgClassCatalog.add_catalog_entry((5487468275840390627, 10036809779199098538), AvailableFeatures)
agcls.AgTypeNameMap["AvailableFeatures"] = AvailableFeatures

class ScenarioBeforeSaveEventArguments(SupportsDeleteCallback):
    """Contains information about the changes in the object's state."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_path_method_offset = 1
    _get_continue_save_method_offset = 2
    _set_continue_save_method_offset = 3
    _get_save_as_method_offset = 4
    _get_save_as_vdf_method_offset = 5
    _get_save_to_sdf_method_offset = 6
    _metadata = {
        "iid_data" : (5236004173263916677, 12412700591905861565),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScenarioBeforeSaveEventArguments)

    _get_path_metadata = { "offset" : _get_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def path(self) -> str:
        """Scenario file path."""
        return self._intf.get_property(ScenarioBeforeSaveEventArguments._metadata, ScenarioBeforeSaveEventArguments._get_path_metadata)

    _get_continue_save_metadata = { "offset" : _get_continue_save_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def continue_save(self) -> bool:
        """The status to allow/disallow continue saving."""
        return self._intf.get_property(ScenarioBeforeSaveEventArguments._metadata, ScenarioBeforeSaveEventArguments._get_continue_save_metadata)

    _set_continue_save_metadata = { "offset" : _set_continue_save_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @continue_save.setter
    def continue_save(self, value:bool) -> None:
        return self._intf.set_property(ScenarioBeforeSaveEventArguments._metadata, ScenarioBeforeSaveEventArguments._set_continue_save_metadata, value)

    _get_save_as_metadata = { "offset" : _get_save_as_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_as(self) -> bool:
        """Saving as user-specified file type and filename."""
        return self._intf.get_property(ScenarioBeforeSaveEventArguments._metadata, ScenarioBeforeSaveEventArguments._get_save_as_metadata)

    _get_save_as_vdf_metadata = { "offset" : _get_save_as_vdf_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_as_vdf(self) -> bool:
        """Saving as VDF."""
        return self._intf.get_property(ScenarioBeforeSaveEventArguments._metadata, ScenarioBeforeSaveEventArguments._get_save_as_vdf_metadata)

    _get_save_to_sdf_metadata = { "offset" : _get_save_to_sdf_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_to_sdf(self) -> bool:
        """Do not use this property, as it is deprecated. SDF functionality has been removed and this will be removed in the next major release. Saving to SDF."""
        return self._intf.get_property(ScenarioBeforeSaveEventArguments._metadata, ScenarioBeforeSaveEventArguments._get_save_to_sdf_metadata)

    _property_names[path] = "path"
    _property_names[continue_save] = "continue_save"
    _property_names[save_as] = "save_as"
    _property_names[save_as_vdf] = "save_as_vdf"
    _property_names[save_to_sdf] = "save_to_sdf"

    def __init__(self, source_object=None):
        """Construct an object of type ScenarioBeforeSaveEventArguments."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScenarioBeforeSaveEventArguments)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScenarioBeforeSaveEventArguments, [ScenarioBeforeSaveEventArguments, ])

agcls.AgClassCatalog.add_catalog_entry((5377184606199805683, 13253424112542434708), ScenarioBeforeSaveEventArguments)
agcls.AgTypeNameMap["ScenarioBeforeSaveEventArguments"] = ScenarioBeforeSaveEventArguments

class STKObjectPreDeleteEventArguments(SupportsDeleteCallback):
    """Arguments for the OnStkObjectPreDelete event."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_path_method_offset = 1
    _get_continue_object_deletion_method_offset = 2
    _set_continue_object_deletion_method_offset = 3
    _metadata = {
        "iid_data" : (4818841612825735408, 5529211141741003407),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, STKObjectPreDeleteEventArguments)

    _get_path_metadata = { "offset" : _get_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def path(self) -> str:
        """Object path."""
        return self._intf.get_property(STKObjectPreDeleteEventArguments._metadata, STKObjectPreDeleteEventArguments._get_path_metadata)

    _get_continue_object_deletion_metadata = { "offset" : _get_continue_object_deletion_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def continue_object_deletion(self) -> bool:
        """The status to continue or stop the object deletion."""
        return self._intf.get_property(STKObjectPreDeleteEventArguments._metadata, STKObjectPreDeleteEventArguments._get_continue_object_deletion_metadata)

    _set_continue_object_deletion_metadata = { "offset" : _set_continue_object_deletion_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @continue_object_deletion.setter
    def continue_object_deletion(self, value:bool) -> None:
        return self._intf.set_property(STKObjectPreDeleteEventArguments._metadata, STKObjectPreDeleteEventArguments._set_continue_object_deletion_metadata, value)

    _property_names[path] = "path"
    _property_names[continue_object_deletion] = "continue_object_deletion"

    def __init__(self, source_object=None):
        """Construct an object of type STKObjectPreDeleteEventArguments."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, STKObjectPreDeleteEventArguments)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, STKObjectPreDeleteEventArguments, [STKObjectPreDeleteEventArguments, ])

agcls.AgClassCatalog.add_catalog_entry((5749382137989619393, 306569601394430881), STKObjectPreDeleteEventArguments)
agcls.AgTypeNameMap["STKObjectPreDeleteEventArguments"] = STKObjectPreDeleteEventArguments

class PropagatorSGP4CommonTasks(SupportsDeleteCallback):
    """Interface provides methods encapsulating most commonly used functionality when working with SGP4 propagator."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _add_segments_from_file_method_offset = 1
    _add_segments_from_online_source_method_offset = 2
    _metadata = {
        "iid_data" : (5039546842470520088, 13677135523554014385),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4CommonTasks)

    _add_segments_from_file_metadata = { "offset" : _add_segments_from_file_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def add_segments_from_file(self, ssc_number:str, file_name:str) -> None:
        """Search the specified file for elements matching the specified SSC number and adds them to the collection."""
        return self._intf.invoke(PropagatorSGP4CommonTasks._metadata, PropagatorSGP4CommonTasks._add_segments_from_file_metadata, ssc_number, file_name)

    _add_segments_from_online_source_metadata = { "offset" : _add_segments_from_online_source_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add_segments_from_online_source(self, ssc_num:str) -> None:
        """Search the online source (AGI server) for elements matching the specified SSC number and adds them to the collection. The method uses the propagator's start/stop."""
        return self._intf.invoke(PropagatorSGP4CommonTasks._metadata, PropagatorSGP4CommonTasks._add_segments_from_online_source_metadata, ssc_num)


    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4CommonTasks."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4CommonTasks)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4CommonTasks, [PropagatorSGP4CommonTasks, ])

agcls.AgClassCatalog.add_catalog_entry((4812709977044893412, 14129542355537433511), PropagatorSGP4CommonTasks)
agcls.AgTypeNameMap["PropagatorSGP4CommonTasks"] = PropagatorSGP4CommonTasks

class PropagatorSGP4AutoUpdateProperties(SupportsDeleteCallback):
    """SGP4 Element AutoUpdate properties."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_selection_method_offset = 1
    _set_selection_method_offset = 2
    _get_switch_method_method_offset = 3
    _set_switch_method_method_offset = 4
    _metadata = {
        "iid_data" : (4740461325282685767, 9492277708312362421),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4AutoUpdateProperties)

    _get_selection_metadata = { "offset" : _get_selection_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSGP4TLESelectionType),) }
    @property
    def selection(self) -> "VehicleSGP4TLESelectionType":
        """Whether Automatic Update is active."""
        return self._intf.get_property(PropagatorSGP4AutoUpdateProperties._metadata, PropagatorSGP4AutoUpdateProperties._get_selection_metadata)

    _set_selection_metadata = { "offset" : _set_selection_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSGP4TLESelectionType),) }
    @selection.setter
    def selection(self, selection:"VehicleSGP4TLESelectionType") -> None:
        return self._intf.set_property(PropagatorSGP4AutoUpdateProperties._metadata, PropagatorSGP4AutoUpdateProperties._set_selection_metadata, selection)

    _get_switch_method_metadata = { "offset" : _get_switch_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PropagatorSGP4SwitchMethod),) }
    @property
    def switch_method(self) -> "PropagatorSGP4SwitchMethod":
        """When to switch between element sets."""
        return self._intf.get_property(PropagatorSGP4AutoUpdateProperties._metadata, PropagatorSGP4AutoUpdateProperties._get_switch_method_metadata)

    _set_switch_method_metadata = { "offset" : _set_switch_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PropagatorSGP4SwitchMethod),) }
    @switch_method.setter
    def switch_method(self, switching_method:"PropagatorSGP4SwitchMethod") -> None:
        return self._intf.set_property(PropagatorSGP4AutoUpdateProperties._metadata, PropagatorSGP4AutoUpdateProperties._set_switch_method_metadata, switching_method)

    _property_names[selection] = "selection"
    _property_names[switch_method] = "switch_method"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4AutoUpdateProperties."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4AutoUpdateProperties)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4AutoUpdateProperties, [PropagatorSGP4AutoUpdateProperties, ])

agcls.AgClassCatalog.add_catalog_entry((5510499801747407558, 12367356296605196953), PropagatorSGP4AutoUpdateProperties)
agcls.AgTypeNameMap["PropagatorSGP4AutoUpdateProperties"] = PropagatorSGP4AutoUpdateProperties

class PropagatorSGP4AutoUpdateFileSource(SupportsDeleteCallback):
    """Interface to configure the SGP4 automatic updates using file(s)."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _preview_method_offset = 3
    _metadata = {
        "iid_data" : (4811867432817775241, 10874812235547570339),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4AutoUpdateFileSource)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the name of the source file containing GP data (either TLEs or CCSDS OMM content)."""
        return self._intf.get_property(PropagatorSGP4AutoUpdateFileSource._metadata, PropagatorSGP4AutoUpdateFileSource._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, file_name:str) -> None:
        return self._intf.set_property(PropagatorSGP4AutoUpdateFileSource._metadata, PropagatorSGP4AutoUpdateFileSource._set_filename_metadata, file_name)

    _preview_metadata = { "offset" : _preview_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def preview(self) -> list:
        """Preview the elements."""
        return self._intf.invoke(PropagatorSGP4AutoUpdateFileSource._metadata, PropagatorSGP4AutoUpdateFileSource._preview_metadata, OutArg())

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4AutoUpdateFileSource."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4AutoUpdateFileSource)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4AutoUpdateFileSource, [PropagatorSGP4AutoUpdateFileSource, ])

agcls.AgClassCatalog.add_catalog_entry((5049252733512199579, 16580846658174654894), PropagatorSGP4AutoUpdateFileSource)
agcls.AgTypeNameMap["PropagatorSGP4AutoUpdateFileSource"] = PropagatorSGP4AutoUpdateFileSource

class PropagatorSGP4AutoUpdateOnlineSource(SupportsDeleteCallback):
    """Interface to configure the SGP4 automatic updates using online source (AGI server)."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _preview_method_offset = 1
    _metadata = {
        "iid_data" : (4754481416202599961, 5592444325009145248),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4AutoUpdateOnlineSource)

    _preview_metadata = { "offset" : _preview_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def preview(self) -> list:
        """Preview the elements."""
        return self._intf.invoke(PropagatorSGP4AutoUpdateOnlineSource._metadata, PropagatorSGP4AutoUpdateOnlineSource._preview_metadata, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4AutoUpdateOnlineSource."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4AutoUpdateOnlineSource)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4AutoUpdateOnlineSource, [PropagatorSGP4AutoUpdateOnlineSource, ])

agcls.AgClassCatalog.add_catalog_entry((4987145957322506612, 15453535585343662995), PropagatorSGP4AutoUpdateOnlineSource)
agcls.AgTypeNameMap["PropagatorSGP4AutoUpdateOnlineSource"] = PropagatorSGP4AutoUpdateOnlineSource

class PropagatorSGP4AutoUpdate(SupportsDeleteCallback):
    """SGP4 Automatic Update properties."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_selected_source_method_offset = 1
    _set_selected_source_method_offset = 2
    _get_properties_method_offset = 3
    _get_file_source_method_offset = 4
    _get_online_source_method_offset = 5
    _metadata = {
        "iid_data" : (5271962104900210724, 12747519899990102667),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4AutoUpdate)

    _get_selected_source_metadata = { "offset" : _get_selected_source_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSGP4AutomaticUpdateSourceType),) }
    @property
    def selected_source(self) -> "VehicleSGP4AutomaticUpdateSourceType":
        """Get or set the source type for element updates."""
        return self._intf.get_property(PropagatorSGP4AutoUpdate._metadata, PropagatorSGP4AutoUpdate._get_selected_source_metadata)

    _set_selected_source_metadata = { "offset" : _set_selected_source_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSGP4AutomaticUpdateSourceType),) }
    @selected_source.setter
    def selected_source(self, selected_source:"VehicleSGP4AutomaticUpdateSourceType") -> None:
        return self._intf.set_property(PropagatorSGP4AutoUpdate._metadata, PropagatorSGP4AutoUpdate._set_selected_source_metadata, selected_source)

    _get_properties_metadata = { "offset" : _get_properties_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def properties(self) -> "PropagatorSGP4AutoUpdateProperties":
        """Get the Automatic Update selection and method."""
        return self._intf.get_property(PropagatorSGP4AutoUpdate._metadata, PropagatorSGP4AutoUpdate._get_properties_metadata)

    _get_file_source_metadata = { "offset" : _get_file_source_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def file_source(self) -> "PropagatorSGP4AutoUpdateFileSource":
        """A file to be used as the element source, containing GP data (either TLEs or CCSDS OMM content)."""
        return self._intf.get_property(PropagatorSGP4AutoUpdate._metadata, PropagatorSGP4AutoUpdate._get_file_source_metadata)

    _get_online_source_metadata = { "offset" : _get_online_source_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def online_source(self) -> "PropagatorSGP4AutoUpdateOnlineSource":
        """AGI server to be used as the element source."""
        return self._intf.get_property(PropagatorSGP4AutoUpdate._metadata, PropagatorSGP4AutoUpdate._get_online_source_metadata)

    _property_names[selected_source] = "selected_source"
    _property_names[properties] = "properties"
    _property_names[file_source] = "file_source"
    _property_names[online_source] = "online_source"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4AutoUpdate."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4AutoUpdate)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4AutoUpdate, [PropagatorSGP4AutoUpdate, ])

agcls.AgClassCatalog.add_catalog_entry((4925757001667089211, 2958664569677375930), PropagatorSGP4AutoUpdate)
agcls.AgTypeNameMap["PropagatorSGP4AutoUpdate"] = PropagatorSGP4AutoUpdate

class PropagatorSGP4PropagatorSettings(SupportsDeleteCallback):
    """Encapsulates the SGP4 propagator settings."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_sgp4_one_point_interpolation_method_offset = 1
    _set_use_sgp4_one_point_interpolation_method_offset = 2
    _get_use_sgp4_one_point_validation_method_offset = 3
    _set_use_sgp4_one_point_validation_method_offset = 4
    _get_use_sgp4_one_point_warning_method_offset = 5
    _set_use_sgp4_one_point_warning_method_offset = 6
    _metadata = {
        "iid_data" : (5290699153353703847, 11511003026090108825),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSGP4PropagatorSettings)

    _get_use_sgp4_one_point_interpolation_metadata = { "offset" : _get_use_sgp4_one_point_interpolation_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_sgp4_one_point_interpolation(self) -> bool:
        """Whether to use SGP4 1Point Interpolation."""
        return self._intf.get_property(PropagatorSGP4PropagatorSettings._metadata, PropagatorSGP4PropagatorSettings._get_use_sgp4_one_point_interpolation_metadata)

    _set_use_sgp4_one_point_interpolation_metadata = { "offset" : _set_use_sgp4_one_point_interpolation_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_sgp4_one_point_interpolation.setter
    def use_sgp4_one_point_interpolation(self, interpolation:bool) -> None:
        return self._intf.set_property(PropagatorSGP4PropagatorSettings._metadata, PropagatorSGP4PropagatorSettings._set_use_sgp4_one_point_interpolation_metadata, interpolation)

    _get_use_sgp4_one_point_validation_metadata = { "offset" : _get_use_sgp4_one_point_validation_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_sgp4_one_point_validation(self) -> bool:
        """Whether to use SGP4 1Point Validation."""
        return self._intf.get_property(PropagatorSGP4PropagatorSettings._metadata, PropagatorSGP4PropagatorSettings._get_use_sgp4_one_point_validation_metadata)

    _set_use_sgp4_one_point_validation_metadata = { "offset" : _set_use_sgp4_one_point_validation_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_sgp4_one_point_validation.setter
    def use_sgp4_one_point_validation(self, validation:bool) -> None:
        return self._intf.set_property(PropagatorSGP4PropagatorSettings._metadata, PropagatorSGP4PropagatorSettings._set_use_sgp4_one_point_validation_metadata, validation)

    _get_use_sgp4_one_point_warning_metadata = { "offset" : _get_use_sgp4_one_point_warning_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_sgp4_one_point_warning(self) -> bool:
        """Whether to generate SGP4 1Point warnings."""
        return self._intf.get_property(PropagatorSGP4PropagatorSettings._metadata, PropagatorSGP4PropagatorSettings._get_use_sgp4_one_point_warning_metadata)

    _set_use_sgp4_one_point_warning_metadata = { "offset" : _set_use_sgp4_one_point_warning_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_sgp4_one_point_warning.setter
    def use_sgp4_one_point_warning(self, warning:bool) -> None:
        return self._intf.set_property(PropagatorSGP4PropagatorSettings._metadata, PropagatorSGP4PropagatorSettings._set_use_sgp4_one_point_warning_metadata, warning)

    _property_names[use_sgp4_one_point_interpolation] = "use_sgp4_one_point_interpolation"
    _property_names[use_sgp4_one_point_validation] = "use_sgp4_one_point_validation"
    _property_names[use_sgp4_one_point_warning] = "use_sgp4_one_point_warning"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSGP4PropagatorSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSGP4PropagatorSettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSGP4PropagatorSettings, [PropagatorSGP4PropagatorSettings, ])

agcls.AgClassCatalog.add_catalog_entry((4788173608039343152, 14848093193405993618), PropagatorSGP4PropagatorSettings)
agcls.AgTypeNameMap["PropagatorSGP4PropagatorSettings"] = PropagatorSGP4PropagatorSettings

class VehicleGPSAutoUpdateProperties(SupportsDeleteCallback):
    """Interface for GPS AutoUpdate properties."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_selection_method_offset = 1
    _set_selection_method_offset = 2
    _get_switch_method_method_offset = 3
    _set_switch_method_method_offset = 4
    _get_week_reference_epoch_method_offset = 5
    _set_week_reference_epoch_method_offset = 6
    _metadata = {
        "iid_data" : (4978629572994636121, 12961646146257515401),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGPSAutoUpdateProperties)

    _get_selection_metadata = { "offset" : _get_selection_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGPSElementSelectionType),) }
    @property
    def selection(self) -> "VehicleGPSElementSelectionType":
        """Whether Automatic Update is active."""
        return self._intf.get_property(VehicleGPSAutoUpdateProperties._metadata, VehicleGPSAutoUpdateProperties._get_selection_metadata)

    _set_selection_metadata = { "offset" : _set_selection_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGPSElementSelectionType),) }
    @selection.setter
    def selection(self, selection:"VehicleGPSElementSelectionType") -> None:
        return self._intf.set_property(VehicleGPSAutoUpdateProperties._metadata, VehicleGPSAutoUpdateProperties._set_selection_metadata, selection)

    _get_switch_method_metadata = { "offset" : _get_switch_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGPSSwitchMethod),) }
    @property
    def switch_method(self) -> "VehicleGPSSwitchMethod":
        """When to switch between element sets."""
        return self._intf.get_property(VehicleGPSAutoUpdateProperties._metadata, VehicleGPSAutoUpdateProperties._get_switch_method_metadata)

    _set_switch_method_metadata = { "offset" : _set_switch_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGPSSwitchMethod),) }
    @switch_method.setter
    def switch_method(self, switching_method:"VehicleGPSSwitchMethod") -> None:
        return self._intf.set_property(VehicleGPSAutoUpdateProperties._metadata, VehicleGPSAutoUpdateProperties._set_switch_method_metadata, switching_method)

    _get_week_reference_epoch_metadata = { "offset" : _get_week_reference_epoch_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(GPSReferenceWeek),) }
    @property
    def week_reference_epoch(self) -> "GPSReferenceWeek":
        """Week reference epoch."""
        return self._intf.get_property(VehicleGPSAutoUpdateProperties._metadata, VehicleGPSAutoUpdateProperties._get_week_reference_epoch_metadata)

    _set_week_reference_epoch_metadata = { "offset" : _set_week_reference_epoch_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(GPSReferenceWeek),) }
    @week_reference_epoch.setter
    def week_reference_epoch(self, week_reference_epoch:"GPSReferenceWeek") -> None:
        return self._intf.set_property(VehicleGPSAutoUpdateProperties._metadata, VehicleGPSAutoUpdateProperties._set_week_reference_epoch_metadata, week_reference_epoch)

    _property_names[selection] = "selection"
    _property_names[switch_method] = "switch_method"
    _property_names[week_reference_epoch] = "week_reference_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSAutoUpdateProperties."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGPSAutoUpdateProperties)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSAutoUpdateProperties, [VehicleGPSAutoUpdateProperties, ])

agcls.AgClassCatalog.add_catalog_entry((5582164912751471981, 16425000834565849270), VehicleGPSAutoUpdateProperties)
agcls.AgTypeNameMap["VehicleGPSAutoUpdateProperties"] = VehicleGPSAutoUpdateProperties

class VehicleGPSAutoUpdateFileSource(SupportsDeleteCallback):
    """Interface to configure the GPS automatic updates using almanac file(s)."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _preview_method_offset = 3
    _metadata = {
        "iid_data" : (5424456581785088477, 16363829277953524413),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGPSAutoUpdateFileSource)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the name of the source file."""
        return self._intf.get_property(VehicleGPSAutoUpdateFileSource._metadata, VehicleGPSAutoUpdateFileSource._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, file_name:str) -> None:
        return self._intf.set_property(VehicleGPSAutoUpdateFileSource._metadata, VehicleGPSAutoUpdateFileSource._set_filename_metadata, file_name)

    _preview_metadata = { "offset" : _preview_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def preview(self) -> "VehicleGPSElementCollection":
        """Preview the GPS elements in the almanac. Only records associated with the current PRN are returned."""
        return self._intf.invoke(VehicleGPSAutoUpdateFileSource._metadata, VehicleGPSAutoUpdateFileSource._preview_metadata, OutArg())

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSAutoUpdateFileSource."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGPSAutoUpdateFileSource)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSAutoUpdateFileSource, [VehicleGPSAutoUpdateFileSource, ])

agcls.AgClassCatalog.add_catalog_entry((5227814514245593049, 13886136057409689474), VehicleGPSAutoUpdateFileSource)
agcls.AgTypeNameMap["VehicleGPSAutoUpdateFileSource"] = VehicleGPSAutoUpdateFileSource

class VehicleGPSAutoUpdateOnlineSource(SupportsDeleteCallback):
    """Interface to configure the GPS automatic updates using online source (AGI server)."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _preview_method_offset = 1
    _metadata = {
        "iid_data" : (5198105926656503730, 5628107342491738795),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGPSAutoUpdateOnlineSource)

    _preview_metadata = { "offset" : _preview_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def preview(self) -> "VehicleGPSElementCollection":
        """Preview the GPS elements in the almanac. Only records associated with the current PRN are returned."""
        return self._intf.invoke(VehicleGPSAutoUpdateOnlineSource._metadata, VehicleGPSAutoUpdateOnlineSource._preview_metadata, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSAutoUpdateOnlineSource."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGPSAutoUpdateOnlineSource)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSAutoUpdateOnlineSource, [VehicleGPSAutoUpdateOnlineSource, ])

agcls.AgClassCatalog.add_catalog_entry((4827594448838097115, 311422258917676163), VehicleGPSAutoUpdateOnlineSource)
agcls.AgTypeNameMap["VehicleGPSAutoUpdateOnlineSource"] = VehicleGPSAutoUpdateOnlineSource

class VehicleGPSAutoUpdate(SupportsDeleteCallback):
    """Interface for GPS AutoUpdate."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_selected_source_method_offset = 1
    _set_selected_source_method_offset = 2
    _get_properties_method_offset = 3
    _get_file_source_method_offset = 4
    _get_online_source_method_offset = 5
    _metadata = {
        "iid_data" : (5351091838482688909, 17639401921562214076),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGPSAutoUpdate)

    _get_selected_source_metadata = { "offset" : _get_selected_source_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleGPSAutomaticUpdateSourceType),) }
    @property
    def selected_source(self) -> "VehicleGPSAutomaticUpdateSourceType":
        """Get or set the source type for element updates."""
        return self._intf.get_property(VehicleGPSAutoUpdate._metadata, VehicleGPSAutoUpdate._get_selected_source_metadata)

    _set_selected_source_metadata = { "offset" : _set_selected_source_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleGPSAutomaticUpdateSourceType),) }
    @selected_source.setter
    def selected_source(self, selected_source:"VehicleGPSAutomaticUpdateSourceType") -> None:
        return self._intf.set_property(VehicleGPSAutoUpdate._metadata, VehicleGPSAutoUpdate._set_selected_source_metadata, selected_source)

    _get_properties_metadata = { "offset" : _get_properties_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def properties(self) -> "VehicleGPSAutoUpdateProperties":
        """Get the Automatic Update selection and method."""
        return self._intf.get_property(VehicleGPSAutoUpdate._metadata, VehicleGPSAutoUpdate._get_properties_metadata)

    _get_file_source_metadata = { "offset" : _get_file_source_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def file_source(self) -> "VehicleGPSAutoUpdateFileSource":
        """A file to be used as the element source."""
        return self._intf.get_property(VehicleGPSAutoUpdate._metadata, VehicleGPSAutoUpdate._get_file_source_metadata)

    _get_online_source_metadata = { "offset" : _get_online_source_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def online_source(self) -> "VehicleGPSAutoUpdateOnlineSource":
        """AGI server to be used as the element source."""
        return self._intf.get_property(VehicleGPSAutoUpdate._metadata, VehicleGPSAutoUpdate._get_online_source_metadata)

    _property_names[selected_source] = "selected_source"
    _property_names[properties] = "properties"
    _property_names[file_source] = "file_source"
    _property_names[online_source] = "online_source"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSAutoUpdate."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGPSAutoUpdate)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSAutoUpdate, [VehicleGPSAutoUpdate, ])

agcls.AgClassCatalog.add_catalog_entry((4723174205779221895, 5554349614402290567), VehicleGPSAutoUpdate)
agcls.AgTypeNameMap["VehicleGPSAutoUpdate"] = VehicleGPSAutoUpdate

class VehicleGPSSpecifyAlmanac(SupportsDeleteCallback):
    """Interface to specify a GPS almanac."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_properties_method_offset = 3
    _metadata = {
        "iid_data" : (5008314110781143034, 6664364254089825965),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGPSSpecifyAlmanac)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Almanac file name."""
        return self._intf.get_property(VehicleGPSSpecifyAlmanac._metadata, VehicleGPSSpecifyAlmanac._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, file_name:str) -> None:
        return self._intf.set_property(VehicleGPSSpecifyAlmanac._metadata, VehicleGPSSpecifyAlmanac._set_filename_metadata, file_name)

    _get_properties_metadata = { "offset" : _get_properties_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def properties(self) -> "IVehicleGPSAlmanacProperties":
        """Get the almanac properties."""
        return self._intf.get_property(VehicleGPSSpecifyAlmanac._metadata, VehicleGPSSpecifyAlmanac._get_properties_metadata)

    _property_names[filename] = "filename"
    _property_names[properties] = "properties"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSSpecifyAlmanac."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGPSSpecifyAlmanac)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSSpecifyAlmanac, [VehicleGPSSpecifyAlmanac, ])

agcls.AgClassCatalog.add_catalog_entry((5105687156824100815, 12797042528184360353), VehicleGPSSpecifyAlmanac)
agcls.AgTypeNameMap["VehicleGPSSpecifyAlmanac"] = VehicleGPSSpecifyAlmanac

class VehicleGPSAlmanacProperties(IVehicleGPSAlmanacProperties, SupportsDeleteCallback):
    """A common base for GPS almanac properties."""
    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSAlmanacProperties."""
        SupportsDeleteCallback.__init__(self)
        IVehicleGPSAlmanacProperties.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGPSAlmanacProperties._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSAlmanacProperties, [IVehicleGPSAlmanacProperties])

agcls.AgClassCatalog.add_catalog_entry((4668157681682684828, 1929606113417342377), VehicleGPSAlmanacProperties)
agcls.AgTypeNameMap["VehicleGPSAlmanacProperties"] = VehicleGPSAlmanacProperties

class VehicleGPSAlmanacPropertiesSEM(IVehicleGPSAlmanacProperties, SupportsDeleteCallback):
    """SEM almanac properties."""

    _num_methods = 7
    _vtable_offset = IVehicleGPSAlmanacProperties._vtable_offset + IVehicleGPSAlmanacProperties._num_methods
    _get_avg_ura_method_offset = 1
    _get_almanac_week_method_offset = 2
    _get_reference_week_method_offset = 3
    _set_reference_week_method_offset = 4
    _get_time_of_almanac_method_offset = 5
    _get_date_of_almanac_method_offset = 6
    _get_health_method_offset = 7
    _metadata = {
        "iid_data" : (5068215015171107593, 1016738060196577454),
        "vtable_reference" : IVehicleGPSAlmanacProperties._vtable_offset + IVehicleGPSAlmanacProperties._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGPSAlmanacPropertiesSEM)

    _get_avg_ura_metadata = { "offset" : _get_avg_ura_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def avg_ura(self) -> int:
        """Get the satellite 'average' URA number, with the URA number as defined in the ICD-GPS-200. This is not an item in the raw almanac file, but is based on the average URA value transmitted by this satellite in its subframe 1 data sets."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesSEM._metadata, VehicleGPSAlmanacPropertiesSEM._get_avg_ura_metadata)

    _get_almanac_week_metadata = { "offset" : _get_almanac_week_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def almanac_week(self) -> int:
        """Get the week number from the reference week."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesSEM._metadata, VehicleGPSAlmanacPropertiesSEM._get_almanac_week_metadata)

    _get_reference_week_metadata = { "offset" : _get_reference_week_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(GPSReferenceWeek),) }
    @property
    def reference_week(self) -> "GPSReferenceWeek":
        """Get or set the almanac reference week (VINA) for all almanacs in this file per the ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesSEM._metadata, VehicleGPSAlmanacPropertiesSEM._get_reference_week_metadata)

    _set_reference_week_metadata = { "offset" : _set_reference_week_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(GPSReferenceWeek),) }
    @reference_week.setter
    def reference_week(self, reference_week:"GPSReferenceWeek") -> None:
        return self._intf.set_property(VehicleGPSAlmanacPropertiesSEM._metadata, VehicleGPSAlmanacPropertiesSEM._set_reference_week_metadata, reference_week)

    _get_time_of_almanac_metadata = { "offset" : _get_time_of_almanac_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_of_almanac(self) -> float:
        """Get the almanac reference time (Time of Appilcability) for all almanacs in the file per ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesSEM._metadata, VehicleGPSAlmanacPropertiesSEM._get_time_of_almanac_metadata)

    _get_date_of_almanac_metadata = { "offset" : _get_date_of_almanac_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def date_of_almanac(self) -> str:
        """Get the almanac reference date for all almanacs in the file per ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesSEM._metadata, VehicleGPSAlmanacPropertiesSEM._get_date_of_almanac_metadata)

    _get_health_metadata = { "offset" : _get_health_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def health(self) -> int:
        """Get the satellite health code as defined in the ICD-GPS-200 expressed in integer form. 0=healthy."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesSEM._metadata, VehicleGPSAlmanacPropertiesSEM._get_health_metadata)

    _property_names[avg_ura] = "avg_ura"
    _property_names[almanac_week] = "almanac_week"
    _property_names[reference_week] = "reference_week"
    _property_names[time_of_almanac] = "time_of_almanac"
    _property_names[date_of_almanac] = "date_of_almanac"
    _property_names[health] = "health"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSAlmanacPropertiesSEM."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGPSAlmanacPropertiesSEM)
        IVehicleGPSAlmanacProperties.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGPSAlmanacProperties._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSAlmanacPropertiesSEM, [VehicleGPSAlmanacPropertiesSEM, IVehicleGPSAlmanacProperties])

agcls.AgClassCatalog.add_catalog_entry((5095292665409737457, 3536083293570211502), VehicleGPSAlmanacPropertiesSEM)
agcls.AgTypeNameMap["VehicleGPSAlmanacPropertiesSEM"] = VehicleGPSAlmanacPropertiesSEM

class VehicleGPSAlmanacPropertiesYUMA(IVehicleGPSAlmanacProperties, SupportsDeleteCallback):
    """YUMA almanac properties."""

    _num_methods = 7
    _vtable_offset = IVehicleGPSAlmanacProperties._vtable_offset + IVehicleGPSAlmanacProperties._num_methods
    _get_week_number_method_offset = 1
    _get_almanac_week_method_offset = 2
    _get_reference_week_method_offset = 3
    _set_reference_week_method_offset = 4
    _get_time_of_almanac_method_offset = 5
    _get_date_of_almanac_method_offset = 6
    _get_health_method_offset = 7
    _metadata = {
        "iid_data" : (4990457532685715771, 17212790576398602137),
        "vtable_reference" : IVehicleGPSAlmanacProperties._vtable_offset + IVehicleGPSAlmanacProperties._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGPSAlmanacPropertiesYUMA)

    _get_week_number_metadata = { "offset" : _get_week_number_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def week_number(self) -> int:
        """Get the week number from the reference week."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesYUMA._metadata, VehicleGPSAlmanacPropertiesYUMA._get_week_number_metadata)

    _get_almanac_week_metadata = { "offset" : _get_almanac_week_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def almanac_week(self) -> int:
        """Get the almanac reference week (VINA) for all almanacs in this file per the ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesYUMA._metadata, VehicleGPSAlmanacPropertiesYUMA._get_almanac_week_metadata)

    _get_reference_week_metadata = { "offset" : _get_reference_week_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(GPSReferenceWeek),) }
    @property
    def reference_week(self) -> "GPSReferenceWeek":
        """Get or set the reference week (VINA) for all almanacs in this file per the ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesYUMA._metadata, VehicleGPSAlmanacPropertiesYUMA._get_reference_week_metadata)

    _set_reference_week_metadata = { "offset" : _set_reference_week_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(GPSReferenceWeek),) }
    @reference_week.setter
    def reference_week(self, reference_week:"GPSReferenceWeek") -> None:
        return self._intf.set_property(VehicleGPSAlmanacPropertiesYUMA._metadata, VehicleGPSAlmanacPropertiesYUMA._set_reference_week_metadata, reference_week)

    _get_time_of_almanac_metadata = { "offset" : _get_time_of_almanac_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_of_almanac(self) -> float:
        """Get the almanac reference time (Time of Appilcability) for all almanacs in the file per ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesYUMA._metadata, VehicleGPSAlmanacPropertiesYUMA._get_time_of_almanac_metadata)

    _get_date_of_almanac_metadata = { "offset" : _get_date_of_almanac_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def date_of_almanac(self) -> str:
        """Get the almanac reference date for all almanacs in the file per ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesYUMA._metadata, VehicleGPSAlmanacPropertiesYUMA._get_date_of_almanac_metadata)

    _get_health_metadata = { "offset" : _get_health_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def health(self) -> int:
        """Get the satellite health code as defined in the ICD-GPS-200 expressed in integer form. 0=healthy."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesYUMA._metadata, VehicleGPSAlmanacPropertiesYUMA._get_health_metadata)

    _property_names[week_number] = "week_number"
    _property_names[almanac_week] = "almanac_week"
    _property_names[reference_week] = "reference_week"
    _property_names[time_of_almanac] = "time_of_almanac"
    _property_names[date_of_almanac] = "date_of_almanac"
    _property_names[health] = "health"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSAlmanacPropertiesYUMA."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGPSAlmanacPropertiesYUMA)
        IVehicleGPSAlmanacProperties.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGPSAlmanacProperties._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSAlmanacPropertiesYUMA, [VehicleGPSAlmanacPropertiesYUMA, IVehicleGPSAlmanacProperties])

agcls.AgClassCatalog.add_catalog_entry((4825293805270116835, 5402719639349161142), VehicleGPSAlmanacPropertiesYUMA)
agcls.AgTypeNameMap["VehicleGPSAlmanacPropertiesYUMA"] = VehicleGPSAlmanacPropertiesYUMA

class VehicleGPSAlmanacPropertiesSP3(IVehicleGPSAlmanacProperties, SupportsDeleteCallback):
    """SP3 almanac properties."""

    _num_methods = 3
    _vtable_offset = IVehicleGPSAlmanacProperties._vtable_offset + IVehicleGPSAlmanacProperties._num_methods
    _get_almanac_week_method_offset = 1
    _get_time_of_almanac_method_offset = 2
    _get_date_of_almanac_method_offset = 3
    _metadata = {
        "iid_data" : (5480339198755411497, 4269649883596643770),
        "vtable_reference" : IVehicleGPSAlmanacProperties._vtable_offset + IVehicleGPSAlmanacProperties._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGPSAlmanacPropertiesSP3)

    _get_almanac_week_metadata = { "offset" : _get_almanac_week_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def almanac_week(self) -> int:
        """Get the almanac reference week (VINA) for all almanacs in this file per the ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesSP3._metadata, VehicleGPSAlmanacPropertiesSP3._get_almanac_week_metadata)

    _get_time_of_almanac_metadata = { "offset" : _get_time_of_almanac_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_of_almanac(self) -> float:
        """Get the almanac reference time (Time of Appilcability) for all almanacs in the file per ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesSP3._metadata, VehicleGPSAlmanacPropertiesSP3._get_time_of_almanac_metadata)

    _get_date_of_almanac_metadata = { "offset" : _get_date_of_almanac_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def date_of_almanac(self) -> str:
        """Get the almanac reference date for all almanacs in the file per ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSAlmanacPropertiesSP3._metadata, VehicleGPSAlmanacPropertiesSP3._get_date_of_almanac_metadata)

    _property_names[almanac_week] = "almanac_week"
    _property_names[time_of_almanac] = "time_of_almanac"
    _property_names[date_of_almanac] = "date_of_almanac"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSAlmanacPropertiesSP3."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGPSAlmanacPropertiesSP3)
        IVehicleGPSAlmanacProperties.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGPSAlmanacProperties._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSAlmanacPropertiesSP3, [VehicleGPSAlmanacPropertiesSP3, IVehicleGPSAlmanacProperties])

agcls.AgClassCatalog.add_catalog_entry((5510876602112180633, 9353413913370141569), VehicleGPSAlmanacPropertiesSP3)
agcls.AgTypeNameMap["VehicleGPSAlmanacPropertiesSP3"] = VehicleGPSAlmanacPropertiesSP3

class VehicleGPSElementCollection(SupportsDeleteCallback):
    """A collection of GPS elements."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5541836896011443035, 17753775192696712116),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGPSElementCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGPSElementCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VehicleGPSElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGPSElementCollection._metadata, VehicleGPSElementCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VehicleGPSElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGPSElementCollection._metadata, VehicleGPSElementCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGPSElementCollection._metadata, VehicleGPSElementCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSElementCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGPSElementCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSElementCollection, [VehicleGPSElementCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4850667938745976714, 15550992729400682672), VehicleGPSElementCollection)
agcls.AgTypeNameMap["VehicleGPSElementCollection"] = VehicleGPSElementCollection

class VehicleGPSElement(SupportsDeleteCallback):
    """An element of the GPS element collection."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_epoch_method_offset = 1
    _get_week_method_offset = 2
    _get_time_of_almanac_method_offset = 3
    _get_age_method_offset = 4
    _metadata = {
        "iid_data" : (5281838987597572712, 9946257183529905801),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGPSElement)

    _get_epoch_metadata = { "offset" : _get_epoch_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def epoch(self) -> typing.Any:
        """The almanac reference date for all almanacs in the (.al3) file per ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSElement._metadata, VehicleGPSElement._get_epoch_metadata)

    _get_week_metadata = { "offset" : _get_week_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def week(self) -> int:
        """The almanac reference week (VINA) for all almanacs in this (.al3) file per the ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSElement._metadata, VehicleGPSElement._get_week_metadata)

    _get_time_of_almanac_metadata = { "offset" : _get_time_of_almanac_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_of_almanac(self) -> float:
        """The almanac reference time (Time of Appilcability) for all almanacs in the (.al3) file per ICD-GPS-200."""
        return self._intf.get_property(VehicleGPSElement._metadata, VehicleGPSElement._get_time_of_almanac_metadata)

    _get_age_metadata = { "offset" : _get_age_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def age(self) -> float:
        """The age of the satellite."""
        return self._intf.get_property(VehicleGPSElement._metadata, VehicleGPSElement._get_age_metadata)

    _property_names[epoch] = "epoch"
    _property_names[week] = "week"
    _property_names[time_of_almanac] = "time_of_almanac"
    _property_names[age] = "age"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGPSElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGPSElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGPSElement, [VehicleGPSElement, ])

agcls.AgClassCatalog.add_catalog_entry((5622071688904422487, 5494898140811455124), VehicleGPSElement)
agcls.AgTypeNameMap["VehicleGPSElement"] = VehicleGPSElement

class SpaceEnvironmentRadiationEnergyMethodEnergies(SupportsDeleteCallback):
    """Customized energy lists for protons and electrons."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_electron_energies_method_offset = 1
    _get_proton_energies_method_offset = 2
    _metadata = {
        "iid_data" : (5144255687578530537, 1462697822527412136),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentRadiationEnergyMethodEnergies)

    _get_electron_energies_metadata = { "offset" : _get_electron_energies_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def electron_energies(self) -> "DoublesCollection":
        """Electron energies being considered."""
        return self._intf.get_property(SpaceEnvironmentRadiationEnergyMethodEnergies._metadata, SpaceEnvironmentRadiationEnergyMethodEnergies._get_electron_energies_metadata)

    _get_proton_energies_metadata = { "offset" : _get_proton_energies_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def proton_energies(self) -> "DoublesCollection":
        """Proton energies being considered."""
        return self._intf.get_property(SpaceEnvironmentRadiationEnergyMethodEnergies._metadata, SpaceEnvironmentRadiationEnergyMethodEnergies._get_proton_energies_metadata)

    _property_names[electron_energies] = "electron_energies"
    _property_names[proton_energies] = "proton_energies"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentRadiationEnergyMethodEnergies."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentRadiationEnergyMethodEnergies)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentRadiationEnergyMethodEnergies, [SpaceEnvironmentRadiationEnergyMethodEnergies, ])

agcls.AgClassCatalog.add_catalog_entry((5451406945472465102, 11754233176306239418), SpaceEnvironmentRadiationEnergyMethodEnergies)
agcls.AgTypeNameMap["SpaceEnvironmentRadiationEnergyMethodEnergies"] = SpaceEnvironmentRadiationEnergyMethodEnergies

class SpaceEnvironmentRadiationEnergyValues(SupportsDeleteCallback):
    """Energy values for computing electron and proton flux."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_default_method_offset = 1
    _set_use_default_method_offset = 2
    _get_custom_method_offset = 3
    _metadata = {
        "iid_data" : (5513163892353592695, 8750462765056541851),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentRadiationEnergyValues)

    _get_use_default_metadata = { "offset" : _get_use_default_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_default(self) -> bool:
        """Use default energy values."""
        return self._intf.get_property(SpaceEnvironmentRadiationEnergyValues._metadata, SpaceEnvironmentRadiationEnergyValues._get_use_default_metadata)

    _set_use_default_metadata = { "offset" : _set_use_default_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_default.setter
    def use_default(self, use_default:bool) -> None:
        """Use default energy values."""
        return self._intf.set_property(SpaceEnvironmentRadiationEnergyValues._metadata, SpaceEnvironmentRadiationEnergyValues._set_use_default_metadata, use_default)

    _get_custom_metadata = { "offset" : _get_custom_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def custom(self) -> "SpaceEnvironmentRadiationEnergyMethodEnergies":
        """Specify custom energy values that will override the default energy values."""
        return self._intf.get_property(SpaceEnvironmentRadiationEnergyValues._metadata, SpaceEnvironmentRadiationEnergyValues._get_custom_metadata)

    _property_names[use_default] = "use_default"
    _property_names[custom] = "custom"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentRadiationEnergyValues."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentRadiationEnergyValues)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentRadiationEnergyValues, [SpaceEnvironmentRadiationEnergyValues, ])

agcls.AgClassCatalog.add_catalog_entry((5451124586150779528, 399074124920276624), SpaceEnvironmentRadiationEnergyValues)
agcls.AgTypeNameMap["SpaceEnvironmentRadiationEnergyValues"] = SpaceEnvironmentRadiationEnergyValues

class SpaceEnvironmentRadiationEnvironment(SupportsDeleteCallback):
    """Radiation environment settings."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_crres_proton_activity_method_offset = 1
    _set_crres_proton_activity_method_offset = 2
    _get_crres_radiation_activity_method_offset = 3
    _set_crres_radiation_activity_method_offset = 4
    _get_nasa_energy_values_method_offset = 5
    _get_crres_electron_energies_method_offset = 6
    _get_crres_proton_energies_method_offset = 7
    _get_nasa_electron_energies_method_offset = 8
    _get_nasa_proton_energies_method_offset = 9
    _get_nasa_models_activity_method_offset = 10
    _set_nasa_models_activity_method_offset = 11
    _metadata = {
        "iid_data" : (4632391604132354388, 15338266397323762055),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentRadiationEnvironment)

    _get_crres_proton_activity_metadata = { "offset" : _get_crres_proton_activity_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentCrresProtonActivity),) }
    @property
    def crres_proton_activity(self) -> "SpaceEnvironmentCrresProtonActivity":
        """Activity level for CRRES proton model."""
        return self._intf.get_property(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._get_crres_proton_activity_metadata)

    _set_crres_proton_activity_metadata = { "offset" : _set_crres_proton_activity_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentCrresProtonActivity),) }
    @crres_proton_activity.setter
    def crres_proton_activity(self, crres_proton_activity:"SpaceEnvironmentCrresProtonActivity") -> None:
        """Activity level for CRRES proton model."""
        return self._intf.set_property(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._set_crres_proton_activity_metadata, crres_proton_activity)

    _get_crres_radiation_activity_metadata = { "offset" : _get_crres_radiation_activity_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentCrresRadiationActivity),) }
    @property
    def crres_radiation_activity(self) -> "SpaceEnvironmentCrresRadiationActivity":
        """Activity level for CRRES radiation model."""
        return self._intf.get_property(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._get_crres_radiation_activity_metadata)

    _set_crres_radiation_activity_metadata = { "offset" : _set_crres_radiation_activity_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentCrresRadiationActivity),) }
    @crres_radiation_activity.setter
    def crres_radiation_activity(self, crres_radiation_activity:"SpaceEnvironmentCrresRadiationActivity") -> None:
        """Activity level for CRRES radiation model."""
        return self._intf.set_property(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._set_crres_radiation_activity_metadata, crres_radiation_activity)

    _get_nasa_energy_values_metadata = { "offset" : _get_nasa_energy_values_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def nasa_energy_values(self) -> "SpaceEnvironmentRadiationEnergyValues":
        """Proton and electron energies for the NASA models."""
        return self._intf.get_property(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._get_nasa_energy_values_metadata)

    _get_crres_electron_energies_metadata = { "offset" : _get_crres_electron_energies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_crres_electron_energies(self) -> list:
        """Return electron energies used for the CRRES models as an array of doubles. Uses ParticleEnergy Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._get_crres_electron_energies_metadata, OutArg())

    _get_crres_proton_energies_metadata = { "offset" : _get_crres_proton_energies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_crres_proton_energies(self) -> list:
        """Return proton energies used for the CRRES models as an array of doubles. Uses ParticleEnergy Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._get_crres_proton_energies_metadata, OutArg())

    _get_nasa_electron_energies_metadata = { "offset" : _get_nasa_electron_energies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_nasa_electron_energies(self) -> list:
        """Return electron energies used for the NASA models as an array of doubles. Uses ParticleEnergy Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._get_nasa_electron_energies_metadata, OutArg())

    _get_nasa_proton_energies_metadata = { "offset" : _get_nasa_proton_energies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_nasa_proton_energies(self) -> list:
        """Return proton energies used for the NASA models as an array of doubles. Uses ParticleEnergy Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._get_nasa_proton_energies_metadata, OutArg())

    _get_nasa_models_activity_metadata = { "offset" : _get_nasa_models_activity_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentNasaModelsActivity),) }
    @property
    def nasa_models_activity(self) -> "SpaceEnvironmentNasaModelsActivity":
        """Activity level for the NASA models."""
        return self._intf.get_property(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._get_nasa_models_activity_metadata)

    _set_nasa_models_activity_metadata = { "offset" : _set_nasa_models_activity_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentNasaModelsActivity),) }
    @nasa_models_activity.setter
    def nasa_models_activity(self, nasa_models_activity:"SpaceEnvironmentNasaModelsActivity") -> None:
        """Activity level for the NASA models."""
        return self._intf.set_property(SpaceEnvironmentRadiationEnvironment._metadata, SpaceEnvironmentRadiationEnvironment._set_nasa_models_activity_metadata, nasa_models_activity)

    _property_names[crres_proton_activity] = "crres_proton_activity"
    _property_names[crres_radiation_activity] = "crres_radiation_activity"
    _property_names[nasa_energy_values] = "nasa_energy_values"
    _property_names[nasa_models_activity] = "nasa_models_activity"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentRadiationEnvironment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentRadiationEnvironment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentRadiationEnvironment, [SpaceEnvironmentRadiationEnvironment, ])

agcls.AgClassCatalog.add_catalog_entry((4868042302798162169, 14017309793948611471), SpaceEnvironmentRadiationEnvironment)
agcls.AgTypeNameMap["SpaceEnvironmentRadiationEnvironment"] = SpaceEnvironmentRadiationEnvironment

class SpaceEnvironmentMagnitudeFieldGraphics2D(SupportsDeleteCallback):
    """Graphics settings for showing magnetic field."""

    _num_methods = 43
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_magnetic_field_method_offset = 1
    _set_show_magnetic_field_method_offset = 2
    _get_color_mode_method_offset = 3
    _set_color_mode_method_offset = 4
    _get_color_scale_method_offset = 5
    _set_color_scale_method_offset = 6
    _get_field_line_refresh_method_offset = 7
    _set_field_line_refresh_method_offset = 8
    _get_color_ramp_start_method_offset = 9
    _set_color_ramp_start_method_offset = 10
    _get_color_ramp_stop_method_offset = 11
    _set_color_ramp_stop_method_offset = 12
    _get_line_style_method_offset = 13
    _set_line_style_method_offset = 14
    _get_line_width_method_offset = 15
    _set_line_width_method_offset = 16
    _get_reference_longitude_method_offset = 17
    _set_reference_longitude_method_offset = 18
    _get_start_latitude_method_offset = 19
    _set_start_latitude_method_offset = 20
    _get_stop_latitude_method_offset = 21
    _set_stop_latitude_method_offset = 22
    _get_number_of_field_lines_method_offset = 23
    _set_number_of_field_lines_method_offset = 24
    _get_number_of_longitudes_method_offset = 25
    _set_number_of_longitudes_method_offset = 26
    _get_main_field_method_offset = 27
    _set_main_field_method_offset = 28
    _get_external_field_method_offset = 29
    _set_external_field_method_offset = 30
    _get_igrf_update_rate_method_offset = 31
    _set_igrf_update_rate_method_offset = 32
    _compute_b_field_method_offset = 33
    _compute_b_field_as_array_method_offset = 34
    _compute_dipole__shell_method_offset = 35
    _compute_mcilwain_l_shell_method_offset = 36
    _compute_b_over_beq_method_offset = 37
    _get_maximum_translucency_method_offset = 38
    _set_maximum_translucency_method_offset = 39
    _get_color_ramp_start_color_method_offset = 40
    _set_color_ramp_start_color_method_offset = 41
    _get_color_ramp_stop_color_method_offset = 42
    _set_color_ramp_stop_color_method_offset = 43
    _metadata = {
        "iid_data" : (4725895871308045428, 4329708450637282489),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentMagnitudeFieldGraphics2D)

    _get_show_magnetic_field_metadata = { "offset" : _get_show_magnetic_field_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_magnetic_field(self) -> bool:
        """Flag to show magnetic field."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_show_magnetic_field_metadata)

    _set_show_magnetic_field_metadata = { "offset" : _set_show_magnetic_field_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_magnetic_field.setter
    def show_magnetic_field(self, show_mag_field:bool) -> None:
        """Flag to show magnetic field."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_show_magnetic_field_metadata, show_mag_field)

    _get_color_mode_metadata = { "offset" : _get_color_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticFieldColorMode),) }
    @property
    def color_mode(self) -> "SpaceEnvironmentMagneticFieldColorMode":
        """Mode by which color is assigned."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_color_mode_metadata)

    _set_color_mode_metadata = { "offset" : _set_color_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticFieldColorMode),) }
    @color_mode.setter
    def color_mode(self, color_mode:"SpaceEnvironmentMagneticFieldColorMode") -> None:
        """Mode by which color is assigned."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_color_mode_metadata, color_mode)

    _get_color_scale_metadata = { "offset" : _get_color_scale_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticFieldColorScaleType),) }
    @property
    def color_scale(self) -> "SpaceEnvironmentMagneticFieldColorScaleType":
        """Scaling of magnetic field to use when assigning color/translucency."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_color_scale_metadata)

    _set_color_scale_metadata = { "offset" : _set_color_scale_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticFieldColorScaleType),) }
    @color_scale.setter
    def color_scale(self, color_scale:"SpaceEnvironmentMagneticFieldColorScaleType") -> None:
        """Scaling of magnetic field to use when assigning color/translucency."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_color_scale_metadata, color_scale)

    _get_field_line_refresh_metadata = { "offset" : _get_field_line_refresh_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def field_line_refresh(self) -> float:
        """Time between refresh of magnetic field lines. Uses Time Dimension."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_field_line_refresh_metadata)

    _set_field_line_refresh_metadata = { "offset" : _set_field_line_refresh_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @field_line_refresh.setter
    def field_line_refresh(self, field_line_refresh:float) -> None:
        """Time between refresh of magnetic field lines. Uses Time Dimension."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_field_line_refresh_metadata, field_line_refresh)

    _get_color_ramp_start_metadata = { "offset" : _get_color_ramp_start_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color_ramp_start(self) -> agcolor.Color:
        """Do not use this property, as it is deprecated. Magnetic field start color."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_color_ramp_start_metadata)

    _set_color_ramp_start_metadata = { "offset" : _set_color_ramp_start_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color_ramp_start.setter
    def color_ramp_start(self, color_ramp_start:agcolor.Color) -> None:
        """Do not use this property, as it is deprecated. Magnetic field start color."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_color_ramp_start_metadata, color_ramp_start)

    _get_color_ramp_stop_metadata = { "offset" : _get_color_ramp_stop_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color_ramp_stop(self) -> agcolor.Color:
        """Do not use this property, as it is deprecated. Magnetic field stop color."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_color_ramp_stop_metadata)

    _set_color_ramp_stop_metadata = { "offset" : _set_color_ramp_stop_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color_ramp_stop.setter
    def color_ramp_stop(self, color_ramp_stop:agcolor.Color) -> None:
        """Do not use this property, as it is deprecated. Magnetic field stop color."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_color_ramp_stop_metadata, color_ramp_stop)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Magnetic field line style."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, line_style:"LineStyle") -> None:
        """Magnetic field line style."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_line_style_metadata, line_style)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Magnetic field line width."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        """Magnetic field line width."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_line_width_metadata, line_width)

    _get_reference_longitude_metadata = { "offset" : _get_reference_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def reference_longitude(self) -> float:
        """Set initial longitude sample. Longitude is measured about the Z-axis of the Solar Magnetic axes from the -X-axis. Uses Longtitude Dimension."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_reference_longitude_metadata)

    _set_reference_longitude_metadata = { "offset" : _set_reference_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @reference_longitude.setter
    def reference_longitude(self, ref_longitude:float) -> None:
        """Set initial longitude sample. Longitude is measured about the Z-axis of the Solar Magnetic axes from the -X-axis. Uses Longtitude Dimension."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_reference_longitude_metadata, ref_longitude)

    _get_start_latitude_metadata = { "offset" : _get_start_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def start_latitude(self) -> float:
        """Get or set the starting magnetic latitude field line to show. Uses Latitude Dimension."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_start_latitude_metadata)

    _set_start_latitude_metadata = { "offset" : _set_start_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @start_latitude.setter
    def start_latitude(self, start_latitude:float) -> None:
        """Get or set the starting magnetic latitude field line to show. Uses Latitude Dimension."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_start_latitude_metadata, start_latitude)

    _get_stop_latitude_metadata = { "offset" : _get_stop_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def stop_latitude(self) -> float:
        """Get or set the ending magnetic latitude field line to show. Uses Latitude Dimension."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_stop_latitude_metadata)

    _set_stop_latitude_metadata = { "offset" : _set_stop_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @stop_latitude.setter
    def stop_latitude(self, stop_latitude:float) -> None:
        """Get or set the ending magnetic latitude field line to show. Uses Latitude Dimension."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_stop_latitude_metadata, stop_latitude)

    _get_number_of_field_lines_metadata = { "offset" : _get_number_of_field_lines_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_field_lines(self) -> int:
        """Get or set the number of field lines to show per longitude."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_number_of_field_lines_metadata)

    _set_number_of_field_lines_metadata = { "offset" : _set_number_of_field_lines_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_field_lines.setter
    def number_of_field_lines(self, num_field_lines:int) -> None:
        """Get or set the number of field lines to show per longitude."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_number_of_field_lines_metadata, num_field_lines)

    _get_number_of_longitudes_metadata = { "offset" : _get_number_of_longitudes_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_of_longitudes(self) -> int:
        """Get or set the number of longitudes to show."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_number_of_longitudes_metadata)

    _set_number_of_longitudes_metadata = { "offset" : _set_number_of_longitudes_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_of_longitudes.setter
    def number_of_longitudes(self, num_longitudes:int) -> None:
        """Get or set the number of longitudes to show."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_number_of_longitudes_metadata, num_longitudes)

    _get_main_field_metadata = { "offset" : _get_main_field_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticMainField),) }
    @property
    def main_field(self) -> "SpaceEnvironmentMagneticMainField":
        """Get or set the main magnetic field."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_main_field_metadata)

    _set_main_field_metadata = { "offset" : _set_main_field_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticMainField),) }
    @main_field.setter
    def main_field(self, main_field:"SpaceEnvironmentMagneticMainField") -> None:
        """Get or set the main magnetic field."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_main_field_metadata, main_field)

    _get_external_field_metadata = { "offset" : _get_external_field_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticExternalField),) }
    @property
    def external_field(self) -> "SpaceEnvironmentMagneticExternalField":
        """External magnetic field."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_external_field_metadata)

    _set_external_field_metadata = { "offset" : _set_external_field_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticExternalField),) }
    @external_field.setter
    def external_field(self, external_field:"SpaceEnvironmentMagneticExternalField") -> None:
        """External magnetic field."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_external_field_metadata, external_field)

    _get_igrf_update_rate_metadata = { "offset" : _get_igrf_update_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def igrf_update_rate(self) -> float:
        """Duration between updates of IGRF magnetic field model coefficients. Uses Time Dimension."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_igrf_update_rate_metadata)

    _set_igrf_update_rate_metadata = { "offset" : _set_igrf_update_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @igrf_update_rate.setter
    def igrf_update_rate(self, igrf_update_rate:float) -> None:
        """Duration between updates of IGRF magnetic field model coefficients. Uses Time Dimension."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_igrf_update_rate_metadata, igrf_update_rate)

    _compute_b_field_as_array_metadata = { "offset" : _compute_b_field_as_array_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.LPSafearrayArg,) }
    def compute_b_field_as_array(self, time:typing.Any, lat:float, lon:float, alt:float) -> list:
        """Compute geomagnetic field in Earth Fixed components, returned as the array (Bx, By, Bz), at the specified Earth location. Uses Date, Angle, Longitude, Distance, and MagneticField Dimensions."""
        return self._intf.invoke(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._compute_b_field_as_array_metadata, time, lat, lon, alt, OutArg())

    _compute_dipole__shell_metadata = { "offset" : _compute_dipole__shell_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def compute_dipole__shell(self, time:typing.Any, lat:float, lon:float, alt:float) -> float:
        """Compute dipole L-shell parameter at the specified Earth location. Uses Date, Angle, Longitude, and Distance Dimensions."""
        return self._intf.invoke(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._compute_dipole__shell_metadata, time, lat, lon, alt, OutArg())

    _compute_mcilwain_l_shell_metadata = { "offset" : _compute_mcilwain_l_shell_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def compute_mcilwain_l_shell(self, time:typing.Any, lat:float, lon:float, alt:float) -> float:
        """Compute McIlwain L-shell parameter at the specified Earth location. Uses Date, Angle, Longitude, and Distance Dimensions."""
        return self._intf.invoke(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._compute_mcilwain_l_shell_metadata, time, lat, lon, alt, OutArg())

    _compute_b_over_beq_metadata = { "offset" : _compute_b_over_beq_method_offset,
            "arg_types" : (agcom.Variant, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def compute_b_over_beq(self, time:typing.Any, lat:float, lon:float, alt:float) -> float:
        """Compute B/Beq (i.e., the ratio of the magnetic field at the specified Earth location to the minimum field intensity along the field line thru the location). Uses Date, Angle, Longitude, and Distance Dimensions."""
        return self._intf.invoke(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._compute_b_over_beq_metadata, time, lat, lon, alt, OutArg())

    _get_maximum_translucency_metadata = { "offset" : _get_maximum_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_translucency(self) -> float:
        """Maximum translucency expressed as a percentage."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_maximum_translucency_metadata)

    _set_maximum_translucency_metadata = { "offset" : _set_maximum_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_translucency.setter
    def maximum_translucency(self, max_translucency:float) -> None:
        """Maximum translucency expressed as a percentage."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_maximum_translucency_metadata, max_translucency)

    _get_color_ramp_start_color_metadata = { "offset" : _get_color_ramp_start_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color_ramp_start_color(self) -> agcolor.Color:
        """Magnetic field start color."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_color_ramp_start_color_metadata)

    _set_color_ramp_start_color_metadata = { "offset" : _set_color_ramp_start_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color_ramp_start_color.setter
    def color_ramp_start_color(self, color_ramp_start:agcolor.Color) -> None:
        """Magnetic field start color."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_color_ramp_start_color_metadata, color_ramp_start)

    _get_color_ramp_stop_color_metadata = { "offset" : _get_color_ramp_stop_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color_ramp_stop_color(self) -> agcolor.Color:
        """Magnetic field stop color."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._get_color_ramp_stop_color_metadata)

    _set_color_ramp_stop_color_metadata = { "offset" : _set_color_ramp_stop_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color_ramp_stop_color.setter
    def color_ramp_stop_color(self, color_ramp_stop:agcolor.Color) -> None:
        """Magnetic field stop color."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldGraphics2D._metadata, SpaceEnvironmentMagnitudeFieldGraphics2D._set_color_ramp_stop_color_metadata, color_ramp_stop)

    _property_names[show_magnetic_field] = "show_magnetic_field"
    _property_names[color_mode] = "color_mode"
    _property_names[color_scale] = "color_scale"
    _property_names[field_line_refresh] = "field_line_refresh"
    _property_names[color_ramp_start] = "color_ramp_start"
    _property_names[color_ramp_stop] = "color_ramp_stop"
    _property_names[line_style] = "line_style"
    _property_names[line_width] = "line_width"
    _property_names[reference_longitude] = "reference_longitude"
    _property_names[start_latitude] = "start_latitude"
    _property_names[stop_latitude] = "stop_latitude"
    _property_names[number_of_field_lines] = "number_of_field_lines"
    _property_names[number_of_longitudes] = "number_of_longitudes"
    _property_names[main_field] = "main_field"
    _property_names[external_field] = "external_field"
    _property_names[igrf_update_rate] = "igrf_update_rate"
    _property_names[maximum_translucency] = "maximum_translucency"
    _property_names[color_ramp_start_color] = "color_ramp_start_color"
    _property_names[color_ramp_stop_color] = "color_ramp_stop_color"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentMagnitudeFieldGraphics2D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentMagnitudeFieldGraphics2D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentMagnitudeFieldGraphics2D, [SpaceEnvironmentMagnitudeFieldGraphics2D, ])

agcls.AgClassCatalog.add_catalog_entry((4627729667399548347, 9376366209077888165), SpaceEnvironmentMagnitudeFieldGraphics2D)
agcls.AgTypeNameMap["SpaceEnvironmentMagnitudeFieldGraphics2D"] = SpaceEnvironmentMagnitudeFieldGraphics2D

class SpaceEnvironmentScenarioGraphics3D(SupportsDeleteCallback):
    """Graphics settings for space environment."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_magnetic_field_method_offset = 1
    _metadata = {
        "iid_data" : (4696545832430605330, 5183857399921845654),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentScenarioGraphics3D)

    _get_magnetic_field_metadata = { "offset" : _get_magnetic_field_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def magnetic_field(self) -> "SpaceEnvironmentMagnitudeFieldGraphics2D":
        """3D Graphics settings for the Geomagnetic field."""
        return self._intf.get_property(SpaceEnvironmentScenarioGraphics3D._metadata, SpaceEnvironmentScenarioGraphics3D._get_magnetic_field_metadata)

    _property_names[magnetic_field] = "magnetic_field"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentScenarioGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentScenarioGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentScenarioGraphics3D, [SpaceEnvironmentScenarioGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5086687413298111718, 61274573184595380), SpaceEnvironmentScenarioGraphics3D)
agcls.AgTypeNameMap["SpaceEnvironmentScenarioGraphics3D"] = SpaceEnvironmentScenarioGraphics3D

class ScenarioSpaceEnvironment(SupportsDeleteCallback):
    """no helpstring provided."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_radiation_environment_method_offset = 1
    _get_graphics_3d_method_offset = 2
    _compute_saa_flux_intensity_method_offset = 3
    _metadata = {
        "iid_data" : (4787441892872087334, 629067068126585017),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScenarioSpaceEnvironment)

    _get_radiation_environment_metadata = { "offset" : _get_radiation_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radiation_environment(self) -> "SpaceEnvironmentRadiationEnvironment":
        """Get the radiation environment settings."""
        return self._intf.get_property(ScenarioSpaceEnvironment._metadata, ScenarioSpaceEnvironment._get_radiation_environment_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "SpaceEnvironmentScenarioGraphics3D":
        """Get the 3D Graphics settings."""
        return self._intf.get_property(ScenarioSpaceEnvironment._metadata, ScenarioSpaceEnvironment._get_graphics_3d_metadata)

    _compute_saa_flux_intensity_metadata = { "offset" : _compute_saa_flux_intensity_method_offset,
            "arg_types" : (agcom.LONG, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentSAAChannel), agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def compute_saa_flux_intensity(self, channel:"SpaceEnvironmentSAAChannel", lat:float, lon:float, alt:float) -> float:
        """Compute SAA flux intensity at the specified Earth location. Uses Angle, Longitude, Distance, and FluxIntensity Dimensions."""
        return self._intf.invoke(ScenarioSpaceEnvironment._metadata, ScenarioSpaceEnvironment._compute_saa_flux_intensity_metadata, channel, lat, lon, alt, OutArg())

    _property_names[radiation_environment] = "radiation_environment"
    _property_names[graphics_3d] = "graphics_3d"

    def __init__(self, source_object=None):
        """Construct an object of type ScenarioSpaceEnvironment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScenarioSpaceEnvironment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScenarioSpaceEnvironment, [ScenarioSpaceEnvironment, ])

agcls.AgClassCatalog.add_catalog_entry((5547423701832872632, 5793451154128720771), ScenarioSpaceEnvironment)
agcls.AgTypeNameMap["ScenarioSpaceEnvironment"] = ScenarioSpaceEnvironment

class SpaceEnvironmentRadiationDoseRateElement(SupportsDeleteCallback):
    """Dose rate interface."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_shielding_thickness_method_offset = 1
    _get_is_electron_dose_rate_valid_method_offset = 2
    _electron_dose_rate_method_offset = 3
    _get_is_electron_bremsstrahlung_dose_rate_valid_method_offset = 4
    _electron_bremsstrahlung_dose_rate_method_offset = 5
    _get_is_proton_dose_rate_valid_method_offset = 6
    _proton_dose_rate_method_offset = 7
    _get_is_total_dose_rate_valid_method_offset = 8
    _total_dose_rate_method_offset = 9
    _metadata = {
        "iid_data" : (5695841960544962445, 16356710551206216593),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentRadiationDoseRateElement)

    _get_shielding_thickness_metadata = { "offset" : _get_shielding_thickness_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def shielding_thickness(self) -> float:
        """Shielding thickness at which the dose rate information was computed. Uses RadiationShieldThickness Dimension."""
        return self._intf.get_property(SpaceEnvironmentRadiationDoseRateElement._metadata, SpaceEnvironmentRadiationDoseRateElement._get_shielding_thickness_metadata)

    _get_is_electron_dose_rate_valid_metadata = { "offset" : _get_is_electron_dose_rate_valid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_electron_dose_rate_valid(self) -> bool:
        """Flag to indicate that the electron dose rate value is valid."""
        return self._intf.get_property(SpaceEnvironmentRadiationDoseRateElement._metadata, SpaceEnvironmentRadiationDoseRateElement._get_is_electron_dose_rate_valid_metadata)

    _electron_dose_rate_metadata = { "offset" : _electron_dose_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    def electron_dose_rate(self) -> float:
        """Return electron dose rate if it is valid. Uses RadDoseRate Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiationDoseRateElement._metadata, SpaceEnvironmentRadiationDoseRateElement._electron_dose_rate_metadata, OutArg())

    _get_is_electron_bremsstrahlung_dose_rate_valid_metadata = { "offset" : _get_is_electron_bremsstrahlung_dose_rate_valid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_electron_bremsstrahlung_dose_rate_valid(self) -> bool:
        """Flag to indicate that the electron bremsstrahlung dose rate value is valid."""
        return self._intf.get_property(SpaceEnvironmentRadiationDoseRateElement._metadata, SpaceEnvironmentRadiationDoseRateElement._get_is_electron_bremsstrahlung_dose_rate_valid_metadata)

    _electron_bremsstrahlung_dose_rate_metadata = { "offset" : _electron_bremsstrahlung_dose_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    def electron_bremsstrahlung_dose_rate(self) -> float:
        """Return electron bremsstrahlung dose rate if it is valid. Uses RadDoseRate Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiationDoseRateElement._metadata, SpaceEnvironmentRadiationDoseRateElement._electron_bremsstrahlung_dose_rate_metadata, OutArg())

    _get_is_proton_dose_rate_valid_metadata = { "offset" : _get_is_proton_dose_rate_valid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_proton_dose_rate_valid(self) -> bool:
        """Flag to indicate that the proton dose rate value is valid."""
        return self._intf.get_property(SpaceEnvironmentRadiationDoseRateElement._metadata, SpaceEnvironmentRadiationDoseRateElement._get_is_proton_dose_rate_valid_metadata)

    _proton_dose_rate_metadata = { "offset" : _proton_dose_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    def proton_dose_rate(self) -> float:
        """Return proton dose rate if it is valid. Uses RadDoseRate Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiationDoseRateElement._metadata, SpaceEnvironmentRadiationDoseRateElement._proton_dose_rate_metadata, OutArg())

    _get_is_total_dose_rate_valid_metadata = { "offset" : _get_is_total_dose_rate_valid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_total_dose_rate_valid(self) -> bool:
        """Flag to indicate that the total dose rate value is valid."""
        return self._intf.get_property(SpaceEnvironmentRadiationDoseRateElement._metadata, SpaceEnvironmentRadiationDoseRateElement._get_is_total_dose_rate_valid_metadata)

    _total_dose_rate_metadata = { "offset" : _total_dose_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    def total_dose_rate(self) -> float:
        """Return total dose rate if it is valid. Uses RadDoseRate Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiationDoseRateElement._metadata, SpaceEnvironmentRadiationDoseRateElement._total_dose_rate_metadata, OutArg())

    _property_names[shielding_thickness] = "shielding_thickness"
    _property_names[is_electron_dose_rate_valid] = "is_electron_dose_rate_valid"
    _property_names[is_electron_bremsstrahlung_dose_rate_valid] = "is_electron_bremsstrahlung_dose_rate_valid"
    _property_names[is_proton_dose_rate_valid] = "is_proton_dose_rate_valid"
    _property_names[is_total_dose_rate_valid] = "is_total_dose_rate_valid"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentRadiationDoseRateElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentRadiationDoseRateElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentRadiationDoseRateElement, [SpaceEnvironmentRadiationDoseRateElement, ])

agcls.AgClassCatalog.add_catalog_entry((4881424824023322322, 2213610659647279273), SpaceEnvironmentRadiationDoseRateElement)
agcls.AgTypeNameMap["SpaceEnvironmentRadiationDoseRateElement"] = SpaceEnvironmentRadiationDoseRateElement

class SpaceEnvironmentRadiationDoseRateCollection(SupportsDeleteCallback):
    """The collection holds dose rate elements computed for each shielding thickness."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5225924568970839995, 14404992086805174934),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentRadiationDoseRateCollection)
    def __iter__(self):
        """Create an iterator for the SpaceEnvironmentRadiationDoseRateCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "SpaceEnvironmentRadiationDoseRateElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(SpaceEnvironmentRadiationDoseRateCollection._metadata, SpaceEnvironmentRadiationDoseRateCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "SpaceEnvironmentRadiationDoseRateElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(SpaceEnvironmentRadiationDoseRateCollection._metadata, SpaceEnvironmentRadiationDoseRateCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(SpaceEnvironmentRadiationDoseRateCollection._metadata, SpaceEnvironmentRadiationDoseRateCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentRadiationDoseRateCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentRadiationDoseRateCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentRadiationDoseRateCollection, [SpaceEnvironmentRadiationDoseRateCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4745957201230792514, 9056650262624638648), SpaceEnvironmentRadiationDoseRateCollection)
agcls.AgTypeNameMap["SpaceEnvironmentRadiationDoseRateCollection"] = SpaceEnvironmentRadiationDoseRateCollection

class SpaceEnvironmentSAAContour(SupportsDeleteCallback):
    """SAA Contour settings."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_channel_method_offset = 1
    _set_channel_method_offset = 2
    _get_flux_level_method_offset = 3
    _set_flux_level_method_offset = 4
    _compute_saa_flux_intensity_method_offset = 5
    _metadata = {
        "iid_data" : (5173537299995524458, 6557045902367999149),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentSAAContour)

    _get_channel_metadata = { "offset" : _get_channel_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentSAAChannel),) }
    @property
    def channel(self) -> "SpaceEnvironmentSAAChannel":
        """Energy level for SAA protons."""
        return self._intf.get_property(SpaceEnvironmentSAAContour._metadata, SpaceEnvironmentSAAContour._get_channel_metadata)

    _set_channel_metadata = { "offset" : _set_channel_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentSAAChannel),) }
    @channel.setter
    def channel(self, channel:"SpaceEnvironmentSAAChannel") -> None:
        """Energy level for SAA protons."""
        return self._intf.set_property(SpaceEnvironmentSAAContour._metadata, SpaceEnvironmentSAAContour._set_channel_metadata, channel)

    _get_flux_level_metadata = { "offset" : _get_flux_level_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentSAAFluxLevel),) }
    @property
    def flux_level(self) -> "SpaceEnvironmentSAAFluxLevel":
        """Flux level for SAA contour."""
        return self._intf.get_property(SpaceEnvironmentSAAContour._metadata, SpaceEnvironmentSAAContour._get_flux_level_metadata)

    _set_flux_level_metadata = { "offset" : _set_flux_level_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentSAAFluxLevel),) }
    @flux_level.setter
    def flux_level(self, flux_level:"SpaceEnvironmentSAAFluxLevel") -> None:
        """Flux level for SAA contour."""
        return self._intf.set_property(SpaceEnvironmentSAAContour._metadata, SpaceEnvironmentSAAContour._set_flux_level_metadata, flux_level)

    _compute_saa_flux_intensity_metadata = { "offset" : _compute_saa_flux_intensity_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def compute_saa_flux_intensity(self, time:typing.Any) -> float:
        """Compute SAA flux intensity at the specified time on the vehicle's channel. Uses DateFormat and FluxIntensity Dimensions."""
        return self._intf.invoke(SpaceEnvironmentSAAContour._metadata, SpaceEnvironmentSAAContour._compute_saa_flux_intensity_metadata, time, OutArg())

    _property_names[channel] = "channel"
    _property_names[flux_level] = "flux_level"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentSAAContour."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentSAAContour)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentSAAContour, [SpaceEnvironmentSAAContour, ])

agcls.AgClassCatalog.add_catalog_entry((5191371050933635179, 7024378938875613116), SpaceEnvironmentSAAContour)
agcls.AgTypeNameMap["SpaceEnvironmentSAAContour"] = SpaceEnvironmentSAAContour

class SpaceEnvironmentVehicleTemperature(SupportsDeleteCallback):
    """Vehicle temperature model."""

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_earth_albedo_method_offset = 1
    _set_earth_albedo_method_offset = 2
    _get_material_emissivity_method_offset = 3
    _set_material_emissivity_method_offset = 4
    _get_material_absorptivity_method_offset = 5
    _set_material_absorptivity_method_offset = 6
    _get_dissipation_method_offset = 7
    _set_dissipation_method_offset = 8
    _get_cross_sectional_area_method_offset = 9
    _set_cross_sectional_area_method_offset = 10
    _get_shape_model_method_offset = 11
    _set_shape_model_method_offset = 12
    _get_normal_vector_method_offset = 13
    _set_normal_vector_method_offset = 14
    _compute_temperature_method_offset = 15
    _metadata = {
        "iid_data" : (5464076078208145267, 9280824799570457248),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentVehicleTemperature)

    _get_earth_albedo_metadata = { "offset" : _get_earth_albedo_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def earth_albedo(self) -> float:
        """Get or set the Earth's albedo. Dimensionless."""
        return self._intf.get_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._get_earth_albedo_metadata)

    _set_earth_albedo_metadata = { "offset" : _set_earth_albedo_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @earth_albedo.setter
    def earth_albedo(self, earth_albedo:float) -> None:
        return self._intf.set_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._set_earth_albedo_metadata, earth_albedo)

    _get_material_emissivity_metadata = { "offset" : _get_material_emissivity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def material_emissivity(self) -> float:
        """Get or set the material emissivity. Dimensionless."""
        return self._intf.get_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._get_material_emissivity_metadata)

    _set_material_emissivity_metadata = { "offset" : _set_material_emissivity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @material_emissivity.setter
    def material_emissivity(self, material_emissivity:float) -> None:
        return self._intf.set_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._set_material_emissivity_metadata, material_emissivity)

    _get_material_absorptivity_metadata = { "offset" : _get_material_absorptivity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def material_absorptivity(self) -> float:
        """Get or set the material absorptivity. Dimensionless."""
        return self._intf.get_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._get_material_absorptivity_metadata)

    _set_material_absorptivity_metadata = { "offset" : _set_material_absorptivity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @material_absorptivity.setter
    def material_absorptivity(self, material_reflectance:float) -> None:
        return self._intf.set_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._set_material_absorptivity_metadata, material_reflectance)

    _get_dissipation_metadata = { "offset" : _get_dissipation_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def dissipation(self) -> float:
        """Get or set the internal dissipation. Uses Power Dimension."""
        return self._intf.get_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._get_dissipation_metadata)

    _set_dissipation_metadata = { "offset" : _set_dissipation_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @dissipation.setter
    def dissipation(self, dissipation:float) -> None:
        return self._intf.set_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._set_dissipation_metadata, dissipation)

    _get_cross_sectional_area_metadata = { "offset" : _get_cross_sectional_area_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cross_sectional_area(self) -> float:
        """Area used in thermal model. For plate, equals its surface area; for spehere, equals pi*radius^2. Uses SmallArea Dimension."""
        return self._intf.get_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._get_cross_sectional_area_metadata)

    _set_cross_sectional_area_metadata = { "offset" : _set_cross_sectional_area_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cross_sectional_area.setter
    def cross_sectional_area(self, cross_sectional_area:float) -> None:
        """Area used in thermal model. For plate, equals its surface area; for spehere, equals pi*radius^2. Uses SmallArea Dimension."""
        return self._intf.set_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._set_cross_sectional_area_metadata, cross_sectional_area)

    _get_shape_model_metadata = { "offset" : _get_shape_model_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentShapeModel),) }
    @property
    def shape_model(self) -> "VehicleSpaceEnvironmentShapeModel":
        """Thermal shape model."""
        return self._intf.get_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._get_shape_model_metadata)

    _set_shape_model_metadata = { "offset" : _set_shape_model_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentShapeModel),) }
    @shape_model.setter
    def shape_model(self, shape_model:"VehicleSpaceEnvironmentShapeModel") -> None:
        """Thermal shape model."""
        return self._intf.set_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._set_shape_model_metadata, shape_model)

    _get_normal_vector_metadata = { "offset" : _get_normal_vector_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def normal_vector(self) -> str:
        """Plate normal vector."""
        return self._intf.get_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._get_normal_vector_metadata)

    _set_normal_vector_metadata = { "offset" : _set_normal_vector_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @normal_vector.setter
    def normal_vector(self, normal_vector:str) -> None:
        """Plate normal vector."""
        return self._intf.set_property(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._set_normal_vector_metadata, normal_vector)

    _compute_temperature_metadata = { "offset" : _compute_temperature_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def compute_temperature(self, time:typing.Any) -> float:
        """Compute vehicle temperature. Uses DateFormat and Temperature Dimensions."""
        return self._intf.invoke(SpaceEnvironmentVehicleTemperature._metadata, SpaceEnvironmentVehicleTemperature._compute_temperature_metadata, time, OutArg())

    _property_names[earth_albedo] = "earth_albedo"
    _property_names[material_emissivity] = "material_emissivity"
    _property_names[material_absorptivity] = "material_absorptivity"
    _property_names[dissipation] = "dissipation"
    _property_names[cross_sectional_area] = "cross_sectional_area"
    _property_names[shape_model] = "shape_model"
    _property_names[normal_vector] = "normal_vector"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentVehicleTemperature."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentVehicleTemperature)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentVehicleTemperature, [SpaceEnvironmentVehicleTemperature, ])

agcls.AgClassCatalog.add_catalog_entry((5106290398700311720, 16929531667477252263), SpaceEnvironmentVehicleTemperature)
agcls.AgTypeNameMap["SpaceEnvironmentVehicleTemperature"] = SpaceEnvironmentVehicleTemperature

class SpaceEnvironmentParticleFlux(SupportsDeleteCallback):
    """Particle Flux model."""

    _num_methods = 27
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_f10p7_source_method_offset = 1
    _set_f10p7_source_method_offset = 2
    _get_f10p7_method_offset = 3
    _set_f10p7_method_offset = 4
    _get_material_method_offset = 5
    _set_material_method_offset = 6
    _get_area_method_offset = 7
    _set_area_method_offset = 8
    _get_pit_depth_method_offset = 9
    _set_pit_depth_method_offset = 10
    _get_use_sporadic_meteors_method_offset = 11
    _set_use_sporadic_meteors_method_offset = 12
    _get_material_density_method_offset = 13
    _set_material_density_method_offset = 14
    _get_tensile_strength_method_offset = 15
    _set_tensile_strength_method_offset = 16
    _get_flux_filename_method_offset = 17
    _set_flux_filename_method_offset = 18
    _get_particle_mass_array_method_offset = 19
    _compute_meteor_impact_flux_method_offset = 20
    _compute_meteor_damage_impact_flux_method_offset = 21
    _compute_meteor_impact_flux_distribution_method_offset = 22
    _compute_meteor_damage_impact_flux_distribution_method_offset = 23
    _compute_debris_impact_flux_method_offset = 24
    _compute_debris_damage_impact_flux_method_offset = 25
    _compute_debris_impact_flux_distribution_method_offset = 26
    _compute_debris_damage_impact_flux_distribution_method_offset = 27
    _metadata = {
        "iid_data" : (5687077718372568658, 3889490758594544534),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentParticleFlux)

    _get_f10p7_source_metadata = { "offset" : _get_f10p7_source_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentF10P7SourceType),) }
    @property
    def f10p7_source(self) -> "VehicleSpaceEnvironmentF10P7SourceType":
        """Mode for computing 13-month average F10.7."""
        return self._intf.get_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._get_f10p7_source_metadata)

    _set_f10p7_source_metadata = { "offset" : _set_f10p7_source_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentF10P7SourceType),) }
    @f10p7_source.setter
    def f10p7_source(self, f10p7_source:"VehicleSpaceEnvironmentF10P7SourceType") -> None:
        """Mode for computing 13-month average F10.7."""
        return self._intf.set_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._set_f10p7_source_metadata, f10p7_source)

    _get_f10p7_metadata = { "offset" : _get_f10p7_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def f10p7(self) -> float:
        """F10.7 value. Dimensionless."""
        return self._intf.get_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._get_f10p7_metadata)

    _set_f10p7_metadata = { "offset" : _set_f10p7_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @f10p7.setter
    def f10p7(self, f10p7:float) -> None:
        """F10.7 value. Dimensionless."""
        return self._intf.set_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._set_f10p7_metadata, f10p7)

    _get_material_metadata = { "offset" : _get_material_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentMaterial),) }
    @property
    def material(self) -> "VehicleSpaceEnvironmentMaterial":
        """Vehicle material."""
        return self._intf.get_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._get_material_metadata)

    _set_material_metadata = { "offset" : _set_material_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentMaterial),) }
    @material.setter
    def material(self, material:"VehicleSpaceEnvironmentMaterial") -> None:
        """Vehicle material."""
        return self._intf.set_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._set_material_metadata, material)

    _get_area_metadata = { "offset" : _get_area_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def area(self) -> float:
        """Area exposed to particles. Uses SmallArea Dimension."""
        return self._intf.get_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._get_area_metadata)

    _set_area_metadata = { "offset" : _set_area_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @area.setter
    def area(self, area:float) -> None:
        """Area exposed to particles. Uses SmallArea Dimension."""
        return self._intf.set_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._set_area_metadata, area)

    _get_pit_depth_metadata = { "offset" : _get_pit_depth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pit_depth(self) -> float:
        """Pit depth in the material that indicates damage. Uses SmallDistance Dimension."""
        return self._intf.get_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._get_pit_depth_metadata)

    _set_pit_depth_metadata = { "offset" : _set_pit_depth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pit_depth.setter
    def pit_depth(self, pit_depth:float) -> None:
        """Pit depth in the material that indicates damage. Uses SmallDistance Dimension."""
        return self._intf.set_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._set_pit_depth_metadata, pit_depth)

    _get_use_sporadic_meteors_metadata = { "offset" : _get_use_sporadic_meteors_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_sporadic_meteors(self) -> bool:
        """Flag to model sporadic meteors."""
        return self._intf.get_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._get_use_sporadic_meteors_metadata)

    _set_use_sporadic_meteors_metadata = { "offset" : _set_use_sporadic_meteors_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_sporadic_meteors.setter
    def use_sporadic_meteors(self, use_sporadic_meteors:bool) -> None:
        """Flag to model sporadic meteors."""
        return self._intf.set_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._set_use_sporadic_meteors_metadata, use_sporadic_meteors)

    _get_material_density_metadata = { "offset" : _get_material_density_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def material_density(self) -> float:
        """Density of the user-defined material."""
        return self._intf.get_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._get_material_density_metadata)

    _set_material_density_metadata = { "offset" : _set_material_density_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @material_density.setter
    def material_density(self, material_density:float) -> None:
        """Density of the user-defined material."""
        return self._intf.set_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._set_material_density_metadata, material_density)

    _get_tensile_strength_metadata = { "offset" : _get_tensile_strength_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def tensile_strength(self) -> float:
        """Tensile strength of the user-defined material in MPa."""
        return self._intf.get_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._get_tensile_strength_metadata)

    _set_tensile_strength_metadata = { "offset" : _set_tensile_strength_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @tensile_strength.setter
    def tensile_strength(self, tensile_strength:float) -> None:
        """Tensile strength of the user-defined material in MPa."""
        return self._intf.set_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._set_tensile_strength_metadata, tensile_strength)

    _get_flux_filename_metadata = { "offset" : _get_flux_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def flux_filename(self) -> str:
        """Flux file containing F10.7 values."""
        return self._intf.get_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._get_flux_filename_metadata)

    _set_flux_filename_metadata = { "offset" : _set_flux_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @flux_filename.setter
    def flux_filename(self, flux_file:str) -> None:
        """Flux file containing F10.7 values."""
        return self._intf.set_property(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._set_flux_filename_metadata, flux_file)

    _get_particle_mass_array_metadata = { "offset" : _get_particle_mass_array_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_particle_mass_array(self) -> list:
        """Return the particle mass array as an array of doubles. Uses Mass Dimension."""
        return self._intf.invoke(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._get_particle_mass_array_metadata, OutArg())

    _compute_meteor_impact_flux_metadata = { "offset" : _compute_meteor_impact_flux_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def compute_meteor_impact_flux(self, time:typing.Any) -> float:
        """Compute meteor impact flux. Uses DateFormat and Flux Dimensions."""
        return self._intf.invoke(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._compute_meteor_impact_flux_metadata, time, OutArg())

    _compute_meteor_damage_impact_flux_metadata = { "offset" : _compute_meteor_damage_impact_flux_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def compute_meteor_damage_impact_flux(self, time:typing.Any) -> float:
        """Compute meteor damage impact flux. Uses DateFormat and Flux Dimensions."""
        return self._intf.invoke(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._compute_meteor_damage_impact_flux_metadata, time, OutArg())

    _compute_meteor_impact_flux_distribution_metadata = { "offset" : _compute_meteor_impact_flux_distribution_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_meteor_impact_flux_distribution(self, time:typing.Any) -> list:
        """Compute meteor impact flux for each particle of the mass array, returned as an array of doubles. Uses DateFormat and Flux Dimensions."""
        return self._intf.invoke(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._compute_meteor_impact_flux_distribution_metadata, time, OutArg())

    _compute_meteor_damage_impact_flux_distribution_metadata = { "offset" : _compute_meteor_damage_impact_flux_distribution_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_meteor_damage_impact_flux_distribution(self, time:typing.Any) -> list:
        """Compute meteor damage impact flux for each particle of the mass array, returned as an array of doubles. Uses DateFormat and Flux Dimensions."""
        return self._intf.invoke(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._compute_meteor_damage_impact_flux_distribution_metadata, time, OutArg())

    _compute_debris_impact_flux_metadata = { "offset" : _compute_debris_impact_flux_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def compute_debris_impact_flux(self, time:typing.Any) -> float:
        """Compute debris impact flux. Uses DateFormat and Flux Dimensions."""
        return self._intf.invoke(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._compute_debris_impact_flux_metadata, time, OutArg())

    _compute_debris_damage_impact_flux_metadata = { "offset" : _compute_debris_damage_impact_flux_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def compute_debris_damage_impact_flux(self, time:typing.Any) -> float:
        """Compute debris damage impact flux. Uses DateFormat and Flux Dimensions."""
        return self._intf.invoke(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._compute_debris_damage_impact_flux_metadata, time, OutArg())

    _compute_debris_impact_flux_distribution_metadata = { "offset" : _compute_debris_impact_flux_distribution_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_debris_impact_flux_distribution(self, time:typing.Any) -> list:
        """Compute debris impact flux for each particle of the mass array, returned as an array of doubles. Uses DateFormat and Flux Dimensions."""
        return self._intf.invoke(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._compute_debris_impact_flux_distribution_metadata, time, OutArg())

    _compute_debris_damage_impact_flux_distribution_metadata = { "offset" : _compute_debris_damage_impact_flux_distribution_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_debris_damage_impact_flux_distribution(self, time:typing.Any) -> list:
        """Compute debris damage impact flux for each particle of the mass array, returned as an array of doubles. Uses DateFormat and Flux Dimensions."""
        return self._intf.invoke(SpaceEnvironmentParticleFlux._metadata, SpaceEnvironmentParticleFlux._compute_debris_damage_impact_flux_distribution_metadata, time, OutArg())

    _property_names[f10p7_source] = "f10p7_source"
    _property_names[f10p7] = "f10p7"
    _property_names[material] = "material"
    _property_names[area] = "area"
    _property_names[pit_depth] = "pit_depth"
    _property_names[use_sporadic_meteors] = "use_sporadic_meteors"
    _property_names[material_density] = "material_density"
    _property_names[tensile_strength] = "tensile_strength"
    _property_names[flux_filename] = "flux_filename"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentParticleFlux."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentParticleFlux)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentParticleFlux, [SpaceEnvironmentParticleFlux, ])

agcls.AgClassCatalog.add_catalog_entry((4973100538827401444, 17869509916870941357), SpaceEnvironmentParticleFlux)
agcls.AgTypeNameMap["SpaceEnvironmentParticleFlux"] = SpaceEnvironmentParticleFlux

class SpaceEnvironmentMagneticField(SupportsDeleteCallback):
    """Magnetic field model."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_main_field_method_offset = 1
    _set_main_field_method_offset = 2
    _get_external_field_method_offset = 3
    _set_external_field_method_offset = 4
    _get_igrf_update_rate_method_offset = 5
    _set_igrf_update_rate_method_offset = 6
    _compute_b_field_method_offset = 7
    _compute_b_field_as_array_method_offset = 8
    _compute_dipole_l_shell_method_offset = 9
    _compute_mcilwain_l_shell_method_offset = 10
    _compute_b_over_beq_method_offset = 11
    _metadata = {
        "iid_data" : (5216397077674255621, 9834677649617265061),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentMagneticField)

    _get_main_field_metadata = { "offset" : _get_main_field_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticMainField),) }
    @property
    def main_field(self) -> "SpaceEnvironmentMagneticMainField":
        """Get or set the main magnetic field."""
        return self._intf.get_property(SpaceEnvironmentMagneticField._metadata, SpaceEnvironmentMagneticField._get_main_field_metadata)

    _set_main_field_metadata = { "offset" : _set_main_field_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticMainField),) }
    @main_field.setter
    def main_field(self, main_field:"SpaceEnvironmentMagneticMainField") -> None:
        """Get or set the main magnetic field."""
        return self._intf.set_property(SpaceEnvironmentMagneticField._metadata, SpaceEnvironmentMagneticField._set_main_field_metadata, main_field)

    _get_external_field_metadata = { "offset" : _get_external_field_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticExternalField),) }
    @property
    def external_field(self) -> "SpaceEnvironmentMagneticExternalField":
        """External magnetic field."""
        return self._intf.get_property(SpaceEnvironmentMagneticField._metadata, SpaceEnvironmentMagneticField._get_external_field_metadata)

    _set_external_field_metadata = { "offset" : _set_external_field_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SpaceEnvironmentMagneticExternalField),) }
    @external_field.setter
    def external_field(self, external_field:"SpaceEnvironmentMagneticExternalField") -> None:
        """External magnetic field."""
        return self._intf.set_property(SpaceEnvironmentMagneticField._metadata, SpaceEnvironmentMagneticField._set_external_field_metadata, external_field)

    _get_igrf_update_rate_metadata = { "offset" : _get_igrf_update_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def igrf_update_rate(self) -> float:
        """Duration between updates of IGRF magnetic field model coefficients. Uses Time Dimension."""
        return self._intf.get_property(SpaceEnvironmentMagneticField._metadata, SpaceEnvironmentMagneticField._get_igrf_update_rate_metadata)

    _set_igrf_update_rate_metadata = { "offset" : _set_igrf_update_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @igrf_update_rate.setter
    def igrf_update_rate(self, igrf_update_rate:float) -> None:
        """Duration between updates of IGRF magnetic field model coefficients. Uses Time Dimension."""
        return self._intf.set_property(SpaceEnvironmentMagneticField._metadata, SpaceEnvironmentMagneticField._set_igrf_update_rate_metadata, igrf_update_rate)

    _compute_b_field_as_array_metadata = { "offset" : _compute_b_field_as_array_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_b_field_as_array(self, time:typing.Any) -> list:
        """Compute geomagnetic field in Earth Fixed components, returned as the array (Bx, By, Bz), at the vehicle's location location. Uses DateFormat and MagneticField Dimensions."""
        return self._intf.invoke(SpaceEnvironmentMagneticField._metadata, SpaceEnvironmentMagneticField._compute_b_field_as_array_metadata, time, OutArg())

    _compute_dipole_l_shell_metadata = { "offset" : _compute_dipole_l_shell_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def compute_dipole_l_shell(self, time:typing.Any) -> float:
        """Compute dipole L-shell parameter at the vehicle's location. Uses DateFormat Dimension."""
        return self._intf.invoke(SpaceEnvironmentMagneticField._metadata, SpaceEnvironmentMagneticField._compute_dipole_l_shell_metadata, time, OutArg())

    _compute_mcilwain_l_shell_metadata = { "offset" : _compute_mcilwain_l_shell_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def compute_mcilwain_l_shell(self, time:typing.Any) -> float:
        """Compute McIlwain L-shell parameter at the vehicle's location. Uses DateFormat Dimension."""
        return self._intf.invoke(SpaceEnvironmentMagneticField._metadata, SpaceEnvironmentMagneticField._compute_mcilwain_l_shell_metadata, time, OutArg())

    _compute_b_over_beq_metadata = { "offset" : _compute_b_over_beq_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def compute_b_over_beq(self, time:typing.Any) -> float:
        """Compute B/Beq (i.e., the ratio of the magnetic field at the vehicle's location to the minimum field intensity along the field line thru the location). Uses DateFormat Dimension."""
        return self._intf.invoke(SpaceEnvironmentMagneticField._metadata, SpaceEnvironmentMagneticField._compute_b_over_beq_metadata, time, OutArg())

    _property_names[main_field] = "main_field"
    _property_names[external_field] = "external_field"
    _property_names[igrf_update_rate] = "igrf_update_rate"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentMagneticField."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentMagneticField)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentMagneticField, [SpaceEnvironmentMagneticField, ])

agcls.AgClassCatalog.add_catalog_entry((4902349525580086450, 1720206201927562652), SpaceEnvironmentMagneticField)
agcls.AgTypeNameMap["SpaceEnvironmentMagneticField"] = SpaceEnvironmentMagneticField

class SpaceEnvironmentRadiation(SupportsDeleteCallback):
    """Radiation model."""

    _num_methods = 35
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_computation_mode_method_offset = 1
    _set_computation_mode_method_offset = 2
    _get_flux_status_method_offset = 3
    _get_dose_channel_method_offset = 4
    _set_dose_channel_method_offset = 5
    _get_use_nuclear_attenuation_method_offset = 6
    _set_use_nuclear_attenuation_method_offset = 7
    _get_detector_type_method_offset = 8
    _set_detector_type_method_offset = 9
    _get_shielding_thicknesses_method_offset = 10
    _get_ap_source_method_offset = 11
    _set_ap_source_method_offset = 12
    _get_ap_method_offset = 13
    _set_ap_method_offset = 14
    _get_flux_filename_method_offset = 15
    _set_flux_filename_method_offset = 16
    _get_include_nuclear_attenuation_neutrons_method_offset = 17
    _set_include_nuclear_attenuation_neutrons_method_offset = 18
    _get_electron_energies_method_offset = 19
    _get_proton_energies_method_offset = 20
    _compute_electron_fluxes_method_offset = 21
    _compute_proton_fluxes_method_offset = 22
    _compute_dose_rates_method_offset = 23
    _get_detector_geometry_method_offset = 24
    _set_detector_geometry_method_offset = 25
    _compute_electron_integral_fluxes_method_offset = 26
    _compute_proton_integral_fluxes_method_offset = 27
    _get_use_model_epoch_method_offset = 28
    _set_use_model_epoch_method_offset = 29
    _get_shift_saa_method_offset = 30
    _set_shift_saa_method_offset = 31
    _get_dose_integration_step_method_offset = 32
    _set_dose_integration_step_method_offset = 33
    _get_dose_report_step_method_offset = 34
    _set_dose_report_step_method_offset = 35
    _metadata = {
        "iid_data" : (5224960856455623693, 70858292684554156),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentRadiation)

    _get_computation_mode_metadata = { "offset" : _get_computation_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentComputationMode),) }
    @property
    def computation_mode(self) -> "VehicleSpaceEnvironmentComputationMode":
        """Models that are to be included when modeling radiation."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_computation_mode_metadata)

    _set_computation_mode_metadata = { "offset" : _set_computation_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentComputationMode),) }
    @computation_mode.setter
    def computation_mode(self, computation_mode:"VehicleSpaceEnvironmentComputationMode") -> None:
        """Models that are to be included when modeling radiation."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_computation_mode_metadata, computation_mode)

    _get_flux_status_metadata = { "offset" : _get_flux_status_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def flux_status(self) -> str:
        """Info concerning the ability to compute flux values given the computation mode and Scenario's energy values that have been set."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_flux_status_metadata)

    _get_dose_channel_metadata = { "offset" : _get_dose_channel_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentDoseChannel),) }
    @property
    def dose_channel(self) -> "VehicleSpaceEnvironmentDoseChannel":
        """Measure of the linear energy transfer to model."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_dose_channel_metadata)

    _set_dose_channel_metadata = { "offset" : _set_dose_channel_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentDoseChannel),) }
    @dose_channel.setter
    def dose_channel(self, dose_channel:"VehicleSpaceEnvironmentDoseChannel") -> None:
        """Measure of the linear energy transfer to model."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_dose_channel_metadata, dose_channel)

    _get_use_nuclear_attenuation_metadata = { "offset" : _get_use_nuclear_attenuation_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_nuclear_attenuation(self) -> bool:
        """Flag to model nuclear attenuation."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_use_nuclear_attenuation_metadata)

    _set_use_nuclear_attenuation_metadata = { "offset" : _set_use_nuclear_attenuation_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_nuclear_attenuation.setter
    def use_nuclear_attenuation(self, use_nuclear_attenuation:bool) -> None:
        """Flag to model nuclear attenuation."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_use_nuclear_attenuation_metadata, use_nuclear_attenuation)

    _get_detector_type_metadata = { "offset" : _get_detector_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentDetectorType),) }
    @property
    def detector_type(self) -> "VehicleSpaceEnvironmentDetectorType":
        """Detector material."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_detector_type_metadata)

    _set_detector_type_metadata = { "offset" : _set_detector_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentDetectorType),) }
    @detector_type.setter
    def detector_type(self, detector_type:"VehicleSpaceEnvironmentDetectorType") -> None:
        """Detector material."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_detector_type_metadata, detector_type)

    _get_shielding_thicknesses_metadata = { "offset" : _get_shielding_thicknesses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def shielding_thicknesses(self) -> "DoublesCollection":
        """Get the shielding thicknesses. Dose and dose rate can be computed for each thickness."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_shielding_thicknesses_metadata)

    _get_ap_source_metadata = { "offset" : _get_ap_source_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentApSource),) }
    @property
    def ap_source(self) -> "VehicleSpaceEnvironmentApSource":
        """Mode for computing 15 day average Ap."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_ap_source_metadata)

    _set_ap_source_metadata = { "offset" : _set_ap_source_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentApSource),) }
    @ap_source.setter
    def ap_source(self, ap_source:"VehicleSpaceEnvironmentApSource") -> None:
        """Mode for computing 15 day average Ap."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_ap_source_metadata, ap_source)

    _get_ap_metadata = { "offset" : _get_ap_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ap(self) -> float:
        """Ap 15-day average value. Dimensionless."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_ap_metadata)

    _set_ap_metadata = { "offset" : _set_ap_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ap.setter
    def ap(self, ap:float) -> None:
        """Ap 15-day average value. Dimensionless."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_ap_metadata, ap)

    _get_flux_filename_metadata = { "offset" : _get_flux_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def flux_filename(self) -> str:
        """Flux file containing Ap values."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_flux_filename_metadata)

    _set_flux_filename_metadata = { "offset" : _set_flux_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @flux_filename.setter
    def flux_filename(self, flux_file:str) -> None:
        """Flux file containing Ap values."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_flux_filename_metadata, flux_file)

    _get_include_nuclear_attenuation_neutrons_metadata = { "offset" : _get_include_nuclear_attenuation_neutrons_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_nuclear_attenuation_neutrons(self) -> bool:
        """Flag to include neutrons in nuclear attenuation model."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_include_nuclear_attenuation_neutrons_metadata)

    _set_include_nuclear_attenuation_neutrons_metadata = { "offset" : _set_include_nuclear_attenuation_neutrons_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_nuclear_attenuation_neutrons.setter
    def include_nuclear_attenuation_neutrons(self, include_nuc_atten_neutrons:bool) -> None:
        """Flag to include neutrons in nuclear attenuation model."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_include_nuclear_attenuation_neutrons_metadata, include_nuc_atten_neutrons)

    _get_electron_energies_metadata = { "offset" : _get_electron_energies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_electron_energies(self) -> list:
        """Return electron energies in an array of doubles. Uses ParticleEnergy Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_electron_energies_metadata, OutArg())

    _get_proton_energies_metadata = { "offset" : _get_proton_energies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def get_proton_energies(self) -> list:
        """Return proton energies in an array of doubles. Uses ParticleEnergy Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_proton_energies_metadata, OutArg())

    _compute_electron_fluxes_metadata = { "offset" : _compute_electron_fluxes_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_electron_fluxes(self, time:typing.Any) -> list:
        """Compute electron fluxes at the specified time, returned in an array of doubles (1 flux per electron energy). Uses FluxPerParticleEnergy Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._compute_electron_fluxes_metadata, time, OutArg())

    _compute_proton_fluxes_metadata = { "offset" : _compute_proton_fluxes_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_proton_fluxes(self, time:typing.Any) -> list:
        """Compute proton fluxes at the specified time, returned in an array of doubles (1 flux per proton energy). Uses FluxPerParticleEnergy Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._compute_proton_fluxes_metadata, time, OutArg())

    _compute_dose_rates_metadata = { "offset" : _compute_dose_rates_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def compute_dose_rates(self, time:typing.Any) -> "SpaceEnvironmentRadiationDoseRateCollection":
        """Compute dose rate information for each shielding thickness and returns a collection to access the computed data."""
        return self._intf.invoke(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._compute_dose_rates_metadata, time, OutArg())

    _get_detector_geometry_metadata = { "offset" : _get_detector_geometry_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentDetectorGeometry),) }
    @property
    def detector_geometry(self) -> "VehicleSpaceEnvironmentDetectorGeometry":
        """Detector geometry used by CRRES and NASA models."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_detector_geometry_metadata)

    _set_detector_geometry_metadata = { "offset" : _set_detector_geometry_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSpaceEnvironmentDetectorGeometry),) }
    @detector_geometry.setter
    def detector_geometry(self, detector_geometry:"VehicleSpaceEnvironmentDetectorGeometry") -> None:
        """Detector geometry used by CRRES and NASA models."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_detector_geometry_metadata, detector_geometry)

    _compute_electron_integral_fluxes_metadata = { "offset" : _compute_electron_integral_fluxes_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_electron_integral_fluxes(self, time:typing.Any) -> list:
        """Compute electron integral fluxes at the specified time, returned in an array of doubles (1 flux per electron energy). Uses FluxPerParticleEnergy Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._compute_electron_integral_fluxes_metadata, time, OutArg())

    _compute_proton_integral_fluxes_metadata = { "offset" : _compute_proton_integral_fluxes_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.LPSafearrayArg,) }
    def compute_proton_integral_fluxes(self, time:typing.Any) -> list:
        """Compute proton integral fluxes at the specified time, returned in  an array of doubles (1 flux per proton energy). Uses FluxPerParticleEnergy Dimension."""
        return self._intf.invoke(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._compute_proton_integral_fluxes_metadata, time, OutArg())

    _get_use_model_epoch_metadata = { "offset" : _get_use_model_epoch_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_model_epoch(self) -> bool:
        """Flag to use model's epoch for magnetic field."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_use_model_epoch_metadata)

    _set_use_model_epoch_metadata = { "offset" : _set_use_model_epoch_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_model_epoch.setter
    def use_model_epoch(self, use_model_epoch:bool) -> None:
        """Flag to use model's epoch for magnetic field."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_use_model_epoch_metadata, use_model_epoch)

    _get_shift_saa_metadata = { "offset" : _get_shift_saa_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def shift_saa(self) -> bool:
        """Flag to shift the SAA based on the model's epoch."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_shift_saa_metadata)

    _set_shift_saa_metadata = { "offset" : _set_shift_saa_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @shift_saa.setter
    def shift_saa(self, shift_saa:bool) -> None:
        """Flag to shift the SAA based on the model's epoch."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_shift_saa_metadata, shift_saa)

    _get_dose_integration_step_metadata = { "offset" : _get_dose_integration_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def dose_integration_step(self) -> float:
        """Get or set the sampling step used for integrating dose. Uses Time Dimension."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_dose_integration_step_metadata)

    _set_dose_integration_step_metadata = { "offset" : _set_dose_integration_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @dose_integration_step.setter
    def dose_integration_step(self, dose_integration_step:float) -> None:
        """Get or set the sampling step used for integrating dose. Uses Time Dimension."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_dose_integration_step_metadata, dose_integration_step)

    _get_dose_report_step_metadata = { "offset" : _get_dose_report_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def dose_report_step(self) -> float:
        """Get or set the stepsize to use for dose related data providers. Uses Time Dimension."""
        return self._intf.get_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._get_dose_report_step_metadata)

    _set_dose_report_step_metadata = { "offset" : _set_dose_report_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @dose_report_step.setter
    def dose_report_step(self, dose_report_step:float) -> None:
        """Get or set the stepsize to use for dose related data providers. Uses Time Dimension."""
        return self._intf.set_property(SpaceEnvironmentRadiation._metadata, SpaceEnvironmentRadiation._set_dose_report_step_metadata, dose_report_step)

    _property_names[computation_mode] = "computation_mode"
    _property_names[flux_status] = "flux_status"
    _property_names[dose_channel] = "dose_channel"
    _property_names[use_nuclear_attenuation] = "use_nuclear_attenuation"
    _property_names[detector_type] = "detector_type"
    _property_names[shielding_thicknesses] = "shielding_thicknesses"
    _property_names[ap_source] = "ap_source"
    _property_names[ap] = "ap"
    _property_names[flux_filename] = "flux_filename"
    _property_names[include_nuclear_attenuation_neutrons] = "include_nuclear_attenuation_neutrons"
    _property_names[detector_geometry] = "detector_geometry"
    _property_names[use_model_epoch] = "use_model_epoch"
    _property_names[shift_saa] = "shift_saa"
    _property_names[dose_integration_step] = "dose_integration_step"
    _property_names[dose_report_step] = "dose_report_step"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentRadiation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentRadiation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentRadiation, [SpaceEnvironmentRadiation, ])

agcls.AgClassCatalog.add_catalog_entry((4700669801159344748, 9427426751791048120), SpaceEnvironmentRadiation)
agcls.AgTypeNameMap["SpaceEnvironmentRadiation"] = SpaceEnvironmentRadiation

class SpaceEnvironmentMagnitudeFieldLine(SupportsDeleteCallback):
    """Graphics settings for showing magnetic field line."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_graphics_2d_method_offset = 1
    _set_show_graphics_2d_method_offset = 2
    _get_show_graphics_3d_method_offset = 3
    _set_show_graphics_3d_method_offset = 4
    _get_color_method_offset = 5
    _set_color_method_offset = 6
    _get_line_style_method_offset = 7
    _set_line_style_method_offset = 8
    _get_line_width_method_offset = 9
    _set_line_width_method_offset = 10
    _get_show_label_method_offset = 11
    _set_show_label_method_offset = 12
    _metadata = {
        "iid_data" : (5031801494187110531, 15422892394422683805),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentMagnitudeFieldLine)

    _get_show_graphics_2d_metadata = { "offset" : _get_show_graphics_2d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics_2d(self) -> bool:
        """Flag to show magnetic field line."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._get_show_graphics_2d_metadata)

    _set_show_graphics_2d_metadata = { "offset" : _set_show_graphics_2d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics_2d.setter
    def show_graphics_2d(self, show_2d_mag_field_line:bool) -> None:
        """Flag to show magnetic field line."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._set_show_graphics_2d_metadata, show_2d_mag_field_line)

    _get_show_graphics_3d_metadata = { "offset" : _get_show_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_graphics_3d(self) -> bool:
        """Flag to show magnetic field line."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._get_show_graphics_3d_metadata)

    _set_show_graphics_3d_metadata = { "offset" : _set_show_graphics_3d_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_graphics_3d.setter
    def show_graphics_3d(self, show_3d_mag_field_line:bool) -> None:
        """Flag to show magnetic field line."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._set_show_graphics_3d_metadata, show_3d_mag_field_line)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Magnetic field line color."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, color:agcolor.Color) -> None:
        """Magnetic field line color."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._set_color_metadata, color)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Magnetic field line style."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, line_style:"LineStyle") -> None:
        """Magnetic field line style."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._set_line_style_metadata, line_style)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Magnetic field line width."""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, line_width:"LineWidth") -> None:
        """Magnetic field line width."""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._set_line_width_metadata, line_width)

    _get_show_label_metadata = { "offset" : _get_show_label_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_label(self) -> bool:
        """Is the L-shell label visible?"""
        return self._intf.get_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._get_show_label_metadata)

    _set_show_label_metadata = { "offset" : _set_show_label_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_label.setter
    def show_label(self, value:bool) -> None:
        """Is the L-shell label visible?"""
        return self._intf.set_property(SpaceEnvironmentMagnitudeFieldLine._metadata, SpaceEnvironmentMagnitudeFieldLine._set_show_label_metadata, value)

    _property_names[show_graphics_2d] = "show_graphics_2d"
    _property_names[show_graphics_3d] = "show_graphics_3d"
    _property_names[color] = "color"
    _property_names[line_style] = "line_style"
    _property_names[line_width] = "line_width"
    _property_names[show_label] = "show_label"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentMagnitudeFieldLine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentMagnitudeFieldLine)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentMagnitudeFieldLine, [SpaceEnvironmentMagnitudeFieldLine, ])

agcls.AgClassCatalog.add_catalog_entry((5082680112003175964, 4585650270243761793), SpaceEnvironmentMagnitudeFieldLine)
agcls.AgTypeNameMap["SpaceEnvironmentMagnitudeFieldLine"] = SpaceEnvironmentMagnitudeFieldLine

class SpaceEnvironmentGraphics(SupportsDeleteCallback):
    """Graphics settings for space environment."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_magnetic_field_line_method_offset = 1
    _metadata = {
        "iid_data" : (5076672961529936504, 6823355047582392736),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironmentGraphics)

    _get_magnetic_field_line_metadata = { "offset" : _get_magnetic_field_line_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def magnetic_field_line(self) -> "SpaceEnvironmentMagnitudeFieldLine":
        """Graphics settings for showing magnetic field lines."""
        return self._intf.get_property(SpaceEnvironmentGraphics._metadata, SpaceEnvironmentGraphics._get_magnetic_field_line_metadata)

    _property_names[magnetic_field_line] = "magnetic_field_line"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironmentGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironmentGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironmentGraphics, [SpaceEnvironmentGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5246406964976289875, 2228851751411868580), SpaceEnvironmentGraphics)
agcls.AgTypeNameMap["SpaceEnvironmentGraphics"] = SpaceEnvironmentGraphics

class SpaceEnvironment(SupportsDeleteCallback):
    """no helpstring provided."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_saa_contour_method_offset = 1
    _get_magnetic_field_method_offset = 2
    _get_vehicle_temperature_method_offset = 3
    _get_particle_flux_method_offset = 4
    _get_radiation_method_offset = 5
    _get_graphics_method_offset = 6
    _metadata = {
        "iid_data" : (4811785685797698708, 17747746063601945492),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SpaceEnvironment)

    _get_saa_contour_metadata = { "offset" : _get_saa_contour_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def saa_contour(self) -> "SpaceEnvironmentSAAContour":
        """SAA Contour settings."""
        return self._intf.get_property(SpaceEnvironment._metadata, SpaceEnvironment._get_saa_contour_metadata)

    _get_magnetic_field_metadata = { "offset" : _get_magnetic_field_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def magnetic_field(self) -> "SpaceEnvironmentMagneticField":
        """Magnetic Field settings."""
        return self._intf.get_property(SpaceEnvironment._metadata, SpaceEnvironment._get_magnetic_field_metadata)

    _get_vehicle_temperature_metadata = { "offset" : _get_vehicle_temperature_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vehicle_temperature(self) -> "SpaceEnvironmentVehicleTemperature":
        """Vehicle Temperature settings."""
        return self._intf.get_property(SpaceEnvironment._metadata, SpaceEnvironment._get_vehicle_temperature_metadata)

    _get_particle_flux_metadata = { "offset" : _get_particle_flux_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def particle_flux(self) -> "SpaceEnvironmentParticleFlux":
        """Particle Flux settings."""
        return self._intf.get_property(SpaceEnvironment._metadata, SpaceEnvironment._get_particle_flux_metadata)

    _get_radiation_metadata = { "offset" : _get_radiation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def radiation(self) -> "SpaceEnvironmentRadiation":
        """Radiation settings."""
        return self._intf.get_property(SpaceEnvironment._metadata, SpaceEnvironment._get_radiation_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "SpaceEnvironmentGraphics":
        """Graphics settings."""
        return self._intf.get_property(SpaceEnvironment._metadata, SpaceEnvironment._get_graphics_metadata)

    _property_names[saa_contour] = "saa_contour"
    _property_names[magnetic_field] = "magnetic_field"
    _property_names[vehicle_temperature] = "vehicle_temperature"
    _property_names[particle_flux] = "particle_flux"
    _property_names[radiation] = "radiation"
    _property_names[graphics] = "graphics"

    def __init__(self, source_object=None):
        """Construct an object of type SpaceEnvironment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SpaceEnvironment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SpaceEnvironment, [SpaceEnvironment, ])

agcls.AgClassCatalog.add_catalog_entry((5007328823965435039, 8808314116681949088), SpaceEnvironment)
agcls.AgTypeNameMap["SpaceEnvironment"] = SpaceEnvironment

class CoverageSelectedGridPoint(SupportsDeleteCallback):
    """Represents a point selected with the grid inspector."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_latitude_method_offset = 1
    _get_longitude_method_offset = 2
    _get_intervals_method_offset = 3
    _metadata = {
        "iid_data" : (5461806724790643625, 10748015143558826427),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageSelectedGridPoint)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def latitude(self) -> typing.Any:
        """Latitude."""
        return self._intf.get_property(CoverageSelectedGridPoint._metadata, CoverageSelectedGridPoint._get_latitude_metadata)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def longitude(self) -> typing.Any:
        """Longitude."""
        return self._intf.get_property(CoverageSelectedGridPoint._metadata, CoverageSelectedGridPoint._get_longitude_metadata)

    _get_intervals_metadata = { "offset" : _get_intervals_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def intervals(self) -> list:
        """Return a jagged array of access intervals. The elements are single-dimension arrays containing interval's start and stop times."""
        return self._intf.get_property(CoverageSelectedGridPoint._metadata, CoverageSelectedGridPoint._get_intervals_metadata)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[intervals] = "intervals"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageSelectedGridPoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageSelectedGridPoint)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageSelectedGridPoint, [CoverageSelectedGridPoint, ])

agcls.AgClassCatalog.add_catalog_entry((4714673191878759234, 14464011717808383931), CoverageSelectedGridPoint)
agcls.AgTypeNameMap["CoverageSelectedGridPoint"] = CoverageSelectedGridPoint

class CoverageGridPointSelection(SupportsDeleteCallback):
    """Represents a set of coverage grid points."""

    _num_methods = 4
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get__new_enum_method_offset = 1
    _to_array_method_offset = 2
    _get_count_method_offset = 3
    _item_method_offset = 4
    _metadata = {
        "iid_data" : (4804886185818219404, 10688758289468418441),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CoverageGridPointSelection)
    def __iter__(self):
        """Create an iterator for the CoverageGridPointSelection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "CoverageSelectedGridPoint":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return a COM enumerator object."""
        return self._intf.get_property(CoverageGridPointSelection._metadata, CoverageGridPointSelection._get__new_enum_metadata)

    _to_array_metadata = { "offset" : _to_array_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def to_array(self) -> list:
        """Return a jagged array of grid points and their intervals. The elements are single-dimension arrays each containing three elements: latitude, longitude and a jagged array of access intervals."""
        return self._intf.invoke(CoverageGridPointSelection._metadata, CoverageGridPointSelection._to_array_metadata, OutArg())

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of points in the selection."""
        return self._intf.get_property(CoverageGridPointSelection._metadata, CoverageGridPointSelection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "CoverageSelectedGridPoint":
        """Given an index, returns a point in the selection."""
        return self._intf.invoke(CoverageGridPointSelection._metadata, CoverageGridPointSelection._item_metadata, index, OutArg())

    __getitem__ = item


    _property_names[_new_enum] = "_new_enum"
    _property_names[count] = "count"

    def __init__(self, source_object=None):
        """Construct an object of type CoverageGridPointSelection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CoverageGridPointSelection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CoverageGridPointSelection, [CoverageGridPointSelection, ])

agcls.AgClassCatalog.add_catalog_entry((5459145457848121616, 13897566937543932805), CoverageGridPointSelection)
agcls.AgTypeNameMap["CoverageGridPointSelection"] = CoverageGridPointSelection

class StarCollection(ICelestialBodyInformationCollection, SupportsDeleteCallback):
    """Represents a collection of stars."""
    def __init__(self, source_object=None):
        """Construct an object of type StarCollection."""
        SupportsDeleteCallback.__init__(self)
        ICelestialBodyInformationCollection.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICelestialBodyInformationCollection._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, StarCollection, [ICelestialBodyInformationCollection])

agcls.AgClassCatalog.add_catalog_entry((5032105575570119315, 10574283111364202397), StarCollection)
agcls.AgTypeNameMap["StarCollection"] = StarCollection

class StarInformation(ICelestialBodyInformation, SupportsDeleteCallback):
    """Represents a celestial body information."""
    def __init__(self, source_object=None):
        """Construct an object of type StarInformation."""
        SupportsDeleteCallback.__init__(self)
        ICelestialBodyInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICelestialBodyInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, StarInformation, [ICelestialBodyInformation])

agcls.AgClassCatalog.add_catalog_entry((4628840545681068151, 4636623332365904307), StarInformation)
agcls.AgTypeNameMap["StarInformation"] = StarInformation

class CentralBodyEllipsoid(SupportsDeleteCallback):
    """Provide information about the central body's equatorial and polar radii."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_radius_a_method_offset = 1
    _get_radius_b_method_offset = 2
    _get_radius_c_method_offset = 3
    _get_mean_radius_method_offset = 4
    _get_volumetric_radius_method_offset = 5
    _compute_surface_distance_method_offset = 6
    _metadata = {
        "iid_data" : (5682920337631277213, 8177073204189000878),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CentralBodyEllipsoid)

    _get_radius_a_metadata = { "offset" : _get_radius_a_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius_a(self) -> float:
        """An equatorial radius along the x-axis."""
        return self._intf.get_property(CentralBodyEllipsoid._metadata, CentralBodyEllipsoid._get_radius_a_metadata)

    _get_radius_b_metadata = { "offset" : _get_radius_b_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius_b(self) -> float:
        """An equatorial radius along the y-axis."""
        return self._intf.get_property(CentralBodyEllipsoid._metadata, CentralBodyEllipsoid._get_radius_b_metadata)

    _get_radius_c_metadata = { "offset" : _get_radius_c_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius_c(self) -> float:
        """The polar radius along z-axis."""
        return self._intf.get_property(CentralBodyEllipsoid._metadata, CentralBodyEllipsoid._get_radius_c_metadata)

    _get_mean_radius_metadata = { "offset" : _get_mean_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mean_radius(self) -> float:
        """A mean radius of the central body (a+b+c)/3."""
        return self._intf.get_property(CentralBodyEllipsoid._metadata, CentralBodyEllipsoid._get_mean_radius_metadata)

    _get_volumetric_radius_metadata = { "offset" : _get_volumetric_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def volumetric_radius(self) -> float:
        """A volumetric radius of the central body (a*b*c)^(1/3)."""
        return self._intf.get_property(CentralBodyEllipsoid._metadata, CentralBodyEllipsoid._get_volumetric_radius_metadata)

    _compute_surface_distance_metadata = { "offset" : _compute_surface_distance_method_offset,
            "arg_types" : (agcom.Variant, agcom.Variant, agcom.Variant, agcom.Variant, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.DoubleArg,) }
    def compute_surface_distance(self, start_lat:typing.Any, start_lon:typing.Any, end_lat:typing.Any, end_lon:typing.Any) -> float:
        """Compute the distance between two points on the surface of the central body. Distance is measured along a great arc path."""
        return self._intf.invoke(CentralBodyEllipsoid._metadata, CentralBodyEllipsoid._compute_surface_distance_metadata, start_lat, start_lon, end_lat, end_lon, OutArg())

    _property_names[radius_a] = "radius_a"
    _property_names[radius_b] = "radius_b"
    _property_names[radius_c] = "radius_c"
    _property_names[mean_radius] = "mean_radius"
    _property_names[volumetric_radius] = "volumetric_radius"

    def __init__(self, source_object=None):
        """Construct an object of type CentralBodyEllipsoid."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CentralBodyEllipsoid)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CentralBodyEllipsoid, [CentralBodyEllipsoid, ])

agcls.AgClassCatalog.add_catalog_entry((5251294678240929416, 7937829098034275460), CentralBodyEllipsoid)
agcls.AgTypeNameMap["CentralBodyEllipsoid"] = CentralBodyEllipsoid

class CentralBody(SupportsDeleteCallback):
    """A central body interface."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_ellipsoid_method_offset = 2
    _get_analysis_workbench_components_method_offset = 3
    _get_gravitational_parameter_method_offset = 4
    _metadata = {
        "iid_data" : (5300867677595855882, 12815121475261501585),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CentralBody)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """A name of the central body."""
        return self._intf.get_property(CentralBody._metadata, CentralBody._get_name_metadata)

    _get_ellipsoid_metadata = { "offset" : _get_ellipsoid_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ellipsoid(self) -> "CentralBodyEllipsoid":
        """The central body ellipsoid."""
        return self._intf.get_property(CentralBody._metadata, CentralBody._get_ellipsoid_metadata)

    _get_analysis_workbench_components_metadata = { "offset" : _get_analysis_workbench_components_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis_workbench_components(self) -> "IAnalysisWorkbenchComponentProvider":
        """Return the central body's Vector Geometry Tool provider."""
        return self._intf.get_property(CentralBody._metadata, CentralBody._get_analysis_workbench_components_metadata)

    _get_gravitational_parameter_metadata = { "offset" : _get_gravitational_parameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def gravitational_parameter(self) -> float:
        """The gravitational parameter of the central body in distance units cubed per time units squared (i.e. m^3*s^-2)."""
        return self._intf.get_property(CentralBody._metadata, CentralBody._get_gravitational_parameter_metadata)

    _property_names[name] = "name"
    _property_names[ellipsoid] = "ellipsoid"
    _property_names[analysis_workbench_components] = "analysis_workbench_components"
    _property_names[gravitational_parameter] = "gravitational_parameter"

    def __init__(self, source_object=None):
        """Construct an object of type CentralBody."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CentralBody)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CentralBody, [CentralBody, ])

agcls.AgClassCatalog.add_catalog_entry((5657477133543826780, 17506527851053229212), CentralBody)
agcls.AgTypeNameMap["CentralBody"] = CentralBody

class CentralBodyCollection(SupportsDeleteCallback):
    """A collection of available central bodies."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _contains_method_offset = 1
    _get_earth_method_offset = 2
    _get_sun_method_offset = 3
    _get_moon_method_offset = 4
    _get_count_method_offset = 5
    _item_method_offset = 6
    _get__new_enum_method_offset = 7
    _get_item_by_index_method_offset = 8
    _get_item_by_name_method_offset = 9
    _metadata = {
        "iid_data" : (5202582498927402952, 13490417304444926620),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CentralBodyCollection)
    def __iter__(self):
        """Create an iterator for the CentralBodyCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "CentralBody":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def contains(self, central_name:str) -> bool:
        """Search for a central body with a given name. Returns false if the specified element does not exist."""
        return self._intf.invoke(CentralBodyCollection._metadata, CentralBodyCollection._contains_metadata, central_name, OutArg())

    _get_earth_metadata = { "offset" : _get_earth_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def earth(self) -> "CentralBody":
        """Return the Earth central body."""
        return self._intf.get_property(CentralBodyCollection._metadata, CentralBodyCollection._get_earth_metadata)

    _get_sun_metadata = { "offset" : _get_sun_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sun(self) -> "CentralBody":
        """Return the Sun central body."""
        return self._intf.get_property(CentralBodyCollection._metadata, CentralBodyCollection._get_sun_metadata)

    _get_moon_metadata = { "offset" : _get_moon_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def moon(self) -> "CentralBody":
        """Return the Moon central body."""
        return self._intf.get_property(CentralBodyCollection._metadata, CentralBodyCollection._get_moon_metadata)

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return a number of elements in the collection."""
        return self._intf.get_property(CentralBodyCollection._metadata, CentralBodyCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def item(self, index_or_name:typing.Any) -> "CentralBody":
        """Return a central body by name or at a specified position."""
        return self._intf.invoke(CentralBodyCollection._metadata, CentralBodyCollection._item_metadata, index_or_name, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates the elements in the collection."""
        return self._intf.get_property(CentralBodyCollection._metadata, CentralBodyCollection._get__new_enum_metadata)

    _get_item_by_index_metadata = { "offset" : _get_item_by_index_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_index(self, index:int) -> "CentralBody":
        """Retrieve a central body from the collection by index."""
        return self._intf.invoke(CentralBodyCollection._metadata, CentralBodyCollection._get_item_by_index_metadata, index, OutArg())

    _get_item_by_name_metadata = { "offset" : _get_item_by_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_name(self, cb_name:str) -> "CentralBody":
        """Retrieve a central body from the collection by name."""
        return self._intf.invoke(CentralBodyCollection._metadata, CentralBodyCollection._get_item_by_name_metadata, cb_name, OutArg())

    __getitem__ = item


    _property_names[earth] = "earth"
    _property_names[sun] = "sun"
    _property_names[moon] = "moon"
    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type CentralBodyCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CentralBodyCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CentralBodyCollection, [CentralBodyCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5139633300972524177, 16249656606619952516), CentralBodyCollection)
agcls.AgTypeNameMap["CentralBodyCollection"] = CentralBodyCollection

class FigureOfMeritDefinitionSystemResponseTime(IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition, SupportsDeleteCallback):
    """System Response Time Figure of Merit."""

    _num_methods = 20
    _vtable_offset = IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods
    _get_command_station_path_method_offset = 1
    _set_command_station_path_method_offset = 2
    _get_receive_station_path_method_offset = 3
    _set_receive_station_path_method_offset = 4
    _get_command_preparation_time_method_offset = 5
    _set_command_preparation_time_method_offset = 6
    _get_commanding_time_method_offset = 7
    _set_commanding_time_method_offset = 8
    _get_pre_collection_time_method_offset = 9
    _set_pre_collection_time_method_offset = 10
    _get_collection_time_method_offset = 11
    _set_collection_time_method_offset = 12
    _get_post_collection_time_method_offset = 13
    _set_post_collection_time_method_offset = 14
    _get_downlink_time_method_offset = 15
    _set_downlink_time_method_offset = 16
    _get_allow_forward_crosslink_method_offset = 17
    _set_allow_forward_crosslink_method_offset = 18
    _get_time_step_method_offset = 19
    _set_time_step_method_offset = 20
    _metadata = {
        "iid_data" : (5422704224337965451, 8646867214266363570),
        "vtable_reference" : IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionSystemResponseTime)

    _get_command_station_path_metadata = { "offset" : _get_command_station_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def command_station_path(self) -> str:
        """Instance path for the commanding object. NONE can be used to clear the commanding object."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._get_command_station_path_metadata)

    _set_command_station_path_metadata = { "offset" : _set_command_station_path_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @command_station_path.setter
    def command_station_path(self, command:str) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._set_command_station_path_metadata, command)

    _get_receive_station_path_metadata = { "offset" : _get_receive_station_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def receive_station_path(self) -> str:
        """Instance path for the receiving object. NONE can be used to clear the receiving object."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._get_receive_station_path_metadata)

    _set_receive_station_path_metadata = { "offset" : _set_receive_station_path_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @receive_station_path.setter
    def receive_station_path(self, command:str) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._set_receive_station_path_metadata, command)

    _get_command_preparation_time_metadata = { "offset" : _get_command_preparation_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def command_preparation_time(self) -> float:
        """Amount of time in seconds required for command preparation."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._get_command_preparation_time_metadata)

    _set_command_preparation_time_metadata = { "offset" : _set_command_preparation_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @command_preparation_time.setter
    def command_preparation_time(self, command_perp_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._set_command_preparation_time_metadata, command_perp_time)

    _get_commanding_time_metadata = { "offset" : _get_commanding_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def commanding_time(self) -> float:
        """Amount of time in seconds required for transmission of the prepared command from the CommandStation to the assets."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._get_commanding_time_metadata)

    _set_commanding_time_metadata = { "offset" : _set_commanding_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @commanding_time.setter
    def commanding_time(self, commanding_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._set_commanding_time_metadata, commanding_time)

    _get_pre_collection_time_metadata = { "offset" : _get_pre_collection_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pre_collection_time(self) -> float:
        """Amount of time in seconds required from receipt of commanding until a collection can be performed by the assets."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._get_pre_collection_time_metadata)

    _set_pre_collection_time_metadata = { "offset" : _set_pre_collection_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pre_collection_time.setter
    def pre_collection_time(self, pre_collection_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._set_pre_collection_time_metadata, pre_collection_time)

    _get_collection_time_metadata = { "offset" : _get_collection_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def collection_time(self) -> float:
        """Amount of time in seconds required for data collection."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._get_collection_time_metadata)

    _set_collection_time_metadata = { "offset" : _set_collection_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @collection_time.setter
    def collection_time(self, collection_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._set_collection_time_metadata, collection_time)

    _get_post_collection_time_metadata = { "offset" : _get_post_collection_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def post_collection_time(self) -> float:
        """Amount of time in seconds required from asset collection until data can be transmitted to the ReceiveStation."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._get_post_collection_time_metadata)

    _set_post_collection_time_metadata = { "offset" : _set_post_collection_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @post_collection_time.setter
    def post_collection_time(self, post_collection_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._set_post_collection_time_metadata, post_collection_time)

    _get_downlink_time_metadata = { "offset" : _get_downlink_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def downlink_time(self) -> float:
        """Amount of time in seconds required for transmission of the collected data from the assets to the ReceiveStation."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._get_downlink_time_metadata)

    _set_downlink_time_metadata = { "offset" : _set_downlink_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @downlink_time.setter
    def downlink_time(self, downlink_time:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._set_downlink_time_metadata, downlink_time)

    _get_allow_forward_crosslink_metadata = { "offset" : _get_allow_forward_crosslink_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_forward_crosslink(self) -> bool:
        """Determine if a single cross-link between assets is allowed to be used to minimize the response time."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._get_allow_forward_crosslink_metadata)

    _set_allow_forward_crosslink_metadata = { "offset" : _set_allow_forward_crosslink_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_forward_crosslink.setter
    def allow_forward_crosslink(self, value:bool) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._set_allow_forward_crosslink_metadata, value)

    _get_time_step_metadata = { "offset" : _get_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_step(self) -> float:
        """Get or set the value in seconds to be used during the computation of satisfaction intervals."""
        return self._intf.get_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._get_time_step_metadata)

    _set_time_step_metadata = { "offset" : _set_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_step.setter
    def time_step(self, time_step:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionSystemResponseTime._metadata, FigureOfMeritDefinitionSystemResponseTime._set_time_step_metadata, time_step)

    _property_names[command_station_path] = "command_station_path"
    _property_names[receive_station_path] = "receive_station_path"
    _property_names[command_preparation_time] = "command_preparation_time"
    _property_names[commanding_time] = "commanding_time"
    _property_names[pre_collection_time] = "pre_collection_time"
    _property_names[collection_time] = "collection_time"
    _property_names[post_collection_time] = "post_collection_time"
    _property_names[downlink_time] = "downlink_time"
    _property_names[allow_forward_crosslink] = "allow_forward_crosslink"
    _property_names[time_step] = "time_step"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionSystemResponseTime."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionSystemResponseTime)
        IFigureOfMeritDefinitionCompute.__init__(self, source_object)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionSystemResponseTime, [FigureOfMeritDefinitionSystemResponseTime, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((5287583509794342028, 17157780010116072376), FigureOfMeritDefinitionSystemResponseTime)
agcls.AgTypeNameMap["FigureOfMeritDefinitionSystemResponseTime"] = FigureOfMeritDefinitionSystemResponseTime

class FigureOfMeritDefinitionAgeOfData(IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Age of Data Figure of Merit."""

    _num_methods = 2
    _vtable_offset = IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods
    _get_minimum_assets_method_offset = 1
    _set_minimum_assets_method_offset = 2
    _metadata = {
        "iid_data" : (5534862623159374847, 15549984807324626083),
        "vtable_reference" : IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionAgeOfData)

    _get_minimum_assets_metadata = { "offset" : _get_minimum_assets_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def minimum_assets(self) -> int:
        """Minimum number of assets for computing time between the end of a coverage interval and the current time Figure of Merit."""
        return self._intf.get_property(FigureOfMeritDefinitionAgeOfData._metadata, FigureOfMeritDefinitionAgeOfData._get_minimum_assets_metadata)

    _set_minimum_assets_metadata = { "offset" : _set_minimum_assets_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @minimum_assets.setter
    def minimum_assets(self, min_assets:int) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionAgeOfData._metadata, FigureOfMeritDefinitionAgeOfData._set_minimum_assets_metadata, min_assets)

    _property_names[minimum_assets] = "minimum_assets"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionAgeOfData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionAgeOfData)
        IFigureOfMeritDefinitionCompute.__init__(self, source_object)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionAgeOfData, [FigureOfMeritDefinitionAgeOfData, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((5280280193052242512, 1424971464565807034), FigureOfMeritDefinitionAgeOfData)
agcls.AgTypeNameMap["FigureOfMeritDefinitionAgeOfData"] = FigureOfMeritDefinitionAgeOfData

class FigureOfMeritDefinitionScalarCalculation(IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition, SupportsDeleteCallback):
    """Figure of Merit using an Analysis Workbench scalar calculation component as the metric."""

    _num_methods = 6
    _vtable_offset = IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods
    _get_time_step_method_offset = 1
    _set_time_step_method_offset = 2
    _get_calculation_scalar_method_offset = 3
    _set_calculation_scalar_method_offset = 4
    _get_should_update_accesses_method_offset = 5
    _set_should_update_accesses_method_offset = 6
    _metadata = {
        "iid_data" : (5550477000284903685, 13686331177768386217),
        "vtable_reference" : IFigureOfMeritDefinitionCompute._vtable_offset + IFigureOfMeritDefinitionCompute._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, FigureOfMeritDefinitionScalarCalculation)

    _get_time_step_metadata = { "offset" : _get_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_step(self) -> float:
        """Get or set the value to be used during the sampling of the dynamic definition for use in the static definition."""
        return self._intf.get_property(FigureOfMeritDefinitionScalarCalculation._metadata, FigureOfMeritDefinitionScalarCalculation._get_time_step_metadata)

    _set_time_step_metadata = { "offset" : _set_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_step.setter
    def time_step(self, time_step:float) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionScalarCalculation._metadata, FigureOfMeritDefinitionScalarCalculation._set_time_step_metadata, time_step)

    _get_calculation_scalar_metadata = { "offset" : _get_calculation_scalar_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def calculation_scalar(self) -> str:
        """Reference Scalar Calculation component."""
        return self._intf.get_property(FigureOfMeritDefinitionScalarCalculation._metadata, FigureOfMeritDefinitionScalarCalculation._get_calculation_scalar_metadata)

    _set_calculation_scalar_metadata = { "offset" : _set_calculation_scalar_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @calculation_scalar.setter
    def calculation_scalar(self, scalar:str) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionScalarCalculation._metadata, FigureOfMeritDefinitionScalarCalculation._set_calculation_scalar_metadata, scalar)

    _get_should_update_accesses_metadata = { "offset" : _get_should_update_accesses_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def should_update_accesses(self) -> bool:
        """Update Accesses computed outside Coverage."""
        return self._intf.get_property(FigureOfMeritDefinitionScalarCalculation._metadata, FigureOfMeritDefinitionScalarCalculation._get_should_update_accesses_metadata)

    _set_should_update_accesses_metadata = { "offset" : _set_should_update_accesses_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @should_update_accesses.setter
    def should_update_accesses(self, value:bool) -> None:
        return self._intf.set_property(FigureOfMeritDefinitionScalarCalculation._metadata, FigureOfMeritDefinitionScalarCalculation._set_should_update_accesses_metadata, value)

    _property_names[time_step] = "time_step"
    _property_names[calculation_scalar] = "calculation_scalar"
    _property_names[should_update_accesses] = "should_update_accesses"

    def __init__(self, source_object=None):
        """Construct an object of type FigureOfMeritDefinitionScalarCalculation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, FigureOfMeritDefinitionScalarCalculation)
        IFigureOfMeritDefinitionCompute.__init__(self, source_object)
        IFigureOfMeritDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFigureOfMeritDefinitionCompute._private_init(self, intf)
        IFigureOfMeritDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, FigureOfMeritDefinitionScalarCalculation, [FigureOfMeritDefinitionScalarCalculation, IFigureOfMeritDefinitionCompute, IFigureOfMeritDefinition])

agcls.AgClassCatalog.add_catalog_entry((4732581244287798991, 11629267155158359742), FigureOfMeritDefinitionScalarCalculation)
agcls.AgTypeNameMap["FigureOfMeritDefinitionScalarCalculation"] = FigureOfMeritDefinitionScalarCalculation

class Propagator11ParametersDescriptor(SupportsDeleteCallback):
    """11-Param file definition."""

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_epoch_method_offset = 1
    _get_filename_method_offset = 2
    _get_satellite_identifier_method_offset = 3
    _get_nominal_longitude_method_offset = 4
    _get_lm0_method_offset = 5
    _get_lm1_method_offset = 6
    _get_lm2_method_offset = 7
    _get_lonc_method_offset = 8
    _get_lonc1_method_offset = 9
    _get_lons_method_offset = 10
    _get_lons1_method_offset = 11
    _get_latc_method_offset = 12
    _get_latc1_method_offset = 13
    _get_lats_method_offset = 14
    _get_lats1_method_offset = 15
    _metadata = {
        "iid_data" : (5078487309764820299, 43171134124909972),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Propagator11ParametersDescriptor)

    _get_epoch_metadata = { "offset" : _get_epoch_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def epoch(self) -> typing.Any:
        """Epoch time on which the ephemeris is based."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_epoch_metadata)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """11-Parameter file path."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_filename_metadata)

    _get_satellite_identifier_metadata = { "offset" : _get_satellite_identifier_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def satellite_identifier(self) -> str:
        """Satellite identification."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_satellite_identifier_metadata)

    _get_nominal_longitude_metadata = { "offset" : _get_nominal_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def nominal_longitude(self) -> float:
        """GEO satellite's reference longitude. Uses LongitudeUnit."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_nominal_longitude_metadata)

    _get_lm0_metadata = { "offset" : _get_lm0_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lm0(self) -> float:
        """Mean longitude (East of Greenwich)."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_lm0_metadata)

    _get_lm1_metadata = { "offset" : _get_lm1_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lm1(self) -> float:
        """Drift rate."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_lm1_metadata)

    _get_lm2_metadata = { "offset" : _get_lm2_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lm2(self) -> float:
        """Drift acceleration."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_lm2_metadata)

    _get_lonc_metadata = { "offset" : _get_lonc_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lonc(self) -> float:
        """Longitude oscillation: amplitude (cosine term). Uses AngleUnit."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_lonc_metadata)

    _get_lonc1_metadata = { "offset" : _get_lonc1_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lonc1(self) -> float:
        """Longitude oscilation: rate of change (cosine term). Uses AngleUnit."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_lonc1_metadata)

    _get_lons_metadata = { "offset" : _get_lons_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lons(self) -> float:
        """Longitude oscillation: amplitude (sine term). Uses AngleUnit."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_lons_metadata)

    _get_lons1_metadata = { "offset" : _get_lons1_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lons1(self) -> float:
        """Longitude oscilation: rate of change (sine term). Uses AngleUnit."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_lons1_metadata)

    _get_latc_metadata = { "offset" : _get_latc_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latc(self) -> float:
        """Latitude oscillation: amplitude (cosine term). Uses AngleUnit."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_latc_metadata)

    _get_latc1_metadata = { "offset" : _get_latc1_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latc1(self) -> float:
        """Latitude oscillation: rate of change (cosine term). Uses AngleUnit."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_latc1_metadata)

    _get_lats_metadata = { "offset" : _get_lats_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lats(self) -> float:
        """Latitude oscillation: amplitude (sine term). Uses AngleUnit."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_lats_metadata)

    _get_lats1_metadata = { "offset" : _get_lats1_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lats1(self) -> float:
        """Latitude oscillation: rate of change (sine term). Uses AngleUnit."""
        return self._intf.get_property(Propagator11ParametersDescriptor._metadata, Propagator11ParametersDescriptor._get_lats1_metadata)

    _property_names[epoch] = "epoch"
    _property_names[filename] = "filename"
    _property_names[satellite_identifier] = "satellite_identifier"
    _property_names[nominal_longitude] = "nominal_longitude"
    _property_names[lm0] = "lm0"
    _property_names[lm1] = "lm1"
    _property_names[lm2] = "lm2"
    _property_names[lonc] = "lonc"
    _property_names[lonc1] = "lonc1"
    _property_names[lons] = "lons"
    _property_names[lons1] = "lons1"
    _property_names[latc] = "latc"
    _property_names[latc1] = "latc1"
    _property_names[lats] = "lats"
    _property_names[lats1] = "lats1"

    def __init__(self, source_object=None):
        """Construct an object of type Propagator11ParametersDescriptor."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Propagator11ParametersDescriptor)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Propagator11ParametersDescriptor, [Propagator11ParametersDescriptor, ])

agcls.AgClassCatalog.add_catalog_entry((5754621695453861141, 10861004754891687592), Propagator11ParametersDescriptor)
agcls.AgTypeNameMap["Propagator11ParametersDescriptor"] = Propagator11ParametersDescriptor

class Propagator11ParametersDescriptorCollection(SupportsDeleteCallback):
    """A collection of 11-Parameter files."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _add_from_array_method_offset = 7
    _metadata = {
        "iid_data" : (5010658021296473252, 13258807332167405952),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Propagator11ParametersDescriptorCollection)
    def __iter__(self):
        """Create an iterator for the Propagator11ParametersDescriptorCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "Propagator11ParametersDescriptor":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(Propagator11ParametersDescriptorCollection._metadata, Propagator11ParametersDescriptorCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "Propagator11ParametersDescriptor":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(Propagator11ParametersDescriptorCollection._metadata, Propagator11ParametersDescriptorCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(Propagator11ParametersDescriptorCollection._metadata, Propagator11ParametersDescriptorCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(Propagator11ParametersDescriptorCollection._metadata, Propagator11ParametersDescriptorCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(Propagator11ParametersDescriptorCollection._metadata, Propagator11ParametersDescriptorCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, file_path:str) -> "Propagator11ParametersDescriptor":
        """Add a new element to the collection."""
        return self._intf.invoke(Propagator11ParametersDescriptorCollection._metadata, Propagator11ParametersDescriptorCollection._add_metadata, file_path, OutArg())

    _add_from_array_metadata = { "offset" : _add_from_array_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def add_from_array(self, array_of_files:list) -> None:
        """Add multiple files to the collection."""
        return self._intf.invoke(Propagator11ParametersDescriptorCollection._metadata, Propagator11ParametersDescriptorCollection._add_from_array_metadata, array_of_files)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type Propagator11ParametersDescriptorCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Propagator11ParametersDescriptorCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Propagator11ParametersDescriptorCollection, [Propagator11ParametersDescriptorCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5225612354183165150, 2722729963406574770), Propagator11ParametersDescriptorCollection)
agcls.AgTypeNameMap["Propagator11ParametersDescriptorCollection"] = Propagator11ParametersDescriptorCollection

class Propagator11Parameters(IPropagator, SupportsDeleteCallback):
    """The 11-Parameter propagator models geostationary satellites using 11-Parameter files. The propagator uses an algorithm documented in Intelsat Earth Station Standards (IESS) IESS-412 (Rev. 2), available at www.celestrak.com."""

    _num_methods = 5
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_step_method_offset = 2
    _set_step_method_offset = 3
    _get_ephemeris_interval_method_offset = 4
    _get_parameter_files_method_offset = 5
    _metadata = {
        "iid_data" : (5531023357957745251, 3247296038465990797),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Propagator11Parameters)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the satellite's path using the specified time interval."""
        return self._intf.invoke(Propagator11Parameters._metadata, Propagator11Parameters._propagate_metadata, )

    _get_step_metadata = { "offset" : _get_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step(self) -> float:
        """Step size. Uses Time Dimension."""
        return self._intf.get_property(Propagator11Parameters._metadata, Propagator11Parameters._get_step_metadata)

    _set_step_metadata = { "offset" : _set_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step.setter
    def step(self, step:float) -> None:
        return self._intf.set_property(Propagator11Parameters._metadata, Propagator11Parameters._set_step_metadata, step)

    _get_ephemeris_interval_metadata = { "offset" : _get_ephemeris_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_interval(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the propagator's ephemeris interval."""
        return self._intf.get_property(Propagator11Parameters._metadata, Propagator11Parameters._get_ephemeris_interval_metadata)

    _get_parameter_files_metadata = { "offset" : _get_parameter_files_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def parameter_files(self) -> "Propagator11ParametersDescriptorCollection":
        """Return a collection of 11-Parameter satellite definitions."""
        return self._intf.get_property(Propagator11Parameters._metadata, Propagator11Parameters._get_parameter_files_metadata)

    _property_names[step] = "step"
    _property_names[ephemeris_interval] = "ephemeris_interval"
    _property_names[parameter_files] = "parameter_files"

    def __init__(self, source_object=None):
        """Construct an object of type Propagator11Parameters."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Propagator11Parameters)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Propagator11Parameters, [Propagator11Parameters, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((4985865090860153012, 12424540980571763073), Propagator11Parameters)
agcls.AgTypeNameMap["Propagator11Parameters"] = Propagator11Parameters

class PropagatorSP3File(SupportsDeleteCallback):
    """SP3 file data."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _get_start_time_method_offset = 2
    _get_stop_time_method_offset = 3
    _get_reference_time_method_offset = 4
    _get_step_size_method_offset = 5
    _get_agency_method_offset = 6
    _get_orbit_type_method_offset = 7
    _get_available_identifiers_method_offset = 8
    _metadata = {
        "iid_data" : (5371450885475447527, 14358394961695883909),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSP3File)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get the file name."""
        return self._intf.get_property(PropagatorSP3File._metadata, PropagatorSP3File._get_filename_metadata)

    _get_start_time_metadata = { "offset" : _get_start_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start_time(self) -> typing.Any:
        """Get the start time of the ephemeris interval. Uses DateFormat dimension."""
        return self._intf.get_property(PropagatorSP3File._metadata, PropagatorSP3File._get_start_time_metadata)

    _get_stop_time_metadata = { "offset" : _get_stop_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop_time(self) -> typing.Any:
        """Get the stop time of the ephemeris interval. Uses DateFormat dimension."""
        return self._intf.get_property(PropagatorSP3File._metadata, PropagatorSP3File._get_stop_time_metadata)

    _get_reference_time_metadata = { "offset" : _get_reference_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def reference_time(self) -> typing.Any:
        """Get the reference time."""
        return self._intf.get_property(PropagatorSP3File._metadata, PropagatorSP3File._get_reference_time_metadata)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step_size(self) -> float:
        """Get the step size."""
        return self._intf.get_property(PropagatorSP3File._metadata, PropagatorSP3File._get_step_size_metadata)

    _get_agency_metadata = { "offset" : _get_agency_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def agency(self) -> str:
        """Get the agency identifier."""
        return self._intf.get_property(PropagatorSP3File._metadata, PropagatorSP3File._get_agency_metadata)

    _get_orbit_type_metadata = { "offset" : _get_orbit_type_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def orbit_type(self) -> str:
        """Get the orbit size type."""
        return self._intf.get_property(PropagatorSP3File._metadata, PropagatorSP3File._get_orbit_type_metadata)

    _get_available_identifiers_metadata = { "offset" : _get_available_identifiers_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_identifiers(self) -> list:
        """A two-dimensional array of available satellite identifiers and their common names. Each array element contains the satellite identifier and its common name (if one is available)."""
        return self._intf.get_property(PropagatorSP3File._metadata, PropagatorSP3File._get_available_identifiers_metadata)

    _property_names[filename] = "filename"
    _property_names[start_time] = "start_time"
    _property_names[stop_time] = "stop_time"
    _property_names[reference_time] = "reference_time"
    _property_names[step_size] = "step_size"
    _property_names[agency] = "agency"
    _property_names[orbit_type] = "orbit_type"
    _property_names[available_identifiers] = "available_identifiers"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSP3File."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSP3File)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSP3File, [PropagatorSP3File, ])

agcls.AgClassCatalog.add_catalog_entry((5440929413722331485, 6699123552844853665), PropagatorSP3File)
agcls.AgTypeNameMap["PropagatorSP3File"] = PropagatorSP3File

class PropagatorSP3FileCollection(SupportsDeleteCallback):
    """A collection of SP3 files."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (4656050573630529154, 8018157921684787079),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSP3FileCollection)
    def __iter__(self):
        """Create an iterator for the PropagatorSP3FileCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "PropagatorSP3File":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(PropagatorSP3FileCollection._metadata, PropagatorSP3FileCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "PropagatorSP3File":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(PropagatorSP3FileCollection._metadata, PropagatorSP3FileCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(PropagatorSP3FileCollection._metadata, PropagatorSP3FileCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(PropagatorSP3FileCollection._metadata, PropagatorSP3FileCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(PropagatorSP3FileCollection._metadata, PropagatorSP3FileCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, file_path:str) -> "PropagatorSP3File":
        """Load an SP3 file using the specified file path and adds the file to a collection of SP3 files."""
        return self._intf.invoke(PropagatorSP3FileCollection._metadata, PropagatorSP3FileCollection._add_metadata, file_path, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSP3FileCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSP3FileCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSP3FileCollection, [PropagatorSP3FileCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4751703602519800218, 4049175747118105754), PropagatorSP3FileCollection)
agcls.AgTypeNameMap["PropagatorSP3FileCollection"] = PropagatorSP3FileCollection

class PropagatorSP3(IPropagator, SupportsDeleteCallback):
    """The SP3 propagator reads .sp3 files of type 'a' and 'c' and allows you to use multiple files in sequence. These files are used to provide precise GPS orbits from the National Geodetic Survey (NGS)."""

    _num_methods = 13
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _propagate_method_offset = 1
    _get_interpolation_order_method_offset = 2
    _set_interpolation_order_method_offset = 3
    _get_interpolation_method_method_offset = 4
    _set_interpolation_method_method_offset = 5
    _get_interpolate_across_boundaries_method_offset = 6
    _set_interpolate_across_boundaries_method_offset = 7
    _get_extrapolate_one_step_past_end_method_offset = 8
    _set_extrapolate_one_step_past_end_method_offset = 9
    _get_satellite_identifier_method_offset = 10
    _set_satellite_identifier_method_offset = 11
    _get_files_method_offset = 12
    _get_available_identifiers_method_offset = 13
    _metadata = {
        "iid_data" : (5648189681757689425, 13757261731252138925),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorSP3)

    _propagate_metadata = { "offset" : _propagate_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def propagate(self) -> None:
        """Propagates the vehicle's path using the specified time interval."""
        return self._intf.invoke(PropagatorSP3._metadata, PropagatorSP3._propagate_metadata, )

    _get_interpolation_order_metadata = { "offset" : _get_interpolation_order_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def interpolation_order(self) -> int:
        """An interpolation order of 1 specifies linear interpolation and is appropriate for closely spaced data or data with significant jitter. Higher interpolation orders yield more accurate interpolation when the data is smooth and continuous."""
        return self._intf.get_property(PropagatorSP3._metadata, PropagatorSP3._get_interpolation_order_metadata)

    _set_interpolation_order_metadata = { "offset" : _set_interpolation_order_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @interpolation_order.setter
    def interpolation_order(self, interpolation_order:int) -> None:
        """."""
        return self._intf.set_property(PropagatorSP3._metadata, PropagatorSP3._set_interpolation_order_metadata, interpolation_order)

    _get_interpolation_method_metadata = { "offset" : _get_interpolation_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleInterpolationMethod),) }
    @property
    def interpolation_method(self) -> "VehicleInterpolationMethod":
        """By default, the SP3 propagator uses the standard Lagrange interpolation scheme, interpolating position and velocity separately. Some files may be configured to allow the Hermitian interpolation."""
        return self._intf.get_property(PropagatorSP3._metadata, PropagatorSP3._get_interpolation_method_metadata)

    _set_interpolation_method_metadata = { "offset" : _set_interpolation_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleInterpolationMethod),) }
    @interpolation_method.setter
    def interpolation_method(self, interpolation_method:"VehicleInterpolationMethod") -> None:
        return self._intf.set_property(PropagatorSP3._metadata, PropagatorSP3._set_interpolation_method_metadata, interpolation_method)

    _get_interpolate_across_boundaries_metadata = { "offset" : _get_interpolate_across_boundaries_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def interpolate_across_boundaries(self) -> bool:
        """Whether to interpolate across file boundaries. If this option is set, STK will interpolate ephemeris steps according to the user-defined Step Size between the end of one SP3 file and the beginning of the next."""
        return self._intf.get_property(PropagatorSP3._metadata, PropagatorSP3._get_interpolate_across_boundaries_metadata)

    _set_interpolate_across_boundaries_metadata = { "offset" : _set_interpolate_across_boundaries_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @interpolate_across_boundaries.setter
    def interpolate_across_boundaries(self, interpolate_across_boundaries:bool) -> None:
        return self._intf.set_property(PropagatorSP3._metadata, PropagatorSP3._set_interpolate_across_boundaries_metadata, interpolate_across_boundaries)

    _get_extrapolate_one_step_past_end_metadata = { "offset" : _get_extrapolate_one_step_past_end_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def extrapolate_one_step_past_end(self) -> bool:
        """Extrapolate 1 step beyond last data point. If this option is selected, STK will calculate an additional ephemeris step beyond the last data point provided by the SP3 file(s) assigned to the satellite."""
        return self._intf.get_property(PropagatorSP3._metadata, PropagatorSP3._get_extrapolate_one_step_past_end_metadata)

    _set_extrapolate_one_step_past_end_metadata = { "offset" : _set_extrapolate_one_step_past_end_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @extrapolate_one_step_past_end.setter
    def extrapolate_one_step_past_end(self, extrapolate_one_past_end:bool) -> None:
        return self._intf.set_property(PropagatorSP3._metadata, PropagatorSP3._set_extrapolate_one_step_past_end_metadata, extrapolate_one_past_end)

    _get_satellite_identifier_metadata = { "offset" : _get_satellite_identifier_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def satellite_identifier(self) -> str:
        """Get or set a selected satellite identifier."""
        return self._intf.get_property(PropagatorSP3._metadata, PropagatorSP3._get_satellite_identifier_metadata)

    _set_satellite_identifier_metadata = { "offset" : _set_satellite_identifier_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @satellite_identifier.setter
    def satellite_identifier(self, satellite_id:str) -> None:
        """Get or set a selected satellite identifier."""
        return self._intf.set_property(PropagatorSP3._metadata, PropagatorSP3._set_satellite_identifier_metadata, satellite_id)

    _get_files_metadata = { "offset" : _get_files_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def files(self) -> "PropagatorSP3FileCollection":
        """Access and manipulate the collection of SP3 files. You can add multiple files to a single satellite object and - if there are no gaps between the files - the whole ephemeris will be propagated in sequence."""
        return self._intf.get_property(PropagatorSP3._metadata, PropagatorSP3._get_files_metadata)

    _get_available_identifiers_metadata = { "offset" : _get_available_identifiers_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_identifiers(self) -> list:
        """An array of available satellite identifiers."""
        return self._intf.get_property(PropagatorSP3._metadata, PropagatorSP3._get_available_identifiers_metadata)

    _property_names[interpolation_order] = "interpolation_order"
    _property_names[interpolation_method] = "interpolation_method"
    _property_names[interpolate_across_boundaries] = "interpolate_across_boundaries"
    _property_names[extrapolate_one_step_past_end] = "extrapolate_one_step_past_end"
    _property_names[satellite_identifier] = "satellite_identifier"
    _property_names[files] = "files"
    _property_names[available_identifiers] = "available_identifiers"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorSP3."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorSP3)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorSP3, [PropagatorSP3, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((4661540227783451193, 12433378864960154512), PropagatorSP3)
agcls.AgTypeNameMap["PropagatorSP3"] = PropagatorSP3

class VehicleEphemerisBinaryExportTool(SupportsDeleteCallback):
    """The STK Binary Ephemeris type for the Export Ephemeris/Attitude Tool."""

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_coordinate_system_method_offset = 1
    _set_coordinate_system_method_offset = 2
    _get_central_body_name_method_offset = 3
    _set_central_body_name_method_offset = 4
    _get_version_format_method_offset = 5
    _set_version_format_method_offset = 6
    _get_include_interpolation_boundaries_method_offset = 7
    _set_include_interpolation_boundaries_method_offset = 8
    _get_time_period_method_offset = 9
    _get_step_size_method_offset = 10
    _get_covariance_type_method_offset = 11
    _set_covariance_type_method_offset = 12
    _export_method_offset = 13
    _get_use_vehicle_central_body_method_offset = 14
    _set_use_vehicle_central_body_method_offset = 15
    _metadata = {
        "iid_data" : (4922674629673010859, 417991181173252275),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEphemerisBinaryExportTool)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EphemerisCoordinateSystemType),) }
    @property
    def coordinate_system(self) -> "EphemerisCoordinateSystemType":
        """Whether the resulting data file should be in the Fixed, J2000, or Inertial coordinate system. If Earth or the Sun is the central body, the Inertial coordinate system is not an available option."""
        return self._intf.get_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._get_coordinate_system_metadata)

    _set_coordinate_system_metadata = { "offset" : _set_coordinate_system_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EphemerisCoordinateSystemType),) }
    @coordinate_system.setter
    def coordinate_system(self, coordinate_system:"EphemerisCoordinateSystemType") -> None:
        return self._intf.set_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._set_coordinate_system_metadata, coordinate_system)

    _get_central_body_name_metadata = { "offset" : _get_central_body_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body_name(self) -> str:
        """Get or set the central body of the satellite."""
        return self._intf.get_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._get_central_body_name_metadata)

    _set_central_body_name_metadata = { "offset" : _set_central_body_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @central_body_name.setter
    def central_body_name(self, name:str) -> None:
        return self._intf.set_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._set_central_body_name_metadata, name)

    _get_version_format_metadata = { "offset" : _get_version_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ExportToolVersionFormat),) }
    @property
    def version_format(self) -> "ExportToolVersionFormat":
        """Provide the option to generate files compatible with prior versions of STK."""
        return self._intf.get_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._get_version_format_metadata)

    _set_version_format_metadata = { "offset" : _set_version_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ExportToolVersionFormat),) }
    @version_format.setter
    def version_format(self, version:"ExportToolVersionFormat") -> None:
        return self._intf.set_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._set_version_format_metadata, version)

    _get_include_interpolation_boundaries_metadata = { "offset" : _get_include_interpolation_boundaries_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_interpolation_boundaries(self) -> bool:
        """Include or ignore interpolation boundaries."""
        return self._intf.get_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._get_include_interpolation_boundaries_metadata)

    _set_include_interpolation_boundaries_metadata = { "offset" : _set_include_interpolation_boundaries_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_interpolation_boundaries.setter
    def include_interpolation_boundaries(self, include_interp:bool) -> None:
        return self._intf.set_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._set_include_interpolation_boundaries_metadata, include_interp)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "ExportToolTimePeriod":
        """Set the time period. Options are Use Entire Ephemeris - STK creates a data file using the Start and Stop Time specified in the vehicle's Orbit tab or Specify Time Period - STK creates a data file using the Start and Stop Time specified here."""
        return self._intf.get_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._get_time_period_metadata)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def step_size(self) -> "ExportToolStepSize":
        """If the Use Ephemeris Steps option is not selected, enter a Step Size to be used for the vehicle."""
        return self._intf.get_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._get_step_size_metadata)

    _get_covariance_type_metadata = { "offset" : _get_covariance_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EphemerisCovarianceType),) }
    @property
    def covariance_type(self) -> "EphemerisCovarianceType":
        """Choose to export position covariance (3x3), position/velocity covariance (6x6), or no covariance information. CovarianceType is valid only if the vehicle has ephemeris with covariance."""
        return self._intf.get_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._get_covariance_type_metadata)

    _set_covariance_type_metadata = { "offset" : _set_covariance_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EphemerisCovarianceType),) }
    @covariance_type.setter
    def covariance_type(self, covariance_type:"EphemerisCovarianceType") -> None:
        """Export Position Covariance Type. CovarianceType is valid only if the vehicle has ephemeris with covariance."""
        return self._intf.set_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._set_covariance_type_metadata, covariance_type)

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export(self, file_name:str) -> None:
        """Export the ephemeris file."""
        return self._intf.invoke(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._export_metadata, file_name)

    _get_use_vehicle_central_body_metadata = { "offset" : _get_use_vehicle_central_body_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_vehicle_central_body(self) -> bool:
        """Uses vehicle's central body."""
        return self._intf.get_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._get_use_vehicle_central_body_metadata)

    _set_use_vehicle_central_body_metadata = { "offset" : _set_use_vehicle_central_body_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_vehicle_central_body.setter
    def use_vehicle_central_body(self, use_vehicle_central_body:bool) -> None:
        return self._intf.set_property(VehicleEphemerisBinaryExportTool._metadata, VehicleEphemerisBinaryExportTool._set_use_vehicle_central_body_metadata, use_vehicle_central_body)

    _property_names[coordinate_system] = "coordinate_system"
    _property_names[central_body_name] = "central_body_name"
    _property_names[version_format] = "version_format"
    _property_names[include_interpolation_boundaries] = "include_interpolation_boundaries"
    _property_names[time_period] = "time_period"
    _property_names[step_size] = "step_size"
    _property_names[covariance_type] = "covariance_type"
    _property_names[use_vehicle_central_body] = "use_vehicle_central_body"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEphemerisBinaryExportTool."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEphemerisBinaryExportTool)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEphemerisBinaryExportTool, [VehicleEphemerisBinaryExportTool, ])

agcls.AgClassCatalog.add_catalog_entry((4685969928962103973, 13654683907718941593), VehicleEphemerisBinaryExportTool)
agcls.AgTypeNameMap["VehicleEphemerisBinaryExportTool"] = VehicleEphemerisBinaryExportTool

class OrbitState(IOrbitState, SupportsDeleteCallback):
    """Class defining orbit state."""
    def __init__(self, source_object=None):
        """Construct an object of type OrbitState."""
        SupportsDeleteCallback.__init__(self)
        IOrbitState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrbitState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrbitState, [IOrbitState])

agcls.AgClassCatalog.add_catalog_entry((4738379987433569114, 17071376800203439001), OrbitState)
agcls.AgTypeNameMap["OrbitState"] = OrbitState

class OrbitStateCoordinateSystem(SupportsDeleteCallback):
    """Interface for selecting coordinate epoch for coordinate systems that do not have pre-established epochs."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_type_method_offset = 1
    _get_coordinate_system_epoch_method_offset = 2
    _metadata = {
        "iid_data" : (5576367483576916639, 10750116506217369535),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OrbitStateCoordinateSystem)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @property
    def type(self) -> "CoordinateSystem":
        """Get the coordinate system being used."""
        return self._intf.get_property(OrbitStateCoordinateSystem._metadata, OrbitStateCoordinateSystem._get_type_metadata)

    _get_coordinate_system_epoch_metadata = { "offset" : _get_coordinate_system_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def coordinate_system_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Smart epoch component representing the coordinate epoch. Disabled for coordinate systems with pre-established epochs (e.g. J2000, B1950)."""
        return self._intf.get_property(OrbitStateCoordinateSystem._metadata, OrbitStateCoordinateSystem._get_coordinate_system_epoch_metadata)

    _property_names[type] = "type"
    _property_names[coordinate_system_epoch] = "coordinate_system_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type OrbitStateCoordinateSystem."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OrbitStateCoordinateSystem)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrbitStateCoordinateSystem, [OrbitStateCoordinateSystem, ])

agcls.AgClassCatalog.add_catalog_entry((4733993126589473495, 8530762463240551088), OrbitStateCoordinateSystem)
agcls.AgTypeNameMap["OrbitStateCoordinateSystem"] = OrbitStateCoordinateSystem

class OrbitStateCartesian(IOrbitState, SupportsDeleteCallback):
    """Cartesian coordinate type."""

    _num_methods = 17
    _vtable_offset = IOrbitState._vtable_offset + IOrbitState._num_methods
    _get_coordinate_system_type_method_offset = 1
    _set_coordinate_system_type_method_offset = 2
    _get_coordinate_system_method_offset = 3
    _get_x_position_method_offset = 4
    _set_x_position_method_offset = 5
    _get_y_position_method_offset = 6
    _set_y_position_method_offset = 7
    _get_z_position_method_offset = 8
    _set_z_position_method_offset = 9
    _get_x_velocity_method_offset = 10
    _set_x_velocity_method_offset = 11
    _get_y_velocity_method_offset = 12
    _set_y_velocity_method_offset = 13
    _get_z_velocity_method_offset = 14
    _set_z_velocity_method_offset = 15
    _get_supported_coordinate_system_types_method_offset = 16
    _get_state_epoch_method_offset = 17
    _metadata = {
        "iid_data" : (5302515558598760559, 10145336399339822521),
        "vtable_reference" : IOrbitState._vtable_offset + IOrbitState._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OrbitStateCartesian)

    _get_coordinate_system_type_metadata = { "offset" : _get_coordinate_system_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @property
    def coordinate_system_type(self) -> "CoordinateSystem":
        """Coordinate system being used."""
        return self._intf.get_property(OrbitStateCartesian._metadata, OrbitStateCartesian._get_coordinate_system_type_metadata)

    _set_coordinate_system_type_metadata = { "offset" : _set_coordinate_system_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @coordinate_system_type.setter
    def coordinate_system_type(self, coordinate_system:"CoordinateSystem") -> None:
        return self._intf.set_property(OrbitStateCartesian._metadata, OrbitStateCartesian._set_coordinate_system_type_metadata, coordinate_system)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def coordinate_system(self) -> "OrbitStateCoordinateSystem":
        """Get the coordinate system and epoch."""
        return self._intf.get_property(OrbitStateCartesian._metadata, OrbitStateCartesian._get_coordinate_system_metadata)

    _get_x_position_metadata = { "offset" : _get_x_position_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_position(self) -> float:
        """X position component.Uses Distance Dimension."""
        return self._intf.get_property(OrbitStateCartesian._metadata, OrbitStateCartesian._get_x_position_metadata)

    _set_x_position_metadata = { "offset" : _set_x_position_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_position.setter
    def x_position(self, x_position:float) -> None:
        return self._intf.set_property(OrbitStateCartesian._metadata, OrbitStateCartesian._set_x_position_metadata, x_position)

    _get_y_position_metadata = { "offset" : _get_y_position_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_position(self) -> float:
        """Y position component. Uses Distance Dimension."""
        return self._intf.get_property(OrbitStateCartesian._metadata, OrbitStateCartesian._get_y_position_metadata)

    _set_y_position_metadata = { "offset" : _set_y_position_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_position.setter
    def y_position(self, y_position:float) -> None:
        return self._intf.set_property(OrbitStateCartesian._metadata, OrbitStateCartesian._set_y_position_metadata, y_position)

    _get_z_position_metadata = { "offset" : _get_z_position_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z_position(self) -> float:
        """Z position component. Uses Distance Dimension."""
        return self._intf.get_property(OrbitStateCartesian._metadata, OrbitStateCartesian._get_z_position_metadata)

    _set_z_position_metadata = { "offset" : _set_z_position_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z_position.setter
    def z_position(self, z_position:float) -> None:
        return self._intf.set_property(OrbitStateCartesian._metadata, OrbitStateCartesian._set_z_position_metadata, z_position)

    _get_x_velocity_metadata = { "offset" : _get_x_velocity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_velocity(self) -> float:
        """X velocity component. Uses Rate Dimension."""
        return self._intf.get_property(OrbitStateCartesian._metadata, OrbitStateCartesian._get_x_velocity_metadata)

    _set_x_velocity_metadata = { "offset" : _set_x_velocity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_velocity.setter
    def x_velocity(self, x_velocity:float) -> None:
        return self._intf.set_property(OrbitStateCartesian._metadata, OrbitStateCartesian._set_x_velocity_metadata, x_velocity)

    _get_y_velocity_metadata = { "offset" : _get_y_velocity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_velocity(self) -> float:
        """Y velocity component. Uses Rate Dimension."""
        return self._intf.get_property(OrbitStateCartesian._metadata, OrbitStateCartesian._get_y_velocity_metadata)

    _set_y_velocity_metadata = { "offset" : _set_y_velocity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_velocity.setter
    def y_velocity(self, y_velocity:float) -> None:
        return self._intf.set_property(OrbitStateCartesian._metadata, OrbitStateCartesian._set_y_velocity_metadata, y_velocity)

    _get_z_velocity_metadata = { "offset" : _get_z_velocity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z_velocity(self) -> float:
        """Z velocity component. Uses Rate Dimension."""
        return self._intf.get_property(OrbitStateCartesian._metadata, OrbitStateCartesian._get_z_velocity_metadata)

    _set_z_velocity_metadata = { "offset" : _set_z_velocity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z_velocity.setter
    def z_velocity(self, z_velocity:float) -> None:
        return self._intf.set_property(OrbitStateCartesian._metadata, OrbitStateCartesian._set_z_velocity_metadata, z_velocity)

    _get_supported_coordinate_system_types_metadata = { "offset" : _get_supported_coordinate_system_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_coordinate_system_types(self) -> list:
        """Return an array of supported coordinate system types."""
        return self._intf.get_property(OrbitStateCartesian._metadata, OrbitStateCartesian._get_supported_coordinate_system_types_metadata)

    _get_state_epoch_metadata = { "offset" : _get_state_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def state_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Smart epoch component allows the user to configure the state epoch explicitly or implicitly (using a pre-defined or custom time instant component)."""
        return self._intf.get_property(OrbitStateCartesian._metadata, OrbitStateCartesian._get_state_epoch_metadata)

    _property_names[coordinate_system_type] = "coordinate_system_type"
    _property_names[coordinate_system] = "coordinate_system"
    _property_names[x_position] = "x_position"
    _property_names[y_position] = "y_position"
    _property_names[z_position] = "z_position"
    _property_names[x_velocity] = "x_velocity"
    _property_names[y_velocity] = "y_velocity"
    _property_names[z_velocity] = "z_velocity"
    _property_names[supported_coordinate_system_types] = "supported_coordinate_system_types"
    _property_names[state_epoch] = "state_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type OrbitStateCartesian."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OrbitStateCartesian)
        IOrbitState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrbitState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrbitStateCartesian, [OrbitStateCartesian, IOrbitState])

agcls.AgClassCatalog.add_catalog_entry((4782136154872426300, 3237477011612027562), OrbitStateCartesian)
agcls.AgTypeNameMap["OrbitStateCartesian"] = OrbitStateCartesian

class ClassicalSizeShapeAltitude(IClassicalSizeShape, SupportsDeleteCallback):
    """Interface for specifying orbit size and shape using altitude."""

    _num_methods = 4
    _vtable_offset = IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods
    _get_apogee_altitude_method_offset = 1
    _set_apogee_altitude_method_offset = 2
    _get_perigee_altitude_method_offset = 3
    _set_perigee_altitude_method_offset = 4
    _metadata = {
        "iid_data" : (5137690120002060974, 6797674397970065030),
        "vtable_reference" : IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalSizeShapeAltitude)

    _get_apogee_altitude_metadata = { "offset" : _get_apogee_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def apogee_altitude(self) -> float:
        """Measured from the 'surface' of the Earth to the point of maximum radius in the orbit. For this value, the surface of the Earth is modeled as a sphere whose radius equals the equatorial radius of the Earth. Uses Distance Dimension."""
        return self._intf.get_property(ClassicalSizeShapeAltitude._metadata, ClassicalSizeShapeAltitude._get_apogee_altitude_metadata)

    _set_apogee_altitude_metadata = { "offset" : _set_apogee_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @apogee_altitude.setter
    def apogee_altitude(self, apogee_altitude:float) -> None:
        return self._intf.set_property(ClassicalSizeShapeAltitude._metadata, ClassicalSizeShapeAltitude._set_apogee_altitude_metadata, apogee_altitude)

    _get_perigee_altitude_metadata = { "offset" : _get_perigee_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def perigee_altitude(self) -> float:
        """Measured from the 'surface' of the Earth to the point of minimum radius in the orbit. For this value, the surface of the Earth is modeled as a sphere whose radius equals the equatorial radius of the Earth. Uses Distance Dimension."""
        return self._intf.get_property(ClassicalSizeShapeAltitude._metadata, ClassicalSizeShapeAltitude._get_perigee_altitude_metadata)

    _set_perigee_altitude_metadata = { "offset" : _set_perigee_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @perigee_altitude.setter
    def perigee_altitude(self, perigee_altitude:float) -> None:
        return self._intf.set_property(ClassicalSizeShapeAltitude._metadata, ClassicalSizeShapeAltitude._set_perigee_altitude_metadata, perigee_altitude)

    _property_names[apogee_altitude] = "apogee_altitude"
    _property_names[perigee_altitude] = "perigee_altitude"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalSizeShapeAltitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalSizeShapeAltitude)
        IClassicalSizeShape.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalSizeShape._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalSizeShapeAltitude, [ClassicalSizeShapeAltitude, IClassicalSizeShape])

agcls.AgClassCatalog.add_catalog_entry((4702344160582963911, 10580204977448115587), ClassicalSizeShapeAltitude)
agcls.AgTypeNameMap["ClassicalSizeShapeAltitude"] = ClassicalSizeShapeAltitude

class ClassicalSizeShapeMeanMotion(IClassicalSizeShape, SupportsDeleteCallback):
    """Interface for specifying orbit size and shape using Mean Motion and Eccentricity."""

    _num_methods = 4
    _vtable_offset = IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods
    _get_mean_motion_method_offset = 1
    _set_mean_motion_method_offset = 2
    _get_eccentricity_method_offset = 3
    _set_eccentricity_method_offset = 4
    _metadata = {
        "iid_data" : (5048995065703700153, 4490557524217855666),
        "vtable_reference" : IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalSizeShapeMeanMotion)

    _get_mean_motion_metadata = { "offset" : _get_mean_motion_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mean_motion(self) -> float:
        """Identifies the number of orbits per day (86400 sec/period), based on assumed two-body motion. Uses AngleRate Dimension."""
        return self._intf.get_property(ClassicalSizeShapeMeanMotion._metadata, ClassicalSizeShapeMeanMotion._get_mean_motion_metadata)

    _set_mean_motion_metadata = { "offset" : _set_mean_motion_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mean_motion.setter
    def mean_motion(self, mean_motion:float) -> None:
        return self._intf.set_property(ClassicalSizeShapeMeanMotion._metadata, ClassicalSizeShapeMeanMotion._set_mean_motion_metadata, mean_motion)

    _get_eccentricity_metadata = { "offset" : _get_eccentricity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def eccentricity(self) -> float:
        """Describes the shape of the ellipse (a real number >= 0 and <1, where 0 = a circular orbit). Dimensionless."""
        return self._intf.get_property(ClassicalSizeShapeMeanMotion._metadata, ClassicalSizeShapeMeanMotion._get_eccentricity_metadata)

    _set_eccentricity_metadata = { "offset" : _set_eccentricity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @eccentricity.setter
    def eccentricity(self, eccentricity:float) -> None:
        return self._intf.set_property(ClassicalSizeShapeMeanMotion._metadata, ClassicalSizeShapeMeanMotion._set_eccentricity_metadata, eccentricity)

    _property_names[mean_motion] = "mean_motion"
    _property_names[eccentricity] = "eccentricity"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalSizeShapeMeanMotion."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalSizeShapeMeanMotion)
        IClassicalSizeShape.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalSizeShape._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalSizeShapeMeanMotion, [ClassicalSizeShapeMeanMotion, IClassicalSizeShape])

agcls.AgClassCatalog.add_catalog_entry((4930725580471304453, 1501272340562208147), ClassicalSizeShapeMeanMotion)
agcls.AgTypeNameMap["ClassicalSizeShapeMeanMotion"] = ClassicalSizeShapeMeanMotion

class ClassicalSizeShapePeriod(IClassicalSizeShape, SupportsDeleteCallback):
    """Interface for specifying orbit size and shape using Period and Eccentricity."""

    _num_methods = 4
    _vtable_offset = IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods
    _get_period_method_offset = 1
    _set_period_method_offset = 2
    _get_eccentricity_method_offset = 3
    _set_eccentricity_method_offset = 4
    _metadata = {
        "iid_data" : (5042598716619960034, 17382215511901083299),
        "vtable_reference" : IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalSizeShapePeriod)

    _get_period_metadata = { "offset" : _get_period_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def period(self) -> float:
        """Get or set the duration of one orbit, based on assumed two-body motion. Uses Time Dimension."""
        return self._intf.get_property(ClassicalSizeShapePeriod._metadata, ClassicalSizeShapePeriod._get_period_metadata)

    _set_period_metadata = { "offset" : _set_period_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @period.setter
    def period(self, period:float) -> None:
        return self._intf.set_property(ClassicalSizeShapePeriod._metadata, ClassicalSizeShapePeriod._set_period_metadata, period)

    _get_eccentricity_metadata = { "offset" : _get_eccentricity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def eccentricity(self) -> float:
        """Describes the shape of the ellipse (a real number >= 0 and <1, where 0 = a circular orbit). Dimensionless."""
        return self._intf.get_property(ClassicalSizeShapePeriod._metadata, ClassicalSizeShapePeriod._get_eccentricity_metadata)

    _set_eccentricity_metadata = { "offset" : _set_eccentricity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @eccentricity.setter
    def eccentricity(self, eccentricity:float) -> None:
        return self._intf.set_property(ClassicalSizeShapePeriod._metadata, ClassicalSizeShapePeriod._set_eccentricity_metadata, eccentricity)

    _property_names[period] = "period"
    _property_names[eccentricity] = "eccentricity"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalSizeShapePeriod."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalSizeShapePeriod)
        IClassicalSizeShape.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalSizeShape._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalSizeShapePeriod, [ClassicalSizeShapePeriod, IClassicalSizeShape])

agcls.AgClassCatalog.add_catalog_entry((5029465091564907883, 11560742418048652440), ClassicalSizeShapePeriod)
agcls.AgTypeNameMap["ClassicalSizeShapePeriod"] = ClassicalSizeShapePeriod

class ClassicalSizeShapeRadius(IClassicalSizeShape, SupportsDeleteCallback):
    """Interface for specifying orbit size and shape using Radius."""

    _num_methods = 5
    _vtable_offset = IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods
    _get_apogee_radius_method_offset = 1
    _set_apogee_radius_method_offset = 2
    _get_perigee_radius_method_offset = 3
    _set_perigee_radius_method_offset = 4
    _set_size_shape_radius_method_offset = 5
    _metadata = {
        "iid_data" : (5196351899297238414, 17516994798483867288),
        "vtable_reference" : IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalSizeShapeRadius)

    _get_apogee_radius_metadata = { "offset" : _get_apogee_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def apogee_radius(self) -> float:
        """Measured from the center of the Earth to the point of maximum radius in the orbit. You can set it together with PerigeeRadius using the SetSizeShapeRadius(ApogeeRadius, PerigeeRadius) method. Uses Distance Dimension."""
        return self._intf.get_property(ClassicalSizeShapeRadius._metadata, ClassicalSizeShapeRadius._get_apogee_radius_metadata)

    _set_apogee_radius_metadata = { "offset" : _set_apogee_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @apogee_radius.setter
    def apogee_radius(self, apogee_radius:float) -> None:
        return self._intf.set_property(ClassicalSizeShapeRadius._metadata, ClassicalSizeShapeRadius._set_apogee_radius_metadata, apogee_radius)

    _get_perigee_radius_metadata = { "offset" : _get_perigee_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def perigee_radius(self) -> float:
        """Measured from the center of the Earth to the point of minimum radius in the orbit. You can set it together with ApogeeRadius using the SetSizeShapeRadius(ApogeeRadius, PerigeeRadius) method. Uses Distance Dimension."""
        return self._intf.get_property(ClassicalSizeShapeRadius._metadata, ClassicalSizeShapeRadius._get_perigee_radius_metadata)

    _set_perigee_radius_metadata = { "offset" : _set_perigee_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @perigee_radius.setter
    def perigee_radius(self, perigee_radius:float) -> None:
        return self._intf.set_property(ClassicalSizeShapeRadius._metadata, ClassicalSizeShapeRadius._set_perigee_radius_metadata, perigee_radius)

    _set_size_shape_radius_metadata = { "offset" : _set_size_shape_radius_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def set_size_shape_radius(self, apogee_radius:float, perigee_radius:float) -> None:
        """Set both the Apogee Radius and the Perigee Radius. Displays an error message if the value for PerigeeRadius exceeds that for ApogeeRadius. ApogeeRadius/PerigeeRadius use Distance Dimension."""
        return self._intf.invoke(ClassicalSizeShapeRadius._metadata, ClassicalSizeShapeRadius._set_size_shape_radius_metadata, apogee_radius, perigee_radius)

    _property_names[apogee_radius] = "apogee_radius"
    _property_names[perigee_radius] = "perigee_radius"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalSizeShapeRadius."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalSizeShapeRadius)
        IClassicalSizeShape.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalSizeShape._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalSizeShapeRadius, [ClassicalSizeShapeRadius, IClassicalSizeShape])

agcls.AgClassCatalog.add_catalog_entry((5258941405795058380, 673986590896971443), ClassicalSizeShapeRadius)
agcls.AgTypeNameMap["ClassicalSizeShapeRadius"] = ClassicalSizeShapeRadius

class ClassicalSizeShapeSemimajorAxis(IClassicalSizeShape, SupportsDeleteCallback):
    """Interface for specifying orbit size and shape using Semimajor Axis and Eccentricity."""

    _num_methods = 4
    _vtable_offset = IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods
    _get_semi_major_axis_method_offset = 1
    _set_semi_major_axis_method_offset = 2
    _get_eccentricity_method_offset = 3
    _set_eccentricity_method_offset = 4
    _metadata = {
        "iid_data" : (5249053456545934914, 5992217864237119119),
        "vtable_reference" : IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalSizeShapeSemimajorAxis)

    _get_semi_major_axis_metadata = { "offset" : _get_semi_major_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def semi_major_axis(self) -> float:
        """Half the length of the major (longest) axis of the orbital ellipse. Uses Distance Dimension."""
        return self._intf.get_property(ClassicalSizeShapeSemimajorAxis._metadata, ClassicalSizeShapeSemimajorAxis._get_semi_major_axis_metadata)

    _set_semi_major_axis_metadata = { "offset" : _set_semi_major_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @semi_major_axis.setter
    def semi_major_axis(self, semimajor_axis:float) -> None:
        return self._intf.set_property(ClassicalSizeShapeSemimajorAxis._metadata, ClassicalSizeShapeSemimajorAxis._set_semi_major_axis_metadata, semimajor_axis)

    _get_eccentricity_metadata = { "offset" : _get_eccentricity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def eccentricity(self) -> float:
        """Describes the shape of the ellipse (a real number >= 0 and <1, where 0 = a circular orbit). Dimensionless."""
        return self._intf.get_property(ClassicalSizeShapeSemimajorAxis._metadata, ClassicalSizeShapeSemimajorAxis._get_eccentricity_metadata)

    _set_eccentricity_metadata = { "offset" : _set_eccentricity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @eccentricity.setter
    def eccentricity(self, eccentricity:float) -> None:
        return self._intf.set_property(ClassicalSizeShapeSemimajorAxis._metadata, ClassicalSizeShapeSemimajorAxis._set_eccentricity_metadata, eccentricity)

    _property_names[semi_major_axis] = "semi_major_axis"
    _property_names[eccentricity] = "eccentricity"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalSizeShapeSemimajorAxis."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalSizeShapeSemimajorAxis)
        IClassicalSizeShape.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalSizeShape._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalSizeShapeSemimajorAxis, [ClassicalSizeShapeSemimajorAxis, IClassicalSizeShape])

agcls.AgClassCatalog.add_catalog_entry((4788393693433290789, 12439520452591311242), ClassicalSizeShapeSemimajorAxis)
agcls.AgTypeNameMap["ClassicalSizeShapeSemimajorAxis"] = ClassicalSizeShapeSemimajorAxis

class OrientationLongitudeOfAscending(IOrientationAscNode, SupportsDeleteCallback):
    """Longitude of Ascending Node: the Earth-fixed longitude where the satellite crosses the inertial equator from south to north."""

    _num_methods = 2
    _vtable_offset = IOrientationAscNode._vtable_offset + IOrientationAscNode._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _metadata = {
        "iid_data" : (5566879896408815855, 13185280434718205331),
        "vtable_reference" : IOrientationAscNode._vtable_offset + IOrientationAscNode._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OrientationLongitudeOfAscending)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of Longitude of Ascending Node."""
        return self._intf.get_property(OrientationLongitudeOfAscending._metadata, OrientationLongitudeOfAscending._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(OrientationLongitudeOfAscending._metadata, OrientationLongitudeOfAscending._set_value_metadata, value)

    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type OrientationLongitudeOfAscending."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OrientationLongitudeOfAscending)
        IOrientationAscNode.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrientationAscNode._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrientationLongitudeOfAscending, [OrientationLongitudeOfAscending, IOrientationAscNode])

agcls.AgClassCatalog.add_catalog_entry((5110320661940755645, 2464410520509792396), OrientationLongitudeOfAscending)
agcls.AgTypeNameMap["OrientationLongitudeOfAscending"] = OrientationLongitudeOfAscending

class OrientationRightAscensionOfAscendingNode(IOrientationAscNode, SupportsDeleteCallback):
    """Right Ascension of Ascending Node: the angle from the inertial X axis to the ascending node measured in a right-handed sense about the inertial Z axis in the equatorial plane."""

    _num_methods = 2
    _vtable_offset = IOrientationAscNode._vtable_offset + IOrientationAscNode._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _metadata = {
        "iid_data" : (5038494081393744667, 13903373964753978524),
        "vtable_reference" : IOrientationAscNode._vtable_offset + IOrientationAscNode._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OrientationRightAscensionOfAscendingNode)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of Right Ascension of Ascending Node. Uses Angle Dimension."""
        return self._intf.get_property(OrientationRightAscensionOfAscendingNode._metadata, OrientationRightAscensionOfAscendingNode._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(OrientationRightAscensionOfAscendingNode._metadata, OrientationRightAscensionOfAscendingNode._set_value_metadata, value)

    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type OrientationRightAscensionOfAscendingNode."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OrientationRightAscensionOfAscendingNode)
        IOrientationAscNode.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrientationAscNode._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrientationRightAscensionOfAscendingNode, [OrientationRightAscensionOfAscendingNode, IOrientationAscNode])

agcls.AgClassCatalog.add_catalog_entry((4927881288134799791, 5626958748123138493), OrientationRightAscensionOfAscendingNode)
agcls.AgTypeNameMap["OrientationRightAscensionOfAscendingNode"] = OrientationRightAscensionOfAscendingNode

class ClassicalOrientation(SupportsDeleteCallback):
    """Interface for specifying orbit orientation in the Classical (Keplerian) system."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inclination_method_offset = 1
    _set_inclination_method_offset = 2
    _get_argument_of_periapsis_method_offset = 3
    _set_argument_of_periapsis_method_offset = 4
    _get_ascending_node_type_method_offset = 5
    _set_ascending_node_type_method_offset = 6
    _get_ascending_node_method_offset = 7
    _metadata = {
        "iid_data" : (5519698487242052520, 786661653693457049),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalOrientation)

    _get_inclination_metadata = { "offset" : _get_inclination_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def inclination(self) -> float:
        """Get or set the angle between the angular momentum vector (perpendicular to the plane of the orbit) and the inertial Z axis. Uses Angle Dimension."""
        return self._intf.get_property(ClassicalOrientation._metadata, ClassicalOrientation._get_inclination_metadata)

    _set_inclination_metadata = { "offset" : _set_inclination_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @inclination.setter
    def inclination(self, inclination:float) -> None:
        return self._intf.set_property(ClassicalOrientation._metadata, ClassicalOrientation._set_inclination_metadata, inclination)

    _get_argument_of_periapsis_metadata = { "offset" : _get_argument_of_periapsis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def argument_of_periapsis(self) -> float:
        """Get or set the angle from the ascending node to the eccentricity vector (lowest point of orbit) measured in the direction of the satellite's motion and in the orbit plane. Uses Angle Dimension."""
        return self._intf.get_property(ClassicalOrientation._metadata, ClassicalOrientation._get_argument_of_periapsis_metadata)

    _set_argument_of_periapsis_metadata = { "offset" : _set_argument_of_periapsis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @argument_of_periapsis.setter
    def argument_of_periapsis(self, arg_of_perigee:float) -> None:
        return self._intf.set_property(ClassicalOrientation._metadata, ClassicalOrientation._set_argument_of_periapsis_metadata, arg_of_perigee)

    _get_ascending_node_type_metadata = { "offset" : _get_ascending_node_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(OrientationAscNode),) }
    @property
    def ascending_node_type(self) -> "OrientationAscNode":
        """Select Longitude of Ascending Node or Right Ascension of Ascending Node."""
        return self._intf.get_property(ClassicalOrientation._metadata, ClassicalOrientation._get_ascending_node_type_metadata)

    _set_ascending_node_type_metadata = { "offset" : _set_ascending_node_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(OrientationAscNode),) }
    @ascending_node_type.setter
    def ascending_node_type(self, asc_node:"OrientationAscNode") -> None:
        return self._intf.set_property(ClassicalOrientation._metadata, ClassicalOrientation._set_ascending_node_type_metadata, asc_node)

    _get_ascending_node_metadata = { "offset" : _get_ascending_node_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ascending_node(self) -> "IOrientationAscNode":
        """Value of Longitude of Ascending Node or Right Ascension of Ascending Node."""
        return self._intf.get_property(ClassicalOrientation._metadata, ClassicalOrientation._get_ascending_node_metadata)

    _property_names[inclination] = "inclination"
    _property_names[argument_of_periapsis] = "argument_of_periapsis"
    _property_names[ascending_node_type] = "ascending_node_type"
    _property_names[ascending_node] = "ascending_node"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalOrientation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalOrientation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalOrientation, [ClassicalOrientation, ])

agcls.AgClassCatalog.add_catalog_entry((5507471384982672977, 12894088962803191452), ClassicalOrientation)
agcls.AgTypeNameMap["ClassicalOrientation"] = ClassicalOrientation

class ClassicalLocationArgumentOfLatitude(IClassicalLocation, SupportsDeleteCallback):
    """Interface for Argument of Latitude, used in specifying the spacecraft's location within its orbit at epoch."""

    _num_methods = 2
    _vtable_offset = IClassicalLocation._vtable_offset + IClassicalLocation._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _metadata = {
        "iid_data" : (4965536912425597400, 4116240571718784163),
        "vtable_reference" : IClassicalLocation._vtable_offset + IClassicalLocation._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalLocationArgumentOfLatitude)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of Argument of Latitude: sum of True Anomaly and Argument of Perigee. Uses Angle Dimension."""
        return self._intf.get_property(ClassicalLocationArgumentOfLatitude._metadata, ClassicalLocationArgumentOfLatitude._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(ClassicalLocationArgumentOfLatitude._metadata, ClassicalLocationArgumentOfLatitude._set_value_metadata, value)

    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalLocationArgumentOfLatitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalLocationArgumentOfLatitude)
        IClassicalLocation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalLocation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalLocationArgumentOfLatitude, [ClassicalLocationArgumentOfLatitude, IClassicalLocation])

agcls.AgClassCatalog.add_catalog_entry((5385379616580338397, 12482108153929122494), ClassicalLocationArgumentOfLatitude)
agcls.AgTypeNameMap["ClassicalLocationArgumentOfLatitude"] = ClassicalLocationArgumentOfLatitude

class ClassicalLocationEccentricAnomaly(IClassicalLocation, SupportsDeleteCallback):
    """Interface for Eccentric Anomaly, used in specifying the spacecraft's location within its orbit at epoch."""

    _num_methods = 2
    _vtable_offset = IClassicalLocation._vtable_offset + IClassicalLocation._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _metadata = {
        "iid_data" : (4691318502375106580, 18213484875041755533),
        "vtable_reference" : IClassicalLocation._vtable_offset + IClassicalLocation._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalLocationEccentricAnomaly)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of Eccentric Anomaly: angle measured with origin at center of ellipse from direction of perigee to point on a circumscribing circle from which a line perpendicular to Semimajor Axis intersects position of satellite on ellipse. Uses Angle Dimension."""
        return self._intf.get_property(ClassicalLocationEccentricAnomaly._metadata, ClassicalLocationEccentricAnomaly._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(ClassicalLocationEccentricAnomaly._metadata, ClassicalLocationEccentricAnomaly._set_value_metadata, value)

    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalLocationEccentricAnomaly."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalLocationEccentricAnomaly)
        IClassicalLocation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalLocation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalLocationEccentricAnomaly, [ClassicalLocationEccentricAnomaly, IClassicalLocation])

agcls.AgClassCatalog.add_catalog_entry((5622579332466556946, 8322217066631942281), ClassicalLocationEccentricAnomaly)
agcls.AgTypeNameMap["ClassicalLocationEccentricAnomaly"] = ClassicalLocationEccentricAnomaly

class ClassicalLocationMeanAnomaly(IClassicalLocation, SupportsDeleteCallback):
    """Interface for Mean Anomaly, used in specifying the spacecraft's location within its orbit at epoch."""

    _num_methods = 2
    _vtable_offset = IClassicalLocation._vtable_offset + IClassicalLocation._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _metadata = {
        "iid_data" : (5613318703552701315, 1574876452043636878),
        "vtable_reference" : IClassicalLocation._vtable_offset + IClassicalLocation._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalLocationMeanAnomaly)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of Mean Anomaly: angle from the eccentricity vector to a position vector where the satellite would be if it were always moving at its average angular rate. Uses Angle Dimension."""
        return self._intf.get_property(ClassicalLocationMeanAnomaly._metadata, ClassicalLocationMeanAnomaly._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(ClassicalLocationMeanAnomaly._metadata, ClassicalLocationMeanAnomaly._set_value_metadata, value)

    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalLocationMeanAnomaly."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalLocationMeanAnomaly)
        IClassicalLocation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalLocation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalLocationMeanAnomaly, [ClassicalLocationMeanAnomaly, IClassicalLocation])

agcls.AgClassCatalog.add_catalog_entry((5545902138107511283, 7550579096595426186), ClassicalLocationMeanAnomaly)
agcls.AgTypeNameMap["ClassicalLocationMeanAnomaly"] = ClassicalLocationMeanAnomaly

class ClassicalLocationTimePastAscendingNode(IClassicalLocation, SupportsDeleteCallback):
    """Interface for Time Past Ascending Node, used in specifying the spacecraft's location within its orbit at epoch."""

    _num_methods = 2
    _vtable_offset = IClassicalLocation._vtable_offset + IClassicalLocation._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _metadata = {
        "iid_data" : (5372587345663657292, 3144611149990170009),
        "vtable_reference" : IClassicalLocation._vtable_offset + IClassicalLocation._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalLocationTimePastAscendingNode)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of Time Past Ascending Node: elapsed time since the last ascending node crossing based on assumed two-body motion. Uses Time Dimension."""
        return self._intf.get_property(ClassicalLocationTimePastAscendingNode._metadata, ClassicalLocationTimePastAscendingNode._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(ClassicalLocationTimePastAscendingNode._metadata, ClassicalLocationTimePastAscendingNode._set_value_metadata, value)

    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalLocationTimePastAscendingNode."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalLocationTimePastAscendingNode)
        IClassicalLocation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalLocation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalLocationTimePastAscendingNode, [ClassicalLocationTimePastAscendingNode, IClassicalLocation])

agcls.AgClassCatalog.add_catalog_entry((4668431710294811195, 6630274862510844087), ClassicalLocationTimePastAscendingNode)
agcls.AgTypeNameMap["ClassicalLocationTimePastAscendingNode"] = ClassicalLocationTimePastAscendingNode

class ClassicalLocationTimePastPerigee(IClassicalLocation, SupportsDeleteCallback):
    """Interface for Time Past Perigee, used in specifying the spacecraft's location within its orbit at epoch."""

    _num_methods = 2
    _vtable_offset = IClassicalLocation._vtable_offset + IClassicalLocation._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _metadata = {
        "iid_data" : (4949178523339123801, 14583825837319751343),
        "vtable_reference" : IClassicalLocation._vtable_offset + IClassicalLocation._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalLocationTimePastPerigee)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of Time Past Perigee: elapsed time since the last perigee passage based on assumed two-body motion. Uses Time Dimension."""
        return self._intf.get_property(ClassicalLocationTimePastPerigee._metadata, ClassicalLocationTimePastPerigee._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(ClassicalLocationTimePastPerigee._metadata, ClassicalLocationTimePastPerigee._set_value_metadata, value)

    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalLocationTimePastPerigee."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalLocationTimePastPerigee)
        IClassicalLocation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalLocation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalLocationTimePastPerigee, [ClassicalLocationTimePastPerigee, IClassicalLocation])

agcls.AgClassCatalog.add_catalog_entry((5010262157679565097, 15913564053839003548), ClassicalLocationTimePastPerigee)
agcls.AgTypeNameMap["ClassicalLocationTimePastPerigee"] = ClassicalLocationTimePastPerigee

class ClassicalLocationTrueAnomaly(IClassicalLocation, SupportsDeleteCallback):
    """Interface for True Anomaly, used in specifying the spacecraft's location within its orbit at epoch."""

    _num_methods = 2
    _vtable_offset = IClassicalLocation._vtable_offset + IClassicalLocation._num_methods
    _get_value_method_offset = 1
    _set_value_method_offset = 2
    _metadata = {
        "iid_data" : (5681724925350135017, 9074090663649728697),
        "vtable_reference" : IClassicalLocation._vtable_offset + IClassicalLocation._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ClassicalLocationTrueAnomaly)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of True Anomaly: angle from the eccentricity vector (points toward perigee) to the satellite position vector, measured in the direction of satellite motion and in the orbit plane.Uses Angle Dimension."""
        return self._intf.get_property(ClassicalLocationTrueAnomaly._metadata, ClassicalLocationTrueAnomaly._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @value.setter
    def value(self, value:float) -> None:
        return self._intf.set_property(ClassicalLocationTrueAnomaly._metadata, ClassicalLocationTrueAnomaly._set_value_metadata, value)

    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type ClassicalLocationTrueAnomaly."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ClassicalLocationTrueAnomaly)
        IClassicalLocation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalLocation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ClassicalLocationTrueAnomaly, [ClassicalLocationTrueAnomaly, IClassicalLocation])

agcls.AgClassCatalog.add_catalog_entry((5385345316753586221, 14918910117559941761), ClassicalLocationTrueAnomaly)
agcls.AgTypeNameMap["ClassicalLocationTrueAnomaly"] = ClassicalLocationTrueAnomaly

class OrbitStateClassical(IOrbitState, SupportsDeleteCallback):
    """
    Classical (Keplerian) coordinate type.

    Examples
    --------
    Set the initial state of a satellite and propagate:
    >>> # Satellite satellite: Satellite object
    >>> keplerian = satellite.propagator.initial_state.representation.convert_to(OrbitStateType.CLASSICAL)
    >>> keplerian.size_shape_type = ClassicalSizeShape.ALTITUDE
    >>> keplerian.location_type = ClassicalLocation.TRUE_ANOMALY
    >>> keplerian.orientation.ascending_node_type = OrientationAscNode.LONGITUDE_ASCENDING_NODE
    >>>
    >>> # Assign the perigee and apogee altitude values:
    >>> keplerian.size_shape.perigee_altitude = 500  # km
    >>> keplerian.size_shape.apogee_altitude = 600  # km
    >>>
    >>> # Assign the other desired orbital parameters:
    >>> keplerian.orientation.inclination = 90  # deg
    >>> keplerian.orientation.argument_of_periapsis = 12  # deg
    >>> keplerian.orientation.ascending_node.value = 24  # deg
    >>> keplerian.location.value = 180  # deg
    >>>
    >>> # Apply the changes made to the satellite's state and propagate:
    >>> satellite.propagator.initial_state.representation.assign(keplerian)
    >>> satellite.propagator.propagate()
    """

    _num_methods = 12
    _vtable_offset = IOrbitState._vtable_offset + IOrbitState._num_methods
    _get_coordinate_system_type_method_offset = 1
    _set_coordinate_system_type_method_offset = 2
    _get_coordinate_system_method_offset = 3
    _get_size_shape_type_method_offset = 4
    _set_size_shape_type_method_offset = 5
    _get_size_shape_method_offset = 6
    _get_orientation_method_offset = 7
    _get_location_type_method_offset = 8
    _set_location_type_method_offset = 9
    _get_location_method_offset = 10
    _get_supported_coordinate_system_types_method_offset = 11
    _get_state_epoch_method_offset = 12
    _metadata = {
        "iid_data" : (5547141629741758930, 7233568737058917549),
        "vtable_reference" : IOrbitState._vtable_offset + IOrbitState._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OrbitStateClassical)

    _get_coordinate_system_type_metadata = { "offset" : _get_coordinate_system_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @property
    def coordinate_system_type(self) -> "CoordinateSystem":
        """Coordinate system being used."""
        return self._intf.get_property(OrbitStateClassical._metadata, OrbitStateClassical._get_coordinate_system_type_metadata)

    _set_coordinate_system_type_metadata = { "offset" : _set_coordinate_system_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @coordinate_system_type.setter
    def coordinate_system_type(self, coordinate_system:"CoordinateSystem") -> None:
        return self._intf.set_property(OrbitStateClassical._metadata, OrbitStateClassical._set_coordinate_system_type_metadata, coordinate_system)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def coordinate_system(self) -> "OrbitStateCoordinateSystem":
        """Get the coordinate system and coordinate epoch."""
        return self._intf.get_property(OrbitStateClassical._metadata, OrbitStateClassical._get_coordinate_system_metadata)

    _get_size_shape_type_metadata = { "offset" : _get_size_shape_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ClassicalSizeShape),) }
    @property
    def size_shape_type(self) -> "ClassicalSizeShape":
        """Get or set the pair of elements used for specifying orbit size and shape."""
        return self._intf.get_property(OrbitStateClassical._metadata, OrbitStateClassical._get_size_shape_type_metadata)

    _set_size_shape_type_metadata = { "offset" : _set_size_shape_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ClassicalSizeShape),) }
    @size_shape_type.setter
    def size_shape_type(self, size_shape:"ClassicalSizeShape") -> None:
        return self._intf.set_property(OrbitStateClassical._metadata, OrbitStateClassical._set_size_shape_type_metadata, size_shape)

    _get_size_shape_metadata = { "offset" : _get_size_shape_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def size_shape(self) -> "IClassicalSizeShape":
        """Get the size and shape of the orbit."""
        return self._intf.get_property(OrbitStateClassical._metadata, OrbitStateClassical._get_size_shape_metadata)

    _get_orientation_metadata = { "offset" : _get_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orientation(self) -> "ClassicalOrientation":
        """Get the orbit orientation."""
        return self._intf.get_property(OrbitStateClassical._metadata, OrbitStateClassical._get_orientation_metadata)

    _get_location_type_metadata = { "offset" : _get_location_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ClassicalLocation),) }
    @property
    def location_type(self) -> "ClassicalLocation":
        """Get or set the element used for specifying spacecraft location in the orbit at epoch."""
        return self._intf.get_property(OrbitStateClassical._metadata, OrbitStateClassical._get_location_type_metadata)

    _set_location_type_metadata = { "offset" : _set_location_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ClassicalLocation),) }
    @location_type.setter
    def location_type(self, location:"ClassicalLocation") -> None:
        return self._intf.set_property(OrbitStateClassical._metadata, OrbitStateClassical._set_location_type_metadata, location)

    _get_location_metadata = { "offset" : _get_location_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def location(self) -> "IClassicalLocation":
        """Get the location of the spacecraft in the orbit at epoch."""
        return self._intf.get_property(OrbitStateClassical._metadata, OrbitStateClassical._get_location_metadata)

    _get_supported_coordinate_system_types_metadata = { "offset" : _get_supported_coordinate_system_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_coordinate_system_types(self) -> list:
        """Return an array of supported coordinate system types."""
        return self._intf.get_property(OrbitStateClassical._metadata, OrbitStateClassical._get_supported_coordinate_system_types_metadata)

    _get_state_epoch_metadata = { "offset" : _get_state_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def state_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Smart epoch component allows the user to configure the state epoch explicitly or implicitly (using a pre-defined or custom time instant component)."""
        return self._intf.get_property(OrbitStateClassical._metadata, OrbitStateClassical._get_state_epoch_metadata)

    _property_names[coordinate_system_type] = "coordinate_system_type"
    _property_names[coordinate_system] = "coordinate_system"
    _property_names[size_shape_type] = "size_shape_type"
    _property_names[size_shape] = "size_shape"
    _property_names[orientation] = "orientation"
    _property_names[location_type] = "location_type"
    _property_names[location] = "location"
    _property_names[supported_coordinate_system_types] = "supported_coordinate_system_types"
    _property_names[state_epoch] = "state_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type OrbitStateClassical."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OrbitStateClassical)
        IOrbitState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrbitState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrbitStateClassical, [OrbitStateClassical, IOrbitState])

agcls.AgClassCatalog.add_catalog_entry((5271306322198530046, 13129728071671038387), OrbitStateClassical)
agcls.AgTypeNameMap["OrbitStateClassical"] = OrbitStateClassical

class DeticSizeAltitude(IGeodeticSize, SupportsDeleteCallback):
    """Interface for Altitude and Altitude Rate (for Geodetic coordinate type)."""

    _num_methods = 4
    _vtable_offset = IGeodeticSize._vtable_offset + IGeodeticSize._num_methods
    _get_altitude_method_offset = 1
    _set_altitude_method_offset = 2
    _get_rate_method_offset = 3
    _set_rate_method_offset = 4
    _metadata = {
        "iid_data" : (5679794449313839053, 9935380791779410367),
        "vtable_reference" : IGeodeticSize._vtable_offset + IGeodeticSize._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DeticSizeAltitude)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Measured along an outward normal to the surface of the ellipsoid. Uses Distance Dimension."""
        return self._intf.get_property(DeticSizeAltitude._metadata, DeticSizeAltitude._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, altitude:float) -> None:
        return self._intf.set_property(DeticSizeAltitude._metadata, DeticSizeAltitude._set_altitude_metadata, altitude)

    _get_rate_metadata = { "offset" : _get_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def rate(self) -> float:
        """Rate of change of altitude. Uses Rate Dimension."""
        return self._intf.get_property(DeticSizeAltitude._metadata, DeticSizeAltitude._get_rate_metadata)

    _set_rate_metadata = { "offset" : _set_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @rate.setter
    def rate(self, rate:float) -> None:
        return self._intf.set_property(DeticSizeAltitude._metadata, DeticSizeAltitude._set_rate_metadata, rate)

    _property_names[altitude] = "altitude"
    _property_names[rate] = "rate"

    def __init__(self, source_object=None):
        """Construct an object of type DeticSizeAltitude."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DeticSizeAltitude)
        IGeodeticSize.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGeodeticSize._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DeticSizeAltitude, [DeticSizeAltitude, IGeodeticSize])

agcls.AgClassCatalog.add_catalog_entry((5288884246144674588, 3721338295498173855), DeticSizeAltitude)
agcls.AgTypeNameMap["DeticSizeAltitude"] = DeticSizeAltitude

class DeticSizeRadius(IGeodeticSize, SupportsDeleteCallback):
    """Interface for Radius and Radius Rate (for Geodetic coordinate type)."""

    _num_methods = 4
    _vtable_offset = IGeodeticSize._vtable_offset + IGeodeticSize._num_methods
    _get_radius_method_offset = 1
    _set_radius_method_offset = 2
    _get_rate_method_offset = 3
    _set_rate_method_offset = 4
    _metadata = {
        "iid_data" : (4832160016579036866, 5269391692247614876),
        "vtable_reference" : IGeodeticSize._vtable_offset + IGeodeticSize._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DeticSizeRadius)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """Measured from the center of the Earth. Uses Distance Dimension."""
        return self._intf.get_property(DeticSizeRadius._metadata, DeticSizeRadius._get_radius_metadata)

    _set_radius_metadata = { "offset" : _set_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius.setter
    def radius(self, radius:float) -> None:
        return self._intf.set_property(DeticSizeRadius._metadata, DeticSizeRadius._set_radius_metadata, radius)

    _get_rate_metadata = { "offset" : _get_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def rate(self) -> float:
        """Rate of change in radius. Uses Rate Dimension."""
        return self._intf.get_property(DeticSizeRadius._metadata, DeticSizeRadius._get_rate_metadata)

    _set_rate_metadata = { "offset" : _set_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @rate.setter
    def rate(self, rate:float) -> None:
        return self._intf.set_property(DeticSizeRadius._metadata, DeticSizeRadius._set_rate_metadata, rate)

    _property_names[radius] = "radius"
    _property_names[rate] = "rate"

    def __init__(self, source_object=None):
        """Construct an object of type DeticSizeRadius."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DeticSizeRadius)
        IGeodeticSize.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IGeodeticSize._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DeticSizeRadius, [DeticSizeRadius, IGeodeticSize])

agcls.AgClassCatalog.add_catalog_entry((5569639631838119942, 6573347978609757617), DeticSizeRadius)
agcls.AgTypeNameMap["DeticSizeRadius"] = DeticSizeRadius

class OrbitStateDetic(IOrbitState, SupportsDeleteCallback):
    """Geodetic coordinate type (available only with a Fixed coordinate system)."""

    _num_methods = 16
    _vtable_offset = IOrbitState._vtable_offset + IOrbitState._num_methods
    _get_coordinate_system_type_method_offset = 1
    _set_coordinate_system_type_method_offset = 2
    _get_coordinate_system_method_offset = 3
    _get_size_type_method_offset = 4
    _set_size_type_method_offset = 5
    _get_size_method_offset = 6
    _get_latitude_method_offset = 7
    _set_latitude_method_offset = 8
    _get_longitude_method_offset = 9
    _set_longitude_method_offset = 10
    _get_latitude_rate_method_offset = 11
    _set_latitude_rate_method_offset = 12
    _get_longitude_rate_method_offset = 13
    _set_longitude_rate_method_offset = 14
    _get_supported_coordinate_system_types_method_offset = 15
    _get_state_epoch_method_offset = 16
    _metadata = {
        "iid_data" : (4994959214783724962, 1099208314094630791),
        "vtable_reference" : IOrbitState._vtable_offset + IOrbitState._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OrbitStateDetic)

    _get_coordinate_system_type_metadata = { "offset" : _get_coordinate_system_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @property
    def coordinate_system_type(self) -> "CoordinateSystem":
        """Get or set the coordinate system being used. Note that the Geodetic coordinate type is available only if a Fixed coordinate system is selected."""
        return self._intf.get_property(OrbitStateDetic._metadata, OrbitStateDetic._get_coordinate_system_type_metadata)

    _set_coordinate_system_type_metadata = { "offset" : _set_coordinate_system_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @coordinate_system_type.setter
    def coordinate_system_type(self, coordinate_system:"CoordinateSystem") -> None:
        return self._intf.set_property(OrbitStateDetic._metadata, OrbitStateDetic._set_coordinate_system_type_metadata, coordinate_system)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def coordinate_system(self) -> "OrbitStateCoordinateSystem":
        """Get the coordinate system and coordinate epoch. Note that with the Fixed coordinate system (required for the Geodetic coordinate type), the coordinate epoch is preset."""
        return self._intf.get_property(OrbitStateDetic._metadata, OrbitStateDetic._get_coordinate_system_metadata)

    _get_size_type_metadata = { "offset" : _get_size_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(GeodeticSize),) }
    @property
    def size_type(self) -> "GeodeticSize":
        """Get or set the element (altitude or radius) used to specify size."""
        return self._intf.get_property(OrbitStateDetic._metadata, OrbitStateDetic._get_size_type_metadata)

    _set_size_type_metadata = { "offset" : _set_size_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(GeodeticSize),) }
    @size_type.setter
    def size_type(self, size:"GeodeticSize") -> None:
        return self._intf.set_property(OrbitStateDetic._metadata, OrbitStateDetic._set_size_type_metadata, size)

    _get_size_metadata = { "offset" : _get_size_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def size(self) -> "IGeodeticSize":
        """Get the value of the altitude or radius."""
        return self._intf.get_property(OrbitStateDetic._metadata, OrbitStateDetic._get_size_metadata)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Get or set the angle between the normal to the reference ellipsoid and the equatorial plane. Uses Angle Dimension."""
        return self._intf.get_property(OrbitStateDetic._metadata, OrbitStateDetic._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude.setter
    def latitude(self, latitude:float) -> None:
        return self._intf.set_property(OrbitStateDetic._metadata, OrbitStateDetic._set_latitude_metadata, latitude)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Get or set the angle between the projection of the position vector in the equatorial plane and the prime meridian. Uses Angle Dimension."""
        return self._intf.get_property(OrbitStateDetic._metadata, OrbitStateDetic._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, longitude:float) -> None:
        return self._intf.set_property(OrbitStateDetic._metadata, OrbitStateDetic._set_longitude_metadata, longitude)

    _get_latitude_rate_metadata = { "offset" : _get_latitude_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude_rate(self) -> float:
        """Get or set the rate of change in latitude. Uses AngleRate Dimension."""
        return self._intf.get_property(OrbitStateDetic._metadata, OrbitStateDetic._get_latitude_rate_metadata)

    _set_latitude_rate_metadata = { "offset" : _set_latitude_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude_rate.setter
    def latitude_rate(self, latitude_rate:float) -> None:
        return self._intf.set_property(OrbitStateDetic._metadata, OrbitStateDetic._set_latitude_rate_metadata, latitude_rate)

    _get_longitude_rate_metadata = { "offset" : _get_longitude_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude_rate(self) -> float:
        """Get or set the rate of change in longitude. Uses AngleRate Dimension."""
        return self._intf.get_property(OrbitStateDetic._metadata, OrbitStateDetic._get_longitude_rate_metadata)

    _set_longitude_rate_metadata = { "offset" : _set_longitude_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude_rate.setter
    def longitude_rate(self, longitude_rate:float) -> None:
        return self._intf.set_property(OrbitStateDetic._metadata, OrbitStateDetic._set_longitude_rate_metadata, longitude_rate)

    _get_supported_coordinate_system_types_metadata = { "offset" : _get_supported_coordinate_system_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_coordinate_system_types(self) -> list:
        """Return an array of supported coordinate system types."""
        return self._intf.get_property(OrbitStateDetic._metadata, OrbitStateDetic._get_supported_coordinate_system_types_metadata)

    _get_state_epoch_metadata = { "offset" : _get_state_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def state_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Smart epoch component allows the user to configure the state epoch explicitly or implicitly (using a pre-defined or custom time instant component)."""
        return self._intf.get_property(OrbitStateDetic._metadata, OrbitStateDetic._get_state_epoch_metadata)

    _property_names[coordinate_system_type] = "coordinate_system_type"
    _property_names[coordinate_system] = "coordinate_system"
    _property_names[size_type] = "size_type"
    _property_names[size] = "size"
    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[latitude_rate] = "latitude_rate"
    _property_names[longitude_rate] = "longitude_rate"
    _property_names[supported_coordinate_system_types] = "supported_coordinate_system_types"
    _property_names[state_epoch] = "state_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type OrbitStateDetic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OrbitStateDetic)
        IOrbitState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrbitState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrbitStateDetic, [OrbitStateDetic, IOrbitState])

agcls.AgClassCatalog.add_catalog_entry((5518426870499846210, 17343173836313296302), OrbitStateDetic)
agcls.AgTypeNameMap["OrbitStateDetic"] = OrbitStateDetic

class DelaunayL(IDelaunayActionVariable, SupportsDeleteCallback):
    """Interface for Delaunay Variable L, which is related to the two-body orbital energy."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_l_method_offset = 1
    _set_l_method_offset = 2
    _metadata = {
        "iid_data" : (4737118860856991371, 10340546851057520001),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DelaunayL)

    _get_l_metadata = { "offset" : _get_l_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def l(self) -> float:
        """Value of Delaunay L. Dimensionless."""
        return self._intf.get_property(DelaunayL._metadata, DelaunayL._get_l_metadata)

    _set_l_metadata = { "offset" : _set_l_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @l.setter
    def l(self, vl:float) -> None:
        return self._intf.set_property(DelaunayL._metadata, DelaunayL._set_l_metadata, vl)

    _property_names[l] = "l"

    def __init__(self, source_object=None):
        """Construct an object of type DelaunayL."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DelaunayL)
        IDelaunayActionVariable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDelaunayActionVariable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DelaunayL, [DelaunayL, IDelaunayActionVariable])

agcls.AgClassCatalog.add_catalog_entry((5357336489194798121, 16571106145161987245), DelaunayL)
agcls.AgTypeNameMap["DelaunayL"] = DelaunayL

class DelaunayLOverSQRTmu(IDelaunayActionVariable, SupportsDeleteCallback):
    """Interface for Delaunay Variable L/SQRT(mu), i.e. L divided the square root of the central-body gravitational constant, yielding a geometric version of the Delaunay set that is independent of the central body."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_l_over_sqrt_mu_method_offset = 1
    _set_l_over_sqrt_mu_method_offset = 2
    _metadata = {
        "iid_data" : (5220118732539741475, 2819117051404214715),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DelaunayLOverSQRTmu)

    _get_l_over_sqrt_mu_metadata = { "offset" : _get_l_over_sqrt_mu_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def l_over_sqrt_mu(self) -> float:
        """Value of L/SQRT(mu). Dimensionless."""
        return self._intf.get_property(DelaunayLOverSQRTmu._metadata, DelaunayLOverSQRTmu._get_l_over_sqrt_mu_metadata)

    _set_l_over_sqrt_mu_metadata = { "offset" : _set_l_over_sqrt_mu_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @l_over_sqrt_mu.setter
    def l_over_sqrt_mu(self, l_sqrt:float) -> None:
        return self._intf.set_property(DelaunayLOverSQRTmu._metadata, DelaunayLOverSQRTmu._set_l_over_sqrt_mu_metadata, l_sqrt)

    _property_names[l_over_sqrt_mu] = "l_over_sqrt_mu"

    def __init__(self, source_object=None):
        """Construct an object of type DelaunayLOverSQRTmu."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DelaunayLOverSQRTmu)
        IDelaunayActionVariable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDelaunayActionVariable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DelaunayLOverSQRTmu, [DelaunayLOverSQRTmu, IDelaunayActionVariable])

agcls.AgClassCatalog.add_catalog_entry((5002017505165831291, 2866607147741543354), DelaunayLOverSQRTmu)
agcls.AgTypeNameMap["DelaunayLOverSQRTmu"] = DelaunayLOverSQRTmu

class DelaunayH(IDelaunayActionVariable, SupportsDeleteCallback):
    """Value of Delaunay Variable H, which is the Z component of the orbital angular momentum."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_h_method_offset = 1
    _set_h_method_offset = 2
    _metadata = {
        "iid_data" : (5156960879978334551, 3349719268156218752),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DelaunayH)

    _get_h_metadata = { "offset" : _get_h_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def h(self) -> float:
        """Get or set the value of Delaunay H. Dimensionless."""
        return self._intf.get_property(DelaunayH._metadata, DelaunayH._get_h_metadata)

    _set_h_metadata = { "offset" : _set_h_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @h.setter
    def h(self, vh:float) -> None:
        return self._intf.set_property(DelaunayH._metadata, DelaunayH._set_h_metadata, vh)

    _property_names[h] = "h"

    def __init__(self, source_object=None):
        """Construct an object of type DelaunayH."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DelaunayH)
        IDelaunayActionVariable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDelaunayActionVariable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DelaunayH, [DelaunayH, IDelaunayActionVariable])

agcls.AgClassCatalog.add_catalog_entry((5005454078592453433, 1720754957342617991), DelaunayH)
agcls.AgTypeNameMap["DelaunayH"] = DelaunayH

class DelaunayHOverSQRTmu(IDelaunayActionVariable, SupportsDeleteCallback):
    """Interface for Delaunay Variable H/SQRT(mu), i.e. H divided the square root of the central-body gravitational constant, yielding a geometric version of the Delaunay set that is independent of the central body."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_h_over_sqrt_mu_method_offset = 1
    _set_h_over_sqrt_mu_method_offset = 2
    _metadata = {
        "iid_data" : (5671008483453038748, 14283089759773106061),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DelaunayHOverSQRTmu)

    _get_h_over_sqrt_mu_metadata = { "offset" : _get_h_over_sqrt_mu_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def h_over_sqrt_mu(self) -> float:
        """Get or set the value of H/SQRT(mu). Dimensionless."""
        return self._intf.get_property(DelaunayHOverSQRTmu._metadata, DelaunayHOverSQRTmu._get_h_over_sqrt_mu_metadata)

    _set_h_over_sqrt_mu_metadata = { "offset" : _set_h_over_sqrt_mu_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @h_over_sqrt_mu.setter
    def h_over_sqrt_mu(self, h_sqrt:float) -> None:
        return self._intf.set_property(DelaunayHOverSQRTmu._metadata, DelaunayHOverSQRTmu._set_h_over_sqrt_mu_metadata, h_sqrt)

    _property_names[h_over_sqrt_mu] = "h_over_sqrt_mu"

    def __init__(self, source_object=None):
        """Construct an object of type DelaunayHOverSQRTmu."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DelaunayHOverSQRTmu)
        IDelaunayActionVariable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDelaunayActionVariable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DelaunayHOverSQRTmu, [DelaunayHOverSQRTmu, IDelaunayActionVariable])

agcls.AgClassCatalog.add_catalog_entry((5653493154365288368, 11360382099589870008), DelaunayHOverSQRTmu)
agcls.AgTypeNameMap["DelaunayHOverSQRTmu"] = DelaunayHOverSQRTmu

class DelaunayG(IDelaunayActionVariable, SupportsDeleteCallback):
    """Interface for Delaunay Variagle G, the magnitude of the orbital angular momentum."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_g_method_offset = 1
    _set_g_method_offset = 2
    _metadata = {
        "iid_data" : (5443307767683081808, 16974838870955564190),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DelaunayG)

    _get_g_metadata = { "offset" : _get_g_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def g(self) -> float:
        """Get or set the value of Delaunay G. Dimensionless."""
        return self._intf.get_property(DelaunayG._metadata, DelaunayG._get_g_metadata)

    _set_g_metadata = { "offset" : _set_g_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @g.setter
    def g(self, vg:float) -> None:
        return self._intf.set_property(DelaunayG._metadata, DelaunayG._set_g_metadata, vg)

    _property_names[g] = "g"

    def __init__(self, source_object=None):
        """Construct an object of type DelaunayG."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DelaunayG)
        IDelaunayActionVariable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDelaunayActionVariable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DelaunayG, [DelaunayG, IDelaunayActionVariable])

agcls.AgClassCatalog.add_catalog_entry((4799365878066283604, 9032319084935065530), DelaunayG)
agcls.AgTypeNameMap["DelaunayG"] = DelaunayG

class DelaunayGOverSQRTmu(IDelaunayActionVariable, SupportsDeleteCallback):
    """Interface for Delaunay Variable G/SQRT(mu), i.e. G divided the square root of the central-body gravitational constant, yielding a geometric version of the Delaunay set that is independent of the central body."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_g_over_sqrt_mu_method_offset = 1
    _set_g_over_sqrt_mu_method_offset = 2
    _metadata = {
        "iid_data" : (5590802254303050279, 11051703493722905476),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DelaunayGOverSQRTmu)

    _get_g_over_sqrt_mu_metadata = { "offset" : _get_g_over_sqrt_mu_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def g_over_sqrt_mu(self) -> float:
        """Get or set the value of G/SQRT(mu). Dimensionless."""
        return self._intf.get_property(DelaunayGOverSQRTmu._metadata, DelaunayGOverSQRTmu._get_g_over_sqrt_mu_metadata)

    _set_g_over_sqrt_mu_metadata = { "offset" : _set_g_over_sqrt_mu_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @g_over_sqrt_mu.setter
    def g_over_sqrt_mu(self, g_sqrt:float) -> None:
        return self._intf.set_property(DelaunayGOverSQRTmu._metadata, DelaunayGOverSQRTmu._set_g_over_sqrt_mu_metadata, g_sqrt)

    _property_names[g_over_sqrt_mu] = "g_over_sqrt_mu"

    def __init__(self, source_object=None):
        """Construct an object of type DelaunayGOverSQRTmu."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DelaunayGOverSQRTmu)
        IDelaunayActionVariable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDelaunayActionVariable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DelaunayGOverSQRTmu, [DelaunayGOverSQRTmu, IDelaunayActionVariable])

agcls.AgClassCatalog.add_catalog_entry((5194822834274263863, 11608236189499232658), DelaunayGOverSQRTmu)
agcls.AgTypeNameMap["DelaunayGOverSQRTmu"] = DelaunayGOverSQRTmu

class OrbitStateDelaunay(IOrbitState, SupportsDeleteCallback):
    """Delaunay coordinate type, using a set of canonical action-angle variables, which are commonly used in general perturbation theories."""

    _num_methods = 20
    _vtable_offset = IOrbitState._vtable_offset + IOrbitState._num_methods
    _get_coordinate_system_type_method_offset = 1
    _set_coordinate_system_type_method_offset = 2
    _get_coordinate_system_method_offset = 3
    _get_l_type_method_offset = 4
    _set_l_type_method_offset = 5
    _get_l_method_offset = 6
    _get_h_type_method_offset = 7
    _set_h_type_method_offset = 8
    _get_h_method_offset = 9
    _get_g_type_method_offset = 10
    _set_g_type_method_offset = 11
    _get_g_method_offset = 12
    _get_supported_coordinate_system_types_method_offset = 13
    _get_mean_anomaly_method_offset = 14
    _set_mean_anomaly_method_offset = 15
    _get_argument_of_periapsis_method_offset = 16
    _set_argument_of_periapsis_method_offset = 17
    _get_right_ascension_ascending_node_method_offset = 18
    _set_right_ascension_ascending_node_method_offset = 19
    _get_state_epoch_method_offset = 20
    _metadata = {
        "iid_data" : (5583712275714503496, 16306042116291067791),
        "vtable_reference" : IOrbitState._vtable_offset + IOrbitState._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OrbitStateDelaunay)

    _get_coordinate_system_type_metadata = { "offset" : _get_coordinate_system_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @property
    def coordinate_system_type(self) -> "CoordinateSystem":
        """Get or set the coordinate system being used."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_coordinate_system_type_metadata)

    _set_coordinate_system_type_metadata = { "offset" : _set_coordinate_system_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @coordinate_system_type.setter
    def coordinate_system_type(self, coordinate_system:"CoordinateSystem") -> None:
        return self._intf.set_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._set_coordinate_system_type_metadata, coordinate_system)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def coordinate_system(self) -> "OrbitStateCoordinateSystem":
        """Get the coordinate system and coordinate epoch."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_coordinate_system_metadata)

    _get_l_type_metadata = { "offset" : _get_l_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DelaunayLType),) }
    @property
    def l_type(self) -> "DelaunayLType":
        """Option for Delaunay L (default or L/SQRT(mu)."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_l_type_metadata)

    _set_l_type_metadata = { "offset" : _set_l_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(DelaunayLType),) }
    @l_type.setter
    def l_type(self, vl:"DelaunayLType") -> None:
        return self._intf.set_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._set_l_type_metadata, vl)

    _get_l_metadata = { "offset" : _get_l_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def l(self) -> "IDelaunayActionVariable":
        """Value of L or L/SQRT(mu)."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_l_metadata)

    _get_h_type_metadata = { "offset" : _get_h_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DelaunayHType),) }
    @property
    def h_type(self) -> "DelaunayHType":
        """Option for Delaunay H (default or H/SQRT(mu)."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_h_type_metadata)

    _set_h_type_metadata = { "offset" : _set_h_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(DelaunayHType),) }
    @h_type.setter
    def h_type(self, vh:"DelaunayHType") -> None:
        return self._intf.set_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._set_h_type_metadata, vh)

    _get_h_metadata = { "offset" : _get_h_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def h(self) -> "IDelaunayActionVariable":
        """Value of H or H/SQRT(mu)."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_h_metadata)

    _get_g_type_metadata = { "offset" : _get_g_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DelaunayGType),) }
    @property
    def g_type(self) -> "DelaunayGType":
        """Option for Delaunay G (default or G/SQRT(mu)."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_g_type_metadata)

    _set_g_type_metadata = { "offset" : _set_g_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(DelaunayGType),) }
    @g_type.setter
    def g_type(self, vg:"DelaunayGType") -> None:
        return self._intf.set_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._set_g_type_metadata, vg)

    _get_g_metadata = { "offset" : _get_g_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def g(self) -> "IDelaunayActionVariable":
        """Value of G or G/SQRT(mu)."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_g_metadata)

    _get_supported_coordinate_system_types_metadata = { "offset" : _get_supported_coordinate_system_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_coordinate_system_types(self) -> list:
        """Return an array of supported coordinate system types."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_supported_coordinate_system_types_metadata)

    _get_mean_anomaly_metadata = { "offset" : _get_mean_anomaly_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mean_anomaly(self) -> float:
        """Mean Anomaly (l). Uses Angle Dimension."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_mean_anomaly_metadata)

    _set_mean_anomaly_metadata = { "offset" : _set_mean_anomaly_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mean_anomaly.setter
    def mean_anomaly(self, mean_anomaly:float) -> None:
        return self._intf.set_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._set_mean_anomaly_metadata, mean_anomaly)

    _get_argument_of_periapsis_metadata = { "offset" : _get_argument_of_periapsis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def argument_of_periapsis(self) -> float:
        """Argument of periapsis (g). Uses Angle Dimension."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_argument_of_periapsis_metadata)

    _set_argument_of_periapsis_metadata = { "offset" : _set_argument_of_periapsis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @argument_of_periapsis.setter
    def argument_of_periapsis(self, arg_of_periapsis:float) -> None:
        return self._intf.set_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._set_argument_of_periapsis_metadata, arg_of_periapsis)

    _get_right_ascension_ascending_node_metadata = { "offset" : _get_right_ascension_ascending_node_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def right_ascension_ascending_node(self) -> float:
        """RAAN (h). Uses Angle Dimension."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_right_ascension_ascending_node_metadata)

    _set_right_ascension_ascending_node_metadata = { "offset" : _set_right_ascension_ascending_node_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @right_ascension_ascending_node.setter
    def right_ascension_ascending_node(self, raan:float) -> None:
        return self._intf.set_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._set_right_ascension_ascending_node_metadata, raan)

    _get_state_epoch_metadata = { "offset" : _get_state_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def state_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Smart epoch component allows the user to configure the state epoch explicitly or implicitly (using a pre-defined or custom time instant component)."""
        return self._intf.get_property(OrbitStateDelaunay._metadata, OrbitStateDelaunay._get_state_epoch_metadata)

    _property_names[coordinate_system_type] = "coordinate_system_type"
    _property_names[coordinate_system] = "coordinate_system"
    _property_names[l_type] = "l_type"
    _property_names[l] = "l"
    _property_names[h_type] = "h_type"
    _property_names[h] = "h"
    _property_names[g_type] = "g_type"
    _property_names[g] = "g"
    _property_names[supported_coordinate_system_types] = "supported_coordinate_system_types"
    _property_names[mean_anomaly] = "mean_anomaly"
    _property_names[argument_of_periapsis] = "argument_of_periapsis"
    _property_names[right_ascension_ascending_node] = "right_ascension_ascending_node"
    _property_names[state_epoch] = "state_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type OrbitStateDelaunay."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OrbitStateDelaunay)
        IOrbitState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrbitState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrbitStateDelaunay, [OrbitStateDelaunay, IOrbitState])

agcls.AgClassCatalog.add_catalog_entry((5021898800073419132, 11938714475328530093), OrbitStateDelaunay)
agcls.AgTypeNameMap["OrbitStateDelaunay"] = OrbitStateDelaunay

class EquinoctialSizeShapeMeanMotion(IClassicalSizeShape, SupportsDeleteCallback):
    """Interface for Mean Motion, an element of the Equinoctial coordinate type."""

    _num_methods = 2
    _vtable_offset = IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods
    _get_mean_motion_method_offset = 1
    _set_mean_motion_method_offset = 2
    _metadata = {
        "iid_data" : (5232253312631989622, 5855488155730260918),
        "vtable_reference" : IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EquinoctialSizeShapeMeanMotion)

    _get_mean_motion_metadata = { "offset" : _get_mean_motion_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mean_motion(self) -> float:
        """Get or set the average angular rate of the satellite based on 2-body motion. Uses AngleRate Dimension."""
        return self._intf.get_property(EquinoctialSizeShapeMeanMotion._metadata, EquinoctialSizeShapeMeanMotion._get_mean_motion_metadata)

    _set_mean_motion_metadata = { "offset" : _set_mean_motion_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mean_motion.setter
    def mean_motion(self, mean_motion:float) -> None:
        return self._intf.set_property(EquinoctialSizeShapeMeanMotion._metadata, EquinoctialSizeShapeMeanMotion._set_mean_motion_metadata, mean_motion)

    _property_names[mean_motion] = "mean_motion"

    def __init__(self, source_object=None):
        """Construct an object of type EquinoctialSizeShapeMeanMotion."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EquinoctialSizeShapeMeanMotion)
        IClassicalSizeShape.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalSizeShape._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EquinoctialSizeShapeMeanMotion, [EquinoctialSizeShapeMeanMotion, IClassicalSizeShape])

agcls.AgClassCatalog.add_catalog_entry((5442394046143545645, 15553997114326316704), EquinoctialSizeShapeMeanMotion)
agcls.AgTypeNameMap["EquinoctialSizeShapeMeanMotion"] = EquinoctialSizeShapeMeanMotion

class EquinoctialSizeShapeSemimajorAxis(IClassicalSizeShape, SupportsDeleteCallback):
    """Interface for Semimajor Axis, an element of the Equinoctial coordinate type."""

    _num_methods = 2
    _vtable_offset = IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods
    _get_semi_major_axis_method_offset = 1
    _set_semi_major_axis_method_offset = 2
    _metadata = {
        "iid_data" : (4639633357165834632, 6312687394495871369),
        "vtable_reference" : IClassicalSizeShape._vtable_offset + IClassicalSizeShape._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EquinoctialSizeShapeSemimajorAxis)

    _get_semi_major_axis_metadata = { "offset" : _get_semi_major_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def semi_major_axis(self) -> float:
        """Half the length of the major axis of the orbital ellipse. Uses Distance Dimension."""
        return self._intf.get_property(EquinoctialSizeShapeSemimajorAxis._metadata, EquinoctialSizeShapeSemimajorAxis._get_semi_major_axis_metadata)

    _set_semi_major_axis_metadata = { "offset" : _set_semi_major_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @semi_major_axis.setter
    def semi_major_axis(self, semimajor_axis:float) -> None:
        return self._intf.set_property(EquinoctialSizeShapeSemimajorAxis._metadata, EquinoctialSizeShapeSemimajorAxis._set_semi_major_axis_metadata, semimajor_axis)

    _property_names[semi_major_axis] = "semi_major_axis"

    def __init__(self, source_object=None):
        """Construct an object of type EquinoctialSizeShapeSemimajorAxis."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EquinoctialSizeShapeSemimajorAxis)
        IClassicalSizeShape.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IClassicalSizeShape._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EquinoctialSizeShapeSemimajorAxis, [EquinoctialSizeShapeSemimajorAxis, IClassicalSizeShape])

agcls.AgClassCatalog.add_catalog_entry((5184502073737031702, 13348821094741483710), EquinoctialSizeShapeSemimajorAxis)
agcls.AgTypeNameMap["EquinoctialSizeShapeSemimajorAxis"] = EquinoctialSizeShapeSemimajorAxis

class OrbitStateEquinoctial(IOrbitState, SupportsDeleteCallback):
    """Equinoctial coordinate type, which uses the center of the Earth as the origin and the plane of the satellite's orbit as the reference plane."""

    _num_methods = 20
    _vtable_offset = IOrbitState._vtable_offset + IOrbitState._num_methods
    _get_coordinate_system_type_method_offset = 1
    _set_coordinate_system_type_method_offset = 2
    _get_coordinate_system_method_offset = 3
    _get_size_shape_type_method_offset = 4
    _set_size_shape_type_method_offset = 5
    _get_size_shape_method_offset = 6
    _get_h_method_offset = 7
    _set_h_method_offset = 8
    _get_k_method_offset = 9
    _set_k_method_offset = 10
    _get_p_method_offset = 11
    _set_p_method_offset = 12
    _get_q_method_offset = 13
    _set_q_method_offset = 14
    _get_mean_longitude_method_offset = 15
    _set_mean_longitude_method_offset = 16
    _get_formulation_method_offset = 17
    _set_formulation_method_offset = 18
    _get_supported_coordinate_system_types_method_offset = 19
    _get_state_epoch_method_offset = 20
    _metadata = {
        "iid_data" : (5481434395561528727, 2700080070902417300),
        "vtable_reference" : IOrbitState._vtable_offset + IOrbitState._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OrbitStateEquinoctial)

    _get_coordinate_system_type_metadata = { "offset" : _get_coordinate_system_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @property
    def coordinate_system_type(self) -> "CoordinateSystem":
        """Get or set the coordinate system being used."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_coordinate_system_type_metadata)

    _set_coordinate_system_type_metadata = { "offset" : _set_coordinate_system_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @coordinate_system_type.setter
    def coordinate_system_type(self, coordinate_system:"CoordinateSystem") -> None:
        return self._intf.set_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._set_coordinate_system_type_metadata, coordinate_system)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def coordinate_system(self) -> "OrbitStateCoordinateSystem":
        """Get the coordinate system and coordinate epoch."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_coordinate_system_metadata)

    _get_size_shape_type_metadata = { "offset" : _get_size_shape_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EquinoctialSizeShape),) }
    @property
    def size_shape_type(self) -> "EquinoctialSizeShape":
        """Get or set the orbit size option can be Mean Motion or Semimajor Axis."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_size_shape_type_metadata)

    _set_size_shape_type_metadata = { "offset" : _set_size_shape_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EquinoctialSizeShape),) }
    @size_shape_type.setter
    def size_shape_type(self, size_shape:"EquinoctialSizeShape") -> None:
        return self._intf.set_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._set_size_shape_type_metadata, size_shape)

    _get_size_shape_metadata = { "offset" : _get_size_shape_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def size_shape(self) -> "IClassicalSizeShape":
        """Get the value of Mean Motion or Semimajor Axis."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_size_shape_metadata)

    _get_h_metadata = { "offset" : _get_h_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def h(self) -> float:
        """H/K collectively describe the shape of the satellite's orbit and the position of perigee. Dimensionless."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_h_metadata)

    _set_h_metadata = { "offset" : _set_h_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @h.setter
    def h(self, value:float) -> None:
        return self._intf.set_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._set_h_metadata, value)

    _get_k_metadata = { "offset" : _get_k_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def k(self) -> float:
        """H/K collectively describe the shape of the satellite's orbit and the position of perigee. Dimensionless."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_k_metadata)

    _set_k_metadata = { "offset" : _set_k_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @k.setter
    def k(self, value:float) -> None:
        return self._intf.set_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._set_k_metadata, value)

    _get_p_metadata = { "offset" : _get_p_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def p(self) -> float:
        """P/Q collectively describe the orientation of the satellite's orbit plane. Dimensionless."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_p_metadata)

    _set_p_metadata = { "offset" : _set_p_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @p.setter
    def p(self, value:float) -> None:
        return self._intf.set_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._set_p_metadata, value)

    _get_q_metadata = { "offset" : _get_q_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def q(self) -> float:
        """P/Q collectively describe the orientation of the satellite's orbit plane. Dimensionless."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_q_metadata)

    _set_q_metadata = { "offset" : _set_q_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @q.setter
    def q(self, value:float) -> None:
        return self._intf.set_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._set_q_metadata, value)

    _get_mean_longitude_metadata = { "offset" : _get_mean_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mean_longitude(self) -> float:
        """Specify a satellite's position within its orbit at epoch and equals the sum of the classical RAAN, Argument of Perigee, and Mean Anomaly. Uses Angle dimension."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_mean_longitude_metadata)

    _set_mean_longitude_metadata = { "offset" : _set_mean_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mean_longitude.setter
    def mean_longitude(self, mean_longitude:float) -> None:
        return self._intf.set_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._set_mean_longitude_metadata, mean_longitude)

    _get_formulation_metadata = { "offset" : _get_formulation_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EquinoctialFormulation),) }
    @property
    def formulation(self) -> "EquinoctialFormulation":
        """Get or set the Formulation can be Retrograde or Posigrade."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_formulation_metadata)

    _set_formulation_metadata = { "offset" : _set_formulation_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EquinoctialFormulation),) }
    @formulation.setter
    def formulation(self, equinoctial_formulation:"EquinoctialFormulation") -> None:
        return self._intf.set_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._set_formulation_metadata, equinoctial_formulation)

    _get_supported_coordinate_system_types_metadata = { "offset" : _get_supported_coordinate_system_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_coordinate_system_types(self) -> list:
        """Return an array of supported coordinate system types."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_supported_coordinate_system_types_metadata)

    _get_state_epoch_metadata = { "offset" : _get_state_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def state_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Smart epoch component allows the user to configure the state epoch explicitly or implicitly (using a pre-defined or custom time instant component)."""
        return self._intf.get_property(OrbitStateEquinoctial._metadata, OrbitStateEquinoctial._get_state_epoch_metadata)

    _property_names[coordinate_system_type] = "coordinate_system_type"
    _property_names[coordinate_system] = "coordinate_system"
    _property_names[size_shape_type] = "size_shape_type"
    _property_names[size_shape] = "size_shape"
    _property_names[h] = "h"
    _property_names[k] = "k"
    _property_names[p] = "p"
    _property_names[q] = "q"
    _property_names[mean_longitude] = "mean_longitude"
    _property_names[formulation] = "formulation"
    _property_names[supported_coordinate_system_types] = "supported_coordinate_system_types"
    _property_names[state_epoch] = "state_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type OrbitStateEquinoctial."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OrbitStateEquinoctial)
        IOrbitState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrbitState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrbitStateEquinoctial, [OrbitStateEquinoctial, IOrbitState])

agcls.AgClassCatalog.add_catalog_entry((4783930187130445518, 1180149382614539704), OrbitStateEquinoctial)
agcls.AgTypeNameMap["OrbitStateEquinoctial"] = OrbitStateEquinoctial

class MixedSphericalFlightPathAngleHorizontal(IFlightPathAngle, SupportsDeleteCallback):
    """Interface for Horizontal Flight Path Angle, an element of the Mixed Spherical coordinate type."""

    _num_methods = 2
    _vtable_offset = IFlightPathAngle._vtable_offset + IFlightPathAngle._num_methods
    _get_flight_path_angle_method_offset = 1
    _set_flight_path_angle_method_offset = 2
    _metadata = {
        "iid_data" : (5637973706305285626, 16275437127141570741),
        "vtable_reference" : IFlightPathAngle._vtable_offset + IFlightPathAngle._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MixedSphericalFlightPathAngleHorizontal)

    _get_flight_path_angle_metadata = { "offset" : _get_flight_path_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def flight_path_angle(self) -> float:
        """Horizontal Flight Path Angle: the complement of the angle between the inertial velocity vector and the radius vector. Uses Angle Dimension."""
        return self._intf.get_property(MixedSphericalFlightPathAngleHorizontal._metadata, MixedSphericalFlightPathAngleHorizontal._get_flight_path_angle_metadata)

    _set_flight_path_angle_metadata = { "offset" : _set_flight_path_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @flight_path_angle.setter
    def flight_path_angle(self, fpa:float) -> None:
        return self._intf.set_property(MixedSphericalFlightPathAngleHorizontal._metadata, MixedSphericalFlightPathAngleHorizontal._set_flight_path_angle_metadata, fpa)

    _property_names[flight_path_angle] = "flight_path_angle"

    def __init__(self, source_object=None):
        """Construct an object of type MixedSphericalFlightPathAngleHorizontal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MixedSphericalFlightPathAngleHorizontal)
        IFlightPathAngle.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFlightPathAngle._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MixedSphericalFlightPathAngleHorizontal, [MixedSphericalFlightPathAngleHorizontal, IFlightPathAngle])

agcls.AgClassCatalog.add_catalog_entry((5703644702545997435, 8192937929101015482), MixedSphericalFlightPathAngleHorizontal)
agcls.AgTypeNameMap["MixedSphericalFlightPathAngleHorizontal"] = MixedSphericalFlightPathAngleHorizontal

class MixedSphericalFlightPathAngleVertical(IFlightPathAngle, SupportsDeleteCallback):
    """Interface for Vertical Flight Path Angle, an element of the Mixed Spherical coordinate type."""

    _num_methods = 2
    _vtable_offset = IFlightPathAngle._vtable_offset + IFlightPathAngle._num_methods
    _get_flight_path_angle_method_offset = 1
    _set_flight_path_angle_method_offset = 2
    _metadata = {
        "iid_data" : (5303140144631941570, 4527612424350947990),
        "vtable_reference" : IFlightPathAngle._vtable_offset + IFlightPathAngle._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MixedSphericalFlightPathAngleVertical)

    _get_flight_path_angle_metadata = { "offset" : _get_flight_path_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def flight_path_angle(self) -> float:
        """Vertical Flight Path Angle: the angle between the inertial velocity vector and the radius vector. Uses Angle Dimension."""
        return self._intf.get_property(MixedSphericalFlightPathAngleVertical._metadata, MixedSphericalFlightPathAngleVertical._get_flight_path_angle_metadata)

    _set_flight_path_angle_metadata = { "offset" : _set_flight_path_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @flight_path_angle.setter
    def flight_path_angle(self, fpa:float) -> None:
        return self._intf.set_property(MixedSphericalFlightPathAngleVertical._metadata, MixedSphericalFlightPathAngleVertical._set_flight_path_angle_metadata, fpa)

    _property_names[flight_path_angle] = "flight_path_angle"

    def __init__(self, source_object=None):
        """Construct an object of type MixedSphericalFlightPathAngleVertical."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MixedSphericalFlightPathAngleVertical)
        IFlightPathAngle.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFlightPathAngle._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MixedSphericalFlightPathAngleVertical, [MixedSphericalFlightPathAngleVertical, IFlightPathAngle])

agcls.AgClassCatalog.add_catalog_entry((4618923991780831445, 2557025035906182579), MixedSphericalFlightPathAngleVertical)
agcls.AgTypeNameMap["MixedSphericalFlightPathAngleVertical"] = MixedSphericalFlightPathAngleVertical

class OrbitStateMixedSpherical(IOrbitState, SupportsDeleteCallback):
    """Mixed Spherical coordinate type, using a variation of the spherical elements that combines Earth-fixed position parameters with inertial velocity parameters."""

    _num_methods = 18
    _vtable_offset = IOrbitState._vtable_offset + IOrbitState._num_methods
    _get_coordinate_system_type_method_offset = 1
    _set_coordinate_system_type_method_offset = 2
    _get_coordinate_system_method_offset = 3
    _get_latitude_method_offset = 4
    _set_latitude_method_offset = 5
    _get_longitude_method_offset = 6
    _set_longitude_method_offset = 7
    _get_altitude_method_offset = 8
    _set_altitude_method_offset = 9
    _get_flight_path_angle_type_method_offset = 10
    _set_flight_path_angle_type_method_offset = 11
    _get_flight_path_angle_method_offset = 12
    _get_azimuth_method_offset = 13
    _set_azimuth_method_offset = 14
    _get_velocity_method_offset = 15
    _set_velocity_method_offset = 16
    _get_supported_coordinate_system_types_method_offset = 17
    _get_state_epoch_method_offset = 18
    _metadata = {
        "iid_data" : (5755357835694443158, 2120609145998373798),
        "vtable_reference" : IOrbitState._vtable_offset + IOrbitState._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OrbitStateMixedSpherical)

    _get_coordinate_system_type_metadata = { "offset" : _get_coordinate_system_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @property
    def coordinate_system_type(self) -> "CoordinateSystem":
        """Get or set the coordinate system being used."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_coordinate_system_type_metadata)

    _set_coordinate_system_type_metadata = { "offset" : _set_coordinate_system_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @coordinate_system_type.setter
    def coordinate_system_type(self, coordinate_system:"CoordinateSystem") -> None:
        return self._intf.set_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._set_coordinate_system_type_metadata, coordinate_system)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def coordinate_system(self) -> "OrbitStateCoordinateSystem":
        """Get the coordinate system and coordinate epoch."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_coordinate_system_metadata)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Measured from -90.0 deg to +90.0 deg. The geodetic latitude of a point is the angle between (1) the normal to the reference ellipsoid that passes through the satellite position and (2) the equatorial plane. Uses Angle Dimension."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_latitude_metadata)

    _set_latitude_metadata = { "offset" : _set_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @latitude.setter
    def latitude(self, latitude:float) -> None:
        return self._intf.set_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._set_latitude_metadata, latitude)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Measured from -180.0 deg to +360.0 deg. Uses Angle Dimension."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_longitude_metadata)

    _set_longitude_metadata = { "offset" : _set_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @longitude.setter
    def longitude(self, longitude:float) -> None:
        return self._intf.set_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._set_longitude_metadata, longitude)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Get or set the object's position above or below the reference ellipsoid. Altitude is measured along a normal to the surface of the reference ellipsoid. Uses Distance Dimension."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, altitude:float) -> None:
        return self._intf.set_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._set_altitude_metadata, altitude)

    _get_flight_path_angle_type_metadata = { "offset" : _get_flight_path_angle_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(MixedSphericalFlightPathAngleType),) }
    @property
    def flight_path_angle_type(self) -> "MixedSphericalFlightPathAngleType":
        """Get or set the Flight Path Angle type can be Vertical or Horizontal."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_flight_path_angle_type_metadata)

    _set_flight_path_angle_type_metadata = { "offset" : _set_flight_path_angle_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(MixedSphericalFlightPathAngleType),) }
    @flight_path_angle_type.setter
    def flight_path_angle_type(self, fpa:"MixedSphericalFlightPathAngleType") -> None:
        return self._intf.set_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._set_flight_path_angle_type_metadata, fpa)

    _get_flight_path_angle_metadata = { "offset" : _get_flight_path_angle_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def flight_path_angle(self) -> "IFlightPathAngle":
        """Value of Vertical or Horizontal Flight Path Angle."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_flight_path_angle_metadata)

    _get_azimuth_metadata = { "offset" : _get_azimuth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth(self) -> float:
        """Azimuth the angle in the satellite local horizontal plane between the projection of the inertial velocity vector onto this plane and the local north direction measured as positive in the clockwise direction."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_azimuth_metadata)

    _set_azimuth_metadata = { "offset" : _set_azimuth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth.setter
    def azimuth(self, azimuth:float) -> None:
        return self._intf.set_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._set_azimuth_metadata, azimuth)

    _get_velocity_metadata = { "offset" : _get_velocity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def velocity(self) -> float:
        """Get or set the magnitude of the inertial velocity vector. Uses Rate Dimension."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_velocity_metadata)

    _set_velocity_metadata = { "offset" : _set_velocity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @velocity.setter
    def velocity(self, velocity:float) -> None:
        return self._intf.set_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._set_velocity_metadata, velocity)

    _get_supported_coordinate_system_types_metadata = { "offset" : _get_supported_coordinate_system_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_coordinate_system_types(self) -> list:
        """Return an array of supported coordinate system types."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_supported_coordinate_system_types_metadata)

    _get_state_epoch_metadata = { "offset" : _get_state_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def state_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Smart epoch component allows the user to configure the state epoch explicitly or implicitly (using a pre-defined or custom time instant component)."""
        return self._intf.get_property(OrbitStateMixedSpherical._metadata, OrbitStateMixedSpherical._get_state_epoch_metadata)

    _property_names[coordinate_system_type] = "coordinate_system_type"
    _property_names[coordinate_system] = "coordinate_system"
    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[altitude] = "altitude"
    _property_names[flight_path_angle_type] = "flight_path_angle_type"
    _property_names[flight_path_angle] = "flight_path_angle"
    _property_names[azimuth] = "azimuth"
    _property_names[velocity] = "velocity"
    _property_names[supported_coordinate_system_types] = "supported_coordinate_system_types"
    _property_names[state_epoch] = "state_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type OrbitStateMixedSpherical."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OrbitStateMixedSpherical)
        IOrbitState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrbitState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrbitStateMixedSpherical, [OrbitStateMixedSpherical, IOrbitState])

agcls.AgClassCatalog.add_catalog_entry((5208073648837330078, 3296289210379679129), OrbitStateMixedSpherical)
agcls.AgTypeNameMap["OrbitStateMixedSpherical"] = OrbitStateMixedSpherical

class SphericalFlightPathAngleHorizontal(IFlightPathAngle, SupportsDeleteCallback):
    """Interface for Horizontal Flight Path Angle, an element of the Spherical coordinate type."""

    _num_methods = 2
    _vtable_offset = IFlightPathAngle._vtable_offset + IFlightPathAngle._num_methods
    _get_flight_path_angle_method_offset = 1
    _set_flight_path_angle_method_offset = 2
    _metadata = {
        "iid_data" : (5554534324333812389, 9275808526567671737),
        "vtable_reference" : IFlightPathAngle._vtable_offset + IFlightPathAngle._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SphericalFlightPathAngleHorizontal)

    _get_flight_path_angle_metadata = { "offset" : _get_flight_path_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def flight_path_angle(self) -> float:
        """Horizontal Flight Path Angle: the complement of the angle between the inertial velocity vector and the radius vector. Uses Angle Dimension."""
        return self._intf.get_property(SphericalFlightPathAngleHorizontal._metadata, SphericalFlightPathAngleHorizontal._get_flight_path_angle_metadata)

    _set_flight_path_angle_metadata = { "offset" : _set_flight_path_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @flight_path_angle.setter
    def flight_path_angle(self, fpa:float) -> None:
        return self._intf.set_property(SphericalFlightPathAngleHorizontal._metadata, SphericalFlightPathAngleHorizontal._set_flight_path_angle_metadata, fpa)

    _property_names[flight_path_angle] = "flight_path_angle"

    def __init__(self, source_object=None):
        """Construct an object of type SphericalFlightPathAngleHorizontal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SphericalFlightPathAngleHorizontal)
        IFlightPathAngle.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFlightPathAngle._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SphericalFlightPathAngleHorizontal, [SphericalFlightPathAngleHorizontal, IFlightPathAngle])

agcls.AgClassCatalog.add_catalog_entry((5495153568874291431, 14904239989590389439), SphericalFlightPathAngleHorizontal)
agcls.AgTypeNameMap["SphericalFlightPathAngleHorizontal"] = SphericalFlightPathAngleHorizontal

class SphericalFlightPathAngleVertical(IFlightPathAngle, SupportsDeleteCallback):
    """Interface for Vertical Flight Path Angle, an element of the Spherical coordinate type."""

    _num_methods = 2
    _vtable_offset = IFlightPathAngle._vtable_offset + IFlightPathAngle._num_methods
    _get_flight_path_angle_method_offset = 1
    _set_flight_path_angle_method_offset = 2
    _metadata = {
        "iid_data" : (5713810371090962198, 13761505918867348374),
        "vtable_reference" : IFlightPathAngle._vtable_offset + IFlightPathAngle._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SphericalFlightPathAngleVertical)

    _get_flight_path_angle_metadata = { "offset" : _get_flight_path_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def flight_path_angle(self) -> float:
        """Vertical Flight Path Angle: the angle between the inertial velocity vector and the radius vector. Uses Angle Dimension."""
        return self._intf.get_property(SphericalFlightPathAngleVertical._metadata, SphericalFlightPathAngleVertical._get_flight_path_angle_metadata)

    _set_flight_path_angle_metadata = { "offset" : _set_flight_path_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @flight_path_angle.setter
    def flight_path_angle(self, fpa:float) -> None:
        return self._intf.set_property(SphericalFlightPathAngleVertical._metadata, SphericalFlightPathAngleVertical._set_flight_path_angle_metadata, fpa)

    _property_names[flight_path_angle] = "flight_path_angle"

    def __init__(self, source_object=None):
        """Construct an object of type SphericalFlightPathAngleVertical."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SphericalFlightPathAngleVertical)
        IFlightPathAngle.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IFlightPathAngle._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SphericalFlightPathAngleVertical, [SphericalFlightPathAngleVertical, IFlightPathAngle])

agcls.AgClassCatalog.add_catalog_entry((5646321672760962869, 16575546847823355015), SphericalFlightPathAngleVertical)
agcls.AgTypeNameMap["SphericalFlightPathAngleVertical"] = SphericalFlightPathAngleVertical

class OrbitStateSpherical(IOrbitState, SupportsDeleteCallback):
    """Spherical coordinate type: defines the path of an orbit using polar coordinates."""

    _num_methods = 18
    _vtable_offset = IOrbitState._vtable_offset + IOrbitState._num_methods
    _get_coordinate_system_type_method_offset = 1
    _set_coordinate_system_type_method_offset = 2
    _get_coordinate_system_method_offset = 3
    _get_right_ascension_method_offset = 4
    _set_right_ascension_method_offset = 5
    _get_declination_method_offset = 6
    _set_declination_method_offset = 7
    _get_radius_method_offset = 8
    _set_radius_method_offset = 9
    _get_flight_path_angle_type_method_offset = 10
    _set_flight_path_angle_type_method_offset = 11
    _get_flight_path_angle_method_offset = 12
    _get_azimuth_method_offset = 13
    _set_azimuth_method_offset = 14
    _get_velocity_method_offset = 15
    _set_velocity_method_offset = 16
    _get_supported_coordinate_system_types_method_offset = 17
    _get_state_epoch_method_offset = 18
    _metadata = {
        "iid_data" : (5505050872224310452, 14076752414137490095),
        "vtable_reference" : IOrbitState._vtable_offset + IOrbitState._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, OrbitStateSpherical)

    _get_coordinate_system_type_metadata = { "offset" : _get_coordinate_system_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @property
    def coordinate_system_type(self) -> "CoordinateSystem":
        """Get or set the coordinate system being used."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_coordinate_system_type_metadata)

    _set_coordinate_system_type_metadata = { "offset" : _set_coordinate_system_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CoordinateSystem),) }
    @coordinate_system_type.setter
    def coordinate_system_type(self, coordinate_system:"CoordinateSystem") -> None:
        return self._intf.set_property(OrbitStateSpherical._metadata, OrbitStateSpherical._set_coordinate_system_type_metadata, coordinate_system)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def coordinate_system(self) -> "OrbitStateCoordinateSystem":
        """Get the coordinate system and coordinate epoch."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_coordinate_system_metadata)

    _get_right_ascension_metadata = { "offset" : _get_right_ascension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def right_ascension(self) -> float:
        """Get or set the angle from the X axis to the projection of the satellite position vector in the equatorial plane measured as positive in the direction of the Y axis. Uses Angle Dimension."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_right_ascension_metadata)

    _set_right_ascension_metadata = { "offset" : _set_right_ascension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @right_ascension.setter
    def right_ascension(self, right_ascension:float) -> None:
        return self._intf.set_property(OrbitStateSpherical._metadata, OrbitStateSpherical._set_right_ascension_metadata, right_ascension)

    _get_declination_metadata = { "offset" : _get_declination_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def declination(self) -> float:
        """Get or set the angle between the satellite position vector and the inertial equatorial plane measured as positive toward the positive inertial Z axis. Uses Angle Dimension."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_declination_metadata)

    _set_declination_metadata = { "offset" : _set_declination_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @declination.setter
    def declination(self, declination:float) -> None:
        return self._intf.set_property(OrbitStateSpherical._metadata, OrbitStateSpherical._set_declination_metadata, declination)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """Get or set the magnitude of the satellite position vector. Uses Distance Dimension."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_radius_metadata)

    _set_radius_metadata = { "offset" : _set_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius.setter
    def radius(self, radius:float) -> None:
        return self._intf.set_property(OrbitStateSpherical._metadata, OrbitStateSpherical._set_radius_metadata, radius)

    _get_flight_path_angle_type_metadata = { "offset" : _get_flight_path_angle_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SphericalFlightPathAzimuthType),) }
    @property
    def flight_path_angle_type(self) -> "SphericalFlightPathAzimuthType":
        """Get or set the Flight Path Angle type can be Vertical or Horizontal."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_flight_path_angle_type_metadata)

    _set_flight_path_angle_type_metadata = { "offset" : _set_flight_path_angle_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SphericalFlightPathAzimuthType),) }
    @flight_path_angle_type.setter
    def flight_path_angle_type(self, fpa:"SphericalFlightPathAzimuthType") -> None:
        return self._intf.set_property(OrbitStateSpherical._metadata, OrbitStateSpherical._set_flight_path_angle_type_metadata, fpa)

    _get_flight_path_angle_metadata = { "offset" : _get_flight_path_angle_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def flight_path_angle(self) -> "IFlightPathAngle":
        """Get the value of the Vertical or Horizontal Flight Path Angle."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_flight_path_angle_metadata)

    _get_azimuth_metadata = { "offset" : _get_azimuth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth(self) -> float:
        """Get or set the angle in the satellite local horizontal plane between the projection of the velocity vector onto this plane and the local north direction measured as positive in the clockwise direction. Uses Angle Dimension."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_azimuth_metadata)

    _set_azimuth_metadata = { "offset" : _set_azimuth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth.setter
    def azimuth(self, azimuth:float) -> None:
        return self._intf.set_property(OrbitStateSpherical._metadata, OrbitStateSpherical._set_azimuth_metadata, azimuth)

    _get_velocity_metadata = { "offset" : _get_velocity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def velocity(self) -> float:
        """Get or set the magnitude of the velocity vector. Uses Rate Dimension."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_velocity_metadata)

    _set_velocity_metadata = { "offset" : _set_velocity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @velocity.setter
    def velocity(self, velocity:float) -> None:
        return self._intf.set_property(OrbitStateSpherical._metadata, OrbitStateSpherical._set_velocity_metadata, velocity)

    _get_supported_coordinate_system_types_metadata = { "offset" : _get_supported_coordinate_system_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_coordinate_system_types(self) -> list:
        """Return an array of supported coordinate system types."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_supported_coordinate_system_types_metadata)

    _get_state_epoch_metadata = { "offset" : _get_state_epoch_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def state_epoch(self) -> "ITimeToolInstantSmartEpoch":
        """Smart epoch component allows the user to configure the state epoch explicitly or implicitly (using a pre-defined or custom time instant component)."""
        return self._intf.get_property(OrbitStateSpherical._metadata, OrbitStateSpherical._get_state_epoch_metadata)

    _property_names[coordinate_system_type] = "coordinate_system_type"
    _property_names[coordinate_system] = "coordinate_system"
    _property_names[right_ascension] = "right_ascension"
    _property_names[declination] = "declination"
    _property_names[radius] = "radius"
    _property_names[flight_path_angle_type] = "flight_path_angle_type"
    _property_names[flight_path_angle] = "flight_path_angle"
    _property_names[azimuth] = "azimuth"
    _property_names[velocity] = "velocity"
    _property_names[supported_coordinate_system_types] = "supported_coordinate_system_types"
    _property_names[state_epoch] = "state_epoch"

    def __init__(self, source_object=None):
        """Construct an object of type OrbitStateSpherical."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, OrbitStateSpherical)
        IOrbitState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IOrbitState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, OrbitStateSpherical, [OrbitStateSpherical, IOrbitState])

agcls.AgClassCatalog.add_catalog_entry((4825932549684344036, 6413987843015084210), OrbitStateSpherical)
agcls.AgTypeNameMap["OrbitStateSpherical"] = OrbitStateSpherical

class VehicleGraphics2DTimeComponentsEventElement(IVehicleGraphics2DTimeComponentsElement, SupportsDeleteCallback):
    """Provide properties to configure the vehicle's appearance in 2D and 3D views. The interface is used with all types of event components except for the event interval collections."""

    _num_methods = 2
    _vtable_offset = IVehicleGraphics2DTimeComponentsElement._vtable_offset + IVehicleGraphics2DTimeComponentsElement._num_methods
    _get_attributes_method_offset = 1
    _get_time_component_method_offset = 2
    _metadata = {
        "iid_data" : (5570543718323605700, 16304302712277191593),
        "vtable_reference" : IVehicleGraphics2DTimeComponentsElement._vtable_offset + IVehicleGraphics2DTimeComponentsElement._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DTimeComponentsEventElement)

    _get_attributes_metadata = { "offset" : _get_attributes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def attributes(self) -> "IVehicleGraphics2DAttributesBasic":
        """Return the 2D attributes used to configure the appearance of ground tracks, orbits, etc. in 2D and 3D views."""
        return self._intf.get_property(VehicleGraphics2DTimeComponentsEventElement._metadata, VehicleGraphics2DTimeComponentsEventElement._get_attributes_metadata)

    _get_time_component_metadata = { "offset" : _get_time_component_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_time_component(self) -> "IAnalysisWorkbenchComponent":
        """Return an instance of a time component which provides the time intervals to control the appearance and visibility of the graphics path. The method may throw an exception if the component is invalid."""
        return self._intf.invoke(VehicleGraphics2DTimeComponentsEventElement._metadata, VehicleGraphics2DTimeComponentsEventElement._get_time_component_metadata, OutArg())

    _property_names[attributes] = "attributes"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTimeComponentsEventElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DTimeComponentsEventElement)
        IVehicleGraphics2DTimeComponentsElement.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DTimeComponentsElement._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTimeComponentsEventElement, [VehicleGraphics2DTimeComponentsEventElement, IVehicleGraphics2DTimeComponentsElement])

agcls.AgClassCatalog.add_catalog_entry((5021258217680687218, 16966081364970568857), VehicleGraphics2DTimeComponentsEventElement)
agcls.AgTypeNameMap["VehicleGraphics2DTimeComponentsEventElement"] = VehicleGraphics2DTimeComponentsEventElement

class VehicleGraphics2DTimeComponentsEventCollectionElement(IVehicleGraphics2DTimeComponentsElement, SupportsDeleteCallback):
    """Provide properties to configure the vehicle's appearance in 2D and 3D views. The interface is used with event interval collections only."""

    _num_methods = 10
    _vtable_offset = IVehicleGraphics2DTimeComponentsElement._vtable_offset + IVehicleGraphics2DTimeComponentsElement._num_methods
    _get_use_color_ramp_method_offset = 1
    _set_use_color_ramp_method_offset = 2
    _get_color_ramp_start_color_method_offset = 3
    _set_color_ramp_start_color_method_offset = 4
    _get_color_ramp_end_color_method_offset = 5
    _set_color_ramp_end_color_method_offset = 6
    _get_umbra_method_offset = 7
    _get_penumbra_method_offset = 8
    _get_sunlight_method_offset = 9
    _get_time_component_method_offset = 10
    _metadata = {
        "iid_data" : (4665287466309745347, 12451343802572507305),
        "vtable_reference" : IVehicleGraphics2DTimeComponentsElement._vtable_offset + IVehicleGraphics2DTimeComponentsElement._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DTimeComponentsEventCollectionElement)

    _get_use_color_ramp_metadata = { "offset" : _get_use_color_ramp_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_color_ramp(self) -> bool:
        """Whether the color ramp is used. Setting this property has no effect if the color ramp is not supported."""
        return self._intf.get_property(VehicleGraphics2DTimeComponentsEventCollectionElement._metadata, VehicleGraphics2DTimeComponentsEventCollectionElement._get_use_color_ramp_metadata)

    _set_use_color_ramp_metadata = { "offset" : _set_use_color_ramp_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_color_ramp.setter
    def use_color_ramp(self, use_color_ramp:bool) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeComponentsEventCollectionElement._metadata, VehicleGraphics2DTimeComponentsEventCollectionElement._set_use_color_ramp_metadata, use_color_ramp)

    _get_color_ramp_start_color_metadata = { "offset" : _get_color_ramp_start_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color_ramp_start_color(self) -> agcolor.Color:
        """The start color of the color ramp. Setting this property has no effect if the color ramp is not supported."""
        return self._intf.get_property(VehicleGraphics2DTimeComponentsEventCollectionElement._metadata, VehicleGraphics2DTimeComponentsEventCollectionElement._get_color_ramp_start_color_metadata)

    _set_color_ramp_start_color_metadata = { "offset" : _set_color_ramp_start_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color_ramp_start_color.setter
    def color_ramp_start_color(self, color_ramp_start_color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeComponentsEventCollectionElement._metadata, VehicleGraphics2DTimeComponentsEventCollectionElement._set_color_ramp_start_color_metadata, color_ramp_start_color)

    _get_color_ramp_end_color_metadata = { "offset" : _get_color_ramp_end_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color_ramp_end_color(self) -> agcolor.Color:
        """The end color of the color ramp. Setting this property has no effect if the color ramp is not supported."""
        return self._intf.get_property(VehicleGraphics2DTimeComponentsEventCollectionElement._metadata, VehicleGraphics2DTimeComponentsEventCollectionElement._get_color_ramp_end_color_metadata)

    _set_color_ramp_end_color_metadata = { "offset" : _set_color_ramp_end_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color_ramp_end_color.setter
    def color_ramp_end_color(self, color_ramp_end_color:agcolor.Color) -> None:
        return self._intf.set_property(VehicleGraphics2DTimeComponentsEventCollectionElement._metadata, VehicleGraphics2DTimeComponentsEventCollectionElement._set_color_ramp_end_color_metadata, color_ramp_end_color)

    _get_umbra_metadata = { "offset" : _get_umbra_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def umbra(self) -> "IVehicleGraphics2DAttributesBasic":
        """Configure the appearance of the orbit track, the marker, etc. when the vehicle isn't in sunlight at all."""
        return self._intf.get_property(VehicleGraphics2DTimeComponentsEventCollectionElement._metadata, VehicleGraphics2DTimeComponentsEventCollectionElement._get_umbra_metadata)

    _get_penumbra_metadata = { "offset" : _get_penumbra_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def penumbra(self) -> "IVehicleGraphics2DAttributesBasic":
        """Configure the appearance of the orbit track, the marker, etc. when the vehicle is only partially in sunlight."""
        return self._intf.get_property(VehicleGraphics2DTimeComponentsEventCollectionElement._metadata, VehicleGraphics2DTimeComponentsEventCollectionElement._get_penumbra_metadata)

    _get_sunlight_metadata = { "offset" : _get_sunlight_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sunlight(self) -> "IVehicleGraphics2DAttributesBasic":
        """Configure the appearance of the orbit track, the marker, etc. when the vehicle is in complete sunlight."""
        return self._intf.get_property(VehicleGraphics2DTimeComponentsEventCollectionElement._metadata, VehicleGraphics2DTimeComponentsEventCollectionElement._get_sunlight_metadata)

    _get_time_component_metadata = { "offset" : _get_time_component_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_time_component(self) -> "IAnalysisWorkbenchComponent":
        """Return an instance of a time component which provides the time intervals to control the appearance and visibility of the graphics path. The method may throw an exception if the component is invalid."""
        return self._intf.invoke(VehicleGraphics2DTimeComponentsEventCollectionElement._metadata, VehicleGraphics2DTimeComponentsEventCollectionElement._get_time_component_metadata, OutArg())

    _property_names[use_color_ramp] = "use_color_ramp"
    _property_names[color_ramp_start_color] = "color_ramp_start_color"
    _property_names[color_ramp_end_color] = "color_ramp_end_color"
    _property_names[umbra] = "umbra"
    _property_names[penumbra] = "penumbra"
    _property_names[sunlight] = "sunlight"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTimeComponentsEventCollectionElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DTimeComponentsEventCollectionElement)
        IVehicleGraphics2DTimeComponentsElement.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DTimeComponentsElement._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTimeComponentsEventCollectionElement, [VehicleGraphics2DTimeComponentsEventCollectionElement, IVehicleGraphics2DTimeComponentsElement])

agcls.AgClassCatalog.add_catalog_entry((5330301453964377912, 1316351240728220594), VehicleGraphics2DTimeComponentsEventCollectionElement)
agcls.AgTypeNameMap["VehicleGraphics2DTimeComponentsEventCollectionElement"] = VehicleGraphics2DTimeComponentsEventCollectionElement

class VehicleGraphics2DTimeComponentsCollection(SupportsDeleteCallback):
    """A collection of time components used to configure the object appearance in 2D and 3D views."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (4800961226813993625, 14121031337409902990),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DTimeComponentsCollection)
    def __iter__(self):
        """Create an iterator for the VehicleGraphics2DTimeComponentsCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "IVehicleGraphics2DTimeComponentsElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VehicleGraphics2DTimeComponentsCollection._metadata, VehicleGraphics2DTimeComponentsCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "IVehicleGraphics2DTimeComponentsElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VehicleGraphics2DTimeComponentsCollection._metadata, VehicleGraphics2DTimeComponentsCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VehicleGraphics2DTimeComponentsCollection._metadata, VehicleGraphics2DTimeComponentsCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VehicleGraphics2DTimeComponentsCollection._metadata, VehicleGraphics2DTimeComponentsCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VehicleGraphics2DTimeComponentsCollection._metadata, VehicleGraphics2DTimeComponentsCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, qualified_path:str) -> "IVehicleGraphics2DTimeComponentsElement":
        """Add a new element to the collection using the specified fully qualified component's path (i.e. ``Scenario/Scenario1 AnalysisInterval EventInterval``). Only intervals, interval lists or interval collections are allowed."""
        return self._intf.invoke(VehicleGraphics2DTimeComponentsCollection._metadata, VehicleGraphics2DTimeComponentsCollection._add_metadata, qualified_path, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DTimeComponentsCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DTimeComponentsCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DTimeComponentsCollection, [VehicleGraphics2DTimeComponentsCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5553124848737021911, 2372343818185458867), VehicleGraphics2DTimeComponentsCollection)
agcls.AgTypeNameMap["VehicleGraphics2DTimeComponentsCollection"] = VehicleGraphics2DTimeComponentsCollection

class VehicleGraphics2DAttributesTimeComponents(IVehicleGraphics2DAttributes, IVehicleGraphics2DAttributesDisplayState, SupportsDeleteCallback):
    """Allow configuring the 2D attributes using the time components."""

    _num_methods = 2
    _vtable_offset = IVehicleGraphics2DAttributes._vtable_offset + IVehicleGraphics2DAttributes._num_methods
    _get_default_method_offset = 1
    _get_time_components_method_offset = 2
    _metadata = {
        "iid_data" : (5178796526812345448, 4225417119764683183),
        "vtable_reference" : IVehicleGraphics2DAttributes._vtable_offset + IVehicleGraphics2DAttributes._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleGraphics2DAttributesTimeComponents)

    _get_default_metadata = { "offset" : _get_default_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def default(self) -> "IVehicleGraphics2DAttributesBasic":
        """Default 2D attributes."""
        return self._intf.get_property(VehicleGraphics2DAttributesTimeComponents._metadata, VehicleGraphics2DAttributesTimeComponents._get_default_metadata)

    _get_time_components_metadata = { "offset" : _get_time_components_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_components(self) -> "VehicleGraphics2DTimeComponentsCollection":
        """A collection of time components and their 2D attributes."""
        return self._intf.get_property(VehicleGraphics2DAttributesTimeComponents._metadata, VehicleGraphics2DAttributesTimeComponents._get_time_components_metadata)

    _property_names[default] = "default"
    _property_names[time_components] = "time_components"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleGraphics2DAttributesTimeComponents."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleGraphics2DAttributesTimeComponents)
        IVehicleGraphics2DAttributes.__init__(self, source_object)
        IVehicleGraphics2DAttributesDisplayState.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleGraphics2DAttributes._private_init(self, intf)
        IVehicleGraphics2DAttributesDisplayState._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleGraphics2DAttributesTimeComponents, [VehicleGraphics2DAttributesTimeComponents, IVehicleGraphics2DAttributes, IVehicleGraphics2DAttributesDisplayState])

agcls.AgClassCatalog.add_catalog_entry((4851387157588231258, 11583262230749920153), VehicleGraphics2DAttributesTimeComponents)
agcls.AgTypeNameMap["VehicleGraphics2DAttributesTimeComponents"] = VehicleGraphics2DAttributesTimeComponents

class Preferences(SupportsDeleteCallback):
    """Configures STK preferences."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_vdf_preferences_method_offset = 1
    _get_connect_preferences_method_offset = 2
    _get_python_plugins_preferences_method_offset = 3
    _metadata = {
        "iid_data" : (4799119274297668036, 16089952015107055782),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Preferences)

    _get_vdf_preferences_metadata = { "offset" : _get_vdf_preferences_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vdf_preferences(self) -> "PreferencesVDF":
        """Configures STK VDF preferences."""
        return self._intf.get_property(Preferences._metadata, Preferences._get_vdf_preferences_metadata)

    _get_connect_preferences_metadata = { "offset" : _get_connect_preferences_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def connect_preferences(self) -> "PreferencesConnect":
        """Configures STK connect preferences."""
        return self._intf.get_property(Preferences._metadata, Preferences._get_connect_preferences_metadata)

    _get_python_plugins_preferences_metadata = { "offset" : _get_python_plugins_preferences_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def python_plugins_preferences(self) -> "PreferencesPythonPlugins":
        """Configures STK Python plugin preferences."""
        return self._intf.get_property(Preferences._metadata, Preferences._get_python_plugins_preferences_metadata)

    _property_names[vdf_preferences] = "vdf_preferences"
    _property_names[connect_preferences] = "connect_preferences"
    _property_names[python_plugins_preferences] = "python_plugins_preferences"

    def __init__(self, source_object=None):
        """Construct an object of type Preferences."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Preferences)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Preferences, [Preferences, ])

agcls.AgClassCatalog.add_catalog_entry((5202237662789741289, 3640344645069883048), Preferences)
agcls.AgTypeNameMap["Preferences"] = Preferences

class PreferencesVDF(SupportsDeleteCallback):
    """VDF Load/Save settings."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_save_scenario_as_vdf_method_offset = 1
    _set_save_scenario_as_vdf_method_offset = 2
    _get_base_directory_method_offset = 3
    _set_base_directory_method_offset = 4
    _metadata = {
        "iid_data" : (5007463947718293524, 15669725382059150226),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PreferencesVDF)

    _get_save_scenario_as_vdf_metadata = { "offset" : _get_save_scenario_as_vdf_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_scenario_as_vdf(self) -> bool:
        """Get or set the SaveScenarioAsVDF property determines whether a scenario will be saved as a scenario file or as a VDF file when the Save method is called. If a VDF file is loaded, then the SaveScenarioAsVDF property has no effect when Save is called."""
        return self._intf.get_property(PreferencesVDF._metadata, PreferencesVDF._get_save_scenario_as_vdf_metadata)

    _set_save_scenario_as_vdf_metadata = { "offset" : _set_save_scenario_as_vdf_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @save_scenario_as_vdf.setter
    def save_scenario_as_vdf(self, default_sc_fmt:bool) -> None:
        """Get or set the SaveScenarioAsVDF property determines whether a scenario will be saved as a scenario file or as a VDF file when the Save method is called. If a VDF file is loaded, then the SaveScenarioAsVDF property has no effect when Save is called."""
        return self._intf.set_property(PreferencesVDF._metadata, PreferencesVDF._set_save_scenario_as_vdf_metadata, default_sc_fmt)

    _get_base_directory_metadata = { "offset" : _get_base_directory_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def base_directory(self) -> str:
        """Get or set the Base Directory where VDF file is extracted."""
        return self._intf.get_property(PreferencesVDF._metadata, PreferencesVDF._get_base_directory_metadata)

    _set_base_directory_metadata = { "offset" : _set_base_directory_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @base_directory.setter
    def base_directory(self, base_dir:str) -> None:
        """Get or set the Base Directory where VDF file is extracted."""
        return self._intf.set_property(PreferencesVDF._metadata, PreferencesVDF._set_base_directory_metadata, base_dir)

    _property_names[save_scenario_as_vdf] = "save_scenario_as_vdf"
    _property_names[base_directory] = "base_directory"

    def __init__(self, source_object=None):
        """Construct an object of type PreferencesVDF."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PreferencesVDF)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PreferencesVDF, [PreferencesVDF, ])

agcls.AgClassCatalog.add_catalog_entry((5637127983650687490, 13598573792365806993), PreferencesVDF)
agcls.AgTypeNameMap["PreferencesVDF"] = PreferencesVDF

class VehicleAttitudeMaximumSlewRate(SupportsDeleteCallback):
    """Define the maximum slew rate by entering a maximum overall magnitude. You can constrain the slew rate in specific directions by selecting one or more Per Axis rates and defining separate maximum rates for those axes."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_magnitude_method_offset = 1
    _set_magnitude_method_offset = 2
    _get_slew_rate_along_x_axis_enabled_method_offset = 3
    _set_slew_rate_along_x_axis_enabled_method_offset = 4
    _get_slew_rate_along_y_axis_enabled_method_offset = 5
    _set_slew_rate_along_y_axis_enabled_method_offset = 6
    _get_slew_rate_along_z_axis_enabled_method_offset = 7
    _set_slew_rate_along_z_axis_enabled_method_offset = 8
    _get_slew_rate_along_x_axis_method_offset = 9
    _set_slew_rate_along_x_axis_method_offset = 10
    _get_slew_rate_along_y_axis_method_offset = 11
    _set_slew_rate_along_y_axis_method_offset = 12
    _get_slew_rate_along_z_axis_method_offset = 13
    _set_slew_rate_along_z_axis_method_offset = 14
    _metadata = {
        "iid_data" : (4983150839871338869, 17939095674968044434),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeMaximumSlewRate)

    _get_magnitude_metadata = { "offset" : _get_magnitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def magnitude(self) -> float:
        """Get or set the maximum overall magnitude."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._get_magnitude_metadata)

    _set_magnitude_metadata = { "offset" : _set_magnitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @magnitude.setter
    def magnitude(self, magnitude:float) -> None:
        """Get or set the maximum overall magnitude."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._set_magnitude_metadata, magnitude)

    _get_slew_rate_along_x_axis_enabled_metadata = { "offset" : _get_slew_rate_along_x_axis_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def slew_rate_along_x_axis_enabled(self) -> bool:
        """Whether to constrain the slew rate along the direction of X axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._get_slew_rate_along_x_axis_enabled_metadata)

    _set_slew_rate_along_x_axis_enabled_metadata = { "offset" : _set_slew_rate_along_x_axis_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @slew_rate_along_x_axis_enabled.setter
    def slew_rate_along_x_axis_enabled(self, per_axis_x_enabled:bool) -> None:
        """Whether to constrain the slew rate along the direction of X axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._set_slew_rate_along_x_axis_enabled_metadata, per_axis_x_enabled)

    _get_slew_rate_along_y_axis_enabled_metadata = { "offset" : _get_slew_rate_along_y_axis_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def slew_rate_along_y_axis_enabled(self) -> bool:
        """Whether to constrain the slew rate along the direction of Y axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._get_slew_rate_along_y_axis_enabled_metadata)

    _set_slew_rate_along_y_axis_enabled_metadata = { "offset" : _set_slew_rate_along_y_axis_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @slew_rate_along_y_axis_enabled.setter
    def slew_rate_along_y_axis_enabled(self, per_axis_y_enabled:bool) -> None:
        """Whether to constrain the slew rate along the direction of Y axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._set_slew_rate_along_y_axis_enabled_metadata, per_axis_y_enabled)

    _get_slew_rate_along_z_axis_enabled_metadata = { "offset" : _get_slew_rate_along_z_axis_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def slew_rate_along_z_axis_enabled(self) -> bool:
        """Whether to constrain the slew rate along the direction of Z axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._get_slew_rate_along_z_axis_enabled_metadata)

    _set_slew_rate_along_z_axis_enabled_metadata = { "offset" : _set_slew_rate_along_z_axis_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @slew_rate_along_z_axis_enabled.setter
    def slew_rate_along_z_axis_enabled(self, per_axis_z_enabled:bool) -> None:
        """Whether to constrain the slew rate along the direction of Z axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._set_slew_rate_along_z_axis_enabled_metadata, per_axis_z_enabled)

    _get_slew_rate_along_x_axis_metadata = { "offset" : _get_slew_rate_along_x_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def slew_rate_along_x_axis(self) -> float:
        """Constraint the slew rate along the direction of X axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._get_slew_rate_along_x_axis_metadata)

    _set_slew_rate_along_x_axis_metadata = { "offset" : _set_slew_rate_along_x_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @slew_rate_along_x_axis.setter
    def slew_rate_along_x_axis(self, per_axis_x:float) -> None:
        """Constraint the slew rate along the direction of X axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._set_slew_rate_along_x_axis_metadata, per_axis_x)

    _get_slew_rate_along_y_axis_metadata = { "offset" : _get_slew_rate_along_y_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def slew_rate_along_y_axis(self) -> float:
        """Constraint the slew rate along the direction of Y axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._get_slew_rate_along_y_axis_metadata)

    _set_slew_rate_along_y_axis_metadata = { "offset" : _set_slew_rate_along_y_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @slew_rate_along_y_axis.setter
    def slew_rate_along_y_axis(self, per_axis_y:float) -> None:
        """Constraint the slew rate along the direction of Y axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._set_slew_rate_along_y_axis_metadata, per_axis_y)

    _get_slew_rate_along_z_axis_metadata = { "offset" : _get_slew_rate_along_z_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def slew_rate_along_z_axis(self) -> float:
        """Constraint the slew rate along the direction of Z axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._get_slew_rate_along_z_axis_metadata)

    _set_slew_rate_along_z_axis_metadata = { "offset" : _set_slew_rate_along_z_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @slew_rate_along_z_axis.setter
    def slew_rate_along_z_axis(self, per_axis_z:float) -> None:
        """Constraint the slew rate along the direction of Z axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewRate._metadata, VehicleAttitudeMaximumSlewRate._set_slew_rate_along_z_axis_metadata, per_axis_z)

    _property_names[magnitude] = "magnitude"
    _property_names[slew_rate_along_x_axis_enabled] = "slew_rate_along_x_axis_enabled"
    _property_names[slew_rate_along_y_axis_enabled] = "slew_rate_along_y_axis_enabled"
    _property_names[slew_rate_along_z_axis_enabled] = "slew_rate_along_z_axis_enabled"
    _property_names[slew_rate_along_x_axis] = "slew_rate_along_x_axis"
    _property_names[slew_rate_along_y_axis] = "slew_rate_along_y_axis"
    _property_names[slew_rate_along_z_axis] = "slew_rate_along_z_axis"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeMaximumSlewRate."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeMaximumSlewRate)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeMaximumSlewRate, [VehicleAttitudeMaximumSlewRate, ])

agcls.AgClassCatalog.add_catalog_entry((5581447847627007877, 15462966128075774337), VehicleAttitudeMaximumSlewRate)
agcls.AgTypeNameMap["VehicleAttitudeMaximumSlewRate"] = VehicleAttitudeMaximumSlewRate

class VehicleAttitudeMaximumSlewAcceleration(SupportsDeleteCallback):
    """Define the maximum slew acceleration by entering maximum overall magnitude. You can constrain the slew acceleration in specific directions by selecting one or more Per Axis rates and defining separate maximum rates for those axes."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_magnitude_method_offset = 1
    _set_magnitude_method_offset = 2
    _get_slew_acceleration_along_x_axis_enabled_method_offset = 3
    _set_slew_acceleration_along_x_axis_enabled_method_offset = 4
    _get_slew_acceleration_along_y_axis_enabled_method_offset = 5
    _set_slew_acceleration_along_y_axis_enabled_method_offset = 6
    _get_slew_acceleration_along_z_axis_enabled_method_offset = 7
    _set_slew_acceleration_along_z_axis_enabled_method_offset = 8
    _get_slew_acceleration_along_x_axis_method_offset = 9
    _set_slew_acceleration_along_x_axis_method_offset = 10
    _get_slew_acceleration_along_y_axis_method_offset = 11
    _set_slew_acceleration_along_y_axis_method_offset = 12
    _get_slew_acceleration_along_z_axis_method_offset = 13
    _set_slew_acceleration_along_z_axis_method_offset = 14
    _metadata = {
        "iid_data" : (5394322363173879995, 14377519785801447871),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeMaximumSlewAcceleration)

    _get_magnitude_metadata = { "offset" : _get_magnitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def magnitude(self) -> float:
        """Get or set the maximum overall magnitude."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._get_magnitude_metadata)

    _set_magnitude_metadata = { "offset" : _set_magnitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @magnitude.setter
    def magnitude(self, magnitude:float) -> None:
        """Get or set the maximum overall magnitude."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._set_magnitude_metadata, magnitude)

    _get_slew_acceleration_along_x_axis_enabled_metadata = { "offset" : _get_slew_acceleration_along_x_axis_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def slew_acceleration_along_x_axis_enabled(self) -> bool:
        """Whether to constrain the slew acceleration along the direction of X axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._get_slew_acceleration_along_x_axis_enabled_metadata)

    _set_slew_acceleration_along_x_axis_enabled_metadata = { "offset" : _set_slew_acceleration_along_x_axis_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @slew_acceleration_along_x_axis_enabled.setter
    def slew_acceleration_along_x_axis_enabled(self, per_axis_x_accel_enabled:bool) -> None:
        """Whether to constrain the slew acceleration along the direction of X axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._set_slew_acceleration_along_x_axis_enabled_metadata, per_axis_x_accel_enabled)

    _get_slew_acceleration_along_y_axis_enabled_metadata = { "offset" : _get_slew_acceleration_along_y_axis_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def slew_acceleration_along_y_axis_enabled(self) -> bool:
        """Whether to constrain the slew acceleration along the direction of Y axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._get_slew_acceleration_along_y_axis_enabled_metadata)

    _set_slew_acceleration_along_y_axis_enabled_metadata = { "offset" : _set_slew_acceleration_along_y_axis_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @slew_acceleration_along_y_axis_enabled.setter
    def slew_acceleration_along_y_axis_enabled(self, per_axis_y_accel_enabled:bool) -> None:
        """Whether to constrain the slew acceleration along the direction of Y axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._set_slew_acceleration_along_y_axis_enabled_metadata, per_axis_y_accel_enabled)

    _get_slew_acceleration_along_z_axis_enabled_metadata = { "offset" : _get_slew_acceleration_along_z_axis_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def slew_acceleration_along_z_axis_enabled(self) -> bool:
        """Whether to constrain the slew acceleration along the direction of Z axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._get_slew_acceleration_along_z_axis_enabled_metadata)

    _set_slew_acceleration_along_z_axis_enabled_metadata = { "offset" : _set_slew_acceleration_along_z_axis_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @slew_acceleration_along_z_axis_enabled.setter
    def slew_acceleration_along_z_axis_enabled(self, per_axis_z_accel_enabled:bool) -> None:
        """Whether to constrain the slew acceleration along the direction of Z axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._set_slew_acceleration_along_z_axis_enabled_metadata, per_axis_z_accel_enabled)

    _get_slew_acceleration_along_x_axis_metadata = { "offset" : _get_slew_acceleration_along_x_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def slew_acceleration_along_x_axis(self) -> float:
        """Constraint the slew acceleration along the direction of X axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._get_slew_acceleration_along_x_axis_metadata)

    _set_slew_acceleration_along_x_axis_metadata = { "offset" : _set_slew_acceleration_along_x_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @slew_acceleration_along_x_axis.setter
    def slew_acceleration_along_x_axis(self, per_axis_x_accel:float) -> None:
        """Constraint the slew acceleration along the direction of X axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._set_slew_acceleration_along_x_axis_metadata, per_axis_x_accel)

    _get_slew_acceleration_along_y_axis_metadata = { "offset" : _get_slew_acceleration_along_y_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def slew_acceleration_along_y_axis(self) -> float:
        """Constraint the slew acceleration along the direction of Y axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._get_slew_acceleration_along_y_axis_metadata)

    _set_slew_acceleration_along_y_axis_metadata = { "offset" : _set_slew_acceleration_along_y_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @slew_acceleration_along_y_axis.setter
    def slew_acceleration_along_y_axis(self, per_axis_y_accel:float) -> None:
        """Constraint the slew acceleration along the direction of Y axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._set_slew_acceleration_along_y_axis_metadata, per_axis_y_accel)

    _get_slew_acceleration_along_z_axis_metadata = { "offset" : _get_slew_acceleration_along_z_axis_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def slew_acceleration_along_z_axis(self) -> float:
        """Constraint the slew acceleration along the direction of Z axis."""
        return self._intf.get_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._get_slew_acceleration_along_z_axis_metadata)

    _set_slew_acceleration_along_z_axis_metadata = { "offset" : _set_slew_acceleration_along_z_axis_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @slew_acceleration_along_z_axis.setter
    def slew_acceleration_along_z_axis(self, per_axis_z_accel:float) -> None:
        """Constraint the slew acceleration along the direction of Z axis."""
        return self._intf.set_property(VehicleAttitudeMaximumSlewAcceleration._metadata, VehicleAttitudeMaximumSlewAcceleration._set_slew_acceleration_along_z_axis_metadata, per_axis_z_accel)

    _property_names[magnitude] = "magnitude"
    _property_names[slew_acceleration_along_x_axis_enabled] = "slew_acceleration_along_x_axis_enabled"
    _property_names[slew_acceleration_along_y_axis_enabled] = "slew_acceleration_along_y_axis_enabled"
    _property_names[slew_acceleration_along_z_axis_enabled] = "slew_acceleration_along_z_axis_enabled"
    _property_names[slew_acceleration_along_x_axis] = "slew_acceleration_along_x_axis"
    _property_names[slew_acceleration_along_y_axis] = "slew_acceleration_along_y_axis"
    _property_names[slew_acceleration_along_z_axis] = "slew_acceleration_along_z_axis"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeMaximumSlewAcceleration."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeMaximumSlewAcceleration)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeMaximumSlewAcceleration, [VehicleAttitudeMaximumSlewAcceleration, ])

agcls.AgClassCatalog.add_catalog_entry((4806077134608767210, 17186220678132228228), VehicleAttitudeMaximumSlewAcceleration)
agcls.AgTypeNameMap["VehicleAttitudeMaximumSlewAcceleration"] = VehicleAttitudeMaximumSlewAcceleration

class VehicleAttitudeSlewConstrained(IVehicleAttitudeSlewBase, SupportsDeleteCallback):
    """Constrained slew mode."""

    _num_methods = 6
    _vtable_offset = IVehicleAttitudeSlewBase._vtable_offset + IVehicleAttitudeSlewBase._num_methods
    _get_maximum_slew_time_method_offset = 1
    _set_maximum_slew_time_method_offset = 2
    _get_slew_timing_between_targets_method_offset = 3
    _set_slew_timing_between_targets_method_offset = 4
    _get_maximum_slew_rate_method_offset = 5
    _get_maximum_slew_acceleration_method_offset = 6
    _metadata = {
        "iid_data" : (4925185021597363463, 11561210039076745645),
        "vtable_reference" : IVehicleAttitudeSlewBase._vtable_offset + IVehicleAttitudeSlewBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeSlewConstrained)

    _get_maximum_slew_time_metadata = { "offset" : _get_maximum_slew_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_slew_time(self) -> float:
        """Limits the maximum slew rate."""
        return self._intf.get_property(VehicleAttitudeSlewConstrained._metadata, VehicleAttitudeSlewConstrained._get_maximum_slew_time_metadata)

    _set_maximum_slew_time_metadata = { "offset" : _set_maximum_slew_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_slew_time.setter
    def maximum_slew_time(self, maximum_slew_time:float) -> None:
        """Limits the maximum slew rate."""
        return self._intf.set_property(VehicleAttitudeSlewConstrained._metadata, VehicleAttitudeSlewConstrained._set_maximum_slew_time_metadata, maximum_slew_time)

    _get_slew_timing_between_targets_metadata = { "offset" : _get_slew_timing_between_targets_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSlewTimingBetweenTargetType),) }
    @property
    def slew_timing_between_targets(self) -> "VehicleSlewTimingBetweenTargetType":
        """Choose an event within the window of opportunity to trigger each slew, or select Optimal to change attitude whenever the slew can be performed most efficiently."""
        return self._intf.get_property(VehicleAttitudeSlewConstrained._metadata, VehicleAttitudeSlewConstrained._get_slew_timing_between_targets_metadata)

    _set_slew_timing_between_targets_metadata = { "offset" : _set_slew_timing_between_targets_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSlewTimingBetweenTargetType),) }
    @slew_timing_between_targets.setter
    def slew_timing_between_targets(self, slew_timing_between_targets:"VehicleSlewTimingBetweenTargetType") -> None:
        """Choose an event within the window of opportunity to trigger each slew, or select Optimal to change attitude whenever the slew can be performed most efficiently."""
        return self._intf.set_property(VehicleAttitudeSlewConstrained._metadata, VehicleAttitudeSlewConstrained._set_slew_timing_between_targets_metadata, slew_timing_between_targets)

    _get_maximum_slew_rate_metadata = { "offset" : _get_maximum_slew_rate_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def maximum_slew_rate(self) -> "VehicleAttitudeMaximumSlewRate":
        """Configure how to constrain the slew rate."""
        return self._intf.get_property(VehicleAttitudeSlewConstrained._metadata, VehicleAttitudeSlewConstrained._get_maximum_slew_rate_metadata)

    _get_maximum_slew_acceleration_metadata = { "offset" : _get_maximum_slew_acceleration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def maximum_slew_acceleration(self) -> "VehicleAttitudeMaximumSlewAcceleration":
        """Configure how to constrain the slew acceleration."""
        return self._intf.get_property(VehicleAttitudeSlewConstrained._metadata, VehicleAttitudeSlewConstrained._get_maximum_slew_acceleration_metadata)

    _property_names[maximum_slew_time] = "maximum_slew_time"
    _property_names[slew_timing_between_targets] = "slew_timing_between_targets"
    _property_names[maximum_slew_rate] = "maximum_slew_rate"
    _property_names[maximum_slew_acceleration] = "maximum_slew_acceleration"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeSlewConstrained."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeSlewConstrained)
        IVehicleAttitudeSlewBase.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeSlewBase._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeSlewConstrained, [VehicleAttitudeSlewConstrained, IVehicleAttitudeSlewBase])

agcls.AgClassCatalog.add_catalog_entry((4772620555059184797, 16645733276322792622), VehicleAttitudeSlewConstrained)
agcls.AgTypeNameMap["VehicleAttitudeSlewConstrained"] = VehicleAttitudeSlewConstrained

class VehicleAttitudeSlewFixedRate(IVehicleAttitudeSlewBase, SupportsDeleteCallback):
    """Fixed Rate slew."""

    _num_methods = 5
    _vtable_offset = IVehicleAttitudeSlewBase._vtable_offset + IVehicleAttitudeSlewBase._num_methods
    _get_maximum_slew_time_method_offset = 1
    _set_maximum_slew_time_method_offset = 2
    _get_slew_timing_between_targets_method_offset = 3
    _set_slew_timing_between_targets_method_offset = 4
    _get_maximum_slew_rate_method_offset = 5
    _metadata = {
        "iid_data" : (4862775320924442845, 2261811150278514877),
        "vtable_reference" : IVehicleAttitudeSlewBase._vtable_offset + IVehicleAttitudeSlewBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeSlewFixedRate)

    _get_maximum_slew_time_metadata = { "offset" : _get_maximum_slew_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_slew_time(self) -> float:
        """Limits the maximum slew rate."""
        return self._intf.get_property(VehicleAttitudeSlewFixedRate._metadata, VehicleAttitudeSlewFixedRate._get_maximum_slew_time_metadata)

    _set_maximum_slew_time_metadata = { "offset" : _set_maximum_slew_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_slew_time.setter
    def maximum_slew_time(self, maximum_slew_time:float) -> None:
        """Limits the maximum slew rate."""
        return self._intf.set_property(VehicleAttitudeSlewFixedRate._metadata, VehicleAttitudeSlewFixedRate._set_maximum_slew_time_metadata, maximum_slew_time)

    _get_slew_timing_between_targets_metadata = { "offset" : _get_slew_timing_between_targets_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSlewTimingBetweenTargetType),) }
    @property
    def slew_timing_between_targets(self) -> "VehicleSlewTimingBetweenTargetType":
        """Choose an event within the window of opportunity to trigger each slew, or select Optimal to change attitude whenever the slew can be performed most efficiently."""
        return self._intf.get_property(VehicleAttitudeSlewFixedRate._metadata, VehicleAttitudeSlewFixedRate._get_slew_timing_between_targets_metadata)

    _set_slew_timing_between_targets_metadata = { "offset" : _set_slew_timing_between_targets_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSlewTimingBetweenTargetType),) }
    @slew_timing_between_targets.setter
    def slew_timing_between_targets(self, slew_timing_between_targets:"VehicleSlewTimingBetweenTargetType") -> None:
        """Choose an event within the window of opportunity to trigger each slew, or select Optimal to change attitude whenever the slew can be performed most efficiently."""
        return self._intf.set_property(VehicleAttitudeSlewFixedRate._metadata, VehicleAttitudeSlewFixedRate._set_slew_timing_between_targets_metadata, slew_timing_between_targets)

    _get_maximum_slew_rate_metadata = { "offset" : _get_maximum_slew_rate_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def maximum_slew_rate(self) -> "VehicleAttitudeMaximumSlewRate":
        """Configure how to constrain the slew rate."""
        return self._intf.get_property(VehicleAttitudeSlewFixedRate._metadata, VehicleAttitudeSlewFixedRate._get_maximum_slew_rate_metadata)

    _property_names[maximum_slew_time] = "maximum_slew_time"
    _property_names[slew_timing_between_targets] = "slew_timing_between_targets"
    _property_names[maximum_slew_rate] = "maximum_slew_rate"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeSlewFixedRate."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeSlewFixedRate)
        IVehicleAttitudeSlewBase.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeSlewBase._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeSlewFixedRate, [VehicleAttitudeSlewFixedRate, IVehicleAttitudeSlewBase])

agcls.AgClassCatalog.add_catalog_entry((5670508264669897742, 10184103398400118179), VehicleAttitudeSlewFixedRate)
agcls.AgTypeNameMap["VehicleAttitudeSlewFixedRate"] = VehicleAttitudeSlewFixedRate

class VehicleAttitudeSlewFixedTime(IVehicleAttitudeSlewBase, SupportsDeleteCallback):
    """Fixed Time slew."""

    _num_methods = 4
    _vtable_offset = IVehicleAttitudeSlewBase._vtable_offset + IVehicleAttitudeSlewBase._num_methods
    _get_slew_time_method_offset = 1
    _set_slew_time_method_offset = 2
    _get_match_angular_velocity_method_offset = 3
    _set_match_angular_velocity_method_offset = 4
    _metadata = {
        "iid_data" : (4987977449032858238, 9701506952591290287),
        "vtable_reference" : IVehicleAttitudeSlewBase._vtable_offset + IVehicleAttitudeSlewBase._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeSlewFixedTime)

    _get_slew_time_metadata = { "offset" : _get_slew_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def slew_time(self) -> float:
        """Get or set the time required to change attitude."""
        return self._intf.get_property(VehicleAttitudeSlewFixedTime._metadata, VehicleAttitudeSlewFixedTime._get_slew_time_metadata)

    _set_slew_time_metadata = { "offset" : _set_slew_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @slew_time.setter
    def slew_time(self, slew_time:float) -> None:
        """Get or set the time required to change attitude."""
        return self._intf.set_property(VehicleAttitudeSlewFixedTime._metadata, VehicleAttitudeSlewFixedTime._set_slew_time_metadata, slew_time)

    _get_match_angular_velocity_metadata = { "offset" : _get_match_angular_velocity_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def match_angular_velocity(self) -> bool:
        """Indicate whether to take account of the angular velocity (slope) at the beginning and the end of the slew."""
        return self._intf.get_property(VehicleAttitudeSlewFixedTime._metadata, VehicleAttitudeSlewFixedTime._get_match_angular_velocity_metadata)

    _set_match_angular_velocity_metadata = { "offset" : _set_match_angular_velocity_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @match_angular_velocity.setter
    def match_angular_velocity(self, match_angular_velocity:bool) -> None:
        """Indicate whether to take account of the angular velocity (slope) at the beginning and the end of the slew."""
        return self._intf.set_property(VehicleAttitudeSlewFixedTime._metadata, VehicleAttitudeSlewFixedTime._set_match_angular_velocity_metadata, match_angular_velocity)

    _property_names[slew_time] = "slew_time"
    _property_names[match_angular_velocity] = "match_angular_velocity"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeSlewFixedTime."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeSlewFixedTime)
        IVehicleAttitudeSlewBase.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVehicleAttitudeSlewBase._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeSlewFixedTime, [VehicleAttitudeSlewFixedTime, IVehicleAttitudeSlewBase])

agcls.AgClassCatalog.add_catalog_entry((4744044921383086627, 15247977514452308373), VehicleAttitudeSlewFixedTime)
agcls.AgTypeNameMap["VehicleAttitudeSlewFixedTime"] = VehicleAttitudeSlewFixedTime

class VehicleAttitudeTargetSlew(SupportsDeleteCallback):
    """Define the time required for a vehicle to move from its basic attitude to its target pointing attitude, and to change from the target pointing attitude back to the basic attitude."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_slew_mode_type_method_offset = 1
    _set_slew_mode_type_method_offset = 2
    _is_slew_mode_type_supported_method_offset = 3
    _get_slew_mode_supported_types_method_offset = 4
    _get_slew_mode_method_offset = 5
    _metadata = {
        "iid_data" : (5659043574845132559, 13551949736080923293),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleAttitudeTargetSlew)

    _get_slew_mode_type_metadata = { "offset" : _get_slew_mode_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VehicleSlewMode),) }
    @property
    def slew_mode_type(self) -> "VehicleSlewMode":
        """Select an attitude slew mode."""
        return self._intf.get_property(VehicleAttitudeTargetSlew._metadata, VehicleAttitudeTargetSlew._get_slew_mode_type_metadata)

    _set_slew_mode_type_metadata = { "offset" : _set_slew_mode_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VehicleSlewMode),) }
    def set_slew_mode_type(self, slew_mode:"VehicleSlewMode") -> None:
        """Select an attitude slew mode."""
        return self._intf.invoke(VehicleAttitudeTargetSlew._metadata, VehicleAttitudeTargetSlew._set_slew_mode_type_metadata, slew_mode)

    _is_slew_mode_type_supported_metadata = { "offset" : _is_slew_mode_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(VehicleSlewMode), agmarshall.VariantBoolArg,) }
    def is_slew_mode_type_supported(self, slew_mode:"VehicleSlewMode") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(VehicleAttitudeTargetSlew._metadata, VehicleAttitudeTargetSlew._is_slew_mode_type_supported_metadata, slew_mode, OutArg())

    _get_slew_mode_supported_types_metadata = { "offset" : _get_slew_mode_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def slew_mode_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleAttitudeTargetSlew._metadata, VehicleAttitudeTargetSlew._get_slew_mode_supported_types_metadata)

    _get_slew_mode_metadata = { "offset" : _get_slew_mode_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def slew_mode(self) -> "IVehicleAttitudeSlewBase":
        """Return a currently selected attitude slew configuration."""
        return self._intf.get_property(VehicleAttitudeTargetSlew._metadata, VehicleAttitudeTargetSlew._get_slew_mode_metadata)

    _property_names[slew_mode_type] = "slew_mode_type"
    _property_names[slew_mode_supported_types] = "slew_mode_supported_types"
    _property_names[slew_mode] = "slew_mode"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleAttitudeTargetSlew."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleAttitudeTargetSlew)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleAttitudeTargetSlew, [VehicleAttitudeTargetSlew, ])

agcls.AgClassCatalog.add_catalog_entry((5221829339718498945, 9089199962112486065), VehicleAttitudeTargetSlew)
agcls.AgTypeNameMap["VehicleAttitudeTargetSlew"] = VehicleAttitudeTargetSlew

class MTOGraphics3DModelArticulation(SupportsDeleteCallback):
    """MTO ModelArticulation Interface."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_default_save_method_offset = 1
    _set_enable_default_save_method_offset = 2
    _get_transformation_value_method_offset = 3
    _set_transformation_value_method_offset = 4
    _get_available_articulations_method_offset = 5
    _get_available_transformations_method_offset = 6
    _get_level_of_detail_count_method_offset = 7
    _get_read_articulation_file_on_load_method_offset = 8
    _set_read_articulation_file_on_load_method_offset = 9
    _get_save_articulation_file_on_save_method_offset = 10
    _set_save_articulation_file_on_save_method_offset = 11
    _metadata = {
        "iid_data" : (5083676630403524854, 7531272317888843668),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MTOGraphics3DModelArticulation)

    _get_enable_default_save_metadata = { "offset" : _get_enable_default_save_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_default_save(self) -> bool:
        """Save the articulation value as the default for all future sessions using this model. The articulation value is saved with the object and not with the model or articulation files."""
        return self._intf.get_property(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._get_enable_default_save_metadata)

    _set_enable_default_save_metadata = { "offset" : _set_enable_default_save_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_default_save.setter
    def enable_default_save(self, value:bool) -> None:
        return self._intf.set_property(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._set_enable_default_save_metadata, value)

    _get_transformation_value_metadata = { "offset" : _get_transformation_value_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, agcom.BSTR, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.DoubleArg,) }
    def get_transformation_value(self, level_of_detail:int, articulation:str, trans:str) -> float:
        """Get the Transformation Value given the LOD (level of detail), articulation name and the transformation name."""
        return self._intf.invoke(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._get_transformation_value_metadata, level_of_detail, articulation, trans, OutArg())

    _set_transformation_value_metadata = { "offset" : _set_transformation_value_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, agcom.BSTR, agcom.DOUBLE,),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg, agmarshall.BStrArg, agmarshall.DoubleArg,) }
    def set_transformation_value(self, level_of_detail:int, articulation:str, trans:str, transformation_value:float) -> None:
        """Set the Transformation Value given the LOD and articulation name."""
        return self._intf.invoke(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._set_transformation_value_metadata, level_of_detail, articulation, trans, transformation_value)

    _get_available_articulations_metadata = { "offset" : _get_available_articulations_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LongArg, agmarshall.LPSafearrayArg,) }
    def get_available_articulations(self, level_of_detail:int) -> list:
        """Get the available articulations."""
        return self._intf.invoke(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._get_available_articulations_metadata, level_of_detail, OutArg())

    _get_available_transformations_metadata = { "offset" : _get_available_transformations_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_available_transformations(self, level_of_detail:int, artic_name:str) -> "Graphics3DModelTransformationCollection":
        """Get the available transformations."""
        return self._intf.invoke(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._get_available_transformations_metadata, level_of_detail, artic_name, OutArg())

    _get_level_of_detail_count_metadata = { "offset" : _get_level_of_detail_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def level_of_detail_count(self) -> int:
        """Specify the level of detail (LOD) for defining articulations, where 0 is the finest level of detail and 1 is the coarsest model."""
        return self._intf.get_property(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._get_level_of_detail_count_metadata)

    _get_read_articulation_file_on_load_metadata = { "offset" : _get_read_articulation_file_on_load_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def read_articulation_file_on_load(self) -> bool:
        """Read the articulation file when MTO object is loaded."""
        return self._intf.get_property(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._get_read_articulation_file_on_load_metadata)

    _set_read_articulation_file_on_load_metadata = { "offset" : _set_read_articulation_file_on_load_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @read_articulation_file_on_load.setter
    def read_articulation_file_on_load(self, value:bool) -> None:
        return self._intf.set_property(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._set_read_articulation_file_on_load_metadata, value)

    _get_save_articulation_file_on_save_metadata = { "offset" : _get_save_articulation_file_on_save_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def save_articulation_file_on_save(self) -> bool:
        """Save the articulations to the articulation file when MTO object is saved."""
        return self._intf.get_property(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._get_save_articulation_file_on_save_metadata)

    _set_save_articulation_file_on_save_metadata = { "offset" : _set_save_articulation_file_on_save_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @save_articulation_file_on_save.setter
    def save_articulation_file_on_save(self, value:bool) -> None:
        return self._intf.set_property(MTOGraphics3DModelArticulation._metadata, MTOGraphics3DModelArticulation._set_save_articulation_file_on_save_metadata, value)

    _property_names[enable_default_save] = "enable_default_save"
    _property_names[level_of_detail_count] = "level_of_detail_count"
    _property_names[read_articulation_file_on_load] = "read_articulation_file_on_load"
    _property_names[save_articulation_file_on_save] = "save_articulation_file_on_save"

    def __init__(self, source_object=None):
        """Construct an object of type MTOGraphics3DModelArticulation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MTOGraphics3DModelArticulation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MTOGraphics3DModelArticulation, [MTOGraphics3DModelArticulation, ])

agcls.AgClassCatalog.add_catalog_entry((5601778693637538847, 1219821659594976698), MTOGraphics3DModelArticulation)
agcls.AgTypeNameMap["MTOGraphics3DModelArticulation"] = MTOGraphics3DModelArticulation

class PropagatorAviator(IPropagator, SupportsDeleteCallback):
    """Aviator propagator interface."""

    _num_methods = 2
    _vtable_offset = IPropagator._vtable_offset + IPropagator._num_methods
    _get_flight_mission_method_offset = 1
    _get_aviator_propagator_method_offset = 2
    _metadata = {
        "iid_data" : (5578092623135548560, 6455071024479743416),
        "vtable_reference" : IPropagator._vtable_offset + IPropagator._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagatorAviator)

    _get_flight_mission_metadata = { "offset" : _get_flight_mission_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_flight_mission(self) -> typing.Any:
        """Return the underlying Flight Mission object."""
        return self._intf.invoke(PropagatorAviator._metadata, PropagatorAviator._get_flight_mission_metadata, OutArg())

    _get_aviator_propagator_metadata = { "offset" : _get_aviator_propagator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def aviator_propagator(self) -> typing.Any:
        """Aviator propagator object."""
        return self._intf.get_property(PropagatorAviator._metadata, PropagatorAviator._get_aviator_propagator_metadata)

    _property_names[aviator_propagator] = "aviator_propagator"

    def __init__(self, source_object=None):
        """Construct an object of type PropagatorAviator."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagatorAviator)
        IPropagator.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPropagator._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagatorAviator, [PropagatorAviator, IPropagator])

agcls.AgClassCatalog.add_catalog_entry((5386982902672208059, 13914918658528358572), PropagatorAviator)
agcls.AgTypeNameMap["PropagatorAviator"] = PropagatorAviator

class VehicleEphemerisCCSDSv2ExportTool(SupportsDeleteCallback):
    """The CCSDSv2 Ephemeris type for the Export Ephemeris/Attitude Tool."""

    _num_methods = 31
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_originator_method_offset = 1
    _set_originator_method_offset = 2
    _get_object_identifier_method_offset = 3
    _set_object_identifier_method_offset = 4
    _get_object_name_method_offset = 5
    _set_object_name_method_offset = 6
    _get_central_body_name_method_offset = 7
    _set_central_body_name_method_offset = 8
    _get_reference_frame_method_offset = 9
    _set_reference_frame_method_offset = 10
    _get_date_format_method_offset = 11
    _set_date_format_method_offset = 12
    _get_ephemeris_format_method_offset = 13
    _set_ephemeris_format_method_offset = 14
    _get_time_precision_method_offset = 15
    _set_time_precision_method_offset = 16
    _get_step_size_method_offset = 17
    _get_time_period_method_offset = 18
    _get_reference_frames_supported_method_offset = 19
    _get_use_satellite_center_and_frame_method_offset = 20
    _set_use_satellite_center_and_frame_method_offset = 21
    _export_method_offset = 22
    _get_time_system_method_offset = 23
    _set_time_system_method_offset = 24
    _get_include_acceleration_method_offset = 25
    _set_include_acceleration_method_offset = 26
    _get_include_covariance_method_offset = 27
    _set_include_covariance_method_offset = 28
    _get_has_covariance_data_method_offset = 29
    _get_file_format_method_offset = 30
    _set_file_format_method_offset = 31
    _metadata = {
        "iid_data" : (5638315023295497379, 6499349865312813457),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEphemerisCCSDSv2ExportTool)

    _get_originator_metadata = { "offset" : _get_originator_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def originator(self) -> str:
        """A string that specifies an identifier of the organization producing the data file."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_originator_metadata)

    _set_originator_metadata = { "offset" : _set_originator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @originator.setter
    def originator(self, originator:str) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_originator_metadata, originator)

    _get_object_identifier_metadata = { "offset" : _get_object_identifier_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def object_identifier(self) -> str:
        """A string defining the Object ID - to be specified as the international spacecraft designator, also known as an NSSDC identifier."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_object_identifier_metadata)

    _set_object_identifier_metadata = { "offset" : _set_object_identifier_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @object_identifier.setter
    def object_identifier(self, id:str) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_object_identifier_metadata, id)

    _get_object_name_metadata = { "offset" : _get_object_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def object_name(self) -> str:
        """A name for the Object. By recommendation of the CCSDS standard, the name from the SPACEWARN Bulletin should be used."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_object_name_metadata)

    _set_object_name_metadata = { "offset" : _set_object_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @object_name.setter
    def object_name(self, name:str) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_object_name_metadata, name)

    _get_central_body_name_metadata = { "offset" : _get_central_body_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def central_body_name(self) -> str:
        """Get or set the central body of the satellite."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_central_body_name_metadata)

    _set_central_body_name_metadata = { "offset" : _set_central_body_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @central_body_name.setter
    def central_body_name(self, name:str) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_central_body_name_metadata, name)

    _get_reference_frame_metadata = { "offset" : _get_reference_frame_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CCSDSReferenceFrame),) }
    @property
    def reference_frame(self) -> "CCSDSReferenceFrame":
        """Get or set the reference frame of the ephemeris."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_reference_frame_metadata)

    _set_reference_frame_metadata = { "offset" : _set_reference_frame_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CCSDSReferenceFrame),) }
    @reference_frame.setter
    def reference_frame(self, reference_frame:"CCSDSReferenceFrame") -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_reference_frame_metadata, reference_frame)

    _get_date_format_metadata = { "offset" : _get_date_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CCSDSDateFormat),) }
    @property
    def date_format(self) -> "CCSDSDateFormat":
        """Get or set the desired date format."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_date_format_metadata)

    _set_date_format_metadata = { "offset" : _set_date_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CCSDSDateFormat),) }
    @date_format.setter
    def date_format(self, date_format:"CCSDSDateFormat") -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_date_format_metadata, date_format)

    _get_ephemeris_format_metadata = { "offset" : _get_ephemeris_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CCSDSEphemerisFormatType),) }
    @property
    def ephemeris_format(self) -> "CCSDSEphemerisFormatType":
        """Get or set the desired format to be used for representing the position and velocity information as either scientific notation or floating point notation. Scientific notation is recommended when possible."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_ephemeris_format_metadata)

    _set_ephemeris_format_metadata = { "offset" : _set_ephemeris_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CCSDSEphemerisFormatType),) }
    @ephemeris_format.setter
    def ephemeris_format(self, ephem_format:"CCSDSEphemerisFormatType") -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_ephemeris_format_metadata, ephem_format)

    _get_time_precision_metadata = { "offset" : _get_time_precision_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def time_precision(self) -> int:
        """If selected, STK uses the Step Size specified in the vehicle's Basic properties. If not selected, specify a Step Size. Dimensionless."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_time_precision_metadata)

    _set_time_precision_metadata = { "offset" : _set_time_precision_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @time_precision.setter
    def time_precision(self, time_precision:int) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_time_precision_metadata, time_precision)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def step_size(self) -> "ExportToolStepSize":
        """If the Use Ephemeris Steps option is not selected, enter a Step Size to be used for the vehicle."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_step_size_metadata)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "ExportToolTimePeriod":
        """Set the time period. Options are Use Entire Ephemeris - STK creates a data file using the Start and Stop Time specified in the vehicle's Orbit tab or Specify Time Period - STK creates a data file using the Start and Stop Time specified here."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_time_period_metadata)

    _get_reference_frames_supported_metadata = { "offset" : _get_reference_frames_supported_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def reference_frames_supported(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_reference_frames_supported_metadata)

    _get_use_satellite_center_and_frame_metadata = { "offset" : _get_use_satellite_center_and_frame_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_satellite_center_and_frame(self) -> bool:
        """Use the satellite center and frame. Setting the property to 'True' will cause CentralBody and ReferenceFrame properties become read-only."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_use_satellite_center_and_frame_metadata)

    _set_use_satellite_center_and_frame_metadata = { "offset" : _set_use_satellite_center_and_frame_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_satellite_center_and_frame.setter
    def use_satellite_center_and_frame(self, use_satellite:bool) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_use_satellite_center_and_frame_metadata, use_satellite)

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export(self, file_name:str) -> None:
        """Export the ephemeris file."""
        return self._intf.invoke(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._export_metadata, file_name)

    _get_time_system_metadata = { "offset" : _get_time_system_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CCSDSTimeSystem),) }
    @property
    def time_system(self) -> "CCSDSTimeSystem":
        """Get or set the time system of the ephemeris."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_time_system_metadata)

    _set_time_system_metadata = { "offset" : _set_time_system_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CCSDSTimeSystem),) }
    @time_system.setter
    def time_system(self, time_system:"CCSDSTimeSystem") -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_time_system_metadata, time_system)

    _get_include_acceleration_metadata = { "offset" : _get_include_acceleration_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_acceleration(self) -> bool:
        """Include acceleration data in the exported file."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_include_acceleration_metadata)

    _set_include_acceleration_metadata = { "offset" : _set_include_acceleration_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_acceleration.setter
    def include_acceleration(self, include_acceleration:bool) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_include_acceleration_metadata, include_acceleration)

    _get_include_covariance_metadata = { "offset" : _get_include_covariance_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_covariance(self) -> bool:
        """Include covariance data in the exported file. If covariance data is not available, this property becomes read-only."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_include_covariance_metadata)

    _set_include_covariance_metadata = { "offset" : _set_include_covariance_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_covariance.setter
    def include_covariance(self, include_covariance:bool) -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_include_covariance_metadata, include_covariance)

    _get_has_covariance_data_metadata = { "offset" : _get_has_covariance_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def has_covariance_data(self) -> bool:
        """Return true if the object has covariance data."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_has_covariance_data_metadata)

    _get_file_format_metadata = { "offset" : _get_file_format_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EphemExportToolFileFormat),) }
    @property
    def file_format(self) -> "EphemExportToolFileFormat":
        """Get or set the file format that will be generated by the export tool."""
        return self._intf.get_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._get_file_format_metadata)

    _set_file_format_metadata = { "offset" : _set_file_format_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EphemExportToolFileFormat),) }
    @file_format.setter
    def file_format(self, file_format:"EphemExportToolFileFormat") -> None:
        return self._intf.set_property(VehicleEphemerisCCSDSv2ExportTool._metadata, VehicleEphemerisCCSDSv2ExportTool._set_file_format_metadata, file_format)

    _property_names[originator] = "originator"
    _property_names[object_identifier] = "object_identifier"
    _property_names[object_name] = "object_name"
    _property_names[central_body_name] = "central_body_name"
    _property_names[reference_frame] = "reference_frame"
    _property_names[date_format] = "date_format"
    _property_names[ephemeris_format] = "ephemeris_format"
    _property_names[time_precision] = "time_precision"
    _property_names[step_size] = "step_size"
    _property_names[time_period] = "time_period"
    _property_names[reference_frames_supported] = "reference_frames_supported"
    _property_names[use_satellite_center_and_frame] = "use_satellite_center_and_frame"
    _property_names[time_system] = "time_system"
    _property_names[include_acceleration] = "include_acceleration"
    _property_names[include_covariance] = "include_covariance"
    _property_names[has_covariance_data] = "has_covariance_data"
    _property_names[file_format] = "file_format"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEphemerisCCSDSv2ExportTool."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEphemerisCCSDSv2ExportTool)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEphemerisCCSDSv2ExportTool, [VehicleEphemerisCCSDSv2ExportTool, ])

agcls.AgClassCatalog.add_catalog_entry((5095111121162559666, 603895673183418509), VehicleEphemerisCCSDSv2ExportTool)
agcls.AgTypeNameMap["VehicleEphemerisCCSDSv2ExportTool"] = VehicleEphemerisCCSDSv2ExportTool

class PreferencesConnect(SupportsDeleteCallback):
    """Connect settings."""

    _num_methods = 36
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_allow_connect_method_offset = 1
    _set_allow_connect_method_offset = 2
    _get_allow_asynchronous_communications_method_offset = 3
    _set_allow_asynchronous_communications_method_offset = 4
    _get_maximum_connections_method_offset = 5
    _set_maximum_connections_method_offset = 6
    _get_polling_period_method_offset = 7
    _set_polling_period_method_offset = 8
    _get_socket_method_offset = 9
    _set_socket_method_offset = 10
    _get_acknowledge_message_receipt_method_offset = 11
    _set_acknowledge_message_receipt_method_offset = 12
    _get_error_notify_mode_method_offset = 13
    _set_error_notify_mode_method_offset = 14
    _get_wildcard_ignore_nack_method_offset = 15
    _set_wildcard_ignore_nack_method_offset = 16
    _get_verbose_method_offset = 17
    _set_verbose_method_offset = 18
    _get_allow_logging_method_offset = 19
    _set_allow_logging_method_offset = 20
    _get_log_filename_method_offset = 21
    _set_log_filename_method_offset = 22
    _get_allow_external_connect_method_offset = 23
    _set_allow_external_connect_method_offset = 24
    _get_authentication_mode_method_offset = 25
    _set_authentication_mode_method_offset = 26
    _get_tls_server_certificate_file_method_offset = 27
    _set_tls_server_certificate_file_method_offset = 28
    _get_tls_server_key_file_method_offset = 29
    _set_tls_server_key_file_method_offset = 30
    _get_tls_ca_file_method_offset = 31
    _set_tls_ca_file_method_offset = 32
    _get_uds_directory_method_offset = 33
    _set_uds_directory_method_offset = 34
    _get_uds_identifier_method_offset = 35
    _set_uds_identifier_method_offset = 36
    _metadata = {
        "iid_data" : (5721839297839321649, 14659300540719810727),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PreferencesConnect)

    _get_allow_connect_metadata = { "offset" : _get_allow_connect_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_connect(self) -> bool:
        """Get or set the connection allowed property."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_allow_connect_metadata)

    _set_allow_connect_metadata = { "offset" : _set_allow_connect_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_connect.setter
    def allow_connect(self, value:bool) -> None:
        """Get or set the connection allowed property."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_allow_connect_metadata, value)

    _get_allow_asynchronous_communications_metadata = { "offset" : _get_allow_asynchronous_communications_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_asynchronous_communications(self) -> bool:
        """Asynchronous allowed."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_allow_asynchronous_communications_metadata)

    _set_allow_asynchronous_communications_metadata = { "offset" : _set_allow_asynchronous_communications_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_asynchronous_communications.setter
    def allow_asynchronous_communications(self, value:bool) -> None:
        """Asynchronous allowed."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_allow_asynchronous_communications_metadata, value)

    _get_maximum_connections_metadata = { "offset" : _get_maximum_connections_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def maximum_connections(self) -> int:
        """Max number of simultaneous connections."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_maximum_connections_metadata)

    _set_maximum_connections_metadata = { "offset" : _set_maximum_connections_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @maximum_connections.setter
    def maximum_connections(self, max_connections:int) -> None:
        """Max number of simultaneous connections."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_maximum_connections_metadata, max_connections)

    _get_polling_period_metadata = { "offset" : _get_polling_period_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def polling_period(self) -> int:
        """Period between port polls in msec."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_polling_period_metadata)

    _set_polling_period_metadata = { "offset" : _set_polling_period_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @polling_period.setter
    def polling_period(self, poll_period:int) -> None:
        """Period between port polls in msec."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_polling_period_metadata, poll_period)

    _get_socket_metadata = { "offset" : _get_socket_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def socket(self) -> int:
        """TCP/IP Socket Port."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_socket_metadata)

    _set_socket_metadata = { "offset" : _set_socket_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @socket.setter
    def socket(self, socket:int) -> None:
        """TCP/IP Socket Port."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_socket_metadata, socket)

    _get_acknowledge_message_receipt_metadata = { "offset" : _get_acknowledge_message_receipt_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def acknowledge_message_receipt(self) -> bool:
        """Get or set the initial connect Acknowledge mode state."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_acknowledge_message_receipt_metadata)

    _set_acknowledge_message_receipt_metadata = { "offset" : _set_acknowledge_message_receipt_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @acknowledge_message_receipt.setter
    def acknowledge_message_receipt(self, value:bool) -> None:
        """Get or set the initial connect Acknowledge mode state."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_acknowledge_message_receipt_metadata, value)

    _get_error_notify_mode_metadata = { "offset" : _get_error_notify_mode_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def error_notify_mode(self) -> bool:
        """Get or set the initial connect Error Notify mode state."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_error_notify_mode_metadata)

    _set_error_notify_mode_metadata = { "offset" : _set_error_notify_mode_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @error_notify_mode.setter
    def error_notify_mode(self, value:bool) -> None:
        """Get or set the initial connect Error Notify mode state."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_error_notify_mode_metadata, value)

    _get_wildcard_ignore_nack_metadata = { "offset" : _get_wildcard_ignore_nack_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def wildcard_ignore_nack(self) -> bool:
        """Ignore Backs when Wildcards used."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_wildcard_ignore_nack_metadata)

    _set_wildcard_ignore_nack_metadata = { "offset" : _set_wildcard_ignore_nack_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @wildcard_ignore_nack.setter
    def wildcard_ignore_nack(self, value:bool) -> None:
        """Ignore Backs when Wildcards used."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_wildcard_ignore_nack_metadata, value)

    _get_verbose_metadata = { "offset" : _get_verbose_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def verbose(self) -> bool:
        """Get or set the initial connect Verbose mode state."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_verbose_metadata)

    _set_verbose_metadata = { "offset" : _set_verbose_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @verbose.setter
    def verbose(self, value:bool) -> None:
        """Get or set the initial connect Verbose mode state."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_verbose_metadata, value)

    _get_allow_logging_metadata = { "offset" : _get_allow_logging_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_logging(self) -> bool:
        """Allow for command logging."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_allow_logging_metadata)

    _set_allow_logging_metadata = { "offset" : _set_allow_logging_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_logging.setter
    def allow_logging(self, value:bool) -> None:
        """Allow for command logging."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_allow_logging_metadata, value)

    _get_log_filename_metadata = { "offset" : _get_log_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def log_filename(self) -> str:
        """File for logging commands."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_log_filename_metadata)

    _set_log_filename_metadata = { "offset" : _set_log_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @log_filename.setter
    def log_filename(self, log_file:str) -> None:
        """File for logging commands."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_log_filename_metadata, log_file)

    _get_allow_external_connect_metadata = { "offset" : _get_allow_external_connect_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_external_connect(self) -> bool:
        """Allow connections from other machines."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_allow_external_connect_metadata)

    _set_allow_external_connect_metadata = { "offset" : _set_allow_external_connect_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_external_connect.setter
    def allow_external_connect(self, value:bool) -> None:
        """Allow connections from other machines."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_allow_external_connect_metadata, value)

    _get_authentication_mode_metadata = { "offset" : _get_authentication_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ConnectAuthenticationMode),) }
    @property
    def authentication_mode(self) -> "ConnectAuthenticationMode":
        """Get or set the authentication mode for the server."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_authentication_mode_metadata)

    _set_authentication_mode_metadata = { "offset" : _set_authentication_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ConnectAuthenticationMode),) }
    @authentication_mode.setter
    def authentication_mode(self, value:"ConnectAuthenticationMode") -> None:
        """Get or set the authentication mode for the server."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_authentication_mode_metadata, value)

    _get_tls_server_certificate_file_metadata = { "offset" : _get_tls_server_certificate_file_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def tls_server_certificate_file(self) -> str:
        """Get or set the filepath to the server certificate file for mTLS authentication. (e.g. server.crt)"""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_tls_server_certificate_file_metadata)

    _set_tls_server_certificate_file_metadata = { "offset" : _set_tls_server_certificate_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @tls_server_certificate_file.setter
    def tls_server_certificate_file(self, value:str) -> None:
        """Get or set the filepath to the server certificate file for mTLS authentication. (e.g. server.crt)"""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_tls_server_certificate_file_metadata, value)

    _get_tls_server_key_file_metadata = { "offset" : _get_tls_server_key_file_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def tls_server_key_file(self) -> str:
        """Get or set the filepath to the server key file for mTLS authentication. (e.g. server.key)"""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_tls_server_key_file_metadata)

    _set_tls_server_key_file_metadata = { "offset" : _set_tls_server_key_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @tls_server_key_file.setter
    def tls_server_key_file(self, value:str) -> None:
        """Get or set the filepath to the server key file for mTLS authentication. (e.g. server.key)"""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_tls_server_key_file_metadata, value)

    _get_tls_ca_file_metadata = { "offset" : _get_tls_ca_file_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def tls_ca_file(self) -> str:
        """Get or set the filepath to the server certificate authentication file for mTLS authentication. (e.g. ca.crt)"""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_tls_ca_file_metadata)

    _set_tls_ca_file_metadata = { "offset" : _set_tls_ca_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @tls_ca_file.setter
    def tls_ca_file(self, value:str) -> None:
        """Get or set the filepath to the server certificate authentication file for mTLS authentication. (e.g. ca.crt)"""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_tls_ca_file_metadata, value)

    _get_uds_directory_metadata = { "offset" : _get_uds_directory_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def uds_directory(self) -> str:
        """Get or set the filepath to the directory for the UDS socket file. Supported on Linux platforms only."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_uds_directory_metadata)

    _set_uds_directory_metadata = { "offset" : _set_uds_directory_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @uds_directory.setter
    def uds_directory(self, value:str) -> None:
        """Get or set the filepath to the directory for the UDS socket file. Supported on Linux platforms only."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_uds_directory_metadata, value)

    _get_uds_identifier_metadata = { "offset" : _get_uds_identifier_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def uds_identifier(self) -> str:
        """Get or set an optional UDS ID for multiple connections. Supported on Linux platforms only."""
        return self._intf.get_property(PreferencesConnect._metadata, PreferencesConnect._get_uds_identifier_metadata)

    _set_uds_identifier_metadata = { "offset" : _set_uds_identifier_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @uds_identifier.setter
    def uds_identifier(self, value:str) -> None:
        """Get or set an optional UDS ID for multiple connections. Supported on Linux platforms only."""
        return self._intf.set_property(PreferencesConnect._metadata, PreferencesConnect._set_uds_identifier_metadata, value)

    _property_names[allow_connect] = "allow_connect"
    _property_names[allow_asynchronous_communications] = "allow_asynchronous_communications"
    _property_names[maximum_connections] = "maximum_connections"
    _property_names[polling_period] = "polling_period"
    _property_names[socket] = "socket"
    _property_names[acknowledge_message_receipt] = "acknowledge_message_receipt"
    _property_names[error_notify_mode] = "error_notify_mode"
    _property_names[wildcard_ignore_nack] = "wildcard_ignore_nack"
    _property_names[verbose] = "verbose"
    _property_names[allow_logging] = "allow_logging"
    _property_names[log_filename] = "log_filename"
    _property_names[allow_external_connect] = "allow_external_connect"
    _property_names[authentication_mode] = "authentication_mode"
    _property_names[tls_server_certificate_file] = "tls_server_certificate_file"
    _property_names[tls_server_key_file] = "tls_server_key_file"
    _property_names[tls_ca_file] = "tls_ca_file"
    _property_names[uds_directory] = "uds_directory"
    _property_names[uds_identifier] = "uds_identifier"

    def __init__(self, source_object=None):
        """Construct an object of type PreferencesConnect."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PreferencesConnect)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PreferencesConnect, [PreferencesConnect, ])

agcls.AgClassCatalog.add_catalog_entry((4747446301397134364, 8625519428360849599), PreferencesConnect)
agcls.AgTypeNameMap["PreferencesConnect"] = PreferencesConnect

class Antenna(ISTKObject, ILifetimeInformation, IDisplayTime, SupportsDeleteCallback):
    """
    Provide access to the properties and methods defining an Antenna object.

    Examples
    --------
    Modify Antenna Graphics:
    >>> # Antenna antenna: Antenna object
    >>> contours = antenna.graphics.contour_graphics
    >>> contours.set_contour_type(AntennaContourType.GAIN)
    >>> contours.show = True
    >>> for i in range(-30, 30, 5):
    >>>     contours.contour.levels.add(i)
    >>> antenna.graphics_3d.show_contours = True
    >>> antenna.graphics_3d.volume_graphics.show = True

    Modify Antenna Orientation and Position:
    >>> # Antenna antenna: Antenna object
    >>> antOrientation = antenna.orientation
    >>> antOrientation.assign_az_el(0, -90, AzElAboutBoresight.ROTATE)
    >>> antOrientation.position_offset.x = 0.0  # m
    >>> antOrientation.position_offset.y = 1  # m
    >>> antOrientation.position_offset.z = 0.25  # m

    Modify Antenna Refraction:
    >>> # Antenna antenna: Antenna object
    >>> antenna.use_refraction_in_access = True
    >>> antenna.refraction = SensorRefractionType.ITU_R_P834_4
    >>> refraction = antenna.refraction_model
    >>> refraction.ceiling = 5000  # m
    >>> refraction.atmosphere_altitude = 10000  # m
    >>> refraction.knee_bend_factor = 0.2

    Modify Antenna Model Type:
    >>> # Antenna antenna: Antenna object
    >>> antenna.set_model("Dipole")
    >>> antennaModel = antenna.model
    >>> antennaModel.design_frequency = 15  # GHz
    >>> antennaModel.length = 1.5  # m
    >>> antennaModel.length_to_wavelength_ratio = 45
    >>> antennaModel.efficiency = 85  # Percent

    Create a New Antenna Object:
    >>> # ISTKObject satellite: STK object
    >>> antenna = satellite.children.new(STKObjectType.ANTENNA, "MyAntenna")
    """

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_models_method_offset = 1
    _set_model_method_offset = 2
    _get_model_method_offset = 3
    _get_orientation_method_offset = 4
    _set_orientation_method_offset = 5
    _get_refraction_method_offset = 6
    _set_refraction_method_offset = 7
    _is_refraction_type_supported_method_offset = 8
    _get_refraction_supported_types_method_offset = 9
    _get_refraction_model_method_offset = 10
    _get_use_refraction_in_access_method_offset = 11
    _set_use_refraction_in_access_method_offset = 12
    _get_graphics_3d_method_offset = 13
    _get_graphics_method_offset = 14
    _get_rf_environment_method_offset = 15
    _get_laser_environment_method_offset = 16
    _get_model_component_linking_method_offset = 17
    _metadata = {
        "iid_data" : (5411149400569284954, 8715254198915719832),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Antenna)

    _get_supported_models_metadata = { "offset" : _get_supported_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_models(self) -> list:
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on Antenna instead. Gets an array of supported model names."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_supported_models_metadata)

    _set_model_metadata = { "offset" : _set_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use ModelComponentLinking on Antenna instead. Sets the current antenna model by name."""
        return self._intf.invoke(Antenna._metadata, Antenna._set_model_metadata, model_name)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "IAntennaModel":
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on Antenna instead. Gets the current antenna model."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_model_metadata)

    _get_orientation_metadata = { "offset" : _get_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orientation(self) -> "IOrientation":
        """Get the antenna orientation."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_orientation_metadata)

    _set_orientation_metadata = { "offset" : _set_orientation_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("IOrientation"),) }
    @orientation.setter
    def orientation(self, orientation:"IOrientation") -> None:
        """Set the antenna orientation."""
        return self._intf.set_property(Antenna._metadata, Antenna._set_orientation_metadata, orientation)

    _get_refraction_metadata = { "offset" : _get_refraction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType),) }
    @property
    def refraction(self) -> "SensorRefractionType":
        """Refraction method, a member of the SensorRefractionType enumeration."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_refraction_metadata)

    _set_refraction_metadata = { "offset" : _set_refraction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType),) }
    @refraction.setter
    def refraction(self, value:"SensorRefractionType") -> None:
        return self._intf.set_property(Antenna._metadata, Antenna._set_refraction_metadata, value)

    _is_refraction_type_supported_metadata = { "offset" : _is_refraction_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType), agmarshall.VariantBoolArg,) }
    def is_refraction_type_supported(self, model:"SensorRefractionType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(Antenna._metadata, Antenna._is_refraction_type_supported_metadata, model, OutArg())

    _get_refraction_supported_types_metadata = { "offset" : _get_refraction_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def refraction_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_refraction_supported_types_metadata)

    _get_refraction_model_metadata = { "offset" : _get_refraction_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def refraction_model(self) -> "IRefractionModelBase":
        """Get a refraction model."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_refraction_model_metadata)

    _get_use_refraction_in_access_metadata = { "offset" : _get_use_refraction_in_access_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_refraction_in_access(self) -> bool:
        """Flag controls whether refraction is applied when computing relative position in Access."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_use_refraction_in_access_metadata)

    _set_use_refraction_in_access_metadata = { "offset" : _set_use_refraction_in_access_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_refraction_in_access.setter
    def use_refraction_in_access(self, use_refraction_in_access:bool) -> None:
        return self._intf.set_property(Antenna._metadata, Antenna._set_use_refraction_in_access_metadata, use_refraction_in_access)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "AntennaGraphics3D":
        """Get the 3D Graphics properties for the antenna."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_graphics_3d_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "AntennaGraphics":
        """Get the 2D Graphics properties for the antenna."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_graphics_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "ObjectRFEnvironment":
        """Get the object RF environment settings."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_rf_environment_metadata)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "ObjectLaserEnvironment":
        """Get the object laser environment settings."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_laser_environment_metadata)

    _get_model_component_linking_metadata = { "offset" : _get_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the antenna model component."""
        return self._intf.get_property(Antenna._metadata, Antenna._get_model_component_linking_metadata)

    _property_names[supported_models] = "supported_models"
    _property_names[model] = "model"
    _property_names[orientation] = "orientation"
    _property_names[refraction] = "refraction"
    _property_names[refraction_supported_types] = "refraction_supported_types"
    _property_names[refraction_model] = "refraction_model"
    _property_names[use_refraction_in_access] = "use_refraction_in_access"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[graphics] = "graphics"
    _property_names[rf_environment] = "rf_environment"
    _property_names[laser_environment] = "laser_environment"
    _property_names[model_component_linking] = "model_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type Antenna."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Antenna)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Antenna, [Antenna, ISTKObject, ILifetimeInformation, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((5224182868093434573, 6264634714113845636), Antenna)
agcls.AgTypeNameMap["Antenna"] = Antenna

class AntennaModel(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a generic antenna model."""
    def __init__(self, source_object=None):
        """Construct an object of type AntennaModel."""
        SupportsDeleteCallback.__init__(self)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModel, [IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5090101843458446727, 17733386400894649743), AntennaModel)
agcls.AgTypeNameMap["AntennaModel"] = AntennaModel

class AntennaModelOpticalSimple(IAntennaModelOpticalSimple, IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a simple optical antenna model."""
    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelOpticalSimple."""
        SupportsDeleteCallback.__init__(self)
        IAntennaModelOpticalSimple.__init__(self, source_object)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModelOpticalSimple._private_init(self, intf)
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelOpticalSimple, [IAntennaModelOpticalSimple, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5749325276418127775, 1708870706889732241), AntennaModelOpticalSimple)
agcls.AgTypeNameMap["AntennaModelOpticalSimple"] = AntennaModelOpticalSimple

class AntennaModelOpticalGaussian(IAntennaModelOpticalSimple, IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a gaussian optical antenna model."""
    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelOpticalGaussian."""
        SupportsDeleteCallback.__init__(self)
        IAntennaModelOpticalSimple.__init__(self, source_object)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModelOpticalSimple._private_init(self, intf)
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelOpticalGaussian, [IAntennaModelOpticalSimple, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5301155296068193871, 15118044537224713860), AntennaModelOpticalGaussian)
agcls.AgTypeNameMap["AntennaModelOpticalGaussian"] = AntennaModelOpticalGaussian

class AntennaModelGaussian(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a gaussian antenna model."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_input_type_method_offset = 1
    _set_input_type_method_offset = 2
    _get_diameter_method_offset = 3
    _set_diameter_method_offset = 4
    _get_beamwidth_method_offset = 5
    _set_beamwidth_method_offset = 6
    _get_mainlobe_gain_method_offset = 7
    _set_mainlobe_gain_method_offset = 8
    _get_backlobe_gain_method_offset = 9
    _set_backlobe_gain_method_offset = 10
    _get_use_backlobe_as_mainlobe_atten_method_offset = 11
    _set_use_backlobe_as_mainlobe_atten_method_offset = 12
    _get_efficiency_method_offset = 13
    _set_efficiency_method_offset = 14
    _metadata = {
        "iid_data" : (5610545024636267448, 3895248398261625224),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelGaussian)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AntennaModelInputType),) }
    @property
    def input_type(self) -> "AntennaModelInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelGaussian._metadata, AntennaModelGaussian._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AntennaModelInputType),) }
    @input_type.setter
    def input_type(self, input_type:"AntennaModelInputType") -> None:
        return self._intf.set_property(AntennaModelGaussian._metadata, AntennaModelGaussian._set_input_type_metadata, input_type)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelGaussian._metadata, AntennaModelGaussian._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, diameter:float) -> None:
        return self._intf.set_property(AntennaModelGaussian._metadata, AntennaModelGaussian._set_diameter_metadata, diameter)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelGaussian._metadata, AntennaModelGaussian._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, beamwidth:typing.Any) -> None:
        return self._intf.set_property(AntennaModelGaussian._metadata, AntennaModelGaussian._set_beamwidth_metadata, beamwidth)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelGaussian._metadata, AntennaModelGaussian._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, mainlobe_gain:float) -> None:
        return self._intf.set_property(AntennaModelGaussian._metadata, AntennaModelGaussian._set_mainlobe_gain_metadata, mainlobe_gain)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the back-lobe gain."""
        return self._intf.get_property(AntennaModelGaussian._metadata, AntennaModelGaussian._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, backlobe_gain:float) -> None:
        return self._intf.set_property(AntennaModelGaussian._metadata, AntennaModelGaussian._set_backlobe_gain_metadata, backlobe_gain)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the use back-lobe gain as main-lobe attenuation flag."""
        return self._intf.get_property(AntennaModelGaussian._metadata, AntennaModelGaussian._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, backlobe_as_mainlobe_atten:bool) -> None:
        return self._intf.set_property(AntennaModelGaussian._metadata, AntennaModelGaussian._set_use_backlobe_as_mainlobe_atten_metadata, backlobe_as_mainlobe_atten)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelGaussian._metadata, AntennaModelGaussian._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, efficiency:float) -> None:
        return self._intf.set_property(AntennaModelGaussian._metadata, AntennaModelGaussian._set_efficiency_metadata, efficiency)

    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[efficiency] = "efficiency"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelGaussian."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelGaussian)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelGaussian, [AntennaModelGaussian, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5120762598861643276, 12218645531746650791), AntennaModelGaussian)
agcls.AgTypeNameMap["AntennaModelGaussian"] = AntennaModelGaussian

class AntennaModelParabolic(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a parabolic antenna model."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_input_type_method_offset = 1
    _set_input_type_method_offset = 2
    _get_diameter_method_offset = 3
    _set_diameter_method_offset = 4
    _get_beamwidth_method_offset = 5
    _set_beamwidth_method_offset = 6
    _get_mainlobe_gain_method_offset = 7
    _set_mainlobe_gain_method_offset = 8
    _get_backlobe_gain_method_offset = 9
    _set_backlobe_gain_method_offset = 10
    _get_use_backlobe_as_mainlobe_atten_method_offset = 11
    _set_use_backlobe_as_mainlobe_atten_method_offset = 12
    _get_efficiency_method_offset = 13
    _set_efficiency_method_offset = 14
    _metadata = {
        "iid_data" : (5585809797116561474, 3427379923969189290),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelParabolic)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AntennaModelInputType),) }
    @property
    def input_type(self) -> "AntennaModelInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelParabolic._metadata, AntennaModelParabolic._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AntennaModelInputType),) }
    @input_type.setter
    def input_type(self, input_type:"AntennaModelInputType") -> None:
        return self._intf.set_property(AntennaModelParabolic._metadata, AntennaModelParabolic._set_input_type_metadata, input_type)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelParabolic._metadata, AntennaModelParabolic._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, diameter:float) -> None:
        return self._intf.set_property(AntennaModelParabolic._metadata, AntennaModelParabolic._set_diameter_metadata, diameter)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelParabolic._metadata, AntennaModelParabolic._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, beamwidth:typing.Any) -> None:
        return self._intf.set_property(AntennaModelParabolic._metadata, AntennaModelParabolic._set_beamwidth_metadata, beamwidth)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelParabolic._metadata, AntennaModelParabolic._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, mainlobe_gain:float) -> None:
        return self._intf.set_property(AntennaModelParabolic._metadata, AntennaModelParabolic._set_mainlobe_gain_metadata, mainlobe_gain)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the back-lobe gain."""
        return self._intf.get_property(AntennaModelParabolic._metadata, AntennaModelParabolic._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, backlobe_gain:float) -> None:
        return self._intf.set_property(AntennaModelParabolic._metadata, AntennaModelParabolic._set_backlobe_gain_metadata, backlobe_gain)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the use back-lobe gain as main-lobe attenuation flag."""
        return self._intf.get_property(AntennaModelParabolic._metadata, AntennaModelParabolic._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, backlobe_as_mainlobe_atten:bool) -> None:
        return self._intf.set_property(AntennaModelParabolic._metadata, AntennaModelParabolic._set_use_backlobe_as_mainlobe_atten_metadata, backlobe_as_mainlobe_atten)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelParabolic._metadata, AntennaModelParabolic._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, efficiency:float) -> None:
        return self._intf.set_property(AntennaModelParabolic._metadata, AntennaModelParabolic._set_efficiency_metadata, efficiency)

    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[efficiency] = "efficiency"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelParabolic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelParabolic)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelParabolic, [AntennaModelParabolic, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4968371741129076908, 1503627199560246953), AntennaModelParabolic)
agcls.AgTypeNameMap["AntennaModelParabolic"] = AntennaModelParabolic

class AntennaModelSquareHorn(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a square horn antenna model."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_input_type_method_offset = 1
    _set_input_type_method_offset = 2
    _get_diameter_method_offset = 3
    _set_diameter_method_offset = 4
    _get_beamwidth_method_offset = 5
    _set_beamwidth_method_offset = 6
    _get_mainlobe_gain_method_offset = 7
    _set_mainlobe_gain_method_offset = 8
    _get_backlobe_gain_method_offset = 9
    _set_backlobe_gain_method_offset = 10
    _get_use_backlobe_as_mainlobe_atten_method_offset = 11
    _set_use_backlobe_as_mainlobe_atten_method_offset = 12
    _get_efficiency_method_offset = 13
    _set_efficiency_method_offset = 14
    _metadata = {
        "iid_data" : (5404743615288951401, 16162939093996433037),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelSquareHorn)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AntennaModelInputType),) }
    @property
    def input_type(self) -> "AntennaModelInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AntennaModelInputType),) }
    @input_type.setter
    def input_type(self, input_type:"AntennaModelInputType") -> None:
        return self._intf.set_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._set_input_type_metadata, input_type)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, diameter:float) -> None:
        return self._intf.set_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._set_diameter_metadata, diameter)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, beamwidth:typing.Any) -> None:
        return self._intf.set_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._set_beamwidth_metadata, beamwidth)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, mainlobe_gain:float) -> None:
        return self._intf.set_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._set_mainlobe_gain_metadata, mainlobe_gain)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the back-lobe gain."""
        return self._intf.get_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, backlobe_gain:float) -> None:
        return self._intf.set_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._set_backlobe_gain_metadata, backlobe_gain)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the use back-lobe gain as main-lobe attenuation flag."""
        return self._intf.get_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, backlobe_as_mainlobe_atten:bool) -> None:
        return self._intf.set_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._set_use_backlobe_as_mainlobe_atten_metadata, backlobe_as_mainlobe_atten)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, efficiency:float) -> None:
        return self._intf.set_property(AntennaModelSquareHorn._metadata, AntennaModelSquareHorn._set_efficiency_metadata, efficiency)

    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[efficiency] = "efficiency"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelSquareHorn."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelSquareHorn)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelSquareHorn, [AntennaModelSquareHorn, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5529844570802759146, 14565496923086394538), AntennaModelSquareHorn)
agcls.AgTypeNameMap["AntennaModelSquareHorn"] = AntennaModelSquareHorn

class AntennaModelScriptPlugin(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a script plugin antenna model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (4621362348142232208, 7605345095218907833),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelScriptPlugin)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the script plugin filename."""
        return self._intf.get_property(AntennaModelScriptPlugin._metadata, AntennaModelScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AntennaModelScriptPlugin._metadata, AntennaModelScriptPlugin._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelScriptPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelScriptPlugin)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelScriptPlugin, [AntennaModelScriptPlugin, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4633626667746532886, 8871587948097405064), AntennaModelScriptPlugin)
agcls.AgTypeNameMap["AntennaModelScriptPlugin"] = AntennaModelScriptPlugin

class AntennaModelExternal(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a external antenna model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5294410639221369990, 17139073883193976225),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelExternal)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the user antenna data filename."""
        return self._intf.get_property(AntennaModelExternal._metadata, AntennaModelExternal._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AntennaModelExternal._metadata, AntennaModelExternal._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelExternal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelExternal)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelExternal, [AntennaModelExternal, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4786521129681917296, 14264888265144376208), AntennaModelExternal)
agcls.AgTypeNameMap["AntennaModelExternal"] = AntennaModelExternal

class AntennaModelGIMROC(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a GIMROC antenna model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (4963109453193483571, 7892536408659056574),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelGIMROC)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the user antenna data filename."""
        return self._intf.get_property(AntennaModelGIMROC._metadata, AntennaModelGIMROC._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AntennaModelGIMROC._metadata, AntennaModelGIMROC._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelGIMROC."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelGIMROC)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelGIMROC, [AntennaModelGIMROC, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5549938617597415790, 2083770402844130462), AntennaModelGIMROC)
agcls.AgTypeNameMap["AntennaModelGIMROC"] = AntennaModelGIMROC

class AntennaModelRemcomUanFormat(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an antnna pattern Remcom uan format model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5297769152403934782, 15348253162135562379),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelRemcomUanFormat)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the user antenna data filename."""
        return self._intf.get_property(AntennaModelRemcomUanFormat._metadata, AntennaModelRemcomUanFormat._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AntennaModelRemcomUanFormat._metadata, AntennaModelRemcomUanFormat._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelRemcomUanFormat."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelRemcomUanFormat)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelRemcomUanFormat, [AntennaModelRemcomUanFormat, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4920348776917961336, 14089571290571357887), AntennaModelRemcomUanFormat)
agcls.AgTypeNameMap["AntennaModelRemcomUanFormat"] = AntennaModelRemcomUanFormat

class AntennaModelANSYSffdFormat(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an antnna pattern ANSYS ffd format model."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_defined_frequencies_method_offset = 3
    _get_gain_type_method_offset = 4
    _set_gain_type_method_offset = 5
    _get_defined_power_value_method_offset = 6
    _get_user_gain_factor_method_offset = 7
    _set_user_gain_factor_method_offset = 8
    _metadata = {
        "iid_data" : (5101068697026098480, 15913741569062706824),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelANSYSffdFormat)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the user antenna data filename."""
        return self._intf.get_property(AntennaModelANSYSffdFormat._metadata, AntennaModelANSYSffdFormat._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AntennaModelANSYSffdFormat._metadata, AntennaModelANSYSffdFormat._set_filename_metadata, value)

    _get_defined_frequencies_metadata = { "offset" : _get_defined_frequencies_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def defined_frequencies(self) -> str:
        """Get the frequencies defined in the file."""
        return self._intf.get_property(AntennaModelANSYSffdFormat._metadata, AntennaModelANSYSffdFormat._get_defined_frequencies_metadata)

    _get_gain_type_metadata = { "offset" : _get_gain_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(HFSSFarFieldDataGainType),) }
    @property
    def gain_type(self) -> "HFSSFarFieldDataGainType":
        """Get or set the gain type."""
        return self._intf.get_property(AntennaModelANSYSffdFormat._metadata, AntennaModelANSYSffdFormat._get_gain_type_metadata)

    _set_gain_type_metadata = { "offset" : _set_gain_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(HFSSFarFieldDataGainType),) }
    @gain_type.setter
    def gain_type(self, value:"HFSSFarFieldDataGainType") -> None:
        return self._intf.set_property(AntennaModelANSYSffdFormat._metadata, AntennaModelANSYSffdFormat._set_gain_type_metadata, value)

    _get_defined_power_value_metadata = { "offset" : _get_defined_power_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def defined_power_value(self) -> float:
        """Get the Defined Power Value for the selected GainType."""
        return self._intf.get_property(AntennaModelANSYSffdFormat._metadata, AntennaModelANSYSffdFormat._get_defined_power_value_metadata)

    _get_user_gain_factor_metadata = { "offset" : _get_user_gain_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def user_gain_factor(self) -> float:
        """Get or set the User Gain Factor."""
        return self._intf.get_property(AntennaModelANSYSffdFormat._metadata, AntennaModelANSYSffdFormat._get_user_gain_factor_metadata)

    _set_user_gain_factor_metadata = { "offset" : _set_user_gain_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @user_gain_factor.setter
    def user_gain_factor(self, value:float) -> None:
        return self._intf.set_property(AntennaModelANSYSffdFormat._metadata, AntennaModelANSYSffdFormat._set_user_gain_factor_metadata, value)

    _property_names[filename] = "filename"
    _property_names[defined_frequencies] = "defined_frequencies"
    _property_names[gain_type] = "gain_type"
    _property_names[defined_power_value] = "defined_power_value"
    _property_names[user_gain_factor] = "user_gain_factor"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelANSYSffdFormat."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelANSYSffdFormat)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelANSYSffdFormat, [AntennaModelANSYSffdFormat, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5375146988391710565, 1144461756948044185), AntennaModelANSYSffdFormat)
agcls.AgTypeNameMap["AntennaModelANSYSffdFormat"] = AntennaModelANSYSffdFormat

class AntennaModelTicraGRASPFormat(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an antnna pattern Ticra GRASP format model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (4826339713599853284, 1623326460996809361),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelTicraGRASPFormat)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the user antenna data filename."""
        return self._intf.get_property(AntennaModelTicraGRASPFormat._metadata, AntennaModelTicraGRASPFormat._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AntennaModelTicraGRASPFormat._metadata, AntennaModelTicraGRASPFormat._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelTicraGRASPFormat."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelTicraGRASPFormat)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelTicraGRASPFormat, [AntennaModelTicraGRASPFormat, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5466287699115592869, 7836123432547102888), AntennaModelTicraGRASPFormat)
agcls.AgTypeNameMap["AntennaModelTicraGRASPFormat"] = AntennaModelTicraGRASPFormat

class AntennaModelElevationAzimuthCuts(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a pattern elevation/azimuth cuts antenna model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5344729492407722294, 13756578112191666054),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelElevationAzimuthCuts)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the user antenna data filename."""
        return self._intf.get_property(AntennaModelElevationAzimuthCuts._metadata, AntennaModelElevationAzimuthCuts._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AntennaModelElevationAzimuthCuts._metadata, AntennaModelElevationAzimuthCuts._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelElevationAzimuthCuts."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelElevationAzimuthCuts)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelElevationAzimuthCuts, [AntennaModelElevationAzimuthCuts, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4794509404077794721, 5308455335066179761), AntennaModelElevationAzimuthCuts)
agcls.AgTypeNameMap["AntennaModelElevationAzimuthCuts"] = AntennaModelElevationAzimuthCuts

class AntennaModelIEEE1979(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a IEEE 1979 antenna model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5401647541782380932, 3262095353761095354),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelIEEE1979)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the user antenna data filename."""
        return self._intf.get_property(AntennaModelIEEE1979._metadata, AntennaModelIEEE1979._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AntennaModelIEEE1979._metadata, AntennaModelIEEE1979._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelIEEE1979."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelIEEE1979)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelIEEE1979, [AntennaModelIEEE1979, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4899368572450284283, 9193557038524358585), AntennaModelIEEE1979)
agcls.AgTypeNameMap["AntennaModelIEEE1979"] = AntennaModelIEEE1979

class AntennaModelDipole(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a dipole antenna model."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_length_method_offset = 1
    _set_length_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_length_to_wavelength_ratio_method_offset = 5
    _set_length_to_wavelength_ratio_method_offset = 6
    _metadata = {
        "iid_data" : (5716288078400200028, 12033158182853757368),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelDipole)

    _get_length_metadata = { "offset" : _get_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def length(self) -> float:
        """Get or set the length."""
        return self._intf.get_property(AntennaModelDipole._metadata, AntennaModelDipole._get_length_metadata)

    _set_length_metadata = { "offset" : _set_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @length.setter
    def length(self, value:float) -> None:
        return self._intf.set_property(AntennaModelDipole._metadata, AntennaModelDipole._set_length_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelDipole._metadata, AntennaModelDipole._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelDipole._metadata, AntennaModelDipole._set_efficiency_metadata, value)

    _get_length_to_wavelength_ratio_metadata = { "offset" : _get_length_to_wavelength_ratio_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def length_to_wavelength_ratio(self) -> float:
        """Get or set the length-to-wavelength ratio."""
        return self._intf.get_property(AntennaModelDipole._metadata, AntennaModelDipole._get_length_to_wavelength_ratio_metadata)

    _set_length_to_wavelength_ratio_metadata = { "offset" : _set_length_to_wavelength_ratio_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @length_to_wavelength_ratio.setter
    def length_to_wavelength_ratio(self, value:float) -> None:
        return self._intf.set_property(AntennaModelDipole._metadata, AntennaModelDipole._set_length_to_wavelength_ratio_metadata, value)

    _property_names[length] = "length"
    _property_names[efficiency] = "efficiency"
    _property_names[length_to_wavelength_ratio] = "length_to_wavelength_ratio"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelDipole."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelDipole)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelDipole, [AntennaModelDipole, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5641015859992367181, 8870596454022181781), AntennaModelDipole)
agcls.AgTypeNameMap["AntennaModelDipole"] = AntennaModelDipole

class AntennaModelHelix(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a helix antenna model."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_diameter_method_offset = 1
    _set_diameter_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_turn_spacing_method_offset = 7
    _set_turn_spacing_method_offset = 8
    _get_number_of_turns_method_offset = 9
    _set_number_of_turns_method_offset = 10
    _get_use_backlobe_as_mainlobe_atten_method_offset = 11
    _set_use_backlobe_as_mainlobe_atten_method_offset = 12
    _metadata = {
        "iid_data" : (5603765630178032379, 5144023514674429875),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelHelix)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelHelix._metadata, AntennaModelHelix._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelHelix._metadata, AntennaModelHelix._set_diameter_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelHelix._metadata, AntennaModelHelix._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelHelix._metadata, AntennaModelHelix._set_efficiency_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the back lobe gain."""
        return self._intf.get_property(AntennaModelHelix._metadata, AntennaModelHelix._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelHelix._metadata, AntennaModelHelix._set_backlobe_gain_metadata, value)

    _get_turn_spacing_metadata = { "offset" : _get_turn_spacing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def turn_spacing(self) -> float:
        """Get or set the turn spacing."""
        return self._intf.get_property(AntennaModelHelix._metadata, AntennaModelHelix._get_turn_spacing_metadata)

    _set_turn_spacing_metadata = { "offset" : _set_turn_spacing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @turn_spacing.setter
    def turn_spacing(self, value:float) -> None:
        return self._intf.set_property(AntennaModelHelix._metadata, AntennaModelHelix._set_turn_spacing_metadata, value)

    _get_number_of_turns_metadata = { "offset" : _get_number_of_turns_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def number_of_turns(self) -> float:
        """Get or set the number of turns."""
        return self._intf.get_property(AntennaModelHelix._metadata, AntennaModelHelix._get_number_of_turns_metadata)

    _set_number_of_turns_metadata = { "offset" : _set_number_of_turns_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @number_of_turns.setter
    def number_of_turns(self, value:float) -> None:
        return self._intf.set_property(AntennaModelHelix._metadata, AntennaModelHelix._set_number_of_turns_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelHelix._metadata, AntennaModelHelix._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelHelix._metadata, AntennaModelHelix._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _property_names[diameter] = "diameter"
    _property_names[efficiency] = "efficiency"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[turn_spacing] = "turn_spacing"
    _property_names[number_of_turns] = "number_of_turns"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelHelix."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelHelix)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelHelix, [AntennaModelHelix, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5666782731100563715, 6222015357520370581), AntennaModelHelix)
agcls.AgTypeNameMap["AntennaModelHelix"] = AntennaModelHelix

class AntennaModelCosecantSquared(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a cosecant squared antenna model."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sidelobe_type_method_offset = 1
    _set_sidelobe_type_method_offset = 2
    _get_cutoff_angle_method_offset = 3
    _set_cutoff_angle_method_offset = 4
    _get_azimuth_beamwidth_method_offset = 5
    _set_azimuth_beamwidth_method_offset = 6
    _get_mainlobe_gain_method_offset = 7
    _set_mainlobe_gain_method_offset = 8
    _get_backlobe_gain_method_offset = 9
    _set_backlobe_gain_method_offset = 10
    _get_efficiency_method_offset = 11
    _set_efficiency_method_offset = 12
    _metadata = {
        "iid_data" : (5697366261586901080, 16553525683872078768),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelCosecantSquared)

    _get_sidelobe_type_metadata = { "offset" : _get_sidelobe_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AntennaModelCosecantSquaredSidelobeType),) }
    @property
    def sidelobe_type(self) -> "AntennaModelCosecantSquaredSidelobeType":
        """Get the Cosecant Squared antenna sidelobe type enumeration."""
        return self._intf.get_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._get_sidelobe_type_metadata)

    _set_sidelobe_type_metadata = { "offset" : _set_sidelobe_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AntennaModelCosecantSquaredSidelobeType),) }
    @sidelobe_type.setter
    def sidelobe_type(self, cosec_sqr_sidelobe_type:"AntennaModelCosecantSquaredSidelobeType") -> None:
        """."""
        return self._intf.set_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._set_sidelobe_type_metadata, cosec_sqr_sidelobe_type)

    _get_cutoff_angle_metadata = { "offset" : _get_cutoff_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def cutoff_angle(self) -> typing.Any:
        """Get or set the cutoff angle."""
        return self._intf.get_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._get_cutoff_angle_metadata)

    _set_cutoff_angle_metadata = { "offset" : _set_cutoff_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @cutoff_angle.setter
    def cutoff_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._set_cutoff_angle_metadata, value)

    _get_azimuth_beamwidth_metadata = { "offset" : _get_azimuth_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def azimuth_beamwidth(self) -> typing.Any:
        """Get or set the azimuth beamwidth."""
        return self._intf.get_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._get_azimuth_beamwidth_metadata)

    _set_azimuth_beamwidth_metadata = { "offset" : _set_azimuth_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @azimuth_beamwidth.setter
    def azimuth_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._set_azimuth_beamwidth_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the sidelobe gain."""
        return self._intf.get_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelCosecantSquared._metadata, AntennaModelCosecantSquared._set_efficiency_metadata, value)

    _property_names[sidelobe_type] = "sidelobe_type"
    _property_names[cutoff_angle] = "cutoff_angle"
    _property_names[azimuth_beamwidth] = "azimuth_beamwidth"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelCosecantSquared."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelCosecantSquared)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelCosecantSquared, [AntennaModelCosecantSquared, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5657341086837059329, 1759306399887216298), AntennaModelCosecantSquared)
agcls.AgTypeNameMap["AntennaModelCosecantSquared"] = AntennaModelCosecantSquared

class AntennaModelHemispherical(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a hemispherical antenna model."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_efficiency_method_offset = 1
    _set_efficiency_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _metadata = {
        "iid_data" : (4699403419237510493, 11250735017185813653),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelHemispherical)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelHemispherical._metadata, AntennaModelHemispherical._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelHemispherical._metadata, AntennaModelHemispherical._set_efficiency_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get the mainlobe gain."""
        return self._intf.get_property(AntennaModelHemispherical._metadata, AntennaModelHemispherical._get_mainlobe_gain_metadata)

    _property_names[efficiency] = "efficiency"
    _property_names[mainlobe_gain] = "mainlobe_gain"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelHemispherical."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelHemispherical)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelHemispherical, [AntennaModelHemispherical, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5487877756305336765, 15389242783484733847), AntennaModelHemispherical)
agcls.AgTypeNameMap["AntennaModelHemispherical"] = AntennaModelHemispherical

class AntennaModelPencilBeam(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a pencil beam antenna model."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_sidelobe_gain_method_offset = 3
    _set_sidelobe_gain_method_offset = 4
    _get_beamwidth_method_offset = 5
    _metadata = {
        "iid_data" : (5733733182051345008, 11339494368308511418),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelPencilBeam)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelPencilBeam._metadata, AntennaModelPencilBeam._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelPencilBeam._metadata, AntennaModelPencilBeam._set_mainlobe_gain_metadata, value)

    _get_sidelobe_gain_metadata = { "offset" : _get_sidelobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sidelobe_gain(self) -> float:
        """Get or set the sidelobe gain."""
        return self._intf.get_property(AntennaModelPencilBeam._metadata, AntennaModelPencilBeam._get_sidelobe_gain_metadata)

    _set_sidelobe_gain_metadata = { "offset" : _set_sidelobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sidelobe_gain.setter
    def sidelobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelPencilBeam._metadata, AntennaModelPencilBeam._set_sidelobe_gain_metadata, value)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get the computed beamwidth."""
        return self._intf.get_property(AntennaModelPencilBeam._metadata, AntennaModelPencilBeam._get_beamwidth_metadata)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[sidelobe_gain] = "sidelobe_gain"
    _property_names[beamwidth] = "beamwidth"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelPencilBeam."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelPencilBeam)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelPencilBeam, [AntennaModelPencilBeam, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4911130265166402550, 1084272492755190970), AntennaModelPencilBeam)
agcls.AgTypeNameMap["AntennaModelPencilBeam"] = AntennaModelPencilBeam

class AntennaModelPhasedArray(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a phased array antenna model."""

    _num_methods = 28
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_backlobe_suppression_method_offset = 1
    _set_backlobe_suppression_method_offset = 2
    _get_include_element_factor_method_offset = 3
    _set_include_element_factor_method_offset = 4
    _get_element_factor_exponent_method_offset = 5
    _set_element_factor_exponent_method_offset = 6
    _get_width_method_offset = 7
    _get_height_method_offset = 8
    _get_number_of_elements_method_offset = 9
    _get_supported_beam_direction_provider_types_method_offset = 10
    _get_beam_direction_provider_type_method_offset = 11
    _set_beam_direction_provider_type_method_offset = 12
    _get_beam_direction_provider_method_offset = 13
    _get_supported_null_direction_provider_types_method_offset = 14
    _get_null_direction_provider_type_method_offset = 15
    _set_null_direction_provider_type_method_offset = 16
    _get_null_direction_provider_method_offset = 17
    _get_beamformer_type_method_offset = 18
    _set_beamformer_type_method_offset = 19
    _get_beamformer_method_offset = 20
    _get_element_configuration_type_method_offset = 21
    _set_element_configuration_type_method_offset = 22
    _get_element_configuration_method_offset = 23
    _get_elements_method_offset = 24
    _get_show_grid_method_offset = 25
    _set_show_grid_method_offset = 26
    _get_show_labels_method_offset = 27
    _set_show_labels_method_offset = 28
    _metadata = {
        "iid_data" : (5683840216918166855, 2670743194970418094),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelPhasedArray)

    _get_backlobe_suppression_metadata = { "offset" : _get_backlobe_suppression_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_suppression(self) -> float:
        """Get or set the backlobe suppression."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_backlobe_suppression_metadata)

    _set_backlobe_suppression_metadata = { "offset" : _set_backlobe_suppression_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_suppression.setter
    def backlobe_suppression(self, value:float) -> None:
        return self._intf.set_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._set_backlobe_suppression_metadata, value)

    _get_include_element_factor_metadata = { "offset" : _get_include_element_factor_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_element_factor(self) -> bool:
        """Get or set the option to include the element factor in the gain response."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_include_element_factor_metadata)

    _set_include_element_factor_metadata = { "offset" : _set_include_element_factor_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_element_factor.setter
    def include_element_factor(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._set_include_element_factor_metadata, value)

    _get_element_factor_exponent_metadata = { "offset" : _get_element_factor_exponent_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def element_factor_exponent(self) -> float:
        """Get or set the raised cosine exponent for the element factor."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_element_factor_exponent_metadata)

    _set_element_factor_exponent_metadata = { "offset" : _set_element_factor_exponent_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @element_factor_exponent.setter
    def element_factor_exponent(self, value:float) -> None:
        return self._intf.set_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._set_element_factor_exponent_metadata, value)

    _get_width_metadata = { "offset" : _get_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def width(self) -> float:
        """Get the array width."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_width_metadata)

    _get_height_metadata = { "offset" : _get_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height(self) -> float:
        """Get the array height."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_height_metadata)

    _get_number_of_elements_metadata = { "offset" : _get_number_of_elements_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_elements(self) -> int:
        """Get the number of array elements."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_number_of_elements_metadata)

    _get_supported_beam_direction_provider_types_metadata = { "offset" : _get_supported_beam_direction_provider_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_beam_direction_provider_types(self) -> list:
        """Get an array of valid beam direction provider types."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_supported_beam_direction_provider_types_metadata)

    _get_beam_direction_provider_type_metadata = { "offset" : _get_beam_direction_provider_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DirectionProviderType),) }
    @property
    def beam_direction_provider_type(self) -> "DirectionProviderType":
        """Get or set the beam direction provider type."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_beam_direction_provider_type_metadata)

    _set_beam_direction_provider_type_metadata = { "offset" : _set_beam_direction_provider_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(DirectionProviderType),) }
    @beam_direction_provider_type.setter
    def beam_direction_provider_type(self, value:"DirectionProviderType") -> None:
        return self._intf.set_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._set_beam_direction_provider_type_metadata, value)

    _get_beam_direction_provider_metadata = { "offset" : _get_beam_direction_provider_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def beam_direction_provider(self) -> "IDirectionProvider":
        """Get the beam direction provider."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_beam_direction_provider_metadata)

    _get_supported_null_direction_provider_types_metadata = { "offset" : _get_supported_null_direction_provider_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_null_direction_provider_types(self) -> list:
        """Get an array of valid null direction provider types."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_supported_null_direction_provider_types_metadata)

    _get_null_direction_provider_type_metadata = { "offset" : _get_null_direction_provider_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DirectionProviderType),) }
    @property
    def null_direction_provider_type(self) -> "DirectionProviderType":
        """Get or set the null direction provider type."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_null_direction_provider_type_metadata)

    _set_null_direction_provider_type_metadata = { "offset" : _set_null_direction_provider_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(DirectionProviderType),) }
    @null_direction_provider_type.setter
    def null_direction_provider_type(self, value:"DirectionProviderType") -> None:
        return self._intf.set_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._set_null_direction_provider_type_metadata, value)

    _get_null_direction_provider_metadata = { "offset" : _get_null_direction_provider_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def null_direction_provider(self) -> "IDirectionProvider":
        """Get the null direction provider."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_null_direction_provider_metadata)

    _get_beamformer_type_metadata = { "offset" : _get_beamformer_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(BeamformerType),) }
    @property
    def beamformer_type(self) -> "BeamformerType":
        """Get or set beamformer type."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_beamformer_type_metadata)

    _set_beamformer_type_metadata = { "offset" : _set_beamformer_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(BeamformerType),) }
    @beamformer_type.setter
    def beamformer_type(self, value:"BeamformerType") -> None:
        return self._intf.set_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._set_beamformer_type_metadata, value)

    _get_beamformer_metadata = { "offset" : _get_beamformer_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def beamformer(self) -> "IBeamformer":
        """Get the beamformer."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_beamformer_metadata)

    _get_element_configuration_type_metadata = { "offset" : _get_element_configuration_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ElementConfigurationType),) }
    @property
    def element_configuration_type(self) -> "ElementConfigurationType":
        """Get or set the element configuration type."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_element_configuration_type_metadata)

    _set_element_configuration_type_metadata = { "offset" : _set_element_configuration_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ElementConfigurationType),) }
    @element_configuration_type.setter
    def element_configuration_type(self, value:"ElementConfigurationType") -> None:
        return self._intf.set_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._set_element_configuration_type_metadata, value)

    _get_element_configuration_metadata = { "offset" : _get_element_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def element_configuration(self) -> "IElementConfiguration":
        """Get the element configuration."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_element_configuration_metadata)

    _get_elements_metadata = { "offset" : _get_elements_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elements(self) -> "ElementCollection":
        """Get the collection of elements."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_elements_metadata)

    _get_show_grid_metadata = { "offset" : _get_show_grid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_grid(self) -> bool:
        """Get or set the option to show the grid in the antenna's element viewport GUI."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_show_grid_metadata)

    _set_show_grid_metadata = { "offset" : _set_show_grid_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_grid.setter
    def show_grid(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._set_show_grid_metadata, value)

    _get_show_labels_metadata = { "offset" : _get_show_labels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_labels(self) -> bool:
        """Get or set the option to show the labels in the antenna's element viewport GUI."""
        return self._intf.get_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._get_show_labels_metadata)

    _set_show_labels_metadata = { "offset" : _set_show_labels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_labels.setter
    def show_labels(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelPhasedArray._metadata, AntennaModelPhasedArray._set_show_labels_metadata, value)

    _property_names[backlobe_suppression] = "backlobe_suppression"
    _property_names[include_element_factor] = "include_element_factor"
    _property_names[element_factor_exponent] = "element_factor_exponent"
    _property_names[width] = "width"
    _property_names[height] = "height"
    _property_names[number_of_elements] = "number_of_elements"
    _property_names[supported_beam_direction_provider_types] = "supported_beam_direction_provider_types"
    _property_names[beam_direction_provider_type] = "beam_direction_provider_type"
    _property_names[beam_direction_provider] = "beam_direction_provider"
    _property_names[supported_null_direction_provider_types] = "supported_null_direction_provider_types"
    _property_names[null_direction_provider_type] = "null_direction_provider_type"
    _property_names[null_direction_provider] = "null_direction_provider"
    _property_names[beamformer_type] = "beamformer_type"
    _property_names[beamformer] = "beamformer"
    _property_names[element_configuration_type] = "element_configuration_type"
    _property_names[element_configuration] = "element_configuration"
    _property_names[elements] = "elements"
    _property_names[show_grid] = "show_grid"
    _property_names[show_labels] = "show_labels"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelPhasedArray."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelPhasedArray)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelPhasedArray, [AntennaModelPhasedArray, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5154951086365738732, 3493974224348679060), AntennaModelPhasedArray)
agcls.AgTypeNameMap["AntennaModelPhasedArray"] = AntennaModelPhasedArray

class AntennaModelHfssEepArray(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an HFSS EEP array antenna model."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_width_method_offset = 1
    _get_height_method_offset = 2
    _get_number_of_elements_method_offset = 3
    _get_supported_beam_direction_provider_types_method_offset = 4
    _get_beam_direction_provider_type_method_offset = 5
    _set_beam_direction_provider_type_method_offset = 6
    _get_beam_direction_provider_method_offset = 7
    _get_beamformer_type_method_offset = 8
    _set_beamformer_type_method_offset = 9
    _get_beamformer_method_offset = 10
    _get_element_configuration_method_offset = 11
    _get_elements_method_offset = 12
    _metadata = {
        "iid_data" : (5281997175955450868, 8704901463714957721),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelHfssEepArray)

    _get_width_metadata = { "offset" : _get_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def width(self) -> float:
        """Get the array width."""
        return self._intf.get_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._get_width_metadata)

    _get_height_metadata = { "offset" : _get_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height(self) -> float:
        """Get the array height."""
        return self._intf.get_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._get_height_metadata)

    _get_number_of_elements_metadata = { "offset" : _get_number_of_elements_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_elements(self) -> int:
        """Get the number of array elements."""
        return self._intf.get_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._get_number_of_elements_metadata)

    _get_supported_beam_direction_provider_types_metadata = { "offset" : _get_supported_beam_direction_provider_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_beam_direction_provider_types(self) -> list:
        """Get an array of valid beam direction provider types."""
        return self._intf.get_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._get_supported_beam_direction_provider_types_metadata)

    _get_beam_direction_provider_type_metadata = { "offset" : _get_beam_direction_provider_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(DirectionProviderType),) }
    @property
    def beam_direction_provider_type(self) -> "DirectionProviderType":
        """Get or set the beam direction provider type."""
        return self._intf.get_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._get_beam_direction_provider_type_metadata)

    _set_beam_direction_provider_type_metadata = { "offset" : _set_beam_direction_provider_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(DirectionProviderType),) }
    @beam_direction_provider_type.setter
    def beam_direction_provider_type(self, value:"DirectionProviderType") -> None:
        return self._intf.set_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._set_beam_direction_provider_type_metadata, value)

    _get_beam_direction_provider_metadata = { "offset" : _get_beam_direction_provider_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def beam_direction_provider(self) -> "IDirectionProvider":
        """Get the beam direction provider."""
        return self._intf.get_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._get_beam_direction_provider_metadata)

    _get_beamformer_type_metadata = { "offset" : _get_beamformer_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(BeamformerType),) }
    @property
    def beamformer_type(self) -> "BeamformerType":
        """Get or set beamformer type."""
        return self._intf.get_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._get_beamformer_type_metadata)

    _set_beamformer_type_metadata = { "offset" : _set_beamformer_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(BeamformerType),) }
    @beamformer_type.setter
    def beamformer_type(self, value:"BeamformerType") -> None:
        return self._intf.set_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._set_beamformer_type_metadata, value)

    _get_beamformer_metadata = { "offset" : _get_beamformer_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def beamformer(self) -> "IBeamformer":
        """Get the beamformer."""
        return self._intf.get_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._get_beamformer_metadata)

    _get_element_configuration_metadata = { "offset" : _get_element_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def element_configuration(self) -> "ElementConfigurationHfssEepFile":
        """Get the element configuration."""
        return self._intf.get_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._get_element_configuration_metadata)

    _get_elements_metadata = { "offset" : _get_elements_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def elements(self) -> "ElementCollection":
        """Get the collection of elements."""
        return self._intf.get_property(AntennaModelHfssEepArray._metadata, AntennaModelHfssEepArray._get_elements_metadata)

    _property_names[width] = "width"
    _property_names[height] = "height"
    _property_names[number_of_elements] = "number_of_elements"
    _property_names[supported_beam_direction_provider_types] = "supported_beam_direction_provider_types"
    _property_names[beam_direction_provider_type] = "beam_direction_provider_type"
    _property_names[beam_direction_provider] = "beam_direction_provider"
    _property_names[beamformer_type] = "beamformer_type"
    _property_names[beamformer] = "beamformer"
    _property_names[element_configuration] = "element_configuration"
    _property_names[elements] = "elements"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelHfssEepArray."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelHfssEepArray)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelHfssEepArray, [AntennaModelHfssEepArray, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5543790940436384406, 18176748288033726888), AntennaModelHfssEepArray)
agcls.AgTypeNameMap["AntennaModelHfssEepArray"] = AntennaModelHfssEepArray

class AntennaModelIsotropic(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an isotropic antenna model."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _get_efficiency_method_offset = 2
    _set_efficiency_method_offset = 3
    _metadata = {
        "iid_data" : (5594048613343978735, 12827721366884850816),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelIsotropic)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get the mainlobe gain."""
        return self._intf.get_property(AntennaModelIsotropic._metadata, AntennaModelIsotropic._get_mainlobe_gain_metadata)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelIsotropic._metadata, AntennaModelIsotropic._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelIsotropic._metadata, AntennaModelIsotropic._set_efficiency_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelIsotropic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelIsotropic)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelIsotropic, [AntennaModelIsotropic, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4851849460225187356, 11189476075259086521), AntennaModelIsotropic)
agcls.AgTypeNameMap["AntennaModelIsotropic"] = AntennaModelIsotropic

class AntennaModelIntelSat(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an IntelSat antenna model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5285600121066256574, 10807376417191644841),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelIntelSat)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the user antenna data filename."""
        return self._intf.get_property(AntennaModelIntelSat._metadata, AntennaModelIntelSat._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AntennaModelIntelSat._metadata, AntennaModelIntelSat._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelIntelSat."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelIntelSat)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelIntelSat, [AntennaModelIntelSat, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4820777519335677942, 2406187483228711328), AntennaModelIntelSat)
agcls.AgTypeNameMap["AntennaModelIntelSat"] = AntennaModelIntelSat

class AntennaModelGPSGlobal(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a GPS global antenna model."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_block_types_method_offset = 1
    _get_block_type_method_offset = 2
    _set_block_type_method_offset = 3
    _get_efficiency_method_offset = 4
    _set_efficiency_method_offset = 5
    _get_maximum_gain_method_offset = 6
    _get_beamwidth_method_offset = 7
    _metadata = {
        "iid_data" : (5266620510254829948, 13997311001578998917),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelGPSGlobal)

    _get_supported_block_types_metadata = { "offset" : _get_supported_block_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_block_types(self) -> list:
        """Get an array of supported block types."""
        return self._intf.get_property(AntennaModelGPSGlobal._metadata, AntennaModelGPSGlobal._get_supported_block_types_metadata)

    _get_block_type_metadata = { "offset" : _get_block_type_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def block_type(self) -> str:
        """Get or set the block type."""
        return self._intf.get_property(AntennaModelGPSGlobal._metadata, AntennaModelGPSGlobal._get_block_type_metadata)

    _set_block_type_metadata = { "offset" : _set_block_type_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @block_type.setter
    def block_type(self, value:str) -> None:
        return self._intf.set_property(AntennaModelGPSGlobal._metadata, AntennaModelGPSGlobal._set_block_type_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelGPSGlobal._metadata, AntennaModelGPSGlobal._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelGPSGlobal._metadata, AntennaModelGPSGlobal._set_efficiency_metadata, value)

    _get_maximum_gain_metadata = { "offset" : _get_maximum_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_gain(self) -> float:
        """Get the maximum gain."""
        return self._intf.get_property(AntennaModelGPSGlobal._metadata, AntennaModelGPSGlobal._get_maximum_gain_metadata)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get the beamwidth."""
        return self._intf.get_property(AntennaModelGPSGlobal._metadata, AntennaModelGPSGlobal._get_beamwidth_metadata)

    _property_names[supported_block_types] = "supported_block_types"
    _property_names[block_type] = "block_type"
    _property_names[efficiency] = "efficiency"
    _property_names[maximum_gain] = "maximum_gain"
    _property_names[beamwidth] = "beamwidth"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelGPSGlobal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelGPSGlobal)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelGPSGlobal, [AntennaModelGPSGlobal, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5330478986916058529, 6124741042660941456), AntennaModelGPSGlobal)
agcls.AgTypeNameMap["AntennaModelGPSGlobal"] = AntennaModelGPSGlobal

class AntennaModelGPSFRPA(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a GPS FRPA antenna model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_efficiency_method_offset = 1
    _set_efficiency_method_offset = 2
    _metadata = {
        "iid_data" : (4983838304783899487, 8062928061178549921),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelGPSFRPA)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelGPSFRPA._metadata, AntennaModelGPSFRPA._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelGPSFRPA._metadata, AntennaModelGPSFRPA._set_efficiency_metadata, value)

    _property_names[efficiency] = "efficiency"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelGPSFRPA."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelGPSFRPA)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelGPSFRPA, [AntennaModelGPSFRPA, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5369756063143388349, 1080392834085529251), AntennaModelGPSFRPA)
agcls.AgTypeNameMap["AntennaModelGPSFRPA"] = AntennaModelGPSFRPA

class AntennaModelITUBO1213CoPolar(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R BO1213 co-polar antenna model."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_diameter_method_offset = 5
    _set_diameter_method_offset = 6
    _metadata = {
        "iid_data" : (5215649166170953654, 493207763910928556),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUBO1213CoPolar)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUBO1213CoPolar._metadata, AntennaModelITUBO1213CoPolar._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUBO1213CoPolar._metadata, AntennaModelITUBO1213CoPolar._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUBO1213CoPolar._metadata, AntennaModelITUBO1213CoPolar._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUBO1213CoPolar._metadata, AntennaModelITUBO1213CoPolar._set_efficiency_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelITUBO1213CoPolar._metadata, AntennaModelITUBO1213CoPolar._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUBO1213CoPolar._metadata, AntennaModelITUBO1213CoPolar._set_diameter_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[diameter] = "diameter"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUBO1213CoPolar."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUBO1213CoPolar)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUBO1213CoPolar, [AntennaModelITUBO1213CoPolar, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5289863765190180587, 4341363253602258612), AntennaModelITUBO1213CoPolar)
agcls.AgTypeNameMap["AntennaModelITUBO1213CoPolar"] = AntennaModelITUBO1213CoPolar

class AntennaModelITUBO1213CrossPolar(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R BO1213 cross-polar antenna model."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_diameter_method_offset = 5
    _set_diameter_method_offset = 6
    _metadata = {
        "iid_data" : (5592755601475119208, 2306261188521205181),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUBO1213CrossPolar)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUBO1213CrossPolar._metadata, AntennaModelITUBO1213CrossPolar._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUBO1213CrossPolar._metadata, AntennaModelITUBO1213CrossPolar._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUBO1213CrossPolar._metadata, AntennaModelITUBO1213CrossPolar._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUBO1213CrossPolar._metadata, AntennaModelITUBO1213CrossPolar._set_efficiency_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelITUBO1213CrossPolar._metadata, AntennaModelITUBO1213CrossPolar._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUBO1213CrossPolar._metadata, AntennaModelITUBO1213CrossPolar._set_diameter_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[diameter] = "diameter"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUBO1213CrossPolar."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUBO1213CrossPolar)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUBO1213CrossPolar, [AntennaModelITUBO1213CrossPolar, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5557947556872649840, 11462492553923996549), AntennaModelITUBO1213CrossPolar)
agcls.AgTypeNameMap["AntennaModelITUBO1213CrossPolar"] = AntennaModelITUBO1213CrossPolar

class AntennaModelITUF1245(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R F1245-3 antenna model."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_diameter_method_offset = 5
    _set_diameter_method_offset = 6
    _get_polarization_advantage_method_offset = 7
    _set_polarization_advantage_method_offset = 8
    _metadata = {
        "iid_data" : (5620411750428915076, 3480619365553269439),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUF1245)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUF1245._metadata, AntennaModelITUF1245._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUF1245._metadata, AntennaModelITUF1245._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUF1245._metadata, AntennaModelITUF1245._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUF1245._metadata, AntennaModelITUF1245._set_efficiency_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelITUF1245._metadata, AntennaModelITUF1245._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUF1245._metadata, AntennaModelITUF1245._set_diameter_metadata, value)

    _get_polarization_advantage_metadata = { "offset" : _get_polarization_advantage_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def polarization_advantage(self) -> bool:
        """Get or set the option for enabling polarization advantage."""
        return self._intf.get_property(AntennaModelITUF1245._metadata, AntennaModelITUF1245._get_polarization_advantage_metadata)

    _set_polarization_advantage_metadata = { "offset" : _set_polarization_advantage_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @polarization_advantage.setter
    def polarization_advantage(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUF1245._metadata, AntennaModelITUF1245._set_polarization_advantage_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[diameter] = "diameter"
    _property_names[polarization_advantage] = "polarization_advantage"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUF1245."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUF1245)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUF1245, [AntennaModelITUF1245, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5436878665980519746, 11413087162309998768), AntennaModelITUF1245)
agcls.AgTypeNameMap["AntennaModelITUF1245"] = AntennaModelITUF1245

class AntennaModelITUS580(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R S580-6 antenna model."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_diameter_method_offset = 5
    _set_diameter_method_offset = 6
    _get_use_mainlobe_model_method_offset = 7
    _set_use_mainlobe_model_method_offset = 8
    _get_sidelobe_mask_level_method_offset = 9
    _set_sidelobe_mask_level_method_offset = 10
    _get_sidelobe_relative_to_mainlobe_method_offset = 11
    _set_sidelobe_relative_to_mainlobe_method_offset = 12
    _metadata = {
        "iid_data" : (5681915001382128845, 1316180841105051286),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUS580)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUS580._metadata, AntennaModelITUS580._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS580._metadata, AntennaModelITUS580._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUS580._metadata, AntennaModelITUS580._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS580._metadata, AntennaModelITUS580._set_efficiency_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelITUS580._metadata, AntennaModelITUS580._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS580._metadata, AntennaModelITUS580._set_diameter_metadata, value)

    _get_use_mainlobe_model_metadata = { "offset" : _get_use_mainlobe_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_mainlobe_model(self) -> bool:
        """Get or set the option for enabling the mainlobe model."""
        return self._intf.get_property(AntennaModelITUS580._metadata, AntennaModelITUS580._get_use_mainlobe_model_metadata)

    _set_use_mainlobe_model_metadata = { "offset" : _set_use_mainlobe_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_mainlobe_model.setter
    def use_mainlobe_model(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS580._metadata, AntennaModelITUS580._set_use_mainlobe_model_metadata, value)

    _get_sidelobe_mask_level_metadata = { "offset" : _get_sidelobe_mask_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sidelobe_mask_level(self) -> float:
        """Get or set the sidelobe mask level."""
        return self._intf.get_property(AntennaModelITUS580._metadata, AntennaModelITUS580._get_sidelobe_mask_level_metadata)

    _set_sidelobe_mask_level_metadata = { "offset" : _set_sidelobe_mask_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sidelobe_mask_level.setter
    def sidelobe_mask_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS580._metadata, AntennaModelITUS580._set_sidelobe_mask_level_metadata, value)

    _get_sidelobe_relative_to_mainlobe_metadata = { "offset" : _get_sidelobe_relative_to_mainlobe_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def sidelobe_relative_to_mainlobe(self) -> bool:
        """Get or set the flag indicating that the sidelobe mask level is relative to the mainlobe level."""
        return self._intf.get_property(AntennaModelITUS580._metadata, AntennaModelITUS580._get_sidelobe_relative_to_mainlobe_metadata)

    _set_sidelobe_relative_to_mainlobe_metadata = { "offset" : _set_sidelobe_relative_to_mainlobe_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @sidelobe_relative_to_mainlobe.setter
    def sidelobe_relative_to_mainlobe(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS580._metadata, AntennaModelITUS580._set_sidelobe_relative_to_mainlobe_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[diameter] = "diameter"
    _property_names[use_mainlobe_model] = "use_mainlobe_model"
    _property_names[sidelobe_mask_level] = "sidelobe_mask_level"
    _property_names[sidelobe_relative_to_mainlobe] = "sidelobe_relative_to_mainlobe"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUS580."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUS580)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUS580, [AntennaModelITUS580, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5128919852223182301, 8779244261517726862), AntennaModelITUS580)
agcls.AgTypeNameMap["AntennaModelITUS580"] = AntennaModelITUS580

class AntennaModelITUS465(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R S465-6 antenna model."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_diameter_method_offset = 5
    _set_diameter_method_offset = 6
    _get_use_mainlobe_model_method_offset = 7
    _set_use_mainlobe_model_method_offset = 8
    _get_sidelobe_mask_level_method_offset = 9
    _set_sidelobe_mask_level_method_offset = 10
    _get_coordinated_prior_to_1993_method_offset = 11
    _set_coordinated_prior_to_1993_method_offset = 12
    _get_sidelobe_relative_to_mainlobe_method_offset = 13
    _set_sidelobe_relative_to_mainlobe_method_offset = 14
    _metadata = {
        "iid_data" : (4993539679268903305, 6723380979566550920),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUS465)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUS465._metadata, AntennaModelITUS465._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS465._metadata, AntennaModelITUS465._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUS465._metadata, AntennaModelITUS465._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS465._metadata, AntennaModelITUS465._set_efficiency_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelITUS465._metadata, AntennaModelITUS465._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS465._metadata, AntennaModelITUS465._set_diameter_metadata, value)

    _get_use_mainlobe_model_metadata = { "offset" : _get_use_mainlobe_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_mainlobe_model(self) -> bool:
        """Get or set the option for enabling the mainlobe model."""
        return self._intf.get_property(AntennaModelITUS465._metadata, AntennaModelITUS465._get_use_mainlobe_model_metadata)

    _set_use_mainlobe_model_metadata = { "offset" : _set_use_mainlobe_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_mainlobe_model.setter
    def use_mainlobe_model(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS465._metadata, AntennaModelITUS465._set_use_mainlobe_model_metadata, value)

    _get_sidelobe_mask_level_metadata = { "offset" : _get_sidelobe_mask_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sidelobe_mask_level(self) -> float:
        """Get or set the sidelobe mask level."""
        return self._intf.get_property(AntennaModelITUS465._metadata, AntennaModelITUS465._get_sidelobe_mask_level_metadata)

    _set_sidelobe_mask_level_metadata = { "offset" : _set_sidelobe_mask_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sidelobe_mask_level.setter
    def sidelobe_mask_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS465._metadata, AntennaModelITUS465._set_sidelobe_mask_level_metadata, value)

    _get_coordinated_prior_to_1993_metadata = { "offset" : _get_coordinated_prior_to_1993_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def coordinated_prior_to_1993(self) -> bool:
        """Get or set whether or not the antenna was coordinated prior to 1993."""
        return self._intf.get_property(AntennaModelITUS465._metadata, AntennaModelITUS465._get_coordinated_prior_to_1993_metadata)

    _set_coordinated_prior_to_1993_metadata = { "offset" : _set_coordinated_prior_to_1993_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @coordinated_prior_to_1993.setter
    def coordinated_prior_to_1993(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS465._metadata, AntennaModelITUS465._set_coordinated_prior_to_1993_metadata, value)

    _get_sidelobe_relative_to_mainlobe_metadata = { "offset" : _get_sidelobe_relative_to_mainlobe_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def sidelobe_relative_to_mainlobe(self) -> bool:
        """Get or set the flag indicating that the sidelobe mask level is relative to the mainlobe level."""
        return self._intf.get_property(AntennaModelITUS465._metadata, AntennaModelITUS465._get_sidelobe_relative_to_mainlobe_metadata)

    _set_sidelobe_relative_to_mainlobe_metadata = { "offset" : _set_sidelobe_relative_to_mainlobe_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @sidelobe_relative_to_mainlobe.setter
    def sidelobe_relative_to_mainlobe(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS465._metadata, AntennaModelITUS465._set_sidelobe_relative_to_mainlobe_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[diameter] = "diameter"
    _property_names[use_mainlobe_model] = "use_mainlobe_model"
    _property_names[sidelobe_mask_level] = "sidelobe_mask_level"
    _property_names[coordinated_prior_to_1993] = "coordinated_prior_to_1993"
    _property_names[sidelobe_relative_to_mainlobe] = "sidelobe_relative_to_mainlobe"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUS465."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUS465)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUS465, [AntennaModelITUS465, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5477306283956848477, 7359484995312477057), AntennaModelITUS465)
agcls.AgTypeNameMap["AntennaModelITUS465"] = AntennaModelITUS465

class AntennaModelITUS731(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R S731 antenna model."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_diameter_method_offset = 5
    _set_diameter_method_offset = 6
    _get_use_mainlobe_model_method_offset = 7
    _set_use_mainlobe_model_method_offset = 8
    _get_sidelobe_mask_level_method_offset = 9
    _set_sidelobe_mask_level_method_offset = 10
    _get_sidelobe_relative_to_mainlobe_method_offset = 11
    _set_sidelobe_relative_to_mainlobe_method_offset = 12
    _metadata = {
        "iid_data" : (4645332657470953033, 15965207409946032018),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUS731)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUS731._metadata, AntennaModelITUS731._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS731._metadata, AntennaModelITUS731._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUS731._metadata, AntennaModelITUS731._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS731._metadata, AntennaModelITUS731._set_efficiency_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelITUS731._metadata, AntennaModelITUS731._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS731._metadata, AntennaModelITUS731._set_diameter_metadata, value)

    _get_use_mainlobe_model_metadata = { "offset" : _get_use_mainlobe_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_mainlobe_model(self) -> bool:
        """Get or set the option for enabling the mainlobe model."""
        return self._intf.get_property(AntennaModelITUS731._metadata, AntennaModelITUS731._get_use_mainlobe_model_metadata)

    _set_use_mainlobe_model_metadata = { "offset" : _set_use_mainlobe_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_mainlobe_model.setter
    def use_mainlobe_model(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS731._metadata, AntennaModelITUS731._set_use_mainlobe_model_metadata, value)

    _get_sidelobe_mask_level_metadata = { "offset" : _get_sidelobe_mask_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sidelobe_mask_level(self) -> float:
        """Get or set the sidelobe mask level."""
        return self._intf.get_property(AntennaModelITUS731._metadata, AntennaModelITUS731._get_sidelobe_mask_level_metadata)

    _set_sidelobe_mask_level_metadata = { "offset" : _set_sidelobe_mask_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sidelobe_mask_level.setter
    def sidelobe_mask_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS731._metadata, AntennaModelITUS731._set_sidelobe_mask_level_metadata, value)

    _get_sidelobe_relative_to_mainlobe_metadata = { "offset" : _get_sidelobe_relative_to_mainlobe_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def sidelobe_relative_to_mainlobe(self) -> bool:
        """Get or set the flag indicating that the sidelobe mask level is relative to the mainlobe level."""
        return self._intf.get_property(AntennaModelITUS731._metadata, AntennaModelITUS731._get_sidelobe_relative_to_mainlobe_metadata)

    _set_sidelobe_relative_to_mainlobe_metadata = { "offset" : _set_sidelobe_relative_to_mainlobe_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @sidelobe_relative_to_mainlobe.setter
    def sidelobe_relative_to_mainlobe(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS731._metadata, AntennaModelITUS731._set_sidelobe_relative_to_mainlobe_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[diameter] = "diameter"
    _property_names[use_mainlobe_model] = "use_mainlobe_model"
    _property_names[sidelobe_mask_level] = "sidelobe_mask_level"
    _property_names[sidelobe_relative_to_mainlobe] = "sidelobe_relative_to_mainlobe"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUS731."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUS731)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUS731, [AntennaModelITUS731, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5385324779299261777, 15878243377408945850), AntennaModelITUS731)
agcls.AgTypeNameMap["AntennaModelITUS731"] = AntennaModelITUS731

class AntennaModelITUS1528R12Circular(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R S1528 1.2 circular antenna model."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_diameter_method_offset = 5
    _set_diameter_method_offset = 6
    _get_use_mainlobe_model_method_offset = 7
    _set_use_mainlobe_model_method_offset = 8
    _get_override_half_beamwidth_method_offset = 9
    _set_override_half_beamwidth_method_offset = 10
    _get_half_beamwidth_method_offset = 11
    _set_half_beamwidth_method_offset = 12
    _get_near_in_sidelobe_level_method_offset = 13
    _set_near_in_sidelobe_level_method_offset = 14
    _get_farout_sidelobe_level_method_offset = 15
    _set_farout_sidelobe_level_method_offset = 16
    _metadata = {
        "iid_data" : (5070218744206274277, 6110107364672177315),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUS1528R12Circular)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._set_efficiency_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._set_diameter_metadata, value)

    _get_use_mainlobe_model_metadata = { "offset" : _get_use_mainlobe_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_mainlobe_model(self) -> bool:
        """Get or set the option for enabling the mainlobe model."""
        return self._intf.get_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._get_use_mainlobe_model_metadata)

    _set_use_mainlobe_model_metadata = { "offset" : _set_use_mainlobe_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_mainlobe_model.setter
    def use_mainlobe_model(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._set_use_mainlobe_model_metadata, value)

    _get_override_half_beamwidth_metadata = { "offset" : _get_override_half_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_half_beamwidth(self) -> bool:
        """Get or set the option for overriding the half beamwidth."""
        return self._intf.get_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._get_override_half_beamwidth_metadata)

    _set_override_half_beamwidth_metadata = { "offset" : _set_override_half_beamwidth_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_half_beamwidth.setter
    def override_half_beamwidth(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._set_override_half_beamwidth_metadata, value)

    _get_half_beamwidth_metadata = { "offset" : _get_half_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def half_beamwidth(self) -> typing.Any:
        """Get or set the half beamwidth."""
        return self._intf.get_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._get_half_beamwidth_metadata)

    _set_half_beamwidth_metadata = { "offset" : _set_half_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @half_beamwidth.setter
    def half_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._set_half_beamwidth_metadata, value)

    _get_near_in_sidelobe_level_metadata = { "offset" : _get_near_in_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def near_in_sidelobe_level(self) -> float:
        """Get or set the near in sidelobe level."""
        return self._intf.get_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._get_near_in_sidelobe_level_metadata)

    _set_near_in_sidelobe_level_metadata = { "offset" : _set_near_in_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @near_in_sidelobe_level.setter
    def near_in_sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._set_near_in_sidelobe_level_metadata, value)

    _get_farout_sidelobe_level_metadata = { "offset" : _get_farout_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def farout_sidelobe_level(self) -> float:
        """Get or set the far out sidelobe level."""
        return self._intf.get_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._get_farout_sidelobe_level_metadata)

    _set_farout_sidelobe_level_metadata = { "offset" : _set_farout_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @farout_sidelobe_level.setter
    def farout_sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Circular._metadata, AntennaModelITUS1528R12Circular._set_farout_sidelobe_level_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[diameter] = "diameter"
    _property_names[use_mainlobe_model] = "use_mainlobe_model"
    _property_names[override_half_beamwidth] = "override_half_beamwidth"
    _property_names[half_beamwidth] = "half_beamwidth"
    _property_names[near_in_sidelobe_level] = "near_in_sidelobe_level"
    _property_names[farout_sidelobe_level] = "farout_sidelobe_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUS1528R12Circular."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUS1528R12Circular)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUS1528R12Circular, [AntennaModelITUS1528R12Circular, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5040888568268828777, 5561063631796729990), AntennaModelITUS1528R12Circular)
agcls.AgTypeNameMap["AntennaModelITUS1528R12Circular"] = AntennaModelITUS1528R12Circular

class AntennaModelITUS1528R13(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R S1528 1.3 antenna model."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_diameter_method_offset = 5
    _set_diameter_method_offset = 6
    _get_use_mainlobe_model_method_offset = 7
    _set_use_mainlobe_model_method_offset = 8
    _get_override_half_beamwidth_method_offset = 9
    _set_override_half_beamwidth_method_offset = 10
    _get_half_beamwidth_method_offset = 11
    _set_half_beamwidth_method_offset = 12
    _get_near_in_sidelobe_mask_cross_point_method_offset = 13
    _set_near_in_sidelobe_mask_cross_point_method_offset = 14
    _get_farout_sidelobe_level_method_offset = 15
    _set_farout_sidelobe_level_method_offset = 16
    _metadata = {
        "iid_data" : (5228766969945544380, 4023506163452957616),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUS1528R13)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._set_efficiency_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._set_diameter_metadata, value)

    _get_use_mainlobe_model_metadata = { "offset" : _get_use_mainlobe_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_mainlobe_model(self) -> bool:
        """Get or set the option for enabling the mainlobe model."""
        return self._intf.get_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._get_use_mainlobe_model_metadata)

    _set_use_mainlobe_model_metadata = { "offset" : _set_use_mainlobe_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_mainlobe_model.setter
    def use_mainlobe_model(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._set_use_mainlobe_model_metadata, value)

    _get_override_half_beamwidth_metadata = { "offset" : _get_override_half_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_half_beamwidth(self) -> bool:
        """Get or set the option for overriding the half beamwidth."""
        return self._intf.get_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._get_override_half_beamwidth_metadata)

    _set_override_half_beamwidth_metadata = { "offset" : _set_override_half_beamwidth_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_half_beamwidth.setter
    def override_half_beamwidth(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._set_override_half_beamwidth_metadata, value)

    _get_half_beamwidth_metadata = { "offset" : _get_half_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def half_beamwidth(self) -> typing.Any:
        """Get or set the half beamwidth."""
        return self._intf.get_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._get_half_beamwidth_metadata)

    _set_half_beamwidth_metadata = { "offset" : _set_half_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @half_beamwidth.setter
    def half_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._set_half_beamwidth_metadata, value)

    _get_near_in_sidelobe_mask_cross_point_metadata = { "offset" : _get_near_in_sidelobe_mask_cross_point_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def near_in_sidelobe_mask_cross_point(self) -> float:
        """Get or set the near in sidelobe mask cross point."""
        return self._intf.get_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._get_near_in_sidelobe_mask_cross_point_metadata)

    _set_near_in_sidelobe_mask_cross_point_metadata = { "offset" : _set_near_in_sidelobe_mask_cross_point_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @near_in_sidelobe_mask_cross_point.setter
    def near_in_sidelobe_mask_cross_point(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._set_near_in_sidelobe_mask_cross_point_metadata, value)

    _get_farout_sidelobe_level_metadata = { "offset" : _get_farout_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def farout_sidelobe_level(self) -> float:
        """Get or set the far out sidelobe level."""
        return self._intf.get_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._get_farout_sidelobe_level_metadata)

    _set_farout_sidelobe_level_metadata = { "offset" : _set_farout_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @farout_sidelobe_level.setter
    def farout_sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R13._metadata, AntennaModelITUS1528R13._set_farout_sidelobe_level_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[diameter] = "diameter"
    _property_names[use_mainlobe_model] = "use_mainlobe_model"
    _property_names[override_half_beamwidth] = "override_half_beamwidth"
    _property_names[half_beamwidth] = "half_beamwidth"
    _property_names[near_in_sidelobe_mask_cross_point] = "near_in_sidelobe_mask_cross_point"
    _property_names[farout_sidelobe_level] = "farout_sidelobe_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUS1528R13."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUS1528R13)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUS1528R13, [AntennaModelITUS1528R13, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5060576626363593542, 16854053750678350721), AntennaModelITUS1528R13)
agcls.AgTypeNameMap["AntennaModelITUS1528R13"] = AntennaModelITUS1528R13

class AntennaModelITUS672Circular(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R S672-4 circular antenna model."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_diameter_method_offset = 5
    _set_diameter_method_offset = 6
    _get_use_mainlobe_model_method_offset = 7
    _set_use_mainlobe_model_method_offset = 8
    _get_override_half_beamwidth_method_offset = 9
    _set_override_half_beamwidth_method_offset = 10
    _get_half_beamwidth_method_offset = 11
    _set_half_beamwidth_method_offset = 12
    _get_near_in_sidelobe_level_method_offset = 13
    _set_near_in_sidelobe_level_method_offset = 14
    _get_farout_sidelobe_level_method_offset = 15
    _set_farout_sidelobe_level_method_offset = 16
    _metadata = {
        "iid_data" : (5085558706083790810, 7470278931635892139),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUS672Circular)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._set_efficiency_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._set_diameter_metadata, value)

    _get_use_mainlobe_model_metadata = { "offset" : _get_use_mainlobe_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_mainlobe_model(self) -> bool:
        """Get or set the option for enabling the mainlobe model."""
        return self._intf.get_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._get_use_mainlobe_model_metadata)

    _set_use_mainlobe_model_metadata = { "offset" : _set_use_mainlobe_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_mainlobe_model.setter
    def use_mainlobe_model(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._set_use_mainlobe_model_metadata, value)

    _get_override_half_beamwidth_metadata = { "offset" : _get_override_half_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_half_beamwidth(self) -> bool:
        """Get or set the option for overriding the half beamwidth."""
        return self._intf.get_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._get_override_half_beamwidth_metadata)

    _set_override_half_beamwidth_metadata = { "offset" : _set_override_half_beamwidth_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_half_beamwidth.setter
    def override_half_beamwidth(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._set_override_half_beamwidth_metadata, value)

    _get_half_beamwidth_metadata = { "offset" : _get_half_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def half_beamwidth(self) -> typing.Any:
        """Get or set the half beamwidth."""
        return self._intf.get_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._get_half_beamwidth_metadata)

    _set_half_beamwidth_metadata = { "offset" : _set_half_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @half_beamwidth.setter
    def half_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._set_half_beamwidth_metadata, value)

    _get_near_in_sidelobe_level_metadata = { "offset" : _get_near_in_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def near_in_sidelobe_level(self) -> float:
        """Get or set the near in sidelobe level."""
        return self._intf.get_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._get_near_in_sidelobe_level_metadata)

    _set_near_in_sidelobe_level_metadata = { "offset" : _set_near_in_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @near_in_sidelobe_level.setter
    def near_in_sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._set_near_in_sidelobe_level_metadata, value)

    _get_farout_sidelobe_level_metadata = { "offset" : _get_farout_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def farout_sidelobe_level(self) -> float:
        """Get or set the far out sidelobe level."""
        return self._intf.get_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._get_farout_sidelobe_level_metadata)

    _set_farout_sidelobe_level_metadata = { "offset" : _set_farout_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @farout_sidelobe_level.setter
    def farout_sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Circular._metadata, AntennaModelITUS672Circular._set_farout_sidelobe_level_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[diameter] = "diameter"
    _property_names[use_mainlobe_model] = "use_mainlobe_model"
    _property_names[override_half_beamwidth] = "override_half_beamwidth"
    _property_names[half_beamwidth] = "half_beamwidth"
    _property_names[near_in_sidelobe_level] = "near_in_sidelobe_level"
    _property_names[farout_sidelobe_level] = "farout_sidelobe_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUS672Circular."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUS672Circular)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUS672Circular, [AntennaModelITUS672Circular, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5596115092120645435, 16289817011939838109), AntennaModelITUS672Circular)
agcls.AgTypeNameMap["AntennaModelITUS672Circular"] = AntennaModelITUS672Circular

class AntennaModelITUS1528R12Rectangular(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R S1528 1.2 rectangular antenna model."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_major_dimension_method_offset = 5
    _set_major_dimension_method_offset = 6
    _get_minor_dimension_method_offset = 7
    _set_minor_dimension_method_offset = 8
    _get_use_mainlobe_model_method_offset = 9
    _set_use_mainlobe_model_method_offset = 10
    _get_override_half_beamwidth_method_offset = 11
    _set_override_half_beamwidth_method_offset = 12
    _get_half_beamwidth_method_offset = 13
    _set_half_beamwidth_method_offset = 14
    _get_near_in_sidelobe_level_method_offset = 15
    _set_near_in_sidelobe_level_method_offset = 16
    _get_farout_sidelobe_level_method_offset = 17
    _set_farout_sidelobe_level_method_offset = 18
    _metadata = {
        "iid_data" : (5055617592458387620, 11751926123757031609),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUS1528R12Rectangular)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._set_efficiency_metadata, value)

    _get_major_dimension_metadata = { "offset" : _get_major_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def major_dimension(self) -> float:
        """Get or set the major dimension."""
        return self._intf.get_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._get_major_dimension_metadata)

    _set_major_dimension_metadata = { "offset" : _set_major_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @major_dimension.setter
    def major_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._set_major_dimension_metadata, value)

    _get_minor_dimension_metadata = { "offset" : _get_minor_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minor_dimension(self) -> float:
        """Get or set the minor dimension."""
        return self._intf.get_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._get_minor_dimension_metadata)

    _set_minor_dimension_metadata = { "offset" : _set_minor_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minor_dimension.setter
    def minor_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._set_minor_dimension_metadata, value)

    _get_use_mainlobe_model_metadata = { "offset" : _get_use_mainlobe_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_mainlobe_model(self) -> bool:
        """Get or set the option for enabling the mainlobe model."""
        return self._intf.get_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._get_use_mainlobe_model_metadata)

    _set_use_mainlobe_model_metadata = { "offset" : _set_use_mainlobe_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_mainlobe_model.setter
    def use_mainlobe_model(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._set_use_mainlobe_model_metadata, value)

    _get_override_half_beamwidth_metadata = { "offset" : _get_override_half_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_half_beamwidth(self) -> bool:
        """Get or set the option for overriding the half beamwidth."""
        return self._intf.get_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._get_override_half_beamwidth_metadata)

    _set_override_half_beamwidth_metadata = { "offset" : _set_override_half_beamwidth_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_half_beamwidth.setter
    def override_half_beamwidth(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._set_override_half_beamwidth_metadata, value)

    _get_half_beamwidth_metadata = { "offset" : _get_half_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def half_beamwidth(self) -> typing.Any:
        """Get or set the half beamwidth."""
        return self._intf.get_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._get_half_beamwidth_metadata)

    _set_half_beamwidth_metadata = { "offset" : _set_half_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @half_beamwidth.setter
    def half_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._set_half_beamwidth_metadata, value)

    _get_near_in_sidelobe_level_metadata = { "offset" : _get_near_in_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def near_in_sidelobe_level(self) -> float:
        """Get or set the near in sidelobe level."""
        return self._intf.get_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._get_near_in_sidelobe_level_metadata)

    _set_near_in_sidelobe_level_metadata = { "offset" : _set_near_in_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @near_in_sidelobe_level.setter
    def near_in_sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._set_near_in_sidelobe_level_metadata, value)

    _get_farout_sidelobe_level_metadata = { "offset" : _get_farout_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def farout_sidelobe_level(self) -> float:
        """Get or set the far out sidelobe level."""
        return self._intf.get_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._get_farout_sidelobe_level_metadata)

    _set_farout_sidelobe_level_metadata = { "offset" : _set_farout_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @farout_sidelobe_level.setter
    def farout_sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS1528R12Rectangular._metadata, AntennaModelITUS1528R12Rectangular._set_farout_sidelobe_level_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[major_dimension] = "major_dimension"
    _property_names[minor_dimension] = "minor_dimension"
    _property_names[use_mainlobe_model] = "use_mainlobe_model"
    _property_names[override_half_beamwidth] = "override_half_beamwidth"
    _property_names[half_beamwidth] = "half_beamwidth"
    _property_names[near_in_sidelobe_level] = "near_in_sidelobe_level"
    _property_names[farout_sidelobe_level] = "farout_sidelobe_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUS1528R12Rectangular."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUS1528R12Rectangular)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUS1528R12Rectangular, [AntennaModelITUS1528R12Rectangular, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5555962496376702153, 6878797842294506151), AntennaModelITUS1528R12Rectangular)
agcls.AgTypeNameMap["AntennaModelITUS1528R12Rectangular"] = AntennaModelITUS1528R12Rectangular

class AntennaModelITUS672Rectangular(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ITU-R S672-4 1.2 rectangular antenna model."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_efficiency_method_offset = 3
    _set_efficiency_method_offset = 4
    _get_major_dimension_method_offset = 5
    _set_major_dimension_method_offset = 6
    _get_minor_dimension_method_offset = 7
    _set_minor_dimension_method_offset = 8
    _get_use_mainlobe_model_method_offset = 9
    _set_use_mainlobe_model_method_offset = 10
    _get_override_half_beamwidth_method_offset = 11
    _set_override_half_beamwidth_method_offset = 12
    _get_half_beamwidth_method_offset = 13
    _set_half_beamwidth_method_offset = 14
    _get_near_in_sidelobe_level_method_offset = 15
    _set_near_in_sidelobe_level_method_offset = 16
    _get_farout_sidelobe_level_method_offset = 17
    _set_farout_sidelobe_level_method_offset = 18
    _metadata = {
        "iid_data" : (5576571934176382520, 17378328795098158216),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelITUS672Rectangular)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._set_mainlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._set_efficiency_metadata, value)

    _get_major_dimension_metadata = { "offset" : _get_major_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def major_dimension(self) -> float:
        """Get or set the major dimension."""
        return self._intf.get_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._get_major_dimension_metadata)

    _set_major_dimension_metadata = { "offset" : _set_major_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @major_dimension.setter
    def major_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._set_major_dimension_metadata, value)

    _get_minor_dimension_metadata = { "offset" : _get_minor_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minor_dimension(self) -> float:
        """Get or set the minor dimension."""
        return self._intf.get_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._get_minor_dimension_metadata)

    _set_minor_dimension_metadata = { "offset" : _set_minor_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minor_dimension.setter
    def minor_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._set_minor_dimension_metadata, value)

    _get_use_mainlobe_model_metadata = { "offset" : _get_use_mainlobe_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_mainlobe_model(self) -> bool:
        """Get or set the option for enabling the mainlobe model."""
        return self._intf.get_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._get_use_mainlobe_model_metadata)

    _set_use_mainlobe_model_metadata = { "offset" : _set_use_mainlobe_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_mainlobe_model.setter
    def use_mainlobe_model(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._set_use_mainlobe_model_metadata, value)

    _get_override_half_beamwidth_metadata = { "offset" : _get_override_half_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_half_beamwidth(self) -> bool:
        """Get or set the option for overriding the half beamwidth."""
        return self._intf.get_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._get_override_half_beamwidth_metadata)

    _set_override_half_beamwidth_metadata = { "offset" : _set_override_half_beamwidth_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_half_beamwidth.setter
    def override_half_beamwidth(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._set_override_half_beamwidth_metadata, value)

    _get_half_beamwidth_metadata = { "offset" : _get_half_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def half_beamwidth(self) -> typing.Any:
        """Get or set the half beamwidth."""
        return self._intf.get_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._get_half_beamwidth_metadata)

    _set_half_beamwidth_metadata = { "offset" : _set_half_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @half_beamwidth.setter
    def half_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._set_half_beamwidth_metadata, value)

    _get_near_in_sidelobe_level_metadata = { "offset" : _get_near_in_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def near_in_sidelobe_level(self) -> float:
        """Get or set the near in sidelobe level."""
        return self._intf.get_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._get_near_in_sidelobe_level_metadata)

    _set_near_in_sidelobe_level_metadata = { "offset" : _set_near_in_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @near_in_sidelobe_level.setter
    def near_in_sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._set_near_in_sidelobe_level_metadata, value)

    _get_farout_sidelobe_level_metadata = { "offset" : _get_farout_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def farout_sidelobe_level(self) -> float:
        """Get or set the far out sidelobe level."""
        return self._intf.get_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._get_farout_sidelobe_level_metadata)

    _set_farout_sidelobe_level_metadata = { "offset" : _set_farout_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @farout_sidelobe_level.setter
    def farout_sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelITUS672Rectangular._metadata, AntennaModelITUS672Rectangular._set_farout_sidelobe_level_metadata, value)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[major_dimension] = "major_dimension"
    _property_names[minor_dimension] = "minor_dimension"
    _property_names[use_mainlobe_model] = "use_mainlobe_model"
    _property_names[override_half_beamwidth] = "override_half_beamwidth"
    _property_names[half_beamwidth] = "half_beamwidth"
    _property_names[near_in_sidelobe_level] = "near_in_sidelobe_level"
    _property_names[farout_sidelobe_level] = "farout_sidelobe_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelITUS672Rectangular."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelITUS672Rectangular)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelITUS672Rectangular, [AntennaModelITUS672Rectangular, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5359400986946506452, 9938398218400080014), AntennaModelITUS672Rectangular)
agcls.AgTypeNameMap["AntennaModelITUS672Rectangular"] = AntennaModelITUS672Rectangular

class AntennaModelApertureCircularCosine(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a circular cosine aperture antenna model."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_diameter_method_offset = 13
    _set_diameter_method_offset = 14
    _get_beamwidth_method_offset = 15
    _set_beamwidth_method_offset = 16
    _metadata = {
        "iid_data" : (5348671962356118284, 380876550998404506),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureCircularCosine)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @property
    def input_type(self) -> "CircularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"CircularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._set_input_type_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._set_diameter_metadata, value)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosine._metadata, AntennaModelApertureCircularCosine._set_beamwidth_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureCircularCosine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureCircularCosine)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureCircularCosine, [AntennaModelApertureCircularCosine, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5706951462144868003, 3426693759036091319), AntennaModelApertureCircularCosine)
agcls.AgTypeNameMap["AntennaModelApertureCircularCosine"] = AntennaModelApertureCircularCosine

class AntennaModelApertureCircularUniform(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a circular uniform aperture antenna model."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_diameter_method_offset = 13
    _set_diameter_method_offset = 14
    _get_beamwidth_method_offset = 15
    _set_beamwidth_method_offset = 16
    _metadata = {
        "iid_data" : (4988226082155182087, 2969725511645424560),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureCircularUniform)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @property
    def input_type(self) -> "CircularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"CircularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._set_input_type_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._set_diameter_metadata, value)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureCircularUniform._metadata, AntennaModelApertureCircularUniform._set_beamwidth_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureCircularUniform."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureCircularUniform)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureCircularUniform, [AntennaModelApertureCircularUniform, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4942783805946330145, 10766808239807171249), AntennaModelApertureCircularUniform)
agcls.AgTypeNameMap["AntennaModelApertureCircularUniform"] = AntennaModelApertureCircularUniform

class AntennaModelApertureCircularCosineSquared(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a circular cosine squared aperture antenna model."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_diameter_method_offset = 13
    _set_diameter_method_offset = 14
    _get_beamwidth_method_offset = 15
    _set_beamwidth_method_offset = 16
    _metadata = {
        "iid_data" : (5208232837308204429, 8206826093938137474),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureCircularCosineSquared)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @property
    def input_type(self) -> "CircularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"CircularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._set_input_type_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._set_diameter_metadata, value)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquared._metadata, AntennaModelApertureCircularCosineSquared._set_beamwidth_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureCircularCosineSquared."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureCircularCosineSquared)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureCircularCosineSquared, [AntennaModelApertureCircularCosineSquared, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5359623715986881579, 15089979553277672085), AntennaModelApertureCircularCosineSquared)
agcls.AgTypeNameMap["AntennaModelApertureCircularCosineSquared"] = AntennaModelApertureCircularCosineSquared

class AntennaModelApertureCircularBessel(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a circular bessel aperture antenna model."""

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_diameter_method_offset = 13
    _set_diameter_method_offset = 14
    _get_beamwidth_method_offset = 15
    _set_beamwidth_method_offset = 16
    _get_function_power_method_offset = 17
    _set_function_power_method_offset = 18
    _get_pedestal_level_method_offset = 19
    _set_pedestal_level_method_offset = 20
    _metadata = {
        "iid_data" : (5132876115459237065, 9207545212129188248),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureCircularBessel)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @property
    def input_type(self) -> "CircularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"CircularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._set_input_type_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._set_diameter_metadata, value)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._set_beamwidth_metadata, value)

    _get_function_power_metadata = { "offset" : _get_function_power_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def function_power(self) -> int:
        """Get or set the function power."""
        return self._intf.get_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._get_function_power_metadata)

    _set_function_power_metadata = { "offset" : _set_function_power_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @function_power.setter
    def function_power(self, value:int) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._set_function_power_metadata, value)

    _get_pedestal_level_metadata = { "offset" : _get_pedestal_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pedestal_level(self) -> float:
        """Get or set the pedestal level."""
        return self._intf.get_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._get_pedestal_level_metadata)

    _set_pedestal_level_metadata = { "offset" : _set_pedestal_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pedestal_level.setter
    def pedestal_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBessel._metadata, AntennaModelApertureCircularBessel._set_pedestal_level_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"
    _property_names[function_power] = "function_power"
    _property_names[pedestal_level] = "pedestal_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureCircularBessel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureCircularBessel)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureCircularBessel, [AntennaModelApertureCircularBessel, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5139449557721857290, 2783269668755041431), AntennaModelApertureCircularBessel)
agcls.AgTypeNameMap["AntennaModelApertureCircularBessel"] = AntennaModelApertureCircularBessel

class AntennaModelApertureCircularBesselEnvelope(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a circular bessel envelope aperture antenna model."""

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_diameter_method_offset = 13
    _set_diameter_method_offset = 14
    _get_beamwidth_method_offset = 15
    _set_beamwidth_method_offset = 16
    _get_function_power_method_offset = 17
    _set_function_power_method_offset = 18
    _get_pedestal_level_method_offset = 19
    _set_pedestal_level_method_offset = 20
    _metadata = {
        "iid_data" : (5305680928998263728, 4054701624550517661),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureCircularBesselEnvelope)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @property
    def input_type(self) -> "CircularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"CircularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._set_input_type_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._set_diameter_metadata, value)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._set_beamwidth_metadata, value)

    _get_function_power_metadata = { "offset" : _get_function_power_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def function_power(self) -> int:
        """Get or set the function power."""
        return self._intf.get_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._get_function_power_metadata)

    _set_function_power_metadata = { "offset" : _set_function_power_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @function_power.setter
    def function_power(self, value:int) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._set_function_power_metadata, value)

    _get_pedestal_level_metadata = { "offset" : _get_pedestal_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pedestal_level(self) -> float:
        """Get or set the pedestal level."""
        return self._intf.get_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._get_pedestal_level_metadata)

    _set_pedestal_level_metadata = { "offset" : _set_pedestal_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pedestal_level.setter
    def pedestal_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularBesselEnvelope._metadata, AntennaModelApertureCircularBesselEnvelope._set_pedestal_level_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"
    _property_names[function_power] = "function_power"
    _property_names[pedestal_level] = "pedestal_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureCircularBesselEnvelope."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureCircularBesselEnvelope)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureCircularBesselEnvelope, [AntennaModelApertureCircularBesselEnvelope, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5672332270542719077, 15920673276246869638), AntennaModelApertureCircularBesselEnvelope)
agcls.AgTypeNameMap["AntennaModelApertureCircularBesselEnvelope"] = AntennaModelApertureCircularBesselEnvelope

class AntennaModelApertureCircularCosinePedestal(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a circular cosine pedestal aperture antenna model."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_diameter_method_offset = 13
    _set_diameter_method_offset = 14
    _get_beamwidth_method_offset = 15
    _set_beamwidth_method_offset = 16
    _get_pedestal_level_method_offset = 17
    _set_pedestal_level_method_offset = 18
    _metadata = {
        "iid_data" : (5023149662175668571, 2272411651987669938),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureCircularCosinePedestal)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @property
    def input_type(self) -> "CircularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"CircularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._set_input_type_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._set_diameter_metadata, value)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._set_beamwidth_metadata, value)

    _get_pedestal_level_metadata = { "offset" : _get_pedestal_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pedestal_level(self) -> float:
        """Get or set the pedestal level."""
        return self._intf.get_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._get_pedestal_level_metadata)

    _set_pedestal_level_metadata = { "offset" : _set_pedestal_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pedestal_level.setter
    def pedestal_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosinePedestal._metadata, AntennaModelApertureCircularCosinePedestal._set_pedestal_level_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"
    _property_names[pedestal_level] = "pedestal_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureCircularCosinePedestal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureCircularCosinePedestal)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureCircularCosinePedestal, [AntennaModelApertureCircularCosinePedestal, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5355317706543979799, 1545454356791580856), AntennaModelApertureCircularCosinePedestal)
agcls.AgTypeNameMap["AntennaModelApertureCircularCosinePedestal"] = AntennaModelApertureCircularCosinePedestal

class AntennaModelApertureCircularCosineSquaredPedestal(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a circular cosine squared pedestal aperture antenna model."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_diameter_method_offset = 13
    _set_diameter_method_offset = 14
    _get_beamwidth_method_offset = 15
    _set_beamwidth_method_offset = 16
    _get_pedestal_level_method_offset = 17
    _set_pedestal_level_method_offset = 18
    _metadata = {
        "iid_data" : (5005674056190515548, 17725938072129255594),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureCircularCosineSquaredPedestal)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @property
    def input_type(self) -> "CircularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"CircularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._set_input_type_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._set_diameter_metadata, value)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._set_beamwidth_metadata, value)

    _get_pedestal_level_metadata = { "offset" : _get_pedestal_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pedestal_level(self) -> float:
        """Get or set the pedestal level."""
        return self._intf.get_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._get_pedestal_level_metadata)

    _set_pedestal_level_metadata = { "offset" : _set_pedestal_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pedestal_level.setter
    def pedestal_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularCosineSquaredPedestal._metadata, AntennaModelApertureCircularCosineSquaredPedestal._set_pedestal_level_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"
    _property_names[pedestal_level] = "pedestal_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureCircularCosineSquaredPedestal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureCircularCosineSquaredPedestal)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureCircularCosineSquaredPedestal, [AntennaModelApertureCircularCosineSquaredPedestal, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4699605936260918063, 8932937579614997410), AntennaModelApertureCircularCosineSquaredPedestal)
agcls.AgTypeNameMap["AntennaModelApertureCircularCosineSquaredPedestal"] = AntennaModelApertureCircularCosineSquaredPedestal

class AntennaModelApertureCircularSincIntegerPower(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a circular sinc integer power aperture antenna model."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_diameter_method_offset = 13
    _set_diameter_method_offset = 14
    _get_beamwidth_method_offset = 15
    _set_beamwidth_method_offset = 16
    _get_function_power_method_offset = 17
    _set_function_power_method_offset = 18
    _metadata = {
        "iid_data" : (5302433361179611950, 17923931388115044993),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureCircularSincIntegerPower)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @property
    def input_type(self) -> "CircularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"CircularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._set_input_type_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._set_diameter_metadata, value)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._set_beamwidth_metadata, value)

    _get_function_power_metadata = { "offset" : _get_function_power_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def function_power(self) -> int:
        """Get or set the function power."""
        return self._intf.get_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._get_function_power_metadata)

    _set_function_power_metadata = { "offset" : _set_function_power_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @function_power.setter
    def function_power(self, value:int) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincIntegerPower._metadata, AntennaModelApertureCircularSincIntegerPower._set_function_power_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"
    _property_names[function_power] = "function_power"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureCircularSincIntegerPower."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureCircularSincIntegerPower)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureCircularSincIntegerPower, [AntennaModelApertureCircularSincIntegerPower, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4754448198278740094, 16526220940600917913), AntennaModelApertureCircularSincIntegerPower)
agcls.AgTypeNameMap["AntennaModelApertureCircularSincIntegerPower"] = AntennaModelApertureCircularSincIntegerPower

class AntennaModelApertureCircularSincRealPower(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a circular sinc real power aperture antenna model."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_diameter_method_offset = 13
    _set_diameter_method_offset = 14
    _get_beamwidth_method_offset = 15
    _set_beamwidth_method_offset = 16
    _get_function_power_method_offset = 17
    _set_function_power_method_offset = 18
    _metadata = {
        "iid_data" : (4899553917959547211, 16344065746635072392),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureCircularSincRealPower)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @property
    def input_type(self) -> "CircularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CircularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"CircularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._set_input_type_metadata, value)

    _get_diameter_metadata = { "offset" : _get_diameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def diameter(self) -> float:
        """Get or set the diameter."""
        return self._intf.get_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._get_diameter_metadata)

    _set_diameter_metadata = { "offset" : _set_diameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @diameter.setter
    def diameter(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._set_diameter_metadata, value)

    _get_beamwidth_metadata = { "offset" : _get_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def beamwidth(self) -> typing.Any:
        """Get or set the beamwidth."""
        return self._intf.get_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._get_beamwidth_metadata)

    _set_beamwidth_metadata = { "offset" : _set_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @beamwidth.setter
    def beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._set_beamwidth_metadata, value)

    _get_function_power_metadata = { "offset" : _get_function_power_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def function_power(self) -> float:
        """Get or set the function power."""
        return self._intf.get_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._get_function_power_metadata)

    _set_function_power_metadata = { "offset" : _set_function_power_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @function_power.setter
    def function_power(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureCircularSincRealPower._metadata, AntennaModelApertureCircularSincRealPower._set_function_power_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[diameter] = "diameter"
    _property_names[beamwidth] = "beamwidth"
    _property_names[function_power] = "function_power"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureCircularSincRealPower."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureCircularSincRealPower)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureCircularSincRealPower, [AntennaModelApertureCircularSincRealPower, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4742722255954040967, 12112087786660894390), AntennaModelApertureCircularSincRealPower)
agcls.AgTypeNameMap["AntennaModelApertureCircularSincRealPower"] = AntennaModelApertureCircularSincRealPower

class AntennaModelApertureRectangularCosine(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a rectangular cosine aperture antenna model."""

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_x_dimension_method_offset = 13
    _set_x_dimension_method_offset = 14
    _get_y_dimension_method_offset = 15
    _set_y_dimension_method_offset = 16
    _get_x_beamwidth_method_offset = 17
    _set_x_beamwidth_method_offset = 18
    _get_y_beamwidth_method_offset = 19
    _set_y_beamwidth_method_offset = 20
    _metadata = {
        "iid_data" : (4838980357989256265, 3129111277802991232),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureRectangularCosine)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @property
    def input_type(self) -> "RectangularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"RectangularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._set_input_type_metadata, value)

    _get_x_dimension_metadata = { "offset" : _get_x_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_dimension(self) -> float:
        """Get or set the x dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._get_x_dimension_metadata)

    _set_x_dimension_metadata = { "offset" : _set_x_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_dimension.setter
    def x_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._set_x_dimension_metadata, value)

    _get_y_dimension_metadata = { "offset" : _get_y_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_dimension(self) -> float:
        """Get or set the y dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._get_y_dimension_metadata)

    _set_y_dimension_metadata = { "offset" : _set_y_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_dimension.setter
    def y_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._set_y_dimension_metadata, value)

    _get_x_beamwidth_metadata = { "offset" : _get_x_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def x_beamwidth(self) -> typing.Any:
        """Get or set the x beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._get_x_beamwidth_metadata)

    _set_x_beamwidth_metadata = { "offset" : _set_x_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @x_beamwidth.setter
    def x_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._set_x_beamwidth_metadata, value)

    _get_y_beamwidth_metadata = { "offset" : _get_y_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def y_beamwidth(self) -> typing.Any:
        """Get or set the y beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._get_y_beamwidth_metadata)

    _set_y_beamwidth_metadata = { "offset" : _set_y_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @y_beamwidth.setter
    def y_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosine._metadata, AntennaModelApertureRectangularCosine._set_y_beamwidth_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[x_dimension] = "x_dimension"
    _property_names[y_dimension] = "y_dimension"
    _property_names[x_beamwidth] = "x_beamwidth"
    _property_names[y_beamwidth] = "y_beamwidth"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureRectangularCosine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureRectangularCosine)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureRectangularCosine, [AntennaModelApertureRectangularCosine, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5240245612083371232, 2842515232348750242), AntennaModelApertureRectangularCosine)
agcls.AgTypeNameMap["AntennaModelApertureRectangularCosine"] = AntennaModelApertureRectangularCosine

class AntennaModelApertureRectangularCosinePedestal(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a rectangular cosine pedestal aperture antenna model."""

    _num_methods = 22
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_x_dimension_method_offset = 13
    _set_x_dimension_method_offset = 14
    _get_y_dimension_method_offset = 15
    _set_y_dimension_method_offset = 16
    _get_x_beamwidth_method_offset = 17
    _set_x_beamwidth_method_offset = 18
    _get_y_beamwidth_method_offset = 19
    _set_y_beamwidth_method_offset = 20
    _get_pedestal_level_method_offset = 21
    _set_pedestal_level_method_offset = 22
    _metadata = {
        "iid_data" : (5600871439653686042, 11995449091598180030),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureRectangularCosinePedestal)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @property
    def input_type(self) -> "RectangularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"RectangularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_input_type_metadata, value)

    _get_x_dimension_metadata = { "offset" : _get_x_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_dimension(self) -> float:
        """Get or set the x dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_x_dimension_metadata)

    _set_x_dimension_metadata = { "offset" : _set_x_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_dimension.setter
    def x_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_x_dimension_metadata, value)

    _get_y_dimension_metadata = { "offset" : _get_y_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_dimension(self) -> float:
        """Get or set the y dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_y_dimension_metadata)

    _set_y_dimension_metadata = { "offset" : _set_y_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_dimension.setter
    def y_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_y_dimension_metadata, value)

    _get_x_beamwidth_metadata = { "offset" : _get_x_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def x_beamwidth(self) -> typing.Any:
        """Get or set the x beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_x_beamwidth_metadata)

    _set_x_beamwidth_metadata = { "offset" : _set_x_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @x_beamwidth.setter
    def x_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_x_beamwidth_metadata, value)

    _get_y_beamwidth_metadata = { "offset" : _get_y_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def y_beamwidth(self) -> typing.Any:
        """Get or set the y beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_y_beamwidth_metadata)

    _set_y_beamwidth_metadata = { "offset" : _set_y_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @y_beamwidth.setter
    def y_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_y_beamwidth_metadata, value)

    _get_pedestal_level_metadata = { "offset" : _get_pedestal_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pedestal_level(self) -> float:
        """Get or set the pedestal level."""
        return self._intf.get_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._get_pedestal_level_metadata)

    _set_pedestal_level_metadata = { "offset" : _set_pedestal_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pedestal_level.setter
    def pedestal_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosinePedestal._metadata, AntennaModelApertureRectangularCosinePedestal._set_pedestal_level_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[x_dimension] = "x_dimension"
    _property_names[y_dimension] = "y_dimension"
    _property_names[x_beamwidth] = "x_beamwidth"
    _property_names[y_beamwidth] = "y_beamwidth"
    _property_names[pedestal_level] = "pedestal_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureRectangularCosinePedestal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureRectangularCosinePedestal)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureRectangularCosinePedestal, [AntennaModelApertureRectangularCosinePedestal, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4856832146359833339, 5316717741683512741), AntennaModelApertureRectangularCosinePedestal)
agcls.AgTypeNameMap["AntennaModelApertureRectangularCosinePedestal"] = AntennaModelApertureRectangularCosinePedestal

class AntennaModelApertureRectangularCosineSquaredPedestal(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a rectangular cosine squared pedestal aperture antenna model."""

    _num_methods = 22
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_x_dimension_method_offset = 13
    _set_x_dimension_method_offset = 14
    _get_y_dimension_method_offset = 15
    _set_y_dimension_method_offset = 16
    _get_x_beamwidth_method_offset = 17
    _set_x_beamwidth_method_offset = 18
    _get_y_beamwidth_method_offset = 19
    _set_y_beamwidth_method_offset = 20
    _get_pedestal_level_method_offset = 21
    _set_pedestal_level_method_offset = 22
    _metadata = {
        "iid_data" : (5657325552230151601, 5654396841103435912),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureRectangularCosineSquaredPedestal)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @property
    def input_type(self) -> "RectangularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"RectangularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_input_type_metadata, value)

    _get_x_dimension_metadata = { "offset" : _get_x_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_dimension(self) -> float:
        """Get or set the x dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_x_dimension_metadata)

    _set_x_dimension_metadata = { "offset" : _set_x_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_dimension.setter
    def x_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_x_dimension_metadata, value)

    _get_y_dimension_metadata = { "offset" : _get_y_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_dimension(self) -> float:
        """Get or set the y dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_y_dimension_metadata)

    _set_y_dimension_metadata = { "offset" : _set_y_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_dimension.setter
    def y_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_y_dimension_metadata, value)

    _get_x_beamwidth_metadata = { "offset" : _get_x_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def x_beamwidth(self) -> typing.Any:
        """Get or set the x beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_x_beamwidth_metadata)

    _set_x_beamwidth_metadata = { "offset" : _set_x_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @x_beamwidth.setter
    def x_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_x_beamwidth_metadata, value)

    _get_y_beamwidth_metadata = { "offset" : _get_y_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def y_beamwidth(self) -> typing.Any:
        """Get or set the y beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_y_beamwidth_metadata)

    _set_y_beamwidth_metadata = { "offset" : _set_y_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @y_beamwidth.setter
    def y_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_y_beamwidth_metadata, value)

    _get_pedestal_level_metadata = { "offset" : _get_pedestal_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pedestal_level(self) -> float:
        """Get or set the pedestal level."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._get_pedestal_level_metadata)

    _set_pedestal_level_metadata = { "offset" : _set_pedestal_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pedestal_level.setter
    def pedestal_level(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquaredPedestal._metadata, AntennaModelApertureRectangularCosineSquaredPedestal._set_pedestal_level_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[x_dimension] = "x_dimension"
    _property_names[y_dimension] = "y_dimension"
    _property_names[x_beamwidth] = "x_beamwidth"
    _property_names[y_beamwidth] = "y_beamwidth"
    _property_names[pedestal_level] = "pedestal_level"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureRectangularCosineSquaredPedestal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureRectangularCosineSquaredPedestal)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureRectangularCosineSquaredPedestal, [AntennaModelApertureRectangularCosineSquaredPedestal, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5182445912620561733, 15901326109789992591), AntennaModelApertureRectangularCosineSquaredPedestal)
agcls.AgTypeNameMap["AntennaModelApertureRectangularCosineSquaredPedestal"] = AntennaModelApertureRectangularCosineSquaredPedestal

class AntennaModelApertureRectangularSincIntegerPower(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a rectangular sinc integer power aperture antenna model."""

    _num_methods = 22
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_x_dimension_method_offset = 13
    _set_x_dimension_method_offset = 14
    _get_y_dimension_method_offset = 15
    _set_y_dimension_method_offset = 16
    _get_x_beamwidth_method_offset = 17
    _set_x_beamwidth_method_offset = 18
    _get_y_beamwidth_method_offset = 19
    _set_y_beamwidth_method_offset = 20
    _get_function_power_method_offset = 21
    _set_function_power_method_offset = 22
    _metadata = {
        "iid_data" : (5120963848774948291, 6671731840336279712),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureRectangularSincIntegerPower)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @property
    def input_type(self) -> "RectangularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"RectangularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_input_type_metadata, value)

    _get_x_dimension_metadata = { "offset" : _get_x_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_dimension(self) -> float:
        """Get or set the x dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_x_dimension_metadata)

    _set_x_dimension_metadata = { "offset" : _set_x_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_dimension.setter
    def x_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_x_dimension_metadata, value)

    _get_y_dimension_metadata = { "offset" : _get_y_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_dimension(self) -> float:
        """Get or set the y dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_y_dimension_metadata)

    _set_y_dimension_metadata = { "offset" : _set_y_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_dimension.setter
    def y_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_y_dimension_metadata, value)

    _get_x_beamwidth_metadata = { "offset" : _get_x_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def x_beamwidth(self) -> typing.Any:
        """Get or set the x beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_x_beamwidth_metadata)

    _set_x_beamwidth_metadata = { "offset" : _set_x_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @x_beamwidth.setter
    def x_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_x_beamwidth_metadata, value)

    _get_y_beamwidth_metadata = { "offset" : _get_y_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def y_beamwidth(self) -> typing.Any:
        """Get or set the y beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_y_beamwidth_metadata)

    _set_y_beamwidth_metadata = { "offset" : _set_y_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @y_beamwidth.setter
    def y_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_y_beamwidth_metadata, value)

    _get_function_power_metadata = { "offset" : _get_function_power_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def function_power(self) -> int:
        """Get or set the function power."""
        return self._intf.get_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._get_function_power_metadata)

    _set_function_power_metadata = { "offset" : _set_function_power_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @function_power.setter
    def function_power(self, value:int) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincIntegerPower._metadata, AntennaModelApertureRectangularSincIntegerPower._set_function_power_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[x_dimension] = "x_dimension"
    _property_names[y_dimension] = "y_dimension"
    _property_names[x_beamwidth] = "x_beamwidth"
    _property_names[y_beamwidth] = "y_beamwidth"
    _property_names[function_power] = "function_power"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureRectangularSincIntegerPower."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureRectangularSincIntegerPower)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureRectangularSincIntegerPower, [AntennaModelApertureRectangularSincIntegerPower, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5143316072366205930, 2575081941583658368), AntennaModelApertureRectangularSincIntegerPower)
agcls.AgTypeNameMap["AntennaModelApertureRectangularSincIntegerPower"] = AntennaModelApertureRectangularSincIntegerPower

class AntennaModelApertureRectangularSincRealPower(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a rectangular sinc real power aperture antenna model."""

    _num_methods = 22
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_x_dimension_method_offset = 13
    _set_x_dimension_method_offset = 14
    _get_y_dimension_method_offset = 15
    _set_y_dimension_method_offset = 16
    _get_x_beamwidth_method_offset = 17
    _set_x_beamwidth_method_offset = 18
    _get_y_beamwidth_method_offset = 19
    _set_y_beamwidth_method_offset = 20
    _get_function_power_method_offset = 21
    _set_function_power_method_offset = 22
    _metadata = {
        "iid_data" : (4616962142280207381, 11696989605070689691),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureRectangularSincRealPower)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @property
    def input_type(self) -> "RectangularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"RectangularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_input_type_metadata, value)

    _get_x_dimension_metadata = { "offset" : _get_x_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_dimension(self) -> float:
        """Get or set the x dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_x_dimension_metadata)

    _set_x_dimension_metadata = { "offset" : _set_x_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_dimension.setter
    def x_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_x_dimension_metadata, value)

    _get_y_dimension_metadata = { "offset" : _get_y_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_dimension(self) -> float:
        """Get or set the y dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_y_dimension_metadata)

    _set_y_dimension_metadata = { "offset" : _set_y_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_dimension.setter
    def y_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_y_dimension_metadata, value)

    _get_x_beamwidth_metadata = { "offset" : _get_x_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def x_beamwidth(self) -> typing.Any:
        """Get or set the x beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_x_beamwidth_metadata)

    _set_x_beamwidth_metadata = { "offset" : _set_x_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @x_beamwidth.setter
    def x_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_x_beamwidth_metadata, value)

    _get_y_beamwidth_metadata = { "offset" : _get_y_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def y_beamwidth(self) -> typing.Any:
        """Get or set the y beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_y_beamwidth_metadata)

    _set_y_beamwidth_metadata = { "offset" : _set_y_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @y_beamwidth.setter
    def y_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_y_beamwidth_metadata, value)

    _get_function_power_metadata = { "offset" : _get_function_power_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def function_power(self) -> float:
        """Get or set the function power."""
        return self._intf.get_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._get_function_power_metadata)

    _set_function_power_metadata = { "offset" : _set_function_power_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @function_power.setter
    def function_power(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularSincRealPower._metadata, AntennaModelApertureRectangularSincRealPower._set_function_power_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[x_dimension] = "x_dimension"
    _property_names[y_dimension] = "y_dimension"
    _property_names[x_beamwidth] = "x_beamwidth"
    _property_names[y_beamwidth] = "y_beamwidth"
    _property_names[function_power] = "function_power"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureRectangularSincRealPower."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureRectangularSincRealPower)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureRectangularSincRealPower, [AntennaModelApertureRectangularSincRealPower, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5146443142851946360, 6081817574535150224), AntennaModelApertureRectangularSincRealPower)
agcls.AgTypeNameMap["AntennaModelApertureRectangularSincRealPower"] = AntennaModelApertureRectangularSincRealPower

class AntennaModelApertureRectangularCosineSquared(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a rectangular cosine squared aperture antenna model."""

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_x_dimension_method_offset = 13
    _set_x_dimension_method_offset = 14
    _get_y_dimension_method_offset = 15
    _set_y_dimension_method_offset = 16
    _get_x_beamwidth_method_offset = 17
    _set_x_beamwidth_method_offset = 18
    _get_y_beamwidth_method_offset = 19
    _set_y_beamwidth_method_offset = 20
    _metadata = {
        "iid_data" : (5040813637331740392, 8330882138412374957),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureRectangularCosineSquared)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @property
    def input_type(self) -> "RectangularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"RectangularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._set_input_type_metadata, value)

    _get_x_dimension_metadata = { "offset" : _get_x_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_dimension(self) -> float:
        """Get or set the x dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._get_x_dimension_metadata)

    _set_x_dimension_metadata = { "offset" : _set_x_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_dimension.setter
    def x_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._set_x_dimension_metadata, value)

    _get_y_dimension_metadata = { "offset" : _get_y_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_dimension(self) -> float:
        """Get or set the y dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._get_y_dimension_metadata)

    _set_y_dimension_metadata = { "offset" : _set_y_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_dimension.setter
    def y_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._set_y_dimension_metadata, value)

    _get_x_beamwidth_metadata = { "offset" : _get_x_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def x_beamwidth(self) -> typing.Any:
        """Get or set the x beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._get_x_beamwidth_metadata)

    _set_x_beamwidth_metadata = { "offset" : _set_x_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @x_beamwidth.setter
    def x_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._set_x_beamwidth_metadata, value)

    _get_y_beamwidth_metadata = { "offset" : _get_y_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def y_beamwidth(self) -> typing.Any:
        """Get or set the y beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._get_y_beamwidth_metadata)

    _set_y_beamwidth_metadata = { "offset" : _set_y_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @y_beamwidth.setter
    def y_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularCosineSquared._metadata, AntennaModelApertureRectangularCosineSquared._set_y_beamwidth_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[x_dimension] = "x_dimension"
    _property_names[y_dimension] = "y_dimension"
    _property_names[x_beamwidth] = "x_beamwidth"
    _property_names[y_beamwidth] = "y_beamwidth"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureRectangularCosineSquared."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureRectangularCosineSquared)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureRectangularCosineSquared, [AntennaModelApertureRectangularCosineSquared, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5395262137085124953, 18277176351558491806), AntennaModelApertureRectangularCosineSquared)
agcls.AgTypeNameMap["AntennaModelApertureRectangularCosineSquared"] = AntennaModelApertureRectangularCosineSquared

class AntennaModelApertureRectangularUniform(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a rectangular uniform aperture antenna model."""

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_mainlobe_gain_method_offset = 1
    _set_compute_mainlobe_gain_method_offset = 2
    _get_mainlobe_gain_method_offset = 3
    _set_mainlobe_gain_method_offset = 4
    _get_backlobe_gain_method_offset = 5
    _set_backlobe_gain_method_offset = 6
    _get_efficiency_method_offset = 7
    _set_efficiency_method_offset = 8
    _get_use_backlobe_as_mainlobe_atten_method_offset = 9
    _set_use_backlobe_as_mainlobe_atten_method_offset = 10
    _get_input_type_method_offset = 11
    _set_input_type_method_offset = 12
    _get_x_dimension_method_offset = 13
    _set_x_dimension_method_offset = 14
    _get_y_dimension_method_offset = 15
    _set_y_dimension_method_offset = 16
    _get_x_beamwidth_method_offset = 17
    _set_x_beamwidth_method_offset = 18
    _get_y_beamwidth_method_offset = 19
    _set_y_beamwidth_method_offset = 20
    _metadata = {
        "iid_data" : (4709897023799546410, 1173665019717836437),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelApertureRectangularUniform)

    _get_compute_mainlobe_gain_metadata = { "offset" : _get_compute_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_mainlobe_gain(self) -> bool:
        """Get or set the option for computing the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._get_compute_mainlobe_gain_metadata)

    _set_compute_mainlobe_gain_metadata = { "offset" : _set_compute_mainlobe_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_mainlobe_gain.setter
    def compute_mainlobe_gain(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._set_compute_mainlobe_gain_metadata, value)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the mainlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._set_mainlobe_gain_metadata, value)

    _get_backlobe_gain_metadata = { "offset" : _get_backlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def backlobe_gain(self) -> float:
        """Get or set the backlobe gain."""
        return self._intf.get_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._get_backlobe_gain_metadata)

    _set_backlobe_gain_metadata = { "offset" : _set_backlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @backlobe_gain.setter
    def backlobe_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._set_backlobe_gain_metadata, value)

    _get_efficiency_metadata = { "offset" : _get_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def efficiency(self) -> float:
        """Get or set the efficiency."""
        return self._intf.get_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._get_efficiency_metadata)

    _set_efficiency_metadata = { "offset" : _set_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @efficiency.setter
    def efficiency(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._set_efficiency_metadata, value)

    _get_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _get_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_backlobe_as_mainlobe_atten(self) -> bool:
        """Get or set the option for using the back lobe gain as a main lobe gain attenuation."""
        return self._intf.get_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._get_use_backlobe_as_mainlobe_atten_metadata)

    _set_use_backlobe_as_mainlobe_atten_metadata = { "offset" : _set_use_backlobe_as_mainlobe_atten_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_backlobe_as_mainlobe_atten.setter
    def use_backlobe_as_mainlobe_atten(self, value:bool) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._set_use_backlobe_as_mainlobe_atten_metadata, value)

    _get_input_type_metadata = { "offset" : _get_input_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @property
    def input_type(self) -> "RectangularApertureInputType":
        """Get or set the input type."""
        return self._intf.get_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._get_input_type_metadata)

    _set_input_type_metadata = { "offset" : _set_input_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RectangularApertureInputType),) }
    @input_type.setter
    def input_type(self, value:"RectangularApertureInputType") -> None:
        return self._intf.set_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._set_input_type_metadata, value)

    _get_x_dimension_metadata = { "offset" : _get_x_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x_dimension(self) -> float:
        """Get or set the x dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._get_x_dimension_metadata)

    _set_x_dimension_metadata = { "offset" : _set_x_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x_dimension.setter
    def x_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._set_x_dimension_metadata, value)

    _get_y_dimension_metadata = { "offset" : _get_y_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y_dimension(self) -> float:
        """Get or set the y dimension."""
        return self._intf.get_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._get_y_dimension_metadata)

    _set_y_dimension_metadata = { "offset" : _set_y_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y_dimension.setter
    def y_dimension(self, value:float) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._set_y_dimension_metadata, value)

    _get_x_beamwidth_metadata = { "offset" : _get_x_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def x_beamwidth(self) -> typing.Any:
        """Get or set the x beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._get_x_beamwidth_metadata)

    _set_x_beamwidth_metadata = { "offset" : _set_x_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @x_beamwidth.setter
    def x_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._set_x_beamwidth_metadata, value)

    _get_y_beamwidth_metadata = { "offset" : _get_y_beamwidth_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def y_beamwidth(self) -> typing.Any:
        """Get or set the y beamwidth."""
        return self._intf.get_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._get_y_beamwidth_metadata)

    _set_y_beamwidth_metadata = { "offset" : _set_y_beamwidth_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @y_beamwidth.setter
    def y_beamwidth(self, value:typing.Any) -> None:
        return self._intf.set_property(AntennaModelApertureRectangularUniform._metadata, AntennaModelApertureRectangularUniform._set_y_beamwidth_metadata, value)

    _property_names[compute_mainlobe_gain] = "compute_mainlobe_gain"
    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[backlobe_gain] = "backlobe_gain"
    _property_names[efficiency] = "efficiency"
    _property_names[use_backlobe_as_mainlobe_atten] = "use_backlobe_as_mainlobe_atten"
    _property_names[input_type] = "input_type"
    _property_names[x_dimension] = "x_dimension"
    _property_names[y_dimension] = "y_dimension"
    _property_names[x_beamwidth] = "x_beamwidth"
    _property_names[y_beamwidth] = "y_beamwidth"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelApertureRectangularUniform."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelApertureRectangularUniform)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelApertureRectangularUniform, [AntennaModelApertureRectangularUniform, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5531949409172334451, 1632169663438646449), AntennaModelApertureRectangularUniform)
agcls.AgTypeNameMap["AntennaModelApertureRectangularUniform"] = AntennaModelApertureRectangularUniform

class AntennaModelRectangularPattern(IAntennaModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a rectangular pattern antenna model."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_mainlobe_gain_method_offset = 1
    _set_mainlobe_gain_method_offset = 2
    _get_theta_angle_method_offset = 3
    _set_theta_angle_method_offset = 4
    _get_phi_angle_method_offset = 5
    _set_phi_angle_method_offset = 6
    _get_sidelobe_gain_method_offset = 7
    _metadata = {
        "iid_data" : (5644627536609244897, 7675240661172107185),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaModelRectangularPattern)

    _get_mainlobe_gain_metadata = { "offset" : _get_mainlobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_gain(self) -> float:
        """Get or set the main-lobe gain."""
        return self._intf.get_property(AntennaModelRectangularPattern._metadata, AntennaModelRectangularPattern._get_mainlobe_gain_metadata)

    _set_mainlobe_gain_metadata = { "offset" : _set_mainlobe_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_gain.setter
    def mainlobe_gain(self, mainlobe_gain:float) -> None:
        return self._intf.set_property(AntennaModelRectangularPattern._metadata, AntennaModelRectangularPattern._set_mainlobe_gain_metadata, mainlobe_gain)

    _get_theta_angle_metadata = { "offset" : _get_theta_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def theta_angle(self) -> typing.Any:
        """Get or set the theta angle."""
        return self._intf.get_property(AntennaModelRectangularPattern._metadata, AntennaModelRectangularPattern._get_theta_angle_metadata)

    _set_theta_angle_metadata = { "offset" : _set_theta_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @theta_angle.setter
    def theta_angle(self, theta_angle:typing.Any) -> None:
        return self._intf.set_property(AntennaModelRectangularPattern._metadata, AntennaModelRectangularPattern._set_theta_angle_metadata, theta_angle)

    _get_phi_angle_metadata = { "offset" : _get_phi_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def phi_angle(self) -> typing.Any:
        """Get or set the phi angle."""
        return self._intf.get_property(AntennaModelRectangularPattern._metadata, AntennaModelRectangularPattern._get_phi_angle_metadata)

    _set_phi_angle_metadata = { "offset" : _set_phi_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @phi_angle.setter
    def phi_angle(self, phi_angle:typing.Any) -> None:
        return self._intf.set_property(AntennaModelRectangularPattern._metadata, AntennaModelRectangularPattern._set_phi_angle_metadata, phi_angle)

    _get_sidelobe_gain_metadata = { "offset" : _get_sidelobe_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sidelobe_gain(self) -> float:
        """Get or set the side-lobe gain."""
        return self._intf.get_property(AntennaModelRectangularPattern._metadata, AntennaModelRectangularPattern._get_sidelobe_gain_metadata)

    _property_names[mainlobe_gain] = "mainlobe_gain"
    _property_names[theta_angle] = "theta_angle"
    _property_names[phi_angle] = "phi_angle"
    _property_names[sidelobe_gain] = "sidelobe_gain"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaModelRectangularPattern."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaModelRectangularPattern)
        IAntennaModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaModelRectangularPattern, [AntennaModelRectangularPattern, IAntennaModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4823936464778789976, 11845770138080714636), AntennaModelRectangularPattern)
agcls.AgTypeNameMap["AntennaModelRectangularPattern"] = AntennaModelRectangularPattern

class AntennaControl(SupportsDeleteCallback):
    """Provide access to the properties and methods of the antenna control."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_reference_type_method_offset = 1
    _set_reference_type_method_offset = 2
    _get_supported_linked_antenna_objects_method_offset = 3
    _get_linked_antenna_object_method_offset = 4
    _set_linked_antenna_object_method_offset = 5
    _get_supported_embedded_models_method_offset = 6
    _set_embedded_model_method_offset = 7
    _get_embedded_model_method_offset = 8
    _get_embedded_model_orientation_method_offset = 9
    _set_embedded_model_orientation_method_offset = 10
    _get_embedded_model_component_linking_method_offset = 11
    _metadata = {
        "iid_data" : (5106981099103097744, 2067707466213747116),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaControl)

    _get_reference_type_metadata = { "offset" : _get_reference_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AntennaControlReferenceType),) }
    @property
    def reference_type(self) -> "AntennaControlReferenceType":
        """Get or set the antenna control reference type."""
        return self._intf.get_property(AntennaControl._metadata, AntennaControl._get_reference_type_metadata)

    _set_reference_type_metadata = { "offset" : _set_reference_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AntennaControlReferenceType),) }
    @reference_type.setter
    def reference_type(self, value:"AntennaControlReferenceType") -> None:
        return self._intf.set_property(AntennaControl._metadata, AntennaControl._set_reference_type_metadata, value)

    _get_supported_linked_antenna_objects_metadata = { "offset" : _get_supported_linked_antenna_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_linked_antenna_objects(self) -> list:
        """Get an array of available antenna objects that this object can link to and use."""
        return self._intf.get_property(AntennaControl._metadata, AntennaControl._get_supported_linked_antenna_objects_metadata)

    _get_linked_antenna_object_metadata = { "offset" : _get_linked_antenna_object_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def linked_antenna_object(self) -> str:
        """Get or set the linked antenna object."""
        return self._intf.get_property(AntennaControl._metadata, AntennaControl._get_linked_antenna_object_metadata)

    _set_linked_antenna_object_metadata = { "offset" : _set_linked_antenna_object_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @linked_antenna_object.setter
    def linked_antenna_object(self, value:str) -> None:
        return self._intf.set_property(AntennaControl._metadata, AntennaControl._set_linked_antenna_object_metadata, value)

    _get_supported_embedded_models_metadata = { "offset" : _get_supported_embedded_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_embedded_models(self) -> list:
        """Do not use this property, as it is deprecated. Use EmbeddedModelComponentLinking on AntennaControl instead. Gets an array of supported model names."""
        return self._intf.get_property(AntennaControl._metadata, AntennaControl._get_supported_embedded_models_metadata)

    _set_embedded_model_metadata = { "offset" : _set_embedded_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_embedded_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use EmbeddedModelComponentLinking on AntennaControl instead. Sets the current antenna model by name."""
        return self._intf.invoke(AntennaControl._metadata, AntennaControl._set_embedded_model_metadata, model_name)

    _get_embedded_model_metadata = { "offset" : _get_embedded_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def embedded_model(self) -> "IAntennaModel":
        """Do not use this property, as it is deprecated. Use EmbeddedModelComponentLinking on AntennaControl instead. Gets the current antenna model."""
        return self._intf.get_property(AntennaControl._metadata, AntennaControl._get_embedded_model_metadata)

    _get_embedded_model_orientation_metadata = { "offset" : _get_embedded_model_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def embedded_model_orientation(self) -> "IOrientation":
        """Get or set the antenna orientation."""
        return self._intf.get_property(AntennaControl._metadata, AntennaControl._get_embedded_model_orientation_metadata)

    _set_embedded_model_orientation_metadata = { "offset" : _set_embedded_model_orientation_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("IOrientation"),) }
    @embedded_model_orientation.setter
    def embedded_model_orientation(self, orientation:"IOrientation") -> None:
        return self._intf.set_property(AntennaControl._metadata, AntennaControl._set_embedded_model_orientation_metadata, orientation)

    _get_embedded_model_component_linking_metadata = { "offset" : _get_embedded_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def embedded_model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the embedded antenna model component."""
        return self._intf.get_property(AntennaControl._metadata, AntennaControl._get_embedded_model_component_linking_metadata)

    _property_names[reference_type] = "reference_type"
    _property_names[supported_linked_antenna_objects] = "supported_linked_antenna_objects"
    _property_names[linked_antenna_object] = "linked_antenna_object"
    _property_names[supported_embedded_models] = "supported_embedded_models"
    _property_names[embedded_model] = "embedded_model"
    _property_names[embedded_model_orientation] = "embedded_model_orientation"
    _property_names[embedded_model_component_linking] = "embedded_model_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaControl."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaControl)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaControl, [AntennaControl, ])

agcls.AgClassCatalog.add_catalog_entry((5064793575390523407, 1712227443037420676), AntennaControl)
agcls.AgTypeNameMap["AntennaControl"] = AntennaControl

class AntennaGraphics3D(SupportsDeleteCallback):
    """AntennaGraphics3D Interface for a antenna's 3D Graphics properties."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_vector_method_offset = 1
    _get_show_boresight_method_offset = 2
    _set_show_boresight_method_offset = 3
    _get_show_contours_method_offset = 4
    _set_show_contours_method_offset = 5
    _get_volume_graphics_method_offset = 6
    _metadata = {
        "iid_data" : (5251552891532058199, 12342017203818465961),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaGraphics3D)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get the antenna's Vector properties."""
        return self._intf.get_property(AntennaGraphics3D._metadata, AntennaGraphics3D._get_vector_metadata)

    _get_show_boresight_metadata = { "offset" : _get_show_boresight_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boresight(self) -> bool:
        """Opt whether to display boresight graphics for the antenna."""
        return self._intf.get_property(AntennaGraphics3D._metadata, AntennaGraphics3D._get_show_boresight_metadata)

    _set_show_boresight_metadata = { "offset" : _set_show_boresight_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boresight.setter
    def show_boresight(self, value:bool) -> None:
        return self._intf.set_property(AntennaGraphics3D._metadata, AntennaGraphics3D._set_show_boresight_metadata, value)

    _get_show_contours_metadata = { "offset" : _get_show_contours_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_contours(self) -> bool:
        """Opt whether to display contour graphics for the antenna."""
        return self._intf.get_property(AntennaGraphics3D._metadata, AntennaGraphics3D._get_show_contours_metadata)

    _set_show_contours_metadata = { "offset" : _set_show_contours_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_contours.setter
    def show_contours(self, value:bool) -> None:
        return self._intf.set_property(AntennaGraphics3D._metadata, AntennaGraphics3D._set_show_contours_metadata, value)

    _get_volume_graphics_metadata = { "offset" : _get_volume_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def volume_graphics(self) -> "AntennaVolumeGraphics":
        """Get the antenna volume graphics interface."""
        return self._intf.get_property(AntennaGraphics3D._metadata, AntennaGraphics3D._get_volume_graphics_metadata)

    _property_names[vector] = "vector"
    _property_names[show_boresight] = "show_boresight"
    _property_names[show_contours] = "show_contours"
    _property_names[volume_graphics] = "volume_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaGraphics3D, [AntennaGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5763479227486497596, 7487297371362901635), AntennaGraphics3D)
agcls.AgTypeNameMap["AntennaGraphics3D"] = AntennaGraphics3D

class RadarCrossSectionVolumeGraphics(SupportsDeleteCallback):
    """RadarCrossSectionVolumeGraphics Interface for radar cross section 3D volume properties."""

    _num_methods = 27
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _get_wireframe_method_offset = 3
    _set_wireframe_method_offset = 4
    _get_minimum_displayed_rcs_method_offset = 5
    _set_minimum_displayed_rcs_method_offset = 6
    _get_scale_method_offset = 7
    _set_scale_method_offset = 8
    _get_azimuth_start_method_offset = 9
    _get_azimuth_stop_method_offset = 10
    _get_azimuth_resolution_method_offset = 11
    _get_azimuth_number_of_points_method_offset = 12
    _get_elevation_start_method_offset = 13
    _get_elevation_stop_method_offset = 14
    _get_elevation_resolution_method_offset = 15
    _get_elevation_number_of_points_method_offset = 16
    _set_resolution_method_offset = 17
    _set_number_of_points_method_offset = 18
    _get_color_method_method_offset = 19
    _set_color_method_method_offset = 20
    _get_start_color_method_offset = 21
    _set_start_color_method_offset = 22
    _get_stop_color_method_offset = 23
    _set_stop_color_method_offset = 24
    _get_levels_method_offset = 25
    _get_relative_to_maximum_method_offset = 26
    _set_relative_to_maximum_method_offset = 27
    _metadata = {
        "iid_data" : (5117043517162393585, 7602014279760341148),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionVolumeGraphics)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Opt whether to display volume graphics for the radar cross section."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, value:bool) -> None:
        return self._intf.set_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._set_show_metadata, value)

    _get_wireframe_metadata = { "offset" : _get_wireframe_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def wireframe(self) -> bool:
        """Enable the ability to view the volume as a wireframe."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_wireframe_metadata)

    _set_wireframe_metadata = { "offset" : _set_wireframe_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @wireframe.setter
    def wireframe(self, value:bool) -> None:
        return self._intf.set_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._set_wireframe_metadata, value)

    _get_minimum_displayed_rcs_metadata = { "offset" : _get_minimum_displayed_rcs_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_displayed_rcs(self) -> float:
        """Get or set the minimum displayed radar cross section value."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_minimum_displayed_rcs_metadata)

    _set_minimum_displayed_rcs_metadata = { "offset" : _set_minimum_displayed_rcs_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_displayed_rcs.setter
    def minimum_displayed_rcs(self, value:float) -> None:
        return self._intf.set_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._set_minimum_displayed_rcs_metadata, value)

    _get_scale_metadata = { "offset" : _get_scale_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scale(self) -> float:
        """Get or set the scale value."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_scale_metadata)

    _set_scale_metadata = { "offset" : _set_scale_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scale.setter
    def scale(self, value:float) -> None:
        return self._intf.set_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._set_scale_metadata, value)

    _get_azimuth_start_metadata = { "offset" : _get_azimuth_start_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_start(self) -> float:
        """Get the azimuth start value."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_azimuth_start_metadata)

    _get_azimuth_stop_metadata = { "offset" : _get_azimuth_stop_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_stop(self) -> float:
        """Get the azimuth stop value."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_azimuth_stop_metadata)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_resolution(self) -> float:
        """Get the azimuth resolution."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_azimuth_resolution_metadata)

    _get_azimuth_number_of_points_metadata = { "offset" : _get_azimuth_number_of_points_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def azimuth_number_of_points(self) -> int:
        """Get the number of azimuth points."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_azimuth_number_of_points_metadata)

    _get_elevation_start_metadata = { "offset" : _get_elevation_start_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_start(self) -> float:
        """Get the elevation start value."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_elevation_start_metadata)

    _get_elevation_stop_metadata = { "offset" : _get_elevation_stop_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_stop(self) -> float:
        """Get the elevation stop value."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_elevation_stop_metadata)

    _get_elevation_resolution_metadata = { "offset" : _get_elevation_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_resolution(self) -> float:
        """Get the elevation resolution."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_elevation_resolution_metadata)

    _get_elevation_number_of_points_metadata = { "offset" : _get_elevation_number_of_points_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def elevation_number_of_points(self) -> int:
        """Get the number of elevation points."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_elevation_number_of_points_metadata)

    _set_resolution_metadata = { "offset" : _set_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def set_resolution(self, azimuth_start:float, azimuth_stop:float, azimuth_resolution:float, elevation_start:float, elevation_stop:float, elevation_resolution:float) -> None:
        """Set the azimuth/elevation ranges and resolution."""
        return self._intf.invoke(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._set_resolution_metadata, azimuth_start, azimuth_stop, azimuth_resolution, elevation_start, elevation_stop, elevation_resolution)

    _set_number_of_points_metadata = { "offset" : _set_number_of_points_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.INT, agcom.DOUBLE, agcom.DOUBLE, agcom.INT,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.IntArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.IntArg,) }
    def set_number_of_points(self, azimuth_start:float, azimuth_stop:float, azimuth_num_points:int, elevation_start:float, elevation_stop:float, elevation_num_points:int) -> None:
        """Set the azimuth/elevation ranges and number of points."""
        return self._intf.invoke(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._set_number_of_points_metadata, azimuth_start, azimuth_stop, azimuth_num_points, elevation_start, elevation_stop, elevation_num_points)

    _get_color_method_metadata = { "offset" : _get_color_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DColorMethod),) }
    @property
    def color_method(self) -> "FigureOfMeritGraphics2DColorMethod":
        """Color method for contours (color ramp or explicit)."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_color_method_metadata)

    _set_color_method_metadata = { "offset" : _set_color_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DColorMethod),) }
    @color_method.setter
    def color_method(self, value:"FigureOfMeritGraphics2DColorMethod") -> None:
        return self._intf.set_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._set_color_method_metadata, value)

    _get_start_color_metadata = { "offset" : _get_start_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def start_color(self) -> agcolor.Color:
        """Get or set the color ramp start color."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_start_color_metadata)

    _set_start_color_metadata = { "offset" : _set_start_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @start_color.setter
    def start_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._set_start_color_metadata, value)

    _get_stop_color_metadata = { "offset" : _get_stop_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def stop_color(self) -> agcolor.Color:
        """Get or set the color ramp stop color."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_stop_color_metadata)

    _set_stop_color_metadata = { "offset" : _set_stop_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @stop_color.setter
    def stop_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._set_stop_color_metadata, value)

    _get_levels_metadata = { "offset" : _get_levels_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def levels(self) -> "RadarCrossSectionVolumeLevelCollection":
        """Get the collection of volume levels."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_levels_metadata)

    _get_relative_to_maximum_metadata = { "offset" : _get_relative_to_maximum_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def relative_to_maximum(self) -> bool:
        """Get or set the contours value represents the gain value relative to the maximum."""
        return self._intf.get_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._get_relative_to_maximum_metadata)

    _set_relative_to_maximum_metadata = { "offset" : _set_relative_to_maximum_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @relative_to_maximum.setter
    def relative_to_maximum(self, value:bool) -> None:
        return self._intf.set_property(RadarCrossSectionVolumeGraphics._metadata, RadarCrossSectionVolumeGraphics._set_relative_to_maximum_metadata, value)

    _property_names[show] = "show"
    _property_names[wireframe] = "wireframe"
    _property_names[minimum_displayed_rcs] = "minimum_displayed_rcs"
    _property_names[scale] = "scale"
    _property_names[azimuth_start] = "azimuth_start"
    _property_names[azimuth_stop] = "azimuth_stop"
    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[azimuth_number_of_points] = "azimuth_number_of_points"
    _property_names[elevation_start] = "elevation_start"
    _property_names[elevation_stop] = "elevation_stop"
    _property_names[elevation_resolution] = "elevation_resolution"
    _property_names[elevation_number_of_points] = "elevation_number_of_points"
    _property_names[color_method] = "color_method"
    _property_names[start_color] = "start_color"
    _property_names[stop_color] = "stop_color"
    _property_names[levels] = "levels"
    _property_names[relative_to_maximum] = "relative_to_maximum"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionVolumeGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionVolumeGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionVolumeGraphics, [RadarCrossSectionVolumeGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5509510810531850446, 12706352417665566610), RadarCrossSectionVolumeGraphics)
agcls.AgTypeNameMap["RadarCrossSectionVolumeGraphics"] = RadarCrossSectionVolumeGraphics

class RadarCrossSectionGraphics3D(SupportsDeleteCallback):
    """RadarCrossSectionGraphics3D Interface for radar cross section 3D properties."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_contours_method_offset = 1
    _set_show_contours_method_offset = 2
    _get_volume_graphics_method_offset = 3
    _metadata = {
        "iid_data" : (4837937644300530830, 2515583665948761238),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionGraphics3D)

    _get_show_contours_metadata = { "offset" : _get_show_contours_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_contours(self) -> bool:
        """Option for displaying radar cross section contour graphics."""
        return self._intf.get_property(RadarCrossSectionGraphics3D._metadata, RadarCrossSectionGraphics3D._get_show_contours_metadata)

    _set_show_contours_metadata = { "offset" : _set_show_contours_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_contours.setter
    def show_contours(self, value:bool) -> None:
        return self._intf.set_property(RadarCrossSectionGraphics3D._metadata, RadarCrossSectionGraphics3D._set_show_contours_metadata, value)

    _get_volume_graphics_metadata = { "offset" : _get_volume_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def volume_graphics(self) -> "RadarCrossSectionVolumeGraphics":
        """Get the radar cross section volume graphics interface."""
        return self._intf.get_property(RadarCrossSectionGraphics3D._metadata, RadarCrossSectionGraphics3D._get_volume_graphics_metadata)

    _property_names[show_contours] = "show_contours"
    _property_names[volume_graphics] = "volume_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionGraphics3D, [RadarCrossSectionGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5745162015500050433, 14861793617087434390), RadarCrossSectionGraphics3D)
agcls.AgTypeNameMap["RadarCrossSectionGraphics3D"] = RadarCrossSectionGraphics3D

class RadarCrossSectionGraphics(SupportsDeleteCallback):
    """RadarCrossSectionGraphics Interface for radar cross section graphics properties."""

    _num_methods = 35
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _get_frequency_method_offset = 3
    _set_frequency_method_offset = 4
    _get_polarization_method_offset = 5
    _set_polarization_method_offset = 6
    _get_show_at_altitude_method_offset = 7
    _set_show_at_altitude_method_offset = 8
    _get_altitude_method_offset = 9
    _set_altitude_method_offset = 10
    _get_relative_to_maximum_gain_method_offset = 11
    _set_relative_to_maximum_gain_method_offset = 12
    _get_show_labels_method_offset = 13
    _set_show_labels_method_offset = 14
    _get_number_of_label_decimal_digits_method_offset = 15
    _set_number_of_label_decimal_digits_method_offset = 16
    _get_line_width_method_offset = 17
    _set_line_width_method_offset = 18
    _get_color_method_method_offset = 19
    _set_color_method_method_offset = 20
    _get_start_color_method_offset = 21
    _set_start_color_method_offset = 22
    _get_stop_color_method_offset = 23
    _set_stop_color_method_offset = 24
    _get_levels_method_offset = 25
    _get_azimuth_start_method_offset = 26
    _get_azimuth_stop_method_offset = 27
    _get_azimuth_resolution_method_offset = 28
    _get_azimuth_number_of_points_method_offset = 29
    _get_elevation_start_method_offset = 30
    _get_elevation_stop_method_offset = 31
    _get_elevation_resolution_method_offset = 32
    _get_elevation_number_of_points_method_offset = 33
    _set_resolution_method_offset = 34
    _set_number_of_points_method_offset = 35
    _metadata = {
        "iid_data" : (4972807675253013032, 15507197987758554504),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionGraphics)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Opt whether to display graphics for the radar cross section."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, value:bool) -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_show_metadata, value)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the frequency."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_frequency_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarCrossSectionContourGraphicsPolarization),) }
    @property
    def polarization(self) -> "RadarCrossSectionContourGraphicsPolarization":
        """Get or set the polarization."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_polarization_metadata)

    _set_polarization_metadata = { "offset" : _set_polarization_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarCrossSectionContourGraphicsPolarization),) }
    @polarization.setter
    def polarization(self, value:"RadarCrossSectionContourGraphicsPolarization") -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_polarization_metadata, value)

    _get_show_at_altitude_metadata = { "offset" : _get_show_at_altitude_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_at_altitude(self) -> bool:
        """Enable the ability to view the contours at a set altitude."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_show_at_altitude_metadata)

    _set_show_at_altitude_metadata = { "offset" : _set_show_at_altitude_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_at_altitude.setter
    def show_at_altitude(self, value:bool) -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_show_at_altitude_metadata, value)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Get or set the altitude to view the contours."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_altitude_metadata)

    _set_altitude_metadata = { "offset" : _set_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @altitude.setter
    def altitude(self, value:float) -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_altitude_metadata, value)

    _get_relative_to_maximum_gain_metadata = { "offset" : _get_relative_to_maximum_gain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def relative_to_maximum_gain(self) -> bool:
        """Get or set the contours value represents the gain value relative to the maximum."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_relative_to_maximum_gain_metadata)

    _set_relative_to_maximum_gain_metadata = { "offset" : _set_relative_to_maximum_gain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @relative_to_maximum_gain.setter
    def relative_to_maximum_gain(self, value:bool) -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_relative_to_maximum_gain_metadata, value)

    _get_show_labels_metadata = { "offset" : _get_show_labels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_labels(self) -> bool:
        """Get or set the option for showing contour labels."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_show_labels_metadata)

    _set_show_labels_metadata = { "offset" : _set_show_labels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_labels.setter
    def show_labels(self, value:bool) -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_show_labels_metadata, value)

    _get_number_of_label_decimal_digits_metadata = { "offset" : _get_number_of_label_decimal_digits_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_label_decimal_digits(self) -> int:
        """Get or set the integer number of decimal places to display in the contour label."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_number_of_label_decimal_digits_metadata)

    _set_number_of_label_decimal_digits_metadata = { "offset" : _set_number_of_label_decimal_digits_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_label_decimal_digits.setter
    def number_of_label_decimal_digits(self, value:int) -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_number_of_label_decimal_digits_metadata, value)

    _get_line_width_metadata = { "offset" : _get_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def line_width(self) -> "LineWidth":
        """Select the line width in which antenna 2D graphics display from the LineWidth enumeration."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_line_width_metadata)

    _set_line_width_metadata = { "offset" : _set_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @line_width.setter
    def line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_line_width_metadata, value)

    _get_color_method_metadata = { "offset" : _get_color_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DColorMethod),) }
    @property
    def color_method(self) -> "FigureOfMeritGraphics2DColorMethod":
        """Color method for contours (color ramp or explicit)."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_color_method_metadata)

    _set_color_method_metadata = { "offset" : _set_color_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DColorMethod),) }
    @color_method.setter
    def color_method(self, value:"FigureOfMeritGraphics2DColorMethod") -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_color_method_metadata, value)

    _get_start_color_metadata = { "offset" : _get_start_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def start_color(self) -> agcolor.Color:
        """Get or set the color ramp start color."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_start_color_metadata)

    _set_start_color_metadata = { "offset" : _set_start_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @start_color.setter
    def start_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_start_color_metadata, value)

    _get_stop_color_metadata = { "offset" : _get_stop_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def stop_color(self) -> agcolor.Color:
        """Get or set the color ramp stop color."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_stop_color_metadata)

    _set_stop_color_metadata = { "offset" : _set_stop_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @stop_color.setter
    def stop_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_stop_color_metadata, value)

    _get_levels_metadata = { "offset" : _get_levels_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def levels(self) -> "RadarCrossSectionContourLevelCollection":
        """Get the collection of contour levels."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_levels_metadata)

    _get_azimuth_start_metadata = { "offset" : _get_azimuth_start_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_start(self) -> float:
        """Get the azimuth start value."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_azimuth_start_metadata)

    _get_azimuth_stop_metadata = { "offset" : _get_azimuth_stop_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_stop(self) -> float:
        """Get the azimuth stop value."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_azimuth_stop_metadata)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_resolution(self) -> float:
        """Get the azimuth resolution."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_azimuth_resolution_metadata)

    _get_azimuth_number_of_points_metadata = { "offset" : _get_azimuth_number_of_points_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def azimuth_number_of_points(self) -> int:
        """Get the number of azimuth points."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_azimuth_number_of_points_metadata)

    _get_elevation_start_metadata = { "offset" : _get_elevation_start_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_start(self) -> float:
        """Get the elevation start value."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_elevation_start_metadata)

    _get_elevation_stop_metadata = { "offset" : _get_elevation_stop_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_stop(self) -> float:
        """Get the elevation stop value."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_elevation_stop_metadata)

    _get_elevation_resolution_metadata = { "offset" : _get_elevation_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_resolution(self) -> float:
        """Get the elevation resolution."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_elevation_resolution_metadata)

    _get_elevation_number_of_points_metadata = { "offset" : _get_elevation_number_of_points_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def elevation_number_of_points(self) -> int:
        """Get the number of elevation points."""
        return self._intf.get_property(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._get_elevation_number_of_points_metadata)

    _set_resolution_metadata = { "offset" : _set_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def set_resolution(self, azimuth_start:float, azimuth_stop:float, azimuth_resolution:float, elevation_start:float, elevation_stop:float, elevation_resolution:float) -> None:
        """Set the azimuth/elevation ranges and resolution."""
        return self._intf.invoke(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_resolution_metadata, azimuth_start, azimuth_stop, azimuth_resolution, elevation_start, elevation_stop, elevation_resolution)

    _set_number_of_points_metadata = { "offset" : _set_number_of_points_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.INT, agcom.DOUBLE, agcom.DOUBLE, agcom.INT,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.IntArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.IntArg,) }
    def set_number_of_points(self, azimuth_start:float, azimuth_stop:float, azimuth_num_points:int, elevation_start:float, elevation_stop:float, elevation_num_points:int) -> None:
        """Set the azimuth/elevation ranges and number of points."""
        return self._intf.invoke(RadarCrossSectionGraphics._metadata, RadarCrossSectionGraphics._set_number_of_points_metadata, azimuth_start, azimuth_stop, azimuth_num_points, elevation_start, elevation_stop, elevation_num_points)

    _property_names[show] = "show"
    _property_names[frequency] = "frequency"
    _property_names[polarization] = "polarization"
    _property_names[show_at_altitude] = "show_at_altitude"
    _property_names[altitude] = "altitude"
    _property_names[relative_to_maximum_gain] = "relative_to_maximum_gain"
    _property_names[show_labels] = "show_labels"
    _property_names[number_of_label_decimal_digits] = "number_of_label_decimal_digits"
    _property_names[line_width] = "line_width"
    _property_names[color_method] = "color_method"
    _property_names[start_color] = "start_color"
    _property_names[stop_color] = "stop_color"
    _property_names[levels] = "levels"
    _property_names[azimuth_start] = "azimuth_start"
    _property_names[azimuth_stop] = "azimuth_stop"
    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[azimuth_number_of_points] = "azimuth_number_of_points"
    _property_names[elevation_start] = "elevation_start"
    _property_names[elevation_stop] = "elevation_stop"
    _property_names[elevation_resolution] = "elevation_resolution"
    _property_names[elevation_number_of_points] = "elevation_number_of_points"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionGraphics, [RadarCrossSectionGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5325979361788481193, 10954489464858902162), RadarCrossSectionGraphics)
agcls.AgTypeNameMap["RadarCrossSectionGraphics"] = RadarCrossSectionGraphics

class AntennaVolumeGraphics(SupportsDeleteCallback):
    """AntennaVolumeGraphics Interface for a antenna's 3D volume properties."""

    _num_methods = 31
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _get_wireframe_method_offset = 3
    _set_wireframe_method_offset = 4
    _get_gain_offset_method_offset = 5
    _set_gain_offset_method_offset = 6
    _get_gain_scale_method_offset = 7
    _set_gain_scale_method_offset = 8
    _get_azimuth_start_method_offset = 9
    _get_azimuth_stop_method_offset = 10
    _get_azimuth_resolution_method_offset = 11
    _get_azimuth_number_of_points_method_offset = 12
    _get_elevation_start_method_offset = 13
    _get_elevation_stop_method_offset = 14
    _get_elevation_resolution_method_offset = 15
    _get_elevation_number_of_points_method_offset = 16
    _set_resolution_method_offset = 17
    _set_number_of_points_method_offset = 18
    _get_color_method_method_offset = 19
    _set_color_method_method_offset = 20
    _get_start_color_method_offset = 21
    _set_start_color_method_offset = 22
    _get_stop_color_method_offset = 23
    _set_stop_color_method_offset = 24
    _get_levels_method_offset = 25
    _get_relative_to_maximum_method_offset = 26
    _set_relative_to_maximum_method_offset = 27
    _get_coordinate_system_method_offset = 28
    _set_coordinate_system_method_offset = 29
    _get_minimum_displayed_gain_method_offset = 30
    _set_minimum_displayed_gain_method_offset = 31
    _metadata = {
        "iid_data" : (5369330642778560469, 3326875979382808226),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaVolumeGraphics)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Opt whether to display volume graphics for the antenna."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, value:bool) -> None:
        return self._intf.set_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_show_metadata, value)

    _get_wireframe_metadata = { "offset" : _get_wireframe_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def wireframe(self) -> bool:
        """Enable the ability to view the volume as a wireframe."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_wireframe_metadata)

    _set_wireframe_metadata = { "offset" : _set_wireframe_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @wireframe.setter
    def wireframe(self, value:bool) -> None:
        return self._intf.set_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_wireframe_metadata, value)

    _get_gain_offset_metadata = { "offset" : _get_gain_offset_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def gain_offset(self) -> float:
        """Do not use this property, as it is deprecated. Use the MinimumDisplayedGain property instead. Gets or sets the gain offset value."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_gain_offset_metadata)

    _set_gain_offset_metadata = { "offset" : _set_gain_offset_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @gain_offset.setter
    def gain_offset(self, value:float) -> None:
        return self._intf.set_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_gain_offset_metadata, value)

    _get_gain_scale_metadata = { "offset" : _get_gain_scale_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def gain_scale(self) -> float:
        """Get or set the gain scale value."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_gain_scale_metadata)

    _set_gain_scale_metadata = { "offset" : _set_gain_scale_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @gain_scale.setter
    def gain_scale(self, value:float) -> None:
        return self._intf.set_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_gain_scale_metadata, value)

    _get_azimuth_start_metadata = { "offset" : _get_azimuth_start_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_start(self) -> float:
        """Get the azimuth start value."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_azimuth_start_metadata)

    _get_azimuth_stop_metadata = { "offset" : _get_azimuth_stop_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_stop(self) -> float:
        """Get the azimuth stop value."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_azimuth_stop_metadata)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_resolution(self) -> float:
        """Get the azimuth resolution."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_azimuth_resolution_metadata)

    _get_azimuth_number_of_points_metadata = { "offset" : _get_azimuth_number_of_points_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def azimuth_number_of_points(self) -> int:
        """Get the number of azimuth points."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_azimuth_number_of_points_metadata)

    _get_elevation_start_metadata = { "offset" : _get_elevation_start_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_start(self) -> float:
        """Get the elevation start value."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_elevation_start_metadata)

    _get_elevation_stop_metadata = { "offset" : _get_elevation_stop_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_stop(self) -> float:
        """Get the elevation stop value."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_elevation_stop_metadata)

    _get_elevation_resolution_metadata = { "offset" : _get_elevation_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_resolution(self) -> float:
        """Get the elevation resolution."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_elevation_resolution_metadata)

    _get_elevation_number_of_points_metadata = { "offset" : _get_elevation_number_of_points_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def elevation_number_of_points(self) -> int:
        """Get the number of elevation points."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_elevation_number_of_points_metadata)

    _set_resolution_metadata = { "offset" : _set_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def set_resolution(self, azimuth_start:float, azimuth_stop:float, azimuth_resolution:float, elevation_start:float, elevation_stop:float, elevation_resolution:float) -> None:
        """Set the azimuth/elevation ranges and resolution."""
        return self._intf.invoke(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_resolution_metadata, azimuth_start, azimuth_stop, azimuth_resolution, elevation_start, elevation_stop, elevation_resolution)

    _set_number_of_points_metadata = { "offset" : _set_number_of_points_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.INT, agcom.DOUBLE, agcom.DOUBLE, agcom.INT,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.IntArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.IntArg,) }
    def set_number_of_points(self, azimuth_start:float, azimuth_stop:float, azimuth_num_points:int, elevation_start:float, elevation_stop:float, elevation_num_points:int) -> None:
        """Set the azimuth/elevation ranges and number of points."""
        return self._intf.invoke(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_number_of_points_metadata, azimuth_start, azimuth_stop, azimuth_num_points, elevation_start, elevation_stop, elevation_num_points)

    _get_color_method_metadata = { "offset" : _get_color_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DColorMethod),) }
    @property
    def color_method(self) -> "FigureOfMeritGraphics2DColorMethod":
        """Color method for volume levels (color ramp or explicit)."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_color_method_metadata)

    _set_color_method_metadata = { "offset" : _set_color_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(FigureOfMeritGraphics2DColorMethod),) }
    @color_method.setter
    def color_method(self, value:"FigureOfMeritGraphics2DColorMethod") -> None:
        return self._intf.set_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_color_method_metadata, value)

    _get_start_color_metadata = { "offset" : _get_start_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def start_color(self) -> agcolor.Color:
        """Get or set the color ramp start color."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_start_color_metadata)

    _set_start_color_metadata = { "offset" : _set_start_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @start_color.setter
    def start_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_start_color_metadata, value)

    _get_stop_color_metadata = { "offset" : _get_stop_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def stop_color(self) -> agcolor.Color:
        """Get or set the color ramp stop color."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_stop_color_metadata)

    _set_stop_color_metadata = { "offset" : _set_stop_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @stop_color.setter
    def stop_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_stop_color_metadata, value)

    _get_levels_metadata = { "offset" : _get_levels_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def levels(self) -> "AntennaVolumeLevelCollection":
        """Get the collection of volume levels."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_levels_metadata)

    _get_relative_to_maximum_metadata = { "offset" : _get_relative_to_maximum_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def relative_to_maximum(self) -> bool:
        """Get or set the contours value represents the gain value relative to the maximum."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_relative_to_maximum_metadata)

    _set_relative_to_maximum_metadata = { "offset" : _set_relative_to_maximum_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @relative_to_maximum.setter
    def relative_to_maximum(self, value:bool) -> None:
        return self._intf.set_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_relative_to_maximum_metadata, value)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AntennaGraphicsCoordinateSystem),) }
    @property
    def coordinate_system(self) -> "AntennaGraphicsCoordinateSystem":
        """Get or set the coordinate system for defining the resolution of the antenna graphics."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_coordinate_system_metadata)

    _set_coordinate_system_metadata = { "offset" : _set_coordinate_system_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AntennaGraphicsCoordinateSystem),) }
    @coordinate_system.setter
    def coordinate_system(self, coordinate_system:"AntennaGraphicsCoordinateSystem") -> None:
        return self._intf.set_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_coordinate_system_metadata, coordinate_system)

    _get_minimum_displayed_gain_metadata = { "offset" : _get_minimum_displayed_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_displayed_gain(self) -> float:
        """Get or set the minimum displayed gain value."""
        return self._intf.get_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._get_minimum_displayed_gain_metadata)

    _set_minimum_displayed_gain_metadata = { "offset" : _set_minimum_displayed_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_displayed_gain.setter
    def minimum_displayed_gain(self, value:float) -> None:
        return self._intf.set_property(AntennaVolumeGraphics._metadata, AntennaVolumeGraphics._set_minimum_displayed_gain_metadata, value)

    _property_names[show] = "show"
    _property_names[wireframe] = "wireframe"
    _property_names[gain_offset] = "gain_offset"
    _property_names[gain_scale] = "gain_scale"
    _property_names[azimuth_start] = "azimuth_start"
    _property_names[azimuth_stop] = "azimuth_stop"
    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[azimuth_number_of_points] = "azimuth_number_of_points"
    _property_names[elevation_start] = "elevation_start"
    _property_names[elevation_stop] = "elevation_stop"
    _property_names[elevation_resolution] = "elevation_resolution"
    _property_names[elevation_number_of_points] = "elevation_number_of_points"
    _property_names[color_method] = "color_method"
    _property_names[start_color] = "start_color"
    _property_names[stop_color] = "stop_color"
    _property_names[levels] = "levels"
    _property_names[relative_to_maximum] = "relative_to_maximum"
    _property_names[coordinate_system] = "coordinate_system"
    _property_names[minimum_displayed_gain] = "minimum_displayed_gain"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaVolumeGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaVolumeGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaVolumeGraphics, [AntennaVolumeGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5323256854700659172, 15590880596148068028), AntennaVolumeGraphics)
agcls.AgTypeNameMap["AntennaVolumeGraphics"] = AntennaVolumeGraphics

class AntennaContourGraphics(SupportsDeleteCallback):
    """AntennaContourGraphics Interface for a antenna's contour properties."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _is_contour_type_supported_method_offset = 3
    _get_supported_contour_types_method_offset = 4
    _set_contour_type_method_offset = 5
    _get_contour_method_offset = 6
    _metadata = {
        "iid_data" : (5145209597387049271, 5348992609004266139),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaContourGraphics)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Opt whether to display volume graphics for the antenna."""
        return self._intf.get_property(AntennaContourGraphics._metadata, AntennaContourGraphics._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, value:bool) -> None:
        return self._intf.set_property(AntennaContourGraphics._metadata, AntennaContourGraphics._set_show_metadata, value)

    _is_contour_type_supported_metadata = { "offset" : _is_contour_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(AntennaContourType), agmarshall.VariantBoolArg,) }
    def is_contour_type_supported(self, value:"AntennaContourType") -> bool:
        """Return true if the supplied contour type is supported by this object, false otherwise."""
        return self._intf.invoke(AntennaContourGraphics._metadata, AntennaContourGraphics._is_contour_type_supported_metadata, value, OutArg())

    _get_supported_contour_types_metadata = { "offset" : _get_supported_contour_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_contour_types(self) -> list:
        """Get an array of the supported contour types."""
        return self._intf.get_property(AntennaContourGraphics._metadata, AntennaContourGraphics._get_supported_contour_types_metadata)

    _set_contour_type_metadata = { "offset" : _set_contour_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AntennaContourType),) }
    def set_contour_type(self, value:"AntennaContourType") -> None:
        """Set the current contour type."""
        return self._intf.invoke(AntennaContourGraphics._metadata, AntennaContourGraphics._set_contour_type_metadata, value)

    _get_contour_metadata = { "offset" : _get_contour_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def contour(self) -> "IAntennaContour":
        """Get the current contour type's properties."""
        return self._intf.get_property(AntennaContourGraphics._metadata, AntennaContourGraphics._get_contour_metadata)

    _property_names[show] = "show"
    _property_names[supported_contour_types] = "supported_contour_types"
    _property_names[contour] = "contour"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaContourGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaContourGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaContourGraphics, [AntennaContourGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5305374531217699526, 5439457140217041583), AntennaContourGraphics)
agcls.AgTypeNameMap["AntennaContourGraphics"] = AntennaContourGraphics

class AntennaGraphics(SupportsDeleteCallback):
    """AntennaGraphics Interface for a antenna's 2D Graphics properties."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _get_show_boresight_method_offset = 3
    _set_show_boresight_method_offset = 4
    _get_boresight_color_method_offset = 5
    _set_boresight_color_method_offset = 6
    _get_boresight_marker_style_method_offset = 7
    _set_boresight_marker_style_method_offset = 8
    _get_contour_graphics_method_offset = 9
    _metadata = {
        "iid_data" : (4849959071247090481, 16700058618283258015),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaGraphics)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Opt whether to display graphics for the antenna object."""
        return self._intf.get_property(AntennaGraphics._metadata, AntennaGraphics._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, value:bool) -> None:
        return self._intf.set_property(AntennaGraphics._metadata, AntennaGraphics._set_show_metadata, value)

    _get_show_boresight_metadata = { "offset" : _get_show_boresight_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boresight(self) -> bool:
        """Opt whether to display boresight graphics for the antenna."""
        return self._intf.get_property(AntennaGraphics._metadata, AntennaGraphics._get_show_boresight_metadata)

    _set_show_boresight_metadata = { "offset" : _set_show_boresight_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boresight.setter
    def show_boresight(self, value:bool) -> None:
        return self._intf.set_property(AntennaGraphics._metadata, AntennaGraphics._set_show_boresight_metadata, value)

    _get_boresight_color_metadata = { "offset" : _get_boresight_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def boresight_color(self) -> agcolor.Color:
        """The color in which boresight graphics display."""
        return self._intf.get_property(AntennaGraphics._metadata, AntennaGraphics._get_boresight_color_metadata)

    _set_boresight_color_metadata = { "offset" : _set_boresight_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @boresight_color.setter
    def boresight_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(AntennaGraphics._metadata, AntennaGraphics._set_boresight_color_metadata, value)

    _get_boresight_marker_style_metadata = { "offset" : _get_boresight_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def boresight_marker_style(self) -> str:
        """The marker style used to represent the boresight graphically."""
        return self._intf.get_property(AntennaGraphics._metadata, AntennaGraphics._get_boresight_marker_style_metadata)

    _set_boresight_marker_style_metadata = { "offset" : _set_boresight_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @boresight_marker_style.setter
    def boresight_marker_style(self, value:str) -> None:
        return self._intf.set_property(AntennaGraphics._metadata, AntennaGraphics._set_boresight_marker_style_metadata, value)

    _get_contour_graphics_metadata = { "offset" : _get_contour_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def contour_graphics(self) -> "AntennaContourGraphics":
        """Get the antenna contour graphics interface."""
        return self._intf.get_property(AntennaGraphics._metadata, AntennaGraphics._get_contour_graphics_metadata)

    _property_names[show] = "show"
    _property_names[show_boresight] = "show_boresight"
    _property_names[boresight_color] = "boresight_color"
    _property_names[boresight_marker_style] = "boresight_marker_style"
    _property_names[contour_graphics] = "contour_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaGraphics, [AntennaGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5297428015437521794, 1564942344071935889), AntennaGraphics)
agcls.AgTypeNameMap["AntennaGraphics"] = AntennaGraphics

class RadarCrossSectionContourLevelCollection(SupportsDeleteCallback):
    """Represents a collection of radar cross section contour levels."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _contains_method_offset = 4
    _remove_method_offset = 5
    _remove_at_method_offset = 6
    _add_method_offset = 7
    _clear_method_offset = 8
    _get_level_method_offset = 9
    _metadata = {
        "iid_data" : (5649871696405123020, 9579994814555904416),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionContourLevelCollection)
    def __iter__(self):
        """Create an iterator for the RadarCrossSectionContourLevelCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "RadarCrossSectionContourLevel":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(RadarCrossSectionContourLevelCollection._metadata, RadarCrossSectionContourLevelCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "RadarCrossSectionContourLevel":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(RadarCrossSectionContourLevelCollection._metadata, RadarCrossSectionContourLevelCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(RadarCrossSectionContourLevelCollection._metadata, RadarCrossSectionContourLevelCollection._get__new_enum_metadata)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.VariantBoolArg,) }
    def contains(self, value:float) -> bool:
        """Check whether the collection contains an object with the given value."""
        return self._intf.invoke(RadarCrossSectionContourLevelCollection._metadata, RadarCrossSectionContourLevelCollection._contains_metadata, value, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    def remove(self, value:float) -> None:
        """Remove the level with the corresponding value."""
        return self._intf.invoke(RadarCrossSectionContourLevelCollection._metadata, RadarCrossSectionContourLevelCollection._remove_metadata, value)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the level with the supplied index."""
        return self._intf.invoke(RadarCrossSectionContourLevelCollection._metadata, RadarCrossSectionContourLevelCollection._remove_at_metadata, index)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add(self, value:float) -> "RadarCrossSectionContourLevel":
        """Add and returns a new level with the corresponding value."""
        return self._intf.invoke(RadarCrossSectionContourLevelCollection._metadata, RadarCrossSectionContourLevelCollection._add_metadata, value, OutArg())

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear all contour levels from the collection."""
        return self._intf.invoke(RadarCrossSectionContourLevelCollection._metadata, RadarCrossSectionContourLevelCollection._clear_metadata, )

    _get_level_metadata = { "offset" : _get_level_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def get_level(self, value:float) -> "RadarCrossSectionContourLevel":
        """Get the level with the specified value."""
        return self._intf.invoke(RadarCrossSectionContourLevelCollection._metadata, RadarCrossSectionContourLevelCollection._get_level_metadata, value, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionContourLevelCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionContourLevelCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionContourLevelCollection, [RadarCrossSectionContourLevelCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4617640221212706234, 6479476966968736157), RadarCrossSectionContourLevelCollection)
agcls.AgTypeNameMap["RadarCrossSectionContourLevelCollection"] = RadarCrossSectionContourLevelCollection

class RadarCrossSectionContourLevel(SupportsDeleteCallback):
    """RadarCrossSectionContourLevel Interface for an radar cross section contour level."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_value_method_offset = 1
    _get_color_method_offset = 2
    _set_color_method_offset = 3
    _get_line_style_method_offset = 4
    _set_line_style_method_offset = 5
    _metadata = {
        "iid_data" : (5570577588491439375, 6746730849719934873),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionContourLevel)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Get the contour level value."""
        return self._intf.get_property(RadarCrossSectionContourLevel._metadata, RadarCrossSectionContourLevel._get_value_metadata)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the contour level color."""
        return self._intf.get_property(RadarCrossSectionContourLevel._metadata, RadarCrossSectionContourLevel._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarCrossSectionContourLevel._metadata, RadarCrossSectionContourLevel._set_color_metadata, value)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Select the line style, displayed for the contour level, from the LineStyle enumeration."""
        return self._intf.get_property(RadarCrossSectionContourLevel._metadata, RadarCrossSectionContourLevel._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(RadarCrossSectionContourLevel._metadata, RadarCrossSectionContourLevel._set_line_style_metadata, value)

    _property_names[value] = "value"
    _property_names[color] = "color"
    _property_names[line_style] = "line_style"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionContourLevel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionContourLevel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionContourLevel, [RadarCrossSectionContourLevel, ])

agcls.AgClassCatalog.add_catalog_entry((4817018930813196457, 1257120949512410785), RadarCrossSectionContourLevel)
agcls.AgTypeNameMap["RadarCrossSectionContourLevel"] = RadarCrossSectionContourLevel

class RadarCrossSectionVolumeLevelCollection(SupportsDeleteCallback):
    """Represents a collection of radar cross section volume levels."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _contains_method_offset = 4
    _remove_method_offset = 5
    _remove_at_method_offset = 6
    _add_method_offset = 7
    _clear_method_offset = 8
    _get_level_method_offset = 9
    _metadata = {
        "iid_data" : (4630992205586577039, 394399937773845376),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionVolumeLevelCollection)
    def __iter__(self):
        """Create an iterator for the RadarCrossSectionVolumeLevelCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "RadarCrossSectionVolumeLevel":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(RadarCrossSectionVolumeLevelCollection._metadata, RadarCrossSectionVolumeLevelCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "RadarCrossSectionVolumeLevel":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(RadarCrossSectionVolumeLevelCollection._metadata, RadarCrossSectionVolumeLevelCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(RadarCrossSectionVolumeLevelCollection._metadata, RadarCrossSectionVolumeLevelCollection._get__new_enum_metadata)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.VariantBoolArg,) }
    def contains(self, value:float) -> bool:
        """Check whether the collection contains an object with the given value."""
        return self._intf.invoke(RadarCrossSectionVolumeLevelCollection._metadata, RadarCrossSectionVolumeLevelCollection._contains_metadata, value, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    def remove(self, value:float) -> None:
        """Remove the level with the corresponding value."""
        return self._intf.invoke(RadarCrossSectionVolumeLevelCollection._metadata, RadarCrossSectionVolumeLevelCollection._remove_metadata, value)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the level with the supplied index."""
        return self._intf.invoke(RadarCrossSectionVolumeLevelCollection._metadata, RadarCrossSectionVolumeLevelCollection._remove_at_metadata, index)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add(self, value:float) -> "RadarCrossSectionVolumeLevel":
        """Add and returns a new level with the corresponding value."""
        return self._intf.invoke(RadarCrossSectionVolumeLevelCollection._metadata, RadarCrossSectionVolumeLevelCollection._add_metadata, value, OutArg())

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear all contour levels from the collection."""
        return self._intf.invoke(RadarCrossSectionVolumeLevelCollection._metadata, RadarCrossSectionVolumeLevelCollection._clear_metadata, )

    _get_level_metadata = { "offset" : _get_level_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def get_level(self, value:float) -> "RadarCrossSectionVolumeLevel":
        """Get the level with the specified value."""
        return self._intf.invoke(RadarCrossSectionVolumeLevelCollection._metadata, RadarCrossSectionVolumeLevelCollection._get_level_metadata, value, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionVolumeLevelCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionVolumeLevelCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionVolumeLevelCollection, [RadarCrossSectionVolumeLevelCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5258410564017049315, 159850080483021745), RadarCrossSectionVolumeLevelCollection)
agcls.AgTypeNameMap["RadarCrossSectionVolumeLevelCollection"] = RadarCrossSectionVolumeLevelCollection

class RadarCrossSectionVolumeLevel(SupportsDeleteCallback):
    """RadarCrossSectionVolumeLevel Interface for an radar cross section volume level."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_value_method_offset = 1
    _get_color_method_offset = 2
    _set_color_method_offset = 3
    _metadata = {
        "iid_data" : (5133648433246757434, 13929096694348717754),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionVolumeLevel)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Get the volume level value."""
        return self._intf.get_property(RadarCrossSectionVolumeLevel._metadata, RadarCrossSectionVolumeLevel._get_value_metadata)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the volume level color."""
        return self._intf.get_property(RadarCrossSectionVolumeLevel._metadata, RadarCrossSectionVolumeLevel._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarCrossSectionVolumeLevel._metadata, RadarCrossSectionVolumeLevel._set_color_metadata, value)

    _property_names[value] = "value"
    _property_names[color] = "color"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionVolumeLevel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionVolumeLevel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionVolumeLevel, [RadarCrossSectionVolumeLevel, ])

agcls.AgClassCatalog.add_catalog_entry((5052901090221385016, 9591203856390154134), RadarCrossSectionVolumeLevel)
agcls.AgTypeNameMap["RadarCrossSectionVolumeLevel"] = RadarCrossSectionVolumeLevel

class AntennaVolumeLevelCollection(SupportsDeleteCallback):
    """Represents a collection of antenna volume levels."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _contains_method_offset = 4
    _remove_method_offset = 5
    _remove_at_method_offset = 6
    _add_method_offset = 7
    _clear_method_offset = 8
    _get_level_method_offset = 9
    _metadata = {
        "iid_data" : (5475644688793393646, 3448849494862239894),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaVolumeLevelCollection)
    def __iter__(self):
        """Create an iterator for the AntennaVolumeLevelCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "AntennaVolumeLevel":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(AntennaVolumeLevelCollection._metadata, AntennaVolumeLevelCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "AntennaVolumeLevel":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(AntennaVolumeLevelCollection._metadata, AntennaVolumeLevelCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(AntennaVolumeLevelCollection._metadata, AntennaVolumeLevelCollection._get__new_enum_metadata)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.VariantBoolArg,) }
    def contains(self, value:float) -> bool:
        """Check whether the collection contains an object with the given value."""
        return self._intf.invoke(AntennaVolumeLevelCollection._metadata, AntennaVolumeLevelCollection._contains_metadata, value, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    def remove(self, value:float) -> None:
        """Remove the level with the corresponding value."""
        return self._intf.invoke(AntennaVolumeLevelCollection._metadata, AntennaVolumeLevelCollection._remove_metadata, value)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the level with the supplied index."""
        return self._intf.invoke(AntennaVolumeLevelCollection._metadata, AntennaVolumeLevelCollection._remove_at_metadata, index)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add(self, value:float) -> "AntennaVolumeLevel":
        """Add and returns a new level with the corresponding value."""
        return self._intf.invoke(AntennaVolumeLevelCollection._metadata, AntennaVolumeLevelCollection._add_metadata, value, OutArg())

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear all contour levels from the collection."""
        return self._intf.invoke(AntennaVolumeLevelCollection._metadata, AntennaVolumeLevelCollection._clear_metadata, )

    _get_level_metadata = { "offset" : _get_level_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def get_level(self, value:float) -> "AntennaVolumeLevel":
        """Get the level with the specified value."""
        return self._intf.invoke(AntennaVolumeLevelCollection._metadata, AntennaVolumeLevelCollection._get_level_metadata, value, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaVolumeLevelCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaVolumeLevelCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaVolumeLevelCollection, [AntennaVolumeLevelCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5118055163144445642, 3591490222742518918), AntennaVolumeLevelCollection)
agcls.AgTypeNameMap["AntennaVolumeLevelCollection"] = AntennaVolumeLevelCollection

class AntennaVolumeLevel(SupportsDeleteCallback):
    """RadarCrossSectionVolumeLevel Interface for an radar cross section volume level."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_value_method_offset = 1
    _get_color_method_offset = 2
    _set_color_method_offset = 3
    _metadata = {
        "iid_data" : (4691416121934376074, 13076395961687888044),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaVolumeLevel)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Get the volume level value."""
        return self._intf.get_property(AntennaVolumeLevel._metadata, AntennaVolumeLevel._get_value_metadata)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the volume level color."""
        return self._intf.get_property(AntennaVolumeLevel._metadata, AntennaVolumeLevel._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(AntennaVolumeLevel._metadata, AntennaVolumeLevel._set_color_metadata, value)

    _property_names[value] = "value"
    _property_names[color] = "color"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaVolumeLevel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaVolumeLevel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaVolumeLevel, [AntennaVolumeLevel, ])

agcls.AgClassCatalog.add_catalog_entry((5692582490991592501, 12403468782491870618), AntennaVolumeLevel)
agcls.AgTypeNameMap["AntennaVolumeLevel"] = AntennaVolumeLevel

class AntennaContourLevelCollection(SupportsDeleteCallback):
    """Represents a collection of antenna contour levels."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _contains_method_offset = 4
    _remove_method_offset = 5
    _remove_at_method_offset = 6
    _add_method_offset = 7
    _clear_method_offset = 8
    _get_level_method_offset = 9
    _metadata = {
        "iid_data" : (4889854018990647779, 18060921394248597640),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaContourLevelCollection)
    def __iter__(self):
        """Create an iterator for the AntennaContourLevelCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "AntennaContourLevel":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(AntennaContourLevelCollection._metadata, AntennaContourLevelCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "AntennaContourLevel":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(AntennaContourLevelCollection._metadata, AntennaContourLevelCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(AntennaContourLevelCollection._metadata, AntennaContourLevelCollection._get__new_enum_metadata)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.VariantBoolArg,) }
    def contains(self, value:float) -> bool:
        """Check whether the collection contains an object with the given value."""
        return self._intf.invoke(AntennaContourLevelCollection._metadata, AntennaContourLevelCollection._contains_metadata, value, OutArg())

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    def remove(self, value:float) -> None:
        """Remove the level with the corresponding value."""
        return self._intf.invoke(AntennaContourLevelCollection._metadata, AntennaContourLevelCollection._remove_metadata, value)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the level with the supplied index."""
        return self._intf.invoke(AntennaContourLevelCollection._metadata, AntennaContourLevelCollection._remove_at_metadata, index)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add(self, value:float) -> "AntennaContourLevel":
        """Add and returns a new level with the corresponding value."""
        return self._intf.invoke(AntennaContourLevelCollection._metadata, AntennaContourLevelCollection._add_metadata, value, OutArg())

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear all contour levels from the collection."""
        return self._intf.invoke(AntennaContourLevelCollection._metadata, AntennaContourLevelCollection._clear_metadata, )

    _get_level_metadata = { "offset" : _get_level_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def get_level(self, value:float) -> "AntennaContourLevel":
        """Get the level with the specified value."""
        return self._intf.invoke(AntennaContourLevelCollection._metadata, AntennaContourLevelCollection._get_level_metadata, value, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaContourLevelCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaContourLevelCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaContourLevelCollection, [AntennaContourLevelCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5406497016984470434, 2280625993236597169), AntennaContourLevelCollection)
agcls.AgTypeNameMap["AntennaContourLevelCollection"] = AntennaContourLevelCollection

class AntennaContourLevel(SupportsDeleteCallback):
    """AntennaContourLevel Interface for an antenna contour level."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_value_method_offset = 1
    _get_color_method_offset = 2
    _set_color_method_offset = 3
    _get_line_style_method_offset = 4
    _set_line_style_method_offset = 5
    _metadata = {
        "iid_data" : (5081738424561717005, 8196263621458051211),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaContourLevel)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Get the contour level value."""
        return self._intf.get_property(AntennaContourLevel._metadata, AntennaContourLevel._get_value_metadata)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Get or set the contour level color."""
        return self._intf.get_property(AntennaContourLevel._metadata, AntennaContourLevel._get_color_metadata)

    _set_color_metadata = { "offset" : _set_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @color.setter
    def color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(AntennaContourLevel._metadata, AntennaContourLevel._set_color_metadata, value)

    _get_line_style_metadata = { "offset" : _get_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def line_style(self) -> "LineStyle":
        """Select the line style, displayed for the contour level, from the LineStyle enumeration."""
        return self._intf.get_property(AntennaContourLevel._metadata, AntennaContourLevel._get_line_style_metadata)

    _set_line_style_metadata = { "offset" : _set_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @line_style.setter
    def line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(AntennaContourLevel._metadata, AntennaContourLevel._set_line_style_metadata, value)

    _property_names[value] = "value"
    _property_names[color] = "color"
    _property_names[line_style] = "line_style"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaContourLevel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaContourLevel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaContourLevel, [AntennaContourLevel, ])

agcls.AgClassCatalog.add_catalog_entry((4695247810009574156, 17251442686902678434), AntennaContourLevel)
agcls.AgTypeNameMap["AntennaContourLevel"] = AntennaContourLevel

class AntennaContourGain(IAntennaContour, SupportsDeleteCallback):
    """AntennaContourGain Interface for a antenna's gain contour properties."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_azimuth_start_method_offset = 1
    _get_azimuth_stop_method_offset = 2
    _get_azimuth_resolution_method_offset = 3
    _get_azimuth_number_of_points_method_offset = 4
    _get_elevation_start_method_offset = 5
    _get_elevation_stop_method_offset = 6
    _get_elevation_resolution_method_offset = 7
    _get_elevation_number_of_points_method_offset = 8
    _set_resolution_method_offset = 9
    _set_number_of_points_method_offset = 10
    _get_coordinate_system_method_offset = 11
    _set_coordinate_system_method_offset = 12
    _metadata = {
        "iid_data" : (4855359951819498665, 15968696936035102089),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaContourGain)

    _get_azimuth_start_metadata = { "offset" : _get_azimuth_start_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_start(self) -> float:
        """Get the azimuth start value."""
        return self._intf.get_property(AntennaContourGain._metadata, AntennaContourGain._get_azimuth_start_metadata)

    _get_azimuth_stop_metadata = { "offset" : _get_azimuth_stop_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_stop(self) -> float:
        """Get the azimuth stop value."""
        return self._intf.get_property(AntennaContourGain._metadata, AntennaContourGain._get_azimuth_stop_metadata)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_resolution(self) -> float:
        """Get the azimuth resolution."""
        return self._intf.get_property(AntennaContourGain._metadata, AntennaContourGain._get_azimuth_resolution_metadata)

    _get_azimuth_number_of_points_metadata = { "offset" : _get_azimuth_number_of_points_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def azimuth_number_of_points(self) -> int:
        """Get the number of azimuth points."""
        return self._intf.get_property(AntennaContourGain._metadata, AntennaContourGain._get_azimuth_number_of_points_metadata)

    _get_elevation_start_metadata = { "offset" : _get_elevation_start_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_start(self) -> float:
        """Get the elevation start value."""
        return self._intf.get_property(AntennaContourGain._metadata, AntennaContourGain._get_elevation_start_metadata)

    _get_elevation_stop_metadata = { "offset" : _get_elevation_stop_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_stop(self) -> float:
        """Get the elevation stop value."""
        return self._intf.get_property(AntennaContourGain._metadata, AntennaContourGain._get_elevation_stop_metadata)

    _get_elevation_resolution_metadata = { "offset" : _get_elevation_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_resolution(self) -> float:
        """Get the elevation resolution."""
        return self._intf.get_property(AntennaContourGain._metadata, AntennaContourGain._get_elevation_resolution_metadata)

    _get_elevation_number_of_points_metadata = { "offset" : _get_elevation_number_of_points_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def elevation_number_of_points(self) -> int:
        """Get the number of elevation points."""
        return self._intf.get_property(AntennaContourGain._metadata, AntennaContourGain._get_elevation_number_of_points_metadata)

    _set_resolution_metadata = { "offset" : _set_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def set_resolution(self, azimuth_start:float, azimuth_stop:float, azimuth_resolution:float, elevation_start:float, elevation_stop:float, elevation_resolution:float) -> None:
        """Set the azimuth/elevation ranges and resolution."""
        return self._intf.invoke(AntennaContourGain._metadata, AntennaContourGain._set_resolution_metadata, azimuth_start, azimuth_stop, azimuth_resolution, elevation_start, elevation_stop, elevation_resolution)

    _set_number_of_points_metadata = { "offset" : _set_number_of_points_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.INT, agcom.DOUBLE, agcom.DOUBLE, agcom.INT,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.IntArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.IntArg,) }
    def set_number_of_points(self, azimuth_start:float, azimuth_stop:float, azimuth_num_points:int, elevation_start:float, elevation_stop:float, elevation_num_points:int) -> None:
        """Set the azimuth/elevation ranges and number of points."""
        return self._intf.invoke(AntennaContourGain._metadata, AntennaContourGain._set_number_of_points_metadata, azimuth_start, azimuth_stop, azimuth_num_points, elevation_start, elevation_stop, elevation_num_points)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AntennaGraphicsCoordinateSystem),) }
    @property
    def coordinate_system(self) -> "AntennaGraphicsCoordinateSystem":
        """Get or set the coordinate system for defining the resolution of the antenna graphics."""
        return self._intf.get_property(AntennaContourGain._metadata, AntennaContourGain._get_coordinate_system_metadata)

    _set_coordinate_system_metadata = { "offset" : _set_coordinate_system_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AntennaGraphicsCoordinateSystem),) }
    @coordinate_system.setter
    def coordinate_system(self, coordinate_system:"AntennaGraphicsCoordinateSystem") -> None:
        return self._intf.set_property(AntennaContourGain._metadata, AntennaContourGain._set_coordinate_system_metadata, coordinate_system)

    _property_names[azimuth_start] = "azimuth_start"
    _property_names[azimuth_stop] = "azimuth_stop"
    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[azimuth_number_of_points] = "azimuth_number_of_points"
    _property_names[elevation_start] = "elevation_start"
    _property_names[elevation_stop] = "elevation_stop"
    _property_names[elevation_resolution] = "elevation_resolution"
    _property_names[elevation_number_of_points] = "elevation_number_of_points"
    _property_names[coordinate_system] = "coordinate_system"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaContourGain."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaContourGain)
        IAntennaContour.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaContour._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaContourGain, [AntennaContourGain, IAntennaContour])

agcls.AgClassCatalog.add_catalog_entry((5181146447334253867, 4234770470450494337), AntennaContourGain)
agcls.AgTypeNameMap["AntennaContourGain"] = AntennaContourGain

class AntennaContourEIRP(IAntennaContour, SupportsDeleteCallback):
    """AntennaContourEIRP Interface for a antenna's eirp contour properties."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_azimuth_start_method_offset = 1
    _get_azimuth_stop_method_offset = 2
    _get_azimuth_resolution_method_offset = 3
    _get_azimuth_number_of_points_method_offset = 4
    _get_elevation_start_method_offset = 5
    _get_elevation_stop_method_offset = 6
    _get_elevation_resolution_method_offset = 7
    _get_elevation_number_of_points_method_offset = 8
    _set_resolution_method_offset = 9
    _set_number_of_points_method_offset = 10
    _get_coordinate_system_method_offset = 11
    _set_coordinate_system_method_offset = 12
    _metadata = {
        "iid_data" : (5163840987204705460, 15670811460118597257),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaContourEIRP)

    _get_azimuth_start_metadata = { "offset" : _get_azimuth_start_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_start(self) -> float:
        """Get the azimuth start value."""
        return self._intf.get_property(AntennaContourEIRP._metadata, AntennaContourEIRP._get_azimuth_start_metadata)

    _get_azimuth_stop_metadata = { "offset" : _get_azimuth_stop_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_stop(self) -> float:
        """Get the azimuth stop value."""
        return self._intf.get_property(AntennaContourEIRP._metadata, AntennaContourEIRP._get_azimuth_stop_metadata)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_resolution(self) -> float:
        """Get the azimuth resolution."""
        return self._intf.get_property(AntennaContourEIRP._metadata, AntennaContourEIRP._get_azimuth_resolution_metadata)

    _get_azimuth_number_of_points_metadata = { "offset" : _get_azimuth_number_of_points_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def azimuth_number_of_points(self) -> int:
        """Get the number of azimuth points."""
        return self._intf.get_property(AntennaContourEIRP._metadata, AntennaContourEIRP._get_azimuth_number_of_points_metadata)

    _get_elevation_start_metadata = { "offset" : _get_elevation_start_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_start(self) -> float:
        """Get the elevation start value."""
        return self._intf.get_property(AntennaContourEIRP._metadata, AntennaContourEIRP._get_elevation_start_metadata)

    _get_elevation_stop_metadata = { "offset" : _get_elevation_stop_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_stop(self) -> float:
        """Get the elevation stop value."""
        return self._intf.get_property(AntennaContourEIRP._metadata, AntennaContourEIRP._get_elevation_stop_metadata)

    _get_elevation_resolution_metadata = { "offset" : _get_elevation_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_resolution(self) -> float:
        """Get the elevation resolution."""
        return self._intf.get_property(AntennaContourEIRP._metadata, AntennaContourEIRP._get_elevation_resolution_metadata)

    _get_elevation_number_of_points_metadata = { "offset" : _get_elevation_number_of_points_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def elevation_number_of_points(self) -> int:
        """Get the number of elevation points."""
        return self._intf.get_property(AntennaContourEIRP._metadata, AntennaContourEIRP._get_elevation_number_of_points_metadata)

    _set_resolution_metadata = { "offset" : _set_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def set_resolution(self, azimuth_start:float, azimuth_stop:float, azimuth_resolution:float, elevation_start:float, elevation_stop:float, elevation_resolution:float) -> None:
        """Set the azimuth/elevation ranges and resolution."""
        return self._intf.invoke(AntennaContourEIRP._metadata, AntennaContourEIRP._set_resolution_metadata, azimuth_start, azimuth_stop, azimuth_resolution, elevation_start, elevation_stop, elevation_resolution)

    _set_number_of_points_metadata = { "offset" : _set_number_of_points_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.INT, agcom.DOUBLE, agcom.DOUBLE, agcom.INT,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.IntArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.IntArg,) }
    def set_number_of_points(self, azimuth_start:float, azimuth_stop:float, azimuth_num_points:int, elevation_start:float, elevation_stop:float, elevation_num_points:int) -> None:
        """Set the azimuth/elevation ranges and number of points."""
        return self._intf.invoke(AntennaContourEIRP._metadata, AntennaContourEIRP._set_number_of_points_metadata, azimuth_start, azimuth_stop, azimuth_num_points, elevation_start, elevation_stop, elevation_num_points)

    _get_coordinate_system_metadata = { "offset" : _get_coordinate_system_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AntennaGraphicsCoordinateSystem),) }
    @property
    def coordinate_system(self) -> "AntennaGraphicsCoordinateSystem":
        """Get or set the coordinate system for defining the resolution of the antenna graphics."""
        return self._intf.get_property(AntennaContourEIRP._metadata, AntennaContourEIRP._get_coordinate_system_metadata)

    _set_coordinate_system_metadata = { "offset" : _set_coordinate_system_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AntennaGraphicsCoordinateSystem),) }
    @coordinate_system.setter
    def coordinate_system(self, coordinate_system:"AntennaGraphicsCoordinateSystem") -> None:
        return self._intf.set_property(AntennaContourEIRP._metadata, AntennaContourEIRP._set_coordinate_system_metadata, coordinate_system)

    _property_names[azimuth_start] = "azimuth_start"
    _property_names[azimuth_stop] = "azimuth_stop"
    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[azimuth_number_of_points] = "azimuth_number_of_points"
    _property_names[elevation_start] = "elevation_start"
    _property_names[elevation_stop] = "elevation_stop"
    _property_names[elevation_resolution] = "elevation_resolution"
    _property_names[elevation_number_of_points] = "elevation_number_of_points"
    _property_names[coordinate_system] = "coordinate_system"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaContourEIRP."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaContourEIRP)
        IAntennaContour.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaContour._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaContourEIRP, [AntennaContourEIRP, IAntennaContour])

agcls.AgClassCatalog.add_catalog_entry((5298430028725757943, 8219138141379893431), AntennaContourEIRP)
agcls.AgTypeNameMap["AntennaContourEIRP"] = AntennaContourEIRP

class AntennaContourRIP(IAntennaContour, SupportsDeleteCallback):
    """AntennaContourRIP Interface for a antenna's rip contour properties."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_azimuth_resolution_method_offset = 1
    _get_elevation_resolution_method_offset = 2
    _get_maximum_elevation_angle_method_offset = 3
    _set_resolution_method_offset = 4
    _metadata = {
        "iid_data" : (4645584159980227632, 13111590280089288337),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaContourRIP)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def azimuth_resolution(self) -> typing.Any:
        """Get the azimuth resolution."""
        return self._intf.get_property(AntennaContourRIP._metadata, AntennaContourRIP._get_azimuth_resolution_metadata)

    _get_elevation_resolution_metadata = { "offset" : _get_elevation_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def elevation_resolution(self) -> typing.Any:
        """Get the elevation resolution."""
        return self._intf.get_property(AntennaContourRIP._metadata, AntennaContourRIP._get_elevation_resolution_metadata)

    _get_maximum_elevation_angle_metadata = { "offset" : _get_maximum_elevation_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_elevation_angle(self) -> typing.Any:
        """Get the maximum elevation."""
        return self._intf.get_property(AntennaContourRIP._metadata, AntennaContourRIP._get_maximum_elevation_angle_metadata)

    _set_resolution_metadata = { "offset" : _set_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def set_resolution(self, azimuth_resolution:float, elevation_resolution:float, max_elevation:float) -> None:
        """Set the azimuth and elevation resolution as well as the maximum elevation angle."""
        return self._intf.invoke(AntennaContourRIP._metadata, AntennaContourRIP._set_resolution_metadata, azimuth_resolution, elevation_resolution, max_elevation)

    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[elevation_resolution] = "elevation_resolution"
    _property_names[maximum_elevation_angle] = "maximum_elevation_angle"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaContourRIP."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaContourRIP)
        IAntennaContour.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaContour._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaContourRIP, [AntennaContourRIP, IAntennaContour])

agcls.AgClassCatalog.add_catalog_entry((5640487657083613762, 16726640939966910606), AntennaContourRIP)
agcls.AgTypeNameMap["AntennaContourRIP"] = AntennaContourRIP

class AntennaContourFluxDensity(IAntennaContour, SupportsDeleteCallback):
    """AntennaContourFluxDensity Interface for a antenna's flux density contour properties."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_azimuth_resolution_method_offset = 1
    _get_elevation_resolution_method_offset = 2
    _get_maximum_elevation_angle_method_offset = 3
    _set_resolution_method_offset = 4
    _metadata = {
        "iid_data" : (5173978286389950360, 8844152697985923258),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaContourFluxDensity)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def azimuth_resolution(self) -> typing.Any:
        """Get the azimuth resolution."""
        return self._intf.get_property(AntennaContourFluxDensity._metadata, AntennaContourFluxDensity._get_azimuth_resolution_metadata)

    _get_elevation_resolution_metadata = { "offset" : _get_elevation_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def elevation_resolution(self) -> typing.Any:
        """Get the elevation resolution."""
        return self._intf.get_property(AntennaContourFluxDensity._metadata, AntennaContourFluxDensity._get_elevation_resolution_metadata)

    _get_maximum_elevation_angle_metadata = { "offset" : _get_maximum_elevation_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_elevation_angle(self) -> typing.Any:
        """Get the maximum elevation."""
        return self._intf.get_property(AntennaContourFluxDensity._metadata, AntennaContourFluxDensity._get_maximum_elevation_angle_metadata)

    _set_resolution_metadata = { "offset" : _set_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def set_resolution(self, azimuth_resolution:float, elevation_resolution:float, max_elevation:float) -> None:
        """Set the azimuth and elevation resolution as well as the maximum elevation angle."""
        return self._intf.invoke(AntennaContourFluxDensity._metadata, AntennaContourFluxDensity._set_resolution_metadata, azimuth_resolution, elevation_resolution, max_elevation)

    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[elevation_resolution] = "elevation_resolution"
    _property_names[maximum_elevation_angle] = "maximum_elevation_angle"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaContourFluxDensity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaContourFluxDensity)
        IAntennaContour.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaContour._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaContourFluxDensity, [AntennaContourFluxDensity, IAntennaContour])

agcls.AgClassCatalog.add_catalog_entry((4659459306915748821, 16883426263851281555), AntennaContourFluxDensity)
agcls.AgTypeNameMap["AntennaContourFluxDensity"] = AntennaContourFluxDensity

class AntennaContourSpectralFluxDensity(IAntennaContour, SupportsDeleteCallback):
    """AntennaContourSpectralFluxDensity Interface for a antenna's spectral flux density contour properties."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_azimuth_resolution_method_offset = 1
    _get_elevation_resolution_method_offset = 2
    _get_maximum_elevation_angle_method_offset = 3
    _set_resolution_method_offset = 4
    _metadata = {
        "iid_data" : (5433671537751692900, 2736983249499979154),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaContourSpectralFluxDensity)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def azimuth_resolution(self) -> typing.Any:
        """Get the azimuth resolution."""
        return self._intf.get_property(AntennaContourSpectralFluxDensity._metadata, AntennaContourSpectralFluxDensity._get_azimuth_resolution_metadata)

    _get_elevation_resolution_metadata = { "offset" : _get_elevation_resolution_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def elevation_resolution(self) -> typing.Any:
        """Get the elevation resolution."""
        return self._intf.get_property(AntennaContourSpectralFluxDensity._metadata, AntennaContourSpectralFluxDensity._get_elevation_resolution_metadata)

    _get_maximum_elevation_angle_metadata = { "offset" : _get_maximum_elevation_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_elevation_angle(self) -> typing.Any:
        """Get the maximum elevation."""
        return self._intf.get_property(AntennaContourSpectralFluxDensity._metadata, AntennaContourSpectralFluxDensity._get_maximum_elevation_angle_metadata)

    _set_resolution_metadata = { "offset" : _set_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.DoubleArg,) }
    def set_resolution(self, azimuth_resolution:float, elevation_resolution:float, max_elevation:float) -> None:
        """Set the azimuth and elevation resolution as well as the maximum elevation angle."""
        return self._intf.invoke(AntennaContourSpectralFluxDensity._metadata, AntennaContourSpectralFluxDensity._set_resolution_metadata, azimuth_resolution, elevation_resolution, max_elevation)

    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[elevation_resolution] = "elevation_resolution"
    _property_names[maximum_elevation_angle] = "maximum_elevation_angle"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaContourSpectralFluxDensity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaContourSpectralFluxDensity)
        IAntennaContour.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaContour._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaContourSpectralFluxDensity, [AntennaContourSpectralFluxDensity, IAntennaContour])

agcls.AgClassCatalog.add_catalog_entry((5610299359768653460, 7269448124683883430), AntennaContourSpectralFluxDensity)
agcls.AgTypeNameMap["AntennaContourSpectralFluxDensity"] = AntennaContourSpectralFluxDensity

class Transmitter(ISTKObject, ILifetimeInformation, IDisplayTime, SupportsDeleteCallback):
    """
    Provide access to the properties and methods defining an Transmitter object.

    Examples
    --------
    Transmitter additional Gain:
    >>> # Transmitter transmitter: Transmitter object
    >>> txModel = transmitter.model
    >>> gain = txModel.post_transmit_gains_losses.add(-5)  # dB
    >>> gain.identifier = "Example Loss"

    Modify a Transmitter Filter:
    >>> # Transmitter transmitter: Transmitter object
    >>> txModel = transmitter.model
    >>> txModel.enable_filter = True
    >>> txModel.set_filter("Butterworth")
    >>> recFilter = txModel.filter
    >>> recFilter.lower_bandwidth_limit = -20
    >>> recFilter.upper_bandwidth_limit = 20
    >>> recFilter.cut_off_frequency = 10

    Modify a Transmitter's Modulator Properties:
    >>> # Transmitter transmitter: Transmitter object
    >>> txModel = transmitter.model
    >>> txModel.set_modulator("BPSK")
    >>> txModel.modulator.scale_bandwidth_automatically = True

    Modify a Transmitter's Orientation and Position:
    >>> # Transmitter transmitter: Transmitter object
    >>> transmitter.set_model("Complex Transmitter Model")
    >>> txModel = transmitter.model
    >>> antennaControl = txModel.antenna_control
    >>> antOrientation = antennaControl.embedded_model_orientation
    >>> antOrientation.assign_az_el(0, 90, 1)  # 1 represents Rotate About Boresight
    >>> antOrientation.position_offset.x = 0.0  # m
    >>> antOrientation.position_offset.y = 1  # m
    >>> antOrientation.position_offset.z = 0.25  # m

    Modify a Transmitter's Polarization Properties:
    >>> # Transmitter transmitter: Transmitter object
    >>> transmitter.set_model("Complex Transmitter Model")
    >>> txModel = transmitter.model
    >>> txModel.enable_polarization = True
    >>> txModel.set_polarization_type(PolarizationType.LINEAR)
    >>> polarization = txModel.polarization
    >>> polarization.reference_axis = PolarizationReferenceAxis.Y
    >>> polarization.tilt_angle = 15  # deg

    Modify a Transmitter's Embedded Antenna:
    >>> # Transmitter transmitter: Transmitter object
    >>> transmitter.set_model("Complex Transmitter Model")
    >>> txModel = transmitter.model
    >>> antennaControl = txModel.antenna_control
    >>> antennaControl.set_embedded_model("Isotropic")
    >>> antennaControl.embedded_model.efficiency = 85  # Percent

    Modify a Transmitter's Model Type:
    >>> # Transmitter transmitter: Transmitter object
    >>> transmitter.set_model("Complex Transmitter Model")
    >>> txModel = transmitter.model
    >>> txModel.frequency = 14  # GHz
    >>> txModel.power = 25  # dBW
    >>> txModel.data_rate = 15  # Mb/sec

    Create a New Transmitter Object:
    >>> # ISTKObject satellite: STK object
    >>> transmitter = satellite.children.new(STKObjectType.TRANSMITTER, "MyTransmitter")
    """

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_models_method_offset = 1
    _set_model_method_offset = 2
    _get_model_method_offset = 3
    _get_refraction_method_offset = 4
    _set_refraction_method_offset = 5
    _is_refraction_type_supported_method_offset = 6
    _get_refraction_supported_types_method_offset = 7
    _get_refraction_model_method_offset = 8
    _get_use_refraction_in_access_method_offset = 9
    _set_use_refraction_in_access_method_offset = 10
    _get_graphics_3d_method_offset = 11
    _get_graphics_method_offset = 12
    _get_rf_environment_method_offset = 13
    _get_laser_environment_method_offset = 14
    _get_model_component_linking_method_offset = 15
    _metadata = {
        "iid_data" : (5387014190406719227, 14365850813603251356),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Transmitter)

    _get_supported_models_metadata = { "offset" : _get_supported_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_models(self) -> list:
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on Transmitter instead. Gets an array of supported model names."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_supported_models_metadata)

    _set_model_metadata = { "offset" : _set_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use ModelComponentLinking on Transmitter instead. Sets the current transmitter model by name."""
        return self._intf.invoke(Transmitter._metadata, Transmitter._set_model_metadata, model_name)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "ITransmitterModel":
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on Transmitter instead. Gets the current transmitter model."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_model_metadata)

    _get_refraction_metadata = { "offset" : _get_refraction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType),) }
    @property
    def refraction(self) -> "SensorRefractionType":
        """Refraction method, a member of the SensorRefractionType enumeration."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_refraction_metadata)

    _set_refraction_metadata = { "offset" : _set_refraction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType),) }
    @refraction.setter
    def refraction(self, value:"SensorRefractionType") -> None:
        return self._intf.set_property(Transmitter._metadata, Transmitter._set_refraction_metadata, value)

    _is_refraction_type_supported_metadata = { "offset" : _is_refraction_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType), agmarshall.VariantBoolArg,) }
    def is_refraction_type_supported(self, model:"SensorRefractionType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(Transmitter._metadata, Transmitter._is_refraction_type_supported_metadata, model, OutArg())

    _get_refraction_supported_types_metadata = { "offset" : _get_refraction_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def refraction_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_refraction_supported_types_metadata)

    _get_refraction_model_metadata = { "offset" : _get_refraction_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def refraction_model(self) -> "IRefractionModelBase":
        """Get a refraction model."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_refraction_model_metadata)

    _get_use_refraction_in_access_metadata = { "offset" : _get_use_refraction_in_access_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_refraction_in_access(self) -> bool:
        """Flag controls whether refraction is applied when computing relative position in Access."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_use_refraction_in_access_metadata)

    _set_use_refraction_in_access_metadata = { "offset" : _set_use_refraction_in_access_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_refraction_in_access.setter
    def use_refraction_in_access(self, use_refraction_in_access:bool) -> None:
        return self._intf.set_property(Transmitter._metadata, Transmitter._set_use_refraction_in_access_metadata, use_refraction_in_access)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "TransmitterGraphics3D":
        """Get the 3D Graphics properties for the transmitter."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_graphics_3d_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "TransmitterGraphics":
        """Get the 2D Graphics properties for the transmitter."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_graphics_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "ObjectRFEnvironment":
        """Get the object RF environment settings."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_rf_environment_metadata)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "ObjectLaserEnvironment":
        """Get the object laser environment settings."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_laser_environment_metadata)

    _get_model_component_linking_metadata = { "offset" : _get_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the transmitter model component."""
        return self._intf.get_property(Transmitter._metadata, Transmitter._get_model_component_linking_metadata)

    _property_names[supported_models] = "supported_models"
    _property_names[model] = "model"
    _property_names[refraction] = "refraction"
    _property_names[refraction_supported_types] = "refraction_supported_types"
    _property_names[refraction_model] = "refraction_model"
    _property_names[use_refraction_in_access] = "use_refraction_in_access"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[graphics] = "graphics"
    _property_names[rf_environment] = "rf_environment"
    _property_names[laser_environment] = "laser_environment"
    _property_names[model_component_linking] = "model_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type Transmitter."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Transmitter)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Transmitter, [Transmitter, ISTKObject, ILifetimeInformation, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((4961067084536870229, 2551906430169295028), Transmitter)
agcls.AgTypeNameMap["Transmitter"] = Transmitter

class TransmitterModel(ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a generic transmitter model."""
    def __init__(self, source_object=None):
        """Construct an object of type TransmitterModel."""
        SupportsDeleteCallback.__init__(self)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterModel, [ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4629235096228094433, 5555516526942102410), TransmitterModel)
agcls.AgTypeNameMap["TransmitterModel"] = TransmitterModel

class TransmitterModelScriptPluginRF(ITransmitterModelScriptPlugin, ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a RF script plugin transmitter model."""
    def __init__(self, source_object=None):
        """Construct an object of type TransmitterModelScriptPluginRF."""
        SupportsDeleteCallback.__init__(self)
        ITransmitterModelScriptPlugin.__init__(self, source_object)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITransmitterModelScriptPlugin._private_init(self, intf)
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterModelScriptPluginRF, [ITransmitterModelScriptPlugin, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5358356227025347323, 5719385789546130307), TransmitterModelScriptPluginRF)
agcls.AgTypeNameMap["TransmitterModelScriptPluginRF"] = TransmitterModelScriptPluginRF

class TransmitterModelScriptPluginLaser(ITransmitterModelScriptPlugin, ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a laser script plugin transmitter model."""
    def __init__(self, source_object=None):
        """Construct an object of type TransmitterModelScriptPluginLaser."""
        SupportsDeleteCallback.__init__(self)
        ITransmitterModelScriptPlugin.__init__(self, source_object)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITransmitterModelScriptPlugin._private_init(self, intf)
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterModelScriptPluginLaser, [ITransmitterModelScriptPlugin, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5750532395948904915, 8489184324222396086), TransmitterModelScriptPluginLaser)
agcls.AgTypeNameMap["TransmitterModelScriptPluginLaser"] = TransmitterModelScriptPluginLaser

class TransmitterModelCable(ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a cable transmitter model."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_data_rate_method_offset = 1
    _set_data_rate_method_offset = 2
    _get_chips_per_bit_method_offset = 3
    _set_chips_per_bit_method_offset = 4
    _get_spreading_gain_method_offset = 5
    _metadata = {
        "iid_data" : (5263685459805270340, 12980222489153409927),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransmitterModelCable)

    _get_data_rate_metadata = { "offset" : _get_data_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def data_rate(self) -> float:
        """Get or set the data rate."""
        return self._intf.get_property(TransmitterModelCable._metadata, TransmitterModelCable._get_data_rate_metadata)

    _set_data_rate_metadata = { "offset" : _set_data_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @data_rate.setter
    def data_rate(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelCable._metadata, TransmitterModelCable._set_data_rate_metadata, value)

    _get_chips_per_bit_metadata = { "offset" : _get_chips_per_bit_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def chips_per_bit(self) -> int:
        """Get or set the chips/bit."""
        return self._intf.get_property(TransmitterModelCable._metadata, TransmitterModelCable._get_chips_per_bit_metadata)

    _set_chips_per_bit_metadata = { "offset" : _set_chips_per_bit_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @chips_per_bit.setter
    def chips_per_bit(self, value:int) -> None:
        return self._intf.set_property(TransmitterModelCable._metadata, TransmitterModelCable._set_chips_per_bit_metadata, value)

    _get_spreading_gain_metadata = { "offset" : _get_spreading_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def spreading_gain(self) -> float:
        """Get the spreading gain."""
        return self._intf.get_property(TransmitterModelCable._metadata, TransmitterModelCable._get_spreading_gain_metadata)

    _property_names[data_rate] = "data_rate"
    _property_names[chips_per_bit] = "chips_per_bit"
    _property_names[spreading_gain] = "spreading_gain"

    def __init__(self, source_object=None):
        """Construct an object of type TransmitterModelCable."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransmitterModelCable)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterModelCable, [TransmitterModelCable, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5469285202098227696, 3097463010549884291), TransmitterModelCable)
agcls.AgTypeNameMap["TransmitterModelCable"] = TransmitterModelCable

class TransmitterModelSimple(ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a simple transmitter model."""

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_frequency_method_offset = 1
    _set_frequency_method_offset = 2
    _get_data_rate_method_offset = 3
    _set_data_rate_method_offset = 4
    _get_eirp_method_offset = 5
    _set_eirp_method_offset = 6
    _get_enable_polarization_method_offset = 7
    _set_enable_polarization_method_offset = 8
    _set_polarization_type_method_offset = 9
    _get_polarization_method_offset = 10
    _get_post_transmit_gains_losses_method_offset = 11
    _get_enable_filter_method_offset = 12
    _set_enable_filter_method_offset = 13
    _get_supported_filters_method_offset = 14
    _set_filter_method_offset = 15
    _get_filter_method_offset = 16
    _get_supported_modulators_method_offset = 17
    _set_modulator_method_offset = 18
    _get_modulator_method_offset = 19
    _get_filter_component_linking_method_offset = 20
    _metadata = {
        "iid_data" : (4717311753582206720, 13199269551333545879),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransmitterModelSimple)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the carrier frequency."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelSimple._metadata, TransmitterModelSimple._set_frequency_metadata, value)

    _get_data_rate_metadata = { "offset" : _get_data_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def data_rate(self) -> float:
        """Get or set the data rate."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_data_rate_metadata)

    _set_data_rate_metadata = { "offset" : _set_data_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @data_rate.setter
    def data_rate(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelSimple._metadata, TransmitterModelSimple._set_data_rate_metadata, value)

    _get_eirp_metadata = { "offset" : _get_eirp_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def eirp(self) -> float:
        """Get or set the EIRP."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_eirp_metadata)

    _set_eirp_metadata = { "offset" : _set_eirp_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @eirp.setter
    def eirp(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelSimple._metadata, TransmitterModelSimple._set_eirp_metadata, value)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(TransmitterModelSimple._metadata, TransmitterModelSimple._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(TransmitterModelSimple._metadata, TransmitterModelSimple._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_polarization_metadata)

    _get_post_transmit_gains_losses_metadata = { "offset" : _get_post_transmit_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def post_transmit_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional post transmit gains and losses."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_post_transmit_gains_losses_metadata)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(TransmitterModelSimple._metadata, TransmitterModelSimple._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on TransmitterModelSimple instead. Gets an array of supported filter model names."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on TransmitterModelSimple instead. Sets the current filter model by name."""
        return self._intf.invoke(TransmitterModelSimple._metadata, TransmitterModelSimple._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on TransmitterModelSimple instead. Gets the current filter model."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_filter_metadata)

    _get_supported_modulators_metadata = { "offset" : _get_supported_modulators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_modulators(self) -> list:
        """Get an array of supported modulator model names."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_supported_modulators_metadata)

    _set_modulator_metadata = { "offset" : _set_modulator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_modulator(self, name:str) -> None:
        """Set the current modulator model by name."""
        return self._intf.invoke(TransmitterModelSimple._metadata, TransmitterModelSimple._set_modulator_metadata, name)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "IModulatorModel":
        """Get the current modulator model."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_modulator_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(TransmitterModelSimple._metadata, TransmitterModelSimple._get_filter_component_linking_metadata)

    _property_names[frequency] = "frequency"
    _property_names[data_rate] = "data_rate"
    _property_names[eirp] = "eirp"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[post_transmit_gains_losses] = "post_transmit_gains_losses"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[supported_modulators] = "supported_modulators"
    _property_names[modulator] = "modulator"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type TransmitterModelSimple."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransmitterModelSimple)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterModelSimple, [TransmitterModelSimple, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5289820865366727668, 1305864669011928720), TransmitterModelSimple)
agcls.AgTypeNameMap["TransmitterModelSimple"] = TransmitterModelSimple

class TransmitterModelMedium(ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a medium transmitter model."""

    _num_methods = 22
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_frequency_method_offset = 1
    _set_frequency_method_offset = 2
    _get_data_rate_method_offset = 3
    _set_data_rate_method_offset = 4
    _get_power_method_offset = 5
    _set_power_method_offset = 6
    _get_antenna_gain_method_offset = 7
    _set_antenna_gain_method_offset = 8
    _get_enable_polarization_method_offset = 9
    _set_enable_polarization_method_offset = 10
    _set_polarization_type_method_offset = 11
    _get_polarization_method_offset = 12
    _get_post_transmit_gains_losses_method_offset = 13
    _get_enable_filter_method_offset = 14
    _set_enable_filter_method_offset = 15
    _get_supported_filters_method_offset = 16
    _set_filter_method_offset = 17
    _get_filter_method_offset = 18
    _get_supported_modulators_method_offset = 19
    _set_modulator_method_offset = 20
    _get_modulator_method_offset = 21
    _get_filter_component_linking_method_offset = 22
    _metadata = {
        "iid_data" : (4936289164785571013, 13998428531796658608),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransmitterModelMedium)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the carrier frequency."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelMedium._metadata, TransmitterModelMedium._set_frequency_metadata, value)

    _get_data_rate_metadata = { "offset" : _get_data_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def data_rate(self) -> float:
        """Get or set the data rate."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_data_rate_metadata)

    _set_data_rate_metadata = { "offset" : _set_data_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @data_rate.setter
    def data_rate(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelMedium._metadata, TransmitterModelMedium._set_data_rate_metadata, value)

    _get_power_metadata = { "offset" : _get_power_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def power(self) -> float:
        """Get or set the power."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_power_metadata)

    _set_power_metadata = { "offset" : _set_power_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @power.setter
    def power(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelMedium._metadata, TransmitterModelMedium._set_power_metadata, value)

    _get_antenna_gain_metadata = { "offset" : _get_antenna_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def antenna_gain(self) -> float:
        """Get or set the antenna gain."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_antenna_gain_metadata)

    _set_antenna_gain_metadata = { "offset" : _set_antenna_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @antenna_gain.setter
    def antenna_gain(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelMedium._metadata, TransmitterModelMedium._set_antenna_gain_metadata, value)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(TransmitterModelMedium._metadata, TransmitterModelMedium._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(TransmitterModelMedium._metadata, TransmitterModelMedium._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_polarization_metadata)

    _get_post_transmit_gains_losses_metadata = { "offset" : _get_post_transmit_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def post_transmit_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional post transmit gains and losses."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_post_transmit_gains_losses_metadata)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(TransmitterModelMedium._metadata, TransmitterModelMedium._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on TransmitterModelMedium instead. Gets an array of supported filter model names."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on TransmitterModelMedium instead. Sets the current filter model by name."""
        return self._intf.invoke(TransmitterModelMedium._metadata, TransmitterModelMedium._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on TransmitterModelMedium instead. Gets the current filter model."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_filter_metadata)

    _get_supported_modulators_metadata = { "offset" : _get_supported_modulators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_modulators(self) -> list:
        """Get an array of supported modulator model names."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_supported_modulators_metadata)

    _set_modulator_metadata = { "offset" : _set_modulator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_modulator(self, name:str) -> None:
        """Set the current modulator model by name."""
        return self._intf.invoke(TransmitterModelMedium._metadata, TransmitterModelMedium._set_modulator_metadata, name)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "IModulatorModel":
        """Get the current modulator model."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_modulator_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(TransmitterModelMedium._metadata, TransmitterModelMedium._get_filter_component_linking_metadata)

    _property_names[frequency] = "frequency"
    _property_names[data_rate] = "data_rate"
    _property_names[power] = "power"
    _property_names[antenna_gain] = "antenna_gain"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[post_transmit_gains_losses] = "post_transmit_gains_losses"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[supported_modulators] = "supported_modulators"
    _property_names[modulator] = "modulator"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type TransmitterModelMedium."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransmitterModelMedium)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterModelMedium, [TransmitterModelMedium, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5006109088098945810, 5952847989787441026), TransmitterModelMedium)
agcls.AgTypeNameMap["TransmitterModelMedium"] = TransmitterModelMedium

class TransmitterModelComplex(ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a complex transmitter model."""

    _num_methods = 21
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_frequency_method_offset = 1
    _set_frequency_method_offset = 2
    _get_data_rate_method_offset = 3
    _set_data_rate_method_offset = 4
    _get_power_method_offset = 5
    _set_power_method_offset = 6
    _get_antenna_control_method_offset = 7
    _get_enable_polarization_method_offset = 8
    _set_enable_polarization_method_offset = 9
    _set_polarization_type_method_offset = 10
    _get_polarization_method_offset = 11
    _get_post_transmit_gains_losses_method_offset = 12
    _get_enable_filter_method_offset = 13
    _set_enable_filter_method_offset = 14
    _get_supported_filters_method_offset = 15
    _set_filter_method_offset = 16
    _get_filter_method_offset = 17
    _get_supported_modulators_method_offset = 18
    _set_modulator_method_offset = 19
    _get_modulator_method_offset = 20
    _get_filter_component_linking_method_offset = 21
    _metadata = {
        "iid_data" : (5009068642796529695, 3407995238735219086),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransmitterModelComplex)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the carrier frequency."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelComplex._metadata, TransmitterModelComplex._set_frequency_metadata, value)

    _get_data_rate_metadata = { "offset" : _get_data_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def data_rate(self) -> float:
        """Get or set the data rate."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_data_rate_metadata)

    _set_data_rate_metadata = { "offset" : _set_data_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @data_rate.setter
    def data_rate(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelComplex._metadata, TransmitterModelComplex._set_data_rate_metadata, value)

    _get_power_metadata = { "offset" : _get_power_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def power(self) -> float:
        """Get or set the power."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_power_metadata)

    _set_power_metadata = { "offset" : _set_power_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @power.setter
    def power(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelComplex._metadata, TransmitterModelComplex._set_power_metadata, value)

    _get_antenna_control_metadata = { "offset" : _get_antenna_control_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_control(self) -> "AntennaControl":
        """Get the receiver antenna control."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_antenna_control_metadata)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(TransmitterModelComplex._metadata, TransmitterModelComplex._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(TransmitterModelComplex._metadata, TransmitterModelComplex._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_polarization_metadata)

    _get_post_transmit_gains_losses_metadata = { "offset" : _get_post_transmit_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def post_transmit_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional post transmit gains and losses."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_post_transmit_gains_losses_metadata)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(TransmitterModelComplex._metadata, TransmitterModelComplex._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on TransmitterModelComplex instead. Gets an array of supported filter model names."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on TransmitterModelComplex instead. Sets the current filter model by name."""
        return self._intf.invoke(TransmitterModelComplex._metadata, TransmitterModelComplex._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on TransmitterModelComplex instead. Gets the current filter model."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_filter_metadata)

    _get_supported_modulators_metadata = { "offset" : _get_supported_modulators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_modulators(self) -> list:
        """Get an array of supported modulator model names."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_supported_modulators_metadata)

    _set_modulator_metadata = { "offset" : _set_modulator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_modulator(self, name:str) -> None:
        """Set the current modulator model by name."""
        return self._intf.invoke(TransmitterModelComplex._metadata, TransmitterModelComplex._set_modulator_metadata, name)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "IModulatorModel":
        """Get the current modulator model."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_modulator_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(TransmitterModelComplex._metadata, TransmitterModelComplex._get_filter_component_linking_metadata)

    _property_names[frequency] = "frequency"
    _property_names[data_rate] = "data_rate"
    _property_names[power] = "power"
    _property_names[antenna_control] = "antenna_control"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[post_transmit_gains_losses] = "post_transmit_gains_losses"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[supported_modulators] = "supported_modulators"
    _property_names[modulator] = "modulator"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type TransmitterModelComplex."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransmitterModelComplex)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterModelComplex, [TransmitterModelComplex, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4689762373870295482, 12943632618810715015), TransmitterModelComplex)
agcls.AgTypeNameMap["TransmitterModelComplex"] = TransmitterModelComplex

class TransmitterModelMultibeam(ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a multibeam transmitter model."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_data_rate_method_offset = 1
    _set_data_rate_method_offset = 2
    _get_post_transmit_gains_losses_method_offset = 3
    _get_enable_filter_method_offset = 4
    _set_enable_filter_method_offset = 5
    _get_supported_filters_method_offset = 6
    _set_filter_method_offset = 7
    _get_filter_method_offset = 8
    _get_supported_modulators_method_offset = 9
    _set_modulator_method_offset = 10
    _get_modulator_method_offset = 11
    _get_antenna_system_method_offset = 12
    _get_filter_component_linking_method_offset = 13
    _metadata = {
        "iid_data" : (5135883292415939949, 17514949346097987486),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransmitterModelMultibeam)

    _get_data_rate_metadata = { "offset" : _get_data_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def data_rate(self) -> float:
        """Get or set the data rate."""
        return self._intf.get_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._get_data_rate_metadata)

    _set_data_rate_metadata = { "offset" : _set_data_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @data_rate.setter
    def data_rate(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._set_data_rate_metadata, value)

    _get_post_transmit_gains_losses_metadata = { "offset" : _get_post_transmit_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def post_transmit_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional post transmit gains and losses."""
        return self._intf.get_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._get_post_transmit_gains_losses_metadata)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on TransmitterModelMultibeam instead. Gets an array of supported filter model names."""
        return self._intf.get_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on TransmitterModelMultibeam instead. Sets the current filter model by name."""
        return self._intf.invoke(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on TransmitterModelMultibeam instead. Gets the current filter model."""
        return self._intf.get_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._get_filter_metadata)

    _get_supported_modulators_metadata = { "offset" : _get_supported_modulators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_modulators(self) -> list:
        """Get an array of supported modulator model names."""
        return self._intf.get_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._get_supported_modulators_metadata)

    _set_modulator_metadata = { "offset" : _set_modulator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_modulator(self, name:str) -> None:
        """Set the current modulator model by name."""
        return self._intf.invoke(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._set_modulator_metadata, name)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "IModulatorModel":
        """Get the current modulator model."""
        return self._intf.get_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._get_modulator_metadata)

    _get_antenna_system_metadata = { "offset" : _get_antenna_system_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_system(self) -> "AntennaSystem":
        """Get the antenna system."""
        return self._intf.get_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._get_antenna_system_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(TransmitterModelMultibeam._metadata, TransmitterModelMultibeam._get_filter_component_linking_metadata)

    _property_names[data_rate] = "data_rate"
    _property_names[post_transmit_gains_losses] = "post_transmit_gains_losses"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[supported_modulators] = "supported_modulators"
    _property_names[modulator] = "modulator"
    _property_names[antenna_system] = "antenna_system"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type TransmitterModelMultibeam."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransmitterModelMultibeam)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterModelMultibeam, [TransmitterModelMultibeam, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5195002493679408483, 321004762215127952), TransmitterModelMultibeam)
agcls.AgTypeNameMap["TransmitterModelMultibeam"] = TransmitterModelMultibeam

class TransmitterModelLaser(ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a laser transmitter model."""

    _num_methods = 21
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_frequency_method_offset = 1
    _set_frequency_method_offset = 2
    _get_data_rate_method_offset = 3
    _set_data_rate_method_offset = 4
    _get_power_method_offset = 5
    _set_power_method_offset = 6
    _get_antenna_control_method_offset = 7
    _get_enable_polarization_method_offset = 8
    _set_enable_polarization_method_offset = 9
    _set_polarization_type_method_offset = 10
    _get_polarization_method_offset = 11
    _get_post_transmit_gains_losses_method_offset = 12
    _get_enable_filter_method_offset = 13
    _set_enable_filter_method_offset = 14
    _get_supported_filters_method_offset = 15
    _set_filter_method_offset = 16
    _get_filter_method_offset = 17
    _get_supported_modulators_method_offset = 18
    _set_modulator_method_offset = 19
    _get_modulator_method_offset = 20
    _get_filter_component_linking_method_offset = 21
    _metadata = {
        "iid_data" : (4879252418498505465, 8116288264430686613),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransmitterModelLaser)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the carrier frequency."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelLaser._metadata, TransmitterModelLaser._set_frequency_metadata, value)

    _get_data_rate_metadata = { "offset" : _get_data_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def data_rate(self) -> float:
        """Get or set the data rate."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_data_rate_metadata)

    _set_data_rate_metadata = { "offset" : _set_data_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @data_rate.setter
    def data_rate(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelLaser._metadata, TransmitterModelLaser._set_data_rate_metadata, value)

    _get_power_metadata = { "offset" : _get_power_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def power(self) -> float:
        """Get or set the power."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_power_metadata)

    _set_power_metadata = { "offset" : _set_power_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @power.setter
    def power(self, value:float) -> None:
        return self._intf.set_property(TransmitterModelLaser._metadata, TransmitterModelLaser._set_power_metadata, value)

    _get_antenna_control_metadata = { "offset" : _get_antenna_control_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_control(self) -> "AntennaControl":
        """Get the receiver antenna control."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_antenna_control_metadata)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(TransmitterModelLaser._metadata, TransmitterModelLaser._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(TransmitterModelLaser._metadata, TransmitterModelLaser._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_polarization_metadata)

    _get_post_transmit_gains_losses_metadata = { "offset" : _get_post_transmit_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def post_transmit_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional post transmit gains and losses."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_post_transmit_gains_losses_metadata)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(TransmitterModelLaser._metadata, TransmitterModelLaser._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on TransmitterModelLaser instead. Gets an array of supported filter model names."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on TransmitterModelLaser instead. Sets the current filter model by name."""
        return self._intf.invoke(TransmitterModelLaser._metadata, TransmitterModelLaser._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on TransmitterModelLaser instead. Gets the current filter model."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_filter_metadata)

    _get_supported_modulators_metadata = { "offset" : _get_supported_modulators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_modulators(self) -> list:
        """Get an array of supported modulator model names."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_supported_modulators_metadata)

    _set_modulator_metadata = { "offset" : _set_modulator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_modulator(self, name:str) -> None:
        """Set the current modulator model by name."""
        return self._intf.invoke(TransmitterModelLaser._metadata, TransmitterModelLaser._set_modulator_metadata, name)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "IModulatorModel":
        """Get the current modulator model."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_modulator_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(TransmitterModelLaser._metadata, TransmitterModelLaser._get_filter_component_linking_metadata)

    _property_names[frequency] = "frequency"
    _property_names[data_rate] = "data_rate"
    _property_names[power] = "power"
    _property_names[antenna_control] = "antenna_control"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[post_transmit_gains_losses] = "post_transmit_gains_losses"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[supported_modulators] = "supported_modulators"
    _property_names[modulator] = "modulator"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type TransmitterModelLaser."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransmitterModelLaser)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterModelLaser, [TransmitterModelLaser, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5749035926792084424, 1135624600603713435), TransmitterModelLaser)
agcls.AgTypeNameMap["TransmitterModelLaser"] = TransmitterModelLaser

class ReTransmitterModelSimple(IReTransmitterModel, ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a simple re-transmitter model."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_polarization_method_offset = 1
    _set_enable_polarization_method_offset = 2
    _set_polarization_type_method_offset = 3
    _get_polarization_method_offset = 4
    _get_post_transmit_gains_losses_method_offset = 5
    _get_enable_filter_method_offset = 6
    _set_enable_filter_method_offset = 7
    _get_supported_filters_method_offset = 8
    _set_filter_method_offset = 9
    _get_filter_method_offset = 10
    _get_saturated_eirp_method_offset = 11
    _set_saturated_eirp_method_offset = 12
    _get_filter_component_linking_method_offset = 13
    _metadata = {
        "iid_data" : (4680165595323592182, 1811551998954314114),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReTransmitterModelSimple)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._get_polarization_metadata)

    _get_post_transmit_gains_losses_metadata = { "offset" : _get_post_transmit_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def post_transmit_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional post transmit gains and losses."""
        return self._intf.get_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._get_post_transmit_gains_losses_metadata)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReTransmitterModelSimple instead. Gets an array of supported filter model names."""
        return self._intf.get_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on ReTransmitterModelSimple instead. Sets the current filter model by name."""
        return self._intf.invoke(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReTransmitterModelSimple instead. Gets the current filter model."""
        return self._intf.get_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._get_filter_metadata)

    _get_saturated_eirp_metadata = { "offset" : _get_saturated_eirp_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def saturated_eirp(self) -> float:
        """Get or set the saturated eirp."""
        return self._intf.get_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._get_saturated_eirp_metadata)

    _set_saturated_eirp_metadata = { "offset" : _set_saturated_eirp_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @saturated_eirp.setter
    def saturated_eirp(self, value:float) -> None:
        return self._intf.set_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._set_saturated_eirp_metadata, value)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(ReTransmitterModelSimple._metadata, ReTransmitterModelSimple._get_filter_component_linking_metadata)

    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[post_transmit_gains_losses] = "post_transmit_gains_losses"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[saturated_eirp] = "saturated_eirp"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type ReTransmitterModelSimple."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReTransmitterModelSimple)
        IReTransmitterModel.__init__(self, source_object)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReTransmitterModel._private_init(self, intf)
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReTransmitterModelSimple, [ReTransmitterModelSimple, IReTransmitterModel, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5519113049457665596, 13966241699804705442), ReTransmitterModelSimple)
agcls.AgTypeNameMap["ReTransmitterModelSimple"] = ReTransmitterModelSimple

class ReTransmitterModelMedium(IReTransmitterModel, ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a medium re-transmitter model."""

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_polarization_method_offset = 1
    _set_enable_polarization_method_offset = 2
    _set_polarization_type_method_offset = 3
    _get_polarization_method_offset = 4
    _get_post_transmit_gains_losses_method_offset = 5
    _get_enable_filter_method_offset = 6
    _set_enable_filter_method_offset = 7
    _get_supported_filters_method_offset = 8
    _set_filter_method_offset = 9
    _get_filter_method_offset = 10
    _get_saturated_power_method_offset = 11
    _set_saturated_power_method_offset = 12
    _get_antenna_gain_method_offset = 13
    _set_antenna_gain_method_offset = 14
    _get_filter_component_linking_method_offset = 15
    _metadata = {
        "iid_data" : (5115770705802815157, 9607805975860904609),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReTransmitterModelMedium)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._get_polarization_metadata)

    _get_post_transmit_gains_losses_metadata = { "offset" : _get_post_transmit_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def post_transmit_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional post transmit gains and losses."""
        return self._intf.get_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._get_post_transmit_gains_losses_metadata)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReTransmitterModelMedium instead. Gets an array of supported filter model names."""
        return self._intf.get_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on ReTransmitterModelMedium instead. Sets the current filter model by name."""
        return self._intf.invoke(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReTransmitterModelMedium instead. Gets the current filter model."""
        return self._intf.get_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._get_filter_metadata)

    _get_saturated_power_metadata = { "offset" : _get_saturated_power_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def saturated_power(self) -> float:
        """Get or set the saturated power."""
        return self._intf.get_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._get_saturated_power_metadata)

    _set_saturated_power_metadata = { "offset" : _set_saturated_power_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @saturated_power.setter
    def saturated_power(self, value:float) -> None:
        return self._intf.set_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._set_saturated_power_metadata, value)

    _get_antenna_gain_metadata = { "offset" : _get_antenna_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def antenna_gain(self) -> float:
        """Get or set the antenna gain."""
        return self._intf.get_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._get_antenna_gain_metadata)

    _set_antenna_gain_metadata = { "offset" : _set_antenna_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @antenna_gain.setter
    def antenna_gain(self, value:float) -> None:
        return self._intf.set_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._set_antenna_gain_metadata, value)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(ReTransmitterModelMedium._metadata, ReTransmitterModelMedium._get_filter_component_linking_metadata)

    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[post_transmit_gains_losses] = "post_transmit_gains_losses"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[saturated_power] = "saturated_power"
    _property_names[antenna_gain] = "antenna_gain"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type ReTransmitterModelMedium."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReTransmitterModelMedium)
        IReTransmitterModel.__init__(self, source_object)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReTransmitterModel._private_init(self, intf)
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReTransmitterModelMedium, [ReTransmitterModelMedium, IReTransmitterModel, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4958417654991612349, 2188383959730085553), ReTransmitterModelMedium)
agcls.AgTypeNameMap["ReTransmitterModelMedium"] = ReTransmitterModelMedium

class ReTransmitterModelComplex(IReTransmitterModel, ITransmitterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a complex re-transmitter model."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_polarization_method_offset = 1
    _set_enable_polarization_method_offset = 2
    _set_polarization_type_method_offset = 3
    _get_polarization_method_offset = 4
    _get_post_transmit_gains_losses_method_offset = 5
    _get_enable_filter_method_offset = 6
    _set_enable_filter_method_offset = 7
    _get_supported_filters_method_offset = 8
    _set_filter_method_offset = 9
    _get_filter_method_offset = 10
    _get_saturated_power_method_offset = 11
    _set_saturated_power_method_offset = 12
    _get_antenna_control_method_offset = 13
    _get_filter_component_linking_method_offset = 14
    _metadata = {
        "iid_data" : (5033173928320333665, 4753057890763192246),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReTransmitterModelComplex)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._get_polarization_metadata)

    _get_post_transmit_gains_losses_metadata = { "offset" : _get_post_transmit_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def post_transmit_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional post transmit gains and losses."""
        return self._intf.get_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._get_post_transmit_gains_losses_metadata)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReTransmitterModelComplex instead. Gets an array of supported filter model names."""
        return self._intf.get_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on ReTransmitterModelComplex instead. Sets the current filter model by name."""
        return self._intf.invoke(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReTransmitterModelComplex instead. Gets the current filter model."""
        return self._intf.get_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._get_filter_metadata)

    _get_saturated_power_metadata = { "offset" : _get_saturated_power_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def saturated_power(self) -> float:
        """Get or set the saturated power."""
        return self._intf.get_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._get_saturated_power_metadata)

    _set_saturated_power_metadata = { "offset" : _set_saturated_power_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @saturated_power.setter
    def saturated_power(self, value:float) -> None:
        return self._intf.set_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._set_saturated_power_metadata, value)

    _get_antenna_control_metadata = { "offset" : _get_antenna_control_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_control(self) -> "AntennaControl":
        """Get the receiver antenna control."""
        return self._intf.get_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._get_antenna_control_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(ReTransmitterModelComplex._metadata, ReTransmitterModelComplex._get_filter_component_linking_metadata)

    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[post_transmit_gains_losses] = "post_transmit_gains_losses"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[saturated_power] = "saturated_power"
    _property_names[antenna_control] = "antenna_control"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type ReTransmitterModelComplex."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReTransmitterModelComplex)
        IReTransmitterModel.__init__(self, source_object)
        ITransmitterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReTransmitterModel._private_init(self, intf)
        ITransmitterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReTransmitterModelComplex, [ReTransmitterModelComplex, IReTransmitterModel, ITransmitterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5050854196824712921, 9192611951345814169), ReTransmitterModelComplex)
agcls.AgTypeNameMap["ReTransmitterModelComplex"] = ReTransmitterModelComplex

class TransmitterGraphics3D(SupportsDeleteCallback):
    """TransmitterGraphics3D Interface for a transmitter's 3D Graphics properties."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_vector_method_offset = 1
    _get_show_boresight_method_offset = 2
    _set_show_boresight_method_offset = 3
    _get_show_contours_method_offset = 4
    _set_show_contours_method_offset = 5
    _get_volume_method_offset = 6
    _metadata = {
        "iid_data" : (5175035307435428095, 16705816728165307028),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransmitterGraphics3D)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get the transmitter's Vector properties."""
        return self._intf.get_property(TransmitterGraphics3D._metadata, TransmitterGraphics3D._get_vector_metadata)

    _get_show_boresight_metadata = { "offset" : _get_show_boresight_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boresight(self) -> bool:
        """Opt whether to display boresight graphics for the transmitter's antenna."""
        return self._intf.get_property(TransmitterGraphics3D._metadata, TransmitterGraphics3D._get_show_boresight_metadata)

    _set_show_boresight_metadata = { "offset" : _set_show_boresight_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boresight.setter
    def show_boresight(self, value:bool) -> None:
        return self._intf.set_property(TransmitterGraphics3D._metadata, TransmitterGraphics3D._set_show_boresight_metadata, value)

    _get_show_contours_metadata = { "offset" : _get_show_contours_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_contours(self) -> bool:
        """Opt whether to display contour graphics for the transmitter's antenna."""
        return self._intf.get_property(TransmitterGraphics3D._metadata, TransmitterGraphics3D._get_show_contours_metadata)

    _set_show_contours_metadata = { "offset" : _set_show_contours_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_contours.setter
    def show_contours(self, value:bool) -> None:
        return self._intf.set_property(TransmitterGraphics3D._metadata, TransmitterGraphics3D._set_show_contours_metadata, value)

    _get_volume_metadata = { "offset" : _get_volume_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def volume(self) -> "AntennaVolumeGraphics":
        """Get the transmitter's antenna volume graphics interface."""
        return self._intf.get_property(TransmitterGraphics3D._metadata, TransmitterGraphics3D._get_volume_metadata)

    _property_names[vector] = "vector"
    _property_names[show_boresight] = "show_boresight"
    _property_names[show_contours] = "show_contours"
    _property_names[volume] = "volume"

    def __init__(self, source_object=None):
        """Construct an object of type TransmitterGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransmitterGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterGraphics3D, [TransmitterGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5625292976799151370, 2707212295709368966), TransmitterGraphics3D)
agcls.AgTypeNameMap["TransmitterGraphics3D"] = TransmitterGraphics3D

class TransmitterGraphics(SupportsDeleteCallback):
    """TransmitterGraphics Interface for a transmitter's 2D Graphics properties."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _get_show_boresight_method_offset = 3
    _set_show_boresight_method_offset = 4
    _get_boresight_color_method_offset = 5
    _set_boresight_color_method_offset = 6
    _get_boresight_marker_style_method_offset = 7
    _set_boresight_marker_style_method_offset = 8
    _get_contour_graphics_method_offset = 9
    _metadata = {
        "iid_data" : (5582102977767820575, 1879926425611025820),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransmitterGraphics)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Opt whether to display graphics for the transmitter object."""
        return self._intf.get_property(TransmitterGraphics._metadata, TransmitterGraphics._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, value:bool) -> None:
        return self._intf.set_property(TransmitterGraphics._metadata, TransmitterGraphics._set_show_metadata, value)

    _get_show_boresight_metadata = { "offset" : _get_show_boresight_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boresight(self) -> bool:
        """Opt whether to display boresight graphics for the transmitter's antenna."""
        return self._intf.get_property(TransmitterGraphics._metadata, TransmitterGraphics._get_show_boresight_metadata)

    _set_show_boresight_metadata = { "offset" : _set_show_boresight_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boresight.setter
    def show_boresight(self, value:bool) -> None:
        return self._intf.set_property(TransmitterGraphics._metadata, TransmitterGraphics._set_show_boresight_metadata, value)

    _get_boresight_color_metadata = { "offset" : _get_boresight_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def boresight_color(self) -> agcolor.Color:
        """The color in which boresight graphics display."""
        return self._intf.get_property(TransmitterGraphics._metadata, TransmitterGraphics._get_boresight_color_metadata)

    _set_boresight_color_metadata = { "offset" : _set_boresight_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @boresight_color.setter
    def boresight_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(TransmitterGraphics._metadata, TransmitterGraphics._set_boresight_color_metadata, value)

    _get_boresight_marker_style_metadata = { "offset" : _get_boresight_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def boresight_marker_style(self) -> str:
        """The marker style used to represent the boresight graphically."""
        return self._intf.get_property(TransmitterGraphics._metadata, TransmitterGraphics._get_boresight_marker_style_metadata)

    _set_boresight_marker_style_metadata = { "offset" : _set_boresight_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @boresight_marker_style.setter
    def boresight_marker_style(self, value:str) -> None:
        return self._intf.set_property(TransmitterGraphics._metadata, TransmitterGraphics._set_boresight_marker_style_metadata, value)

    _get_contour_graphics_metadata = { "offset" : _get_contour_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def contour_graphics(self) -> "AntennaContourGraphics":
        """Get the transmitter's antenna contour graphics interface."""
        return self._intf.get_property(TransmitterGraphics._metadata, TransmitterGraphics._get_contour_graphics_metadata)

    _property_names[show] = "show"
    _property_names[show_boresight] = "show_boresight"
    _property_names[boresight_color] = "boresight_color"
    _property_names[boresight_marker_style] = "boresight_marker_style"
    _property_names[contour_graphics] = "contour_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type TransmitterGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransmitterGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransmitterGraphics, [TransmitterGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5707074763382922027, 11747913419258209197), TransmitterGraphics)
agcls.AgTypeNameMap["TransmitterGraphics"] = TransmitterGraphics

class Receiver(ISTKObject, ILifetimeInformation, IDisplayTime, SupportsDeleteCallback):
    """
    Provide access to the properties and methods defining an Receiver object.

    Examples
    --------
    Receiver additional Gain:
    >>> # Receiver receiver: Receiver object
    >>> recModel = receiver.model
    >>> gain = recModel.pre_receive_gains_losses.add(5)  # dB
    >>> gain.identifier = "Example Gain"

    Modify Receiver Filter Properties:
    >>> # Receiver receiver: Receiver object
    >>> recModel = receiver.model
    >>> recModel.enable_filter = True
    >>> recModel.set_filter("Bessel")
    >>> recFilter = recModel.filter
    >>> recFilter.lower_bandwidth_limit = -20
    >>> recFilter.upper_bandwidth_limit = 20
    >>> recFilter.cut_off_frequency = 10

    Modify Receiver Demodulator Properties:
    >>> # Receiver receiver: Receiver object
    >>> recModel = receiver.model
    >>> recModel.select_demodulator_automatically = False
    >>> recModel.set_demodulator("16PSK")

    Modify Receiver System Noise Temperature:
    >>> # Receiver receiver: Receiver object
    >>> receiver.set_model("Complex Receiver Model")
    >>> recModel = receiver.model
    >>> recModel.system_noise_temperature.constant_noise_temperature = 280  # K

    Modify Orientation of the Receiver Antenna:
    >>> # Complex receivers Only
    >>> # Receiver receiver: Receiver object
    >>> receiver.set_model("Complex Receiver Model")
    >>> recModel = receiver.model
    >>> antennaControl = recModel.antenna_control
    >>> antOrientation = antennaControl.embedded_model_orientation
    >>> antOrientation.assign_az_el(45, 85, AzElAboutBoresight.ROTATE)
    >>> antOrientation.position_offset.x = 0.5  # m
    >>> antOrientation.position_offset.y = 0.75  # m
    >>> antOrientation.position_offset.z = 1  # m

    Modify Receiver Polarization Properties:
    >>> # Receiver receiver: Receiver object
    >>> recModel = receiver.model
    >>> recModel.enable_polarization = True
    >>> recModel.set_polarization_type(PolarizationType.LINEAR)
    >>> polarization = recModel.polarization
    >>> polarization.reference_axis = PolarizationReferenceAxis.Z
    >>> polarization.cross_polarization_leakage = -60  # dB

    Modify Receiver Embedded Antenna:
    >>> # Receiver receiver: Receiver object
    >>> receiver.set_model("Complex Receiver Model")
    >>> recModel = receiver.model
    >>> antennaControl = recModel.antenna_control
    >>> antennaControl.set_embedded_model("Hemispherical")
    >>> antennaControl.embedded_model.efficiency = 85  # Percent

    Modify Receiver Model Type:
    >>> # Receiver receiver: Receiver object
    >>> receiver.set_model("Complex Receiver Model")
    >>> recModel = receiver.model
    >>> recModel.track_frequency_automatically = False
    >>> recModel.frequency = 11.81

    Create a New Receiver Object:
    >>> # ISTKObject satellite: STK object
    >>> receiver = satellite.children.new(STKObjectType.RECEIVER, "MyReceiver")
    """

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_models_method_offset = 1
    _set_model_method_offset = 2
    _get_model_method_offset = 3
    _get_refraction_method_offset = 4
    _set_refraction_method_offset = 5
    _is_refraction_type_supported_method_offset = 6
    _get_refraction_supported_types_method_offset = 7
    _get_refraction_model_method_offset = 8
    _get_use_refraction_in_access_method_offset = 9
    _set_use_refraction_in_access_method_offset = 10
    _get_graphics_3d_method_offset = 11
    _get_graphics_method_offset = 12
    _get_rf_environment_method_offset = 13
    _get_laser_environment_method_offset = 14
    _get_model_component_linking_method_offset = 15
    _metadata = {
        "iid_data" : (5366595838471974605, 17894134295630503317),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Receiver)

    _get_supported_models_metadata = { "offset" : _get_supported_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_models(self) -> list:
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on Receiver instead. Gets an array of supported model names."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_supported_models_metadata)

    _set_model_metadata = { "offset" : _set_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use ModelComponentLinking on Receiver instead. Sets the current receiver model by name."""
        return self._intf.invoke(Receiver._metadata, Receiver._set_model_metadata, model_name)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "IReceiverModel":
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on Receiver instead. Gets the current receiver model."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_model_metadata)

    _get_refraction_metadata = { "offset" : _get_refraction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType),) }
    @property
    def refraction(self) -> "SensorRefractionType":
        """Refraction method, a member of the SensorRefractionType enumeration."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_refraction_metadata)

    _set_refraction_metadata = { "offset" : _set_refraction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType),) }
    @refraction.setter
    def refraction(self, value:"SensorRefractionType") -> None:
        return self._intf.set_property(Receiver._metadata, Receiver._set_refraction_metadata, value)

    _is_refraction_type_supported_metadata = { "offset" : _is_refraction_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType), agmarshall.VariantBoolArg,) }
    def is_refraction_type_supported(self, model:"SensorRefractionType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(Receiver._metadata, Receiver._is_refraction_type_supported_metadata, model, OutArg())

    _get_refraction_supported_types_metadata = { "offset" : _get_refraction_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def refraction_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_refraction_supported_types_metadata)

    _get_refraction_model_metadata = { "offset" : _get_refraction_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def refraction_model(self) -> "IRefractionModelBase":
        """Get a refraction model."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_refraction_model_metadata)

    _get_use_refraction_in_access_metadata = { "offset" : _get_use_refraction_in_access_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_refraction_in_access(self) -> bool:
        """Flag controls whether refraction is applied when computing relative position in Access."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_use_refraction_in_access_metadata)

    _set_use_refraction_in_access_metadata = { "offset" : _set_use_refraction_in_access_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_refraction_in_access.setter
    def use_refraction_in_access(self, use_refraction_in_access:bool) -> None:
        return self._intf.set_property(Receiver._metadata, Receiver._set_use_refraction_in_access_metadata, use_refraction_in_access)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "ReceiverGraphics3D":
        """Get the 3D Graphics properties for the receiver."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_graphics_3d_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "ReceiverGraphics":
        """Get the 2D Graphics properties for the receiver."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_graphics_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "ObjectRFEnvironment":
        """Get the object RF environment settings."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_rf_environment_metadata)

    _get_laser_environment_metadata = { "offset" : _get_laser_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def laser_environment(self) -> "ObjectLaserEnvironment":
        """Get the object laser environment settings."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_laser_environment_metadata)

    _get_model_component_linking_metadata = { "offset" : _get_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the receiver model component."""
        return self._intf.get_property(Receiver._metadata, Receiver._get_model_component_linking_metadata)

    _property_names[supported_models] = "supported_models"
    _property_names[model] = "model"
    _property_names[refraction] = "refraction"
    _property_names[refraction_supported_types] = "refraction_supported_types"
    _property_names[refraction_model] = "refraction_model"
    _property_names[use_refraction_in_access] = "use_refraction_in_access"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[graphics] = "graphics"
    _property_names[rf_environment] = "rf_environment"
    _property_names[laser_environment] = "laser_environment"
    _property_names[model_component_linking] = "model_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type Receiver."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Receiver)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
        IDisplayTime.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
        IDisplayTime._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Receiver, [Receiver, ISTKObject, ILifetimeInformation, IDisplayTime])

agcls.AgClassCatalog.add_catalog_entry((5564326481420370552, 2128777629457706923), Receiver)
agcls.AgTypeNameMap["Receiver"] = Receiver

class ReceiverModel(IReceiverModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a generic receiver model."""
    def __init__(self, source_object=None):
        """Construct an object of type ReceiverModel."""
        SupportsDeleteCallback.__init__(self)
        IReceiverModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReceiverModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverModel, [IReceiverModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4717893157681479709, 16955603840026105013), ReceiverModel)
agcls.AgTypeNameMap["ReceiverModel"] = ReceiverModel

class ReceiverModelCable(IReceiverModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a cable receiver model."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_bit_error_rate_method_offset = 1
    _set_bit_error_rate_method_offset = 2
    _get_extra_cable_factor_method_offset = 3
    _set_extra_cable_factor_method_offset = 4
    _get_propagation_speed_factor_method_offset = 5
    _set_propagation_speed_factor_method_offset = 6
    _metadata = {
        "iid_data" : (5224143350068730048, 15940634527086147764),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReceiverModelCable)

    _get_bit_error_rate_metadata = { "offset" : _get_bit_error_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bit_error_rate(self) -> float:
        """Get or set the BER."""
        return self._intf.get_property(ReceiverModelCable._metadata, ReceiverModelCable._get_bit_error_rate_metadata)

    _set_bit_error_rate_metadata = { "offset" : _set_bit_error_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bit_error_rate.setter
    def bit_error_rate(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelCable._metadata, ReceiverModelCable._set_bit_error_rate_metadata, value)

    _get_extra_cable_factor_metadata = { "offset" : _get_extra_cable_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def extra_cable_factor(self) -> float:
        """Get or set the extra cable factor."""
        return self._intf.get_property(ReceiverModelCable._metadata, ReceiverModelCable._get_extra_cable_factor_metadata)

    _set_extra_cable_factor_metadata = { "offset" : _set_extra_cable_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @extra_cable_factor.setter
    def extra_cable_factor(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelCable._metadata, ReceiverModelCable._set_extra_cable_factor_metadata, value)

    _get_propagation_speed_factor_metadata = { "offset" : _get_propagation_speed_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def propagation_speed_factor(self) -> float:
        """Get or set the propagation speed factor."""
        return self._intf.get_property(ReceiverModelCable._metadata, ReceiverModelCable._get_propagation_speed_factor_metadata)

    _set_propagation_speed_factor_metadata = { "offset" : _set_propagation_speed_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @propagation_speed_factor.setter
    def propagation_speed_factor(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelCable._metadata, ReceiverModelCable._set_propagation_speed_factor_metadata, value)

    _property_names[bit_error_rate] = "bit_error_rate"
    _property_names[extra_cable_factor] = "extra_cable_factor"
    _property_names[propagation_speed_factor] = "propagation_speed_factor"

    def __init__(self, source_object=None):
        """Construct an object of type ReceiverModelCable."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReceiverModelCable)
        IReceiverModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReceiverModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverModelCable, [ReceiverModelCable, IReceiverModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5724516391267019578, 16189503929797198230), ReceiverModelCable)
agcls.AgTypeNameMap["ReceiverModelCable"] = ReceiverModelCable

class ReceiverModelSimple(IReceiverModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a simple receiver model."""

    _num_methods = 34
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_filter_method_offset = 1
    _set_enable_filter_method_offset = 2
    _get_supported_filters_method_offset = 3
    _set_filter_method_offset = 4
    _get_filter_method_offset = 5
    _get_pre_receive_gains_losses_method_offset = 6
    _get_pre_demodulator_gains_losses_method_offset = 7
    _get_link_margin_method_offset = 8
    _get_scale_bandwidth_automatically_method_offset = 9
    _set_scale_bandwidth_automatically_method_offset = 10
    _get_bandwidth_method_offset = 11
    _set_bandwidth_method_offset = 12
    _get_select_demodulator_automatically_method_offset = 13
    _set_select_demodulator_automatically_method_offset = 14
    _get_supported_demodulators_method_offset = 15
    _set_demodulator_method_offset = 16
    _get_demodulator_method_offset = 17
    _get_use_rain_method_offset = 18
    _set_use_rain_method_offset = 19
    _get_supported_rain_outage_percent_values_method_offset = 20
    _get_rain_outage_percent_method_offset = 21
    _set_rain_outage_percent_method_offset = 22
    _get_enable_polarization_method_offset = 23
    _set_enable_polarization_method_offset = 24
    _set_polarization_type_method_offset = 25
    _get_polarization_method_offset = 26
    _get_track_frequency_automatically_method_offset = 27
    _set_track_frequency_automatically_method_offset = 28
    _get_frequency_method_offset = 29
    _set_frequency_method_offset = 30
    _get_g_over_t_method_offset = 31
    _set_g_over_t_method_offset = 32
    _get_interference_method_offset = 33
    _get_filter_component_linking_method_offset = 34
    _metadata = {
        "iid_data" : (5462444818847503418, 16311887521032263318),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReceiverModelSimple)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelSimple._metadata, ReceiverModelSimple._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReceiverModelSimple instead. Gets an array of supported filter model names."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on ReceiverModelSimple instead. Sets the current filter model by name."""
        return self._intf.invoke(ReceiverModelSimple._metadata, ReceiverModelSimple._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReceiverModelSimple instead. Gets the current filter model."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_filter_metadata)

    _get_pre_receive_gains_losses_metadata = { "offset" : _get_pre_receive_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_receive_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-receive gains and losses."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_pre_receive_gains_losses_metadata)

    _get_pre_demodulator_gains_losses_metadata = { "offset" : _get_pre_demodulator_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_demodulator_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-demod gains and losses."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_pre_demodulator_gains_losses_metadata)

    _get_link_margin_metadata = { "offset" : _get_link_margin_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def link_margin(self) -> "LinkMargin":
        """Get the interface for configuring the link margin computation parameters."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_link_margin_metadata)

    _get_scale_bandwidth_automatically_metadata = { "offset" : _get_scale_bandwidth_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def scale_bandwidth_automatically(self) -> bool:
        """Get or set the auto scale bandwidth option."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_scale_bandwidth_automatically_metadata)

    _set_scale_bandwidth_automatically_metadata = { "offset" : _set_scale_bandwidth_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @scale_bandwidth_automatically.setter
    def scale_bandwidth_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelSimple._metadata, ReceiverModelSimple._set_scale_bandwidth_automatically_metadata, value)

    _get_bandwidth_metadata = { "offset" : _get_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bandwidth(self) -> float:
        """Get or set the bandwidth."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_bandwidth_metadata)

    _set_bandwidth_metadata = { "offset" : _set_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bandwidth.setter
    def bandwidth(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelSimple._metadata, ReceiverModelSimple._set_bandwidth_metadata, value)

    _get_select_demodulator_automatically_metadata = { "offset" : _get_select_demodulator_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def select_demodulator_automatically(self) -> bool:
        """Get or set the auto select demodulator option."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_select_demodulator_automatically_metadata)

    _set_select_demodulator_automatically_metadata = { "offset" : _set_select_demodulator_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @select_demodulator_automatically.setter
    def select_demodulator_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelSimple._metadata, ReceiverModelSimple._set_select_demodulator_automatically_metadata, value)

    _get_supported_demodulators_metadata = { "offset" : _get_supported_demodulators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_demodulators(self) -> list:
        """Get an array of supported demodulator model names."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_supported_demodulators_metadata)

    _set_demodulator_metadata = { "offset" : _set_demodulator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_demodulator(self, name:str) -> None:
        """Set the current demodulator model by name."""
        return self._intf.invoke(ReceiverModelSimple._metadata, ReceiverModelSimple._set_demodulator_metadata, name)

    _get_demodulator_metadata = { "offset" : _get_demodulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def demodulator(self) -> "IDemodulatorModel":
        """Get the current demodulator model."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_demodulator_metadata)

    _get_use_rain_metadata = { "offset" : _get_use_rain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_rain(self) -> bool:
        """Get or set the option for computing rain loss."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_use_rain_metadata)

    _set_use_rain_metadata = { "offset" : _set_use_rain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_rain.setter
    def use_rain(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelSimple._metadata, ReceiverModelSimple._set_use_rain_metadata, value)

    _get_supported_rain_outage_percent_values_metadata = { "offset" : _get_supported_rain_outage_percent_values_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_rain_outage_percent_values(self) -> list:
        """Get an array of supported rain outage percent values."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_supported_rain_outage_percent_values_metadata)

    _get_rain_outage_percent_metadata = { "offset" : _get_rain_outage_percent_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def rain_outage_percent(self) -> float:
        """Get or set the rain outage percent."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_rain_outage_percent_metadata)

    _set_rain_outage_percent_metadata = { "offset" : _set_rain_outage_percent_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @rain_outage_percent.setter
    def rain_outage_percent(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelSimple._metadata, ReceiverModelSimple._set_rain_outage_percent_metadata, value)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelSimple._metadata, ReceiverModelSimple._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(ReceiverModelSimple._metadata, ReceiverModelSimple._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_polarization_metadata)

    _get_track_frequency_automatically_metadata = { "offset" : _get_track_frequency_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def track_frequency_automatically(self) -> bool:
        """Get or set the auto track frequency option."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_track_frequency_automatically_metadata)

    _set_track_frequency_automatically_metadata = { "offset" : _set_track_frequency_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @track_frequency_automatically.setter
    def track_frequency_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelSimple._metadata, ReceiverModelSimple._set_track_frequency_automatically_metadata, value)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the frequency."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelSimple._metadata, ReceiverModelSimple._set_frequency_metadata, value)

    _get_g_over_t_metadata = { "offset" : _get_g_over_t_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def g_over_t(self) -> float:
        """Get or set the G/T."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_g_over_t_metadata)

    _set_g_over_t_metadata = { "offset" : _set_g_over_t_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @g_over_t.setter
    def g_over_t(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelSimple._metadata, ReceiverModelSimple._set_g_over_t_metadata, value)

    _get_interference_metadata = { "offset" : _get_interference_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def interference(self) -> "RFInterference":
        """Get the radio frequency interference."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_interference_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(ReceiverModelSimple._metadata, ReceiverModelSimple._get_filter_component_linking_metadata)

    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[pre_receive_gains_losses] = "pre_receive_gains_losses"
    _property_names[pre_demodulator_gains_losses] = "pre_demodulator_gains_losses"
    _property_names[link_margin] = "link_margin"
    _property_names[scale_bandwidth_automatically] = "scale_bandwidth_automatically"
    _property_names[bandwidth] = "bandwidth"
    _property_names[select_demodulator_automatically] = "select_demodulator_automatically"
    _property_names[supported_demodulators] = "supported_demodulators"
    _property_names[demodulator] = "demodulator"
    _property_names[use_rain] = "use_rain"
    _property_names[supported_rain_outage_percent_values] = "supported_rain_outage_percent_values"
    _property_names[rain_outage_percent] = "rain_outage_percent"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[track_frequency_automatically] = "track_frequency_automatically"
    _property_names[frequency] = "frequency"
    _property_names[g_over_t] = "g_over_t"
    _property_names[interference] = "interference"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type ReceiverModelSimple."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReceiverModelSimple)
        IReceiverModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReceiverModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverModelSimple, [ReceiverModelSimple, IReceiverModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5404456220127649516, 16622378643509926074), ReceiverModelSimple)
agcls.AgTypeNameMap["ReceiverModelSimple"] = ReceiverModelSimple

class ReceiverModelMedium(IReceiverModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a medium receiver model."""

    _num_methods = 41
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_filter_method_offset = 1
    _set_enable_filter_method_offset = 2
    _get_supported_filters_method_offset = 3
    _set_filter_method_offset = 4
    _get_filter_method_offset = 5
    _get_pre_receive_gains_losses_method_offset = 6
    _get_pre_demodulator_gains_losses_method_offset = 7
    _get_link_margin_method_offset = 8
    _get_scale_bandwidth_automatically_method_offset = 9
    _set_scale_bandwidth_automatically_method_offset = 10
    _get_bandwidth_method_offset = 11
    _set_bandwidth_method_offset = 12
    _get_select_demodulator_automatically_method_offset = 13
    _set_select_demodulator_automatically_method_offset = 14
    _get_supported_demodulators_method_offset = 15
    _set_demodulator_method_offset = 16
    _get_demodulator_method_offset = 17
    _get_use_rain_method_offset = 18
    _set_use_rain_method_offset = 19
    _get_supported_rain_outage_percent_values_method_offset = 20
    _get_rain_outage_percent_method_offset = 21
    _set_rain_outage_percent_method_offset = 22
    _get_enable_polarization_method_offset = 23
    _set_enable_polarization_method_offset = 24
    _set_polarization_type_method_offset = 25
    _get_polarization_method_offset = 26
    _get_track_frequency_automatically_method_offset = 27
    _set_track_frequency_automatically_method_offset = 28
    _get_frequency_method_offset = 29
    _set_frequency_method_offset = 30
    _get_antenna_gain_method_offset = 31
    _set_antenna_gain_method_offset = 32
    _get_antenna_to_lna_line_loss_method_offset = 33
    _set_antenna_to_lna_line_loss_method_offset = 34
    _get_lna_gain_method_offset = 35
    _set_lna_gain_method_offset = 36
    _get_lna_to_receiver_line_loss_method_offset = 37
    _set_lna_to_receiver_line_loss_method_offset = 38
    _get_system_noise_temperature_method_offset = 39
    _get_interference_method_offset = 40
    _get_filter_component_linking_method_offset = 41
    _metadata = {
        "iid_data" : (4739169571120857750, 16723440510109131681),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReceiverModelMedium)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReceiverModelMedium instead. Gets an array of supported filter model names."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on ReceiverModelMedium instead. Sets the current filter model by name."""
        return self._intf.invoke(ReceiverModelMedium._metadata, ReceiverModelMedium._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReceiverModelMedium instead. Gets the current filter model."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_filter_metadata)

    _get_pre_receive_gains_losses_metadata = { "offset" : _get_pre_receive_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_receive_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-receive gains and losses."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_pre_receive_gains_losses_metadata)

    _get_pre_demodulator_gains_losses_metadata = { "offset" : _get_pre_demodulator_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_demodulator_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-demod gains and losses."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_pre_demodulator_gains_losses_metadata)

    _get_link_margin_metadata = { "offset" : _get_link_margin_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def link_margin(self) -> "LinkMargin":
        """Get the interface for configuring the link margin computation parameters."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_link_margin_metadata)

    _get_scale_bandwidth_automatically_metadata = { "offset" : _get_scale_bandwidth_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def scale_bandwidth_automatically(self) -> bool:
        """Get or set the auto scale bandwidth option."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_scale_bandwidth_automatically_metadata)

    _set_scale_bandwidth_automatically_metadata = { "offset" : _set_scale_bandwidth_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @scale_bandwidth_automatically.setter
    def scale_bandwidth_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_scale_bandwidth_automatically_metadata, value)

    _get_bandwidth_metadata = { "offset" : _get_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bandwidth(self) -> float:
        """Get or set the bandwidth."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_bandwidth_metadata)

    _set_bandwidth_metadata = { "offset" : _set_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bandwidth.setter
    def bandwidth(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_bandwidth_metadata, value)

    _get_select_demodulator_automatically_metadata = { "offset" : _get_select_demodulator_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def select_demodulator_automatically(self) -> bool:
        """Get or set the auto select demodulator option."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_select_demodulator_automatically_metadata)

    _set_select_demodulator_automatically_metadata = { "offset" : _set_select_demodulator_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @select_demodulator_automatically.setter
    def select_demodulator_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_select_demodulator_automatically_metadata, value)

    _get_supported_demodulators_metadata = { "offset" : _get_supported_demodulators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_demodulators(self) -> list:
        """Get an array of supported demodulator model names."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_supported_demodulators_metadata)

    _set_demodulator_metadata = { "offset" : _set_demodulator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_demodulator(self, name:str) -> None:
        """Set the current demodulator model by name."""
        return self._intf.invoke(ReceiverModelMedium._metadata, ReceiverModelMedium._set_demodulator_metadata, name)

    _get_demodulator_metadata = { "offset" : _get_demodulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def demodulator(self) -> "IDemodulatorModel":
        """Get the current demodulator model."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_demodulator_metadata)

    _get_use_rain_metadata = { "offset" : _get_use_rain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_rain(self) -> bool:
        """Get or set the option for computing rain loss."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_use_rain_metadata)

    _set_use_rain_metadata = { "offset" : _set_use_rain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_rain.setter
    def use_rain(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_use_rain_metadata, value)

    _get_supported_rain_outage_percent_values_metadata = { "offset" : _get_supported_rain_outage_percent_values_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_rain_outage_percent_values(self) -> list:
        """Get an array of supported rain outage percent values."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_supported_rain_outage_percent_values_metadata)

    _get_rain_outage_percent_metadata = { "offset" : _get_rain_outage_percent_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def rain_outage_percent(self) -> float:
        """Get or set the rain outage percent."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_rain_outage_percent_metadata)

    _set_rain_outage_percent_metadata = { "offset" : _set_rain_outage_percent_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @rain_outage_percent.setter
    def rain_outage_percent(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_rain_outage_percent_metadata, value)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(ReceiverModelMedium._metadata, ReceiverModelMedium._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_polarization_metadata)

    _get_track_frequency_automatically_metadata = { "offset" : _get_track_frequency_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def track_frequency_automatically(self) -> bool:
        """Get or set the auto track frequency option."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_track_frequency_automatically_metadata)

    _set_track_frequency_automatically_metadata = { "offset" : _set_track_frequency_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @track_frequency_automatically.setter
    def track_frequency_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_track_frequency_automatically_metadata, value)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the frequency."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_frequency_metadata, value)

    _get_antenna_gain_metadata = { "offset" : _get_antenna_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def antenna_gain(self) -> float:
        """Get or set the antennaGain."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_antenna_gain_metadata)

    _set_antenna_gain_metadata = { "offset" : _set_antenna_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @antenna_gain.setter
    def antenna_gain(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_antenna_gain_metadata, value)

    _get_antenna_to_lna_line_loss_metadata = { "offset" : _get_antenna_to_lna_line_loss_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def antenna_to_lna_line_loss(self) -> float:
        """Get or set the antenna to LNA line loss."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_antenna_to_lna_line_loss_metadata)

    _set_antenna_to_lna_line_loss_metadata = { "offset" : _set_antenna_to_lna_line_loss_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @antenna_to_lna_line_loss.setter
    def antenna_to_lna_line_loss(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_antenna_to_lna_line_loss_metadata, value)

    _get_lna_gain_metadata = { "offset" : _get_lna_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_gain(self) -> float:
        """Get or set the LNA gain."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_lna_gain_metadata)

    _set_lna_gain_metadata = { "offset" : _set_lna_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_gain.setter
    def lna_gain(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_lna_gain_metadata, value)

    _get_lna_to_receiver_line_loss_metadata = { "offset" : _get_lna_to_receiver_line_loss_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_to_receiver_line_loss(self) -> float:
        """Get or set the LNA to receiver line loss."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_lna_to_receiver_line_loss_metadata)

    _set_lna_to_receiver_line_loss_metadata = { "offset" : _set_lna_to_receiver_line_loss_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_to_receiver_line_loss.setter
    def lna_to_receiver_line_loss(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMedium._metadata, ReceiverModelMedium._set_lna_to_receiver_line_loss_metadata, value)

    _get_system_noise_temperature_metadata = { "offset" : _get_system_noise_temperature_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def system_noise_temperature(self) -> "SystemNoiseTemperature":
        """Get the system noise temperature interface."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_system_noise_temperature_metadata)

    _get_interference_metadata = { "offset" : _get_interference_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def interference(self) -> "RFInterference":
        """Get the radio frequency interference."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_interference_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(ReceiverModelMedium._metadata, ReceiverModelMedium._get_filter_component_linking_metadata)

    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[pre_receive_gains_losses] = "pre_receive_gains_losses"
    _property_names[pre_demodulator_gains_losses] = "pre_demodulator_gains_losses"
    _property_names[link_margin] = "link_margin"
    _property_names[scale_bandwidth_automatically] = "scale_bandwidth_automatically"
    _property_names[bandwidth] = "bandwidth"
    _property_names[select_demodulator_automatically] = "select_demodulator_automatically"
    _property_names[supported_demodulators] = "supported_demodulators"
    _property_names[demodulator] = "demodulator"
    _property_names[use_rain] = "use_rain"
    _property_names[supported_rain_outage_percent_values] = "supported_rain_outage_percent_values"
    _property_names[rain_outage_percent] = "rain_outage_percent"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[track_frequency_automatically] = "track_frequency_automatically"
    _property_names[frequency] = "frequency"
    _property_names[antenna_gain] = "antenna_gain"
    _property_names[antenna_to_lna_line_loss] = "antenna_to_lna_line_loss"
    _property_names[lna_gain] = "lna_gain"
    _property_names[lna_to_receiver_line_loss] = "lna_to_receiver_line_loss"
    _property_names[system_noise_temperature] = "system_noise_temperature"
    _property_names[interference] = "interference"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type ReceiverModelMedium."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReceiverModelMedium)
        IReceiverModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReceiverModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverModelMedium, [ReceiverModelMedium, IReceiverModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5640912336619680911, 7419869866409663158), ReceiverModelMedium)
agcls.AgTypeNameMap["ReceiverModelMedium"] = ReceiverModelMedium

class ReceiverModelComplex(IReceiverModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a complex receiver model."""

    _num_methods = 40
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_filter_method_offset = 1
    _set_enable_filter_method_offset = 2
    _get_supported_filters_method_offset = 3
    _set_filter_method_offset = 4
    _get_filter_method_offset = 5
    _get_pre_receive_gains_losses_method_offset = 6
    _get_pre_demodulator_gains_losses_method_offset = 7
    _get_link_margin_method_offset = 8
    _get_scale_bandwidth_automatically_method_offset = 9
    _set_scale_bandwidth_automatically_method_offset = 10
    _get_bandwidth_method_offset = 11
    _set_bandwidth_method_offset = 12
    _get_select_demodulator_automatically_method_offset = 13
    _set_select_demodulator_automatically_method_offset = 14
    _get_supported_demodulators_method_offset = 15
    _set_demodulator_method_offset = 16
    _get_demodulator_method_offset = 17
    _get_use_rain_method_offset = 18
    _set_use_rain_method_offset = 19
    _get_supported_rain_outage_percent_values_method_offset = 20
    _get_rain_outage_percent_method_offset = 21
    _set_rain_outage_percent_method_offset = 22
    _get_enable_polarization_method_offset = 23
    _set_enable_polarization_method_offset = 24
    _set_polarization_type_method_offset = 25
    _get_polarization_method_offset = 26
    _get_track_frequency_automatically_method_offset = 27
    _set_track_frequency_automatically_method_offset = 28
    _get_frequency_method_offset = 29
    _set_frequency_method_offset = 30
    _get_antenna_control_method_offset = 31
    _get_antenna_to_lna_line_loss_method_offset = 32
    _set_antenna_to_lna_line_loss_method_offset = 33
    _get_lna_gain_method_offset = 34
    _set_lna_gain_method_offset = 35
    _get_lna_to_receiver_line_loss_method_offset = 36
    _set_lna_to_receiver_line_loss_method_offset = 37
    _get_system_noise_temperature_method_offset = 38
    _get_interference_method_offset = 39
    _get_filter_component_linking_method_offset = 40
    _metadata = {
        "iid_data" : (4937114217118235365, 952735035357579435),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReceiverModelComplex)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReceiverModelComplex instead. Gets an array of supported filter model names."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on ReceiverModelComplex instead. Sets the current filter model by name."""
        return self._intf.invoke(ReceiverModelComplex._metadata, ReceiverModelComplex._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReceiverModelComplex instead. Gets the current filter model."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_filter_metadata)

    _get_pre_receive_gains_losses_metadata = { "offset" : _get_pre_receive_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_receive_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-receive gains and losses."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_pre_receive_gains_losses_metadata)

    _get_pre_demodulator_gains_losses_metadata = { "offset" : _get_pre_demodulator_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_demodulator_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-demod gains and losses."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_pre_demodulator_gains_losses_metadata)

    _get_link_margin_metadata = { "offset" : _get_link_margin_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def link_margin(self) -> "LinkMargin":
        """Get the interface for configuring the link margin computation parameters."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_link_margin_metadata)

    _get_scale_bandwidth_automatically_metadata = { "offset" : _get_scale_bandwidth_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def scale_bandwidth_automatically(self) -> bool:
        """Get or set the auto scale bandwidth option."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_scale_bandwidth_automatically_metadata)

    _set_scale_bandwidth_automatically_metadata = { "offset" : _set_scale_bandwidth_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @scale_bandwidth_automatically.setter
    def scale_bandwidth_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_scale_bandwidth_automatically_metadata, value)

    _get_bandwidth_metadata = { "offset" : _get_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bandwidth(self) -> float:
        """Get or set the bandwidth."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_bandwidth_metadata)

    _set_bandwidth_metadata = { "offset" : _set_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bandwidth.setter
    def bandwidth(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_bandwidth_metadata, value)

    _get_select_demodulator_automatically_metadata = { "offset" : _get_select_demodulator_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def select_demodulator_automatically(self) -> bool:
        """Get or set the auto select demodulator option."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_select_demodulator_automatically_metadata)

    _set_select_demodulator_automatically_metadata = { "offset" : _set_select_demodulator_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @select_demodulator_automatically.setter
    def select_demodulator_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_select_demodulator_automatically_metadata, value)

    _get_supported_demodulators_metadata = { "offset" : _get_supported_demodulators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_demodulators(self) -> list:
        """Get an array of supported demodulator model names."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_supported_demodulators_metadata)

    _set_demodulator_metadata = { "offset" : _set_demodulator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_demodulator(self, name:str) -> None:
        """Set the current demodulator model by name."""
        return self._intf.invoke(ReceiverModelComplex._metadata, ReceiverModelComplex._set_demodulator_metadata, name)

    _get_demodulator_metadata = { "offset" : _get_demodulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def demodulator(self) -> "IDemodulatorModel":
        """Get the current demodulator model."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_demodulator_metadata)

    _get_use_rain_metadata = { "offset" : _get_use_rain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_rain(self) -> bool:
        """Get or set the option for computing rain loss."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_use_rain_metadata)

    _set_use_rain_metadata = { "offset" : _set_use_rain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_rain.setter
    def use_rain(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_use_rain_metadata, value)

    _get_supported_rain_outage_percent_values_metadata = { "offset" : _get_supported_rain_outage_percent_values_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_rain_outage_percent_values(self) -> list:
        """Get an array of supported rain outage percent values."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_supported_rain_outage_percent_values_metadata)

    _get_rain_outage_percent_metadata = { "offset" : _get_rain_outage_percent_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def rain_outage_percent(self) -> float:
        """Get or set the rain outage percent."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_rain_outage_percent_metadata)

    _set_rain_outage_percent_metadata = { "offset" : _set_rain_outage_percent_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @rain_outage_percent.setter
    def rain_outage_percent(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_rain_outage_percent_metadata, value)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(ReceiverModelComplex._metadata, ReceiverModelComplex._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_polarization_metadata)

    _get_track_frequency_automatically_metadata = { "offset" : _get_track_frequency_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def track_frequency_automatically(self) -> bool:
        """Get or set the auto track frequency option."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_track_frequency_automatically_metadata)

    _set_track_frequency_automatically_metadata = { "offset" : _set_track_frequency_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @track_frequency_automatically.setter
    def track_frequency_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_track_frequency_automatically_metadata, value)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the frequency."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_frequency_metadata, value)

    _get_antenna_control_metadata = { "offset" : _get_antenna_control_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_control(self) -> "AntennaControl":
        """Get the receiver antenna control."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_antenna_control_metadata)

    _get_antenna_to_lna_line_loss_metadata = { "offset" : _get_antenna_to_lna_line_loss_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def antenna_to_lna_line_loss(self) -> float:
        """Get or set the antenna to LNA line loss."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_antenna_to_lna_line_loss_metadata)

    _set_antenna_to_lna_line_loss_metadata = { "offset" : _set_antenna_to_lna_line_loss_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @antenna_to_lna_line_loss.setter
    def antenna_to_lna_line_loss(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_antenna_to_lna_line_loss_metadata, value)

    _get_lna_gain_metadata = { "offset" : _get_lna_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_gain(self) -> float:
        """Get or set the LNA gain."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_lna_gain_metadata)

    _set_lna_gain_metadata = { "offset" : _set_lna_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_gain.setter
    def lna_gain(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_lna_gain_metadata, value)

    _get_lna_to_receiver_line_loss_metadata = { "offset" : _get_lna_to_receiver_line_loss_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_to_receiver_line_loss(self) -> float:
        """Get or set the LNA to receiver line loss."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_lna_to_receiver_line_loss_metadata)

    _set_lna_to_receiver_line_loss_metadata = { "offset" : _set_lna_to_receiver_line_loss_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_to_receiver_line_loss.setter
    def lna_to_receiver_line_loss(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelComplex._metadata, ReceiverModelComplex._set_lna_to_receiver_line_loss_metadata, value)

    _get_system_noise_temperature_metadata = { "offset" : _get_system_noise_temperature_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def system_noise_temperature(self) -> "SystemNoiseTemperature":
        """Get the system noise temperature interface."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_system_noise_temperature_metadata)

    _get_interference_metadata = { "offset" : _get_interference_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def interference(self) -> "RFInterference":
        """Get the radio frequency interference."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_interference_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(ReceiverModelComplex._metadata, ReceiverModelComplex._get_filter_component_linking_metadata)

    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[pre_receive_gains_losses] = "pre_receive_gains_losses"
    _property_names[pre_demodulator_gains_losses] = "pre_demodulator_gains_losses"
    _property_names[link_margin] = "link_margin"
    _property_names[scale_bandwidth_automatically] = "scale_bandwidth_automatically"
    _property_names[bandwidth] = "bandwidth"
    _property_names[select_demodulator_automatically] = "select_demodulator_automatically"
    _property_names[supported_demodulators] = "supported_demodulators"
    _property_names[demodulator] = "demodulator"
    _property_names[use_rain] = "use_rain"
    _property_names[supported_rain_outage_percent_values] = "supported_rain_outage_percent_values"
    _property_names[rain_outage_percent] = "rain_outage_percent"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[track_frequency_automatically] = "track_frequency_automatically"
    _property_names[frequency] = "frequency"
    _property_names[antenna_control] = "antenna_control"
    _property_names[antenna_to_lna_line_loss] = "antenna_to_lna_line_loss"
    _property_names[lna_gain] = "lna_gain"
    _property_names[lna_to_receiver_line_loss] = "lna_to_receiver_line_loss"
    _property_names[system_noise_temperature] = "system_noise_temperature"
    _property_names[interference] = "interference"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type ReceiverModelComplex."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReceiverModelComplex)
        IReceiverModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReceiverModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverModelComplex, [ReceiverModelComplex, IReceiverModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4671199254775245826, 5853289307730239365), ReceiverModelComplex)
agcls.AgTypeNameMap["ReceiverModelComplex"] = ReceiverModelComplex

class ReceiverModelMultibeam(IReceiverModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a multibeam receiver model."""

    _num_methods = 34
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_filter_method_offset = 1
    _set_enable_filter_method_offset = 2
    _get_supported_filters_method_offset = 3
    _set_filter_method_offset = 4
    _get_filter_method_offset = 5
    _get_pre_receive_gains_losses_method_offset = 6
    _get_pre_demodulator_gains_losses_method_offset = 7
    _get_link_margin_method_offset = 8
    _get_scale_bandwidth_automatically_method_offset = 9
    _set_scale_bandwidth_automatically_method_offset = 10
    _get_bandwidth_method_offset = 11
    _set_bandwidth_method_offset = 12
    _get_select_demodulator_automatically_method_offset = 13
    _set_select_demodulator_automatically_method_offset = 14
    _get_supported_demodulators_method_offset = 15
    _set_demodulator_method_offset = 16
    _get_demodulator_method_offset = 17
    _get_use_rain_method_offset = 18
    _set_use_rain_method_offset = 19
    _get_supported_rain_outage_percent_values_method_offset = 20
    _get_rain_outage_percent_method_offset = 21
    _set_rain_outage_percent_method_offset = 22
    _get_track_frequency_automatically_method_offset = 23
    _set_track_frequency_automatically_method_offset = 24
    _get_antenna_to_lna_line_loss_method_offset = 25
    _set_antenna_to_lna_line_loss_method_offset = 26
    _get_lna_gain_method_offset = 27
    _set_lna_gain_method_offset = 28
    _get_lna_to_receiver_line_loss_method_offset = 29
    _set_lna_to_receiver_line_loss_method_offset = 30
    _get_system_noise_temperature_method_offset = 31
    _get_antenna_system_method_offset = 32
    _get_interference_method_offset = 33
    _get_filter_component_linking_method_offset = 34
    _metadata = {
        "iid_data" : (5292624021885231633, 11308843448311368091),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReceiverModelMultibeam)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReceiverModelMultibeam instead. Gets an array of supported filter model names."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on ReceiverModelMultibeam instead. Sets the current filter model by name."""
        return self._intf.invoke(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReceiverModelMultibeam instead. Gets the current filter model."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_filter_metadata)

    _get_pre_receive_gains_losses_metadata = { "offset" : _get_pre_receive_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_receive_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-receive gains and losses."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_pre_receive_gains_losses_metadata)

    _get_pre_demodulator_gains_losses_metadata = { "offset" : _get_pre_demodulator_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_demodulator_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-demod gains and losses."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_pre_demodulator_gains_losses_metadata)

    _get_link_margin_metadata = { "offset" : _get_link_margin_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def link_margin(self) -> "LinkMargin":
        """Get the interface for configuring the link margin computation parameters."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_link_margin_metadata)

    _get_scale_bandwidth_automatically_metadata = { "offset" : _get_scale_bandwidth_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def scale_bandwidth_automatically(self) -> bool:
        """Get or set the auto scale bandwidth option."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_scale_bandwidth_automatically_metadata)

    _set_scale_bandwidth_automatically_metadata = { "offset" : _set_scale_bandwidth_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @scale_bandwidth_automatically.setter
    def scale_bandwidth_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_scale_bandwidth_automatically_metadata, value)

    _get_bandwidth_metadata = { "offset" : _get_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bandwidth(self) -> float:
        """Get or set the bandwidth."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_bandwidth_metadata)

    _set_bandwidth_metadata = { "offset" : _set_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bandwidth.setter
    def bandwidth(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_bandwidth_metadata, value)

    _get_select_demodulator_automatically_metadata = { "offset" : _get_select_demodulator_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def select_demodulator_automatically(self) -> bool:
        """Get or set the auto select demodulator option."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_select_demodulator_automatically_metadata)

    _set_select_demodulator_automatically_metadata = { "offset" : _set_select_demodulator_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @select_demodulator_automatically.setter
    def select_demodulator_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_select_demodulator_automatically_metadata, value)

    _get_supported_demodulators_metadata = { "offset" : _get_supported_demodulators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_demodulators(self) -> list:
        """Get an array of supported demodulator model names."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_supported_demodulators_metadata)

    _set_demodulator_metadata = { "offset" : _set_demodulator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_demodulator(self, name:str) -> None:
        """Set the current demodulator model by name."""
        return self._intf.invoke(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_demodulator_metadata, name)

    _get_demodulator_metadata = { "offset" : _get_demodulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def demodulator(self) -> "IDemodulatorModel":
        """Get the current demodulator model."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_demodulator_metadata)

    _get_use_rain_metadata = { "offset" : _get_use_rain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_rain(self) -> bool:
        """Get or set the option for computing rain loss."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_use_rain_metadata)

    _set_use_rain_metadata = { "offset" : _set_use_rain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_rain.setter
    def use_rain(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_use_rain_metadata, value)

    _get_supported_rain_outage_percent_values_metadata = { "offset" : _get_supported_rain_outage_percent_values_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_rain_outage_percent_values(self) -> list:
        """Get an array of supported rain outage percent values."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_supported_rain_outage_percent_values_metadata)

    _get_rain_outage_percent_metadata = { "offset" : _get_rain_outage_percent_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def rain_outage_percent(self) -> float:
        """Get or set the rain outage percent."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_rain_outage_percent_metadata)

    _set_rain_outage_percent_metadata = { "offset" : _set_rain_outage_percent_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @rain_outage_percent.setter
    def rain_outage_percent(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_rain_outage_percent_metadata, value)

    _get_track_frequency_automatically_metadata = { "offset" : _get_track_frequency_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def track_frequency_automatically(self) -> bool:
        """Get or set the auto track frequency option."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_track_frequency_automatically_metadata)

    _set_track_frequency_automatically_metadata = { "offset" : _set_track_frequency_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @track_frequency_automatically.setter
    def track_frequency_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_track_frequency_automatically_metadata, value)

    _get_antenna_to_lna_line_loss_metadata = { "offset" : _get_antenna_to_lna_line_loss_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def antenna_to_lna_line_loss(self) -> float:
        """Get or set the antenna to LNA line loss."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_antenna_to_lna_line_loss_metadata)

    _set_antenna_to_lna_line_loss_metadata = { "offset" : _set_antenna_to_lna_line_loss_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @antenna_to_lna_line_loss.setter
    def antenna_to_lna_line_loss(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_antenna_to_lna_line_loss_metadata, value)

    _get_lna_gain_metadata = { "offset" : _get_lna_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_gain(self) -> float:
        """Get or set the LNA gain."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_lna_gain_metadata)

    _set_lna_gain_metadata = { "offset" : _set_lna_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_gain.setter
    def lna_gain(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_lna_gain_metadata, value)

    _get_lna_to_receiver_line_loss_metadata = { "offset" : _get_lna_to_receiver_line_loss_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_to_receiver_line_loss(self) -> float:
        """Get or set the LNA to receiver line loss."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_lna_to_receiver_line_loss_metadata)

    _set_lna_to_receiver_line_loss_metadata = { "offset" : _set_lna_to_receiver_line_loss_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_to_receiver_line_loss.setter
    def lna_to_receiver_line_loss(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._set_lna_to_receiver_line_loss_metadata, value)

    _get_system_noise_temperature_metadata = { "offset" : _get_system_noise_temperature_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def system_noise_temperature(self) -> "SystemNoiseTemperature":
        """Get the system noise temperature interface."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_system_noise_temperature_metadata)

    _get_antenna_system_metadata = { "offset" : _get_antenna_system_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_system(self) -> "AntennaSystem":
        """Get the antenna system."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_antenna_system_metadata)

    _get_interference_metadata = { "offset" : _get_interference_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def interference(self) -> "RFInterference":
        """Get the radio frequency interference."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_interference_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(ReceiverModelMultibeam._metadata, ReceiverModelMultibeam._get_filter_component_linking_metadata)

    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[pre_receive_gains_losses] = "pre_receive_gains_losses"
    _property_names[pre_demodulator_gains_losses] = "pre_demodulator_gains_losses"
    _property_names[link_margin] = "link_margin"
    _property_names[scale_bandwidth_automatically] = "scale_bandwidth_automatically"
    _property_names[bandwidth] = "bandwidth"
    _property_names[select_demodulator_automatically] = "select_demodulator_automatically"
    _property_names[supported_demodulators] = "supported_demodulators"
    _property_names[demodulator] = "demodulator"
    _property_names[use_rain] = "use_rain"
    _property_names[supported_rain_outage_percent_values] = "supported_rain_outage_percent_values"
    _property_names[rain_outage_percent] = "rain_outage_percent"
    _property_names[track_frequency_automatically] = "track_frequency_automatically"
    _property_names[antenna_to_lna_line_loss] = "antenna_to_lna_line_loss"
    _property_names[lna_gain] = "lna_gain"
    _property_names[lna_to_receiver_line_loss] = "lna_to_receiver_line_loss"
    _property_names[system_noise_temperature] = "system_noise_temperature"
    _property_names[antenna_system] = "antenna_system"
    _property_names[interference] = "interference"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type ReceiverModelMultibeam."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReceiverModelMultibeam)
        IReceiverModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReceiverModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverModelMultibeam, [ReceiverModelMultibeam, IReceiverModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4694382063146797771, 4765046699437136541), ReceiverModelMultibeam)
agcls.AgTypeNameMap["ReceiverModelMultibeam"] = ReceiverModelMultibeam

class ReceiverModelLaser(IReceiverModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a laser receiver model."""

    _num_methods = 42
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_filter_method_offset = 1
    _set_enable_filter_method_offset = 2
    _get_supported_filters_method_offset = 3
    _set_filter_method_offset = 4
    _get_filter_method_offset = 5
    _get_pre_receive_gains_losses_method_offset = 6
    _get_pre_demodulator_gains_losses_method_offset = 7
    _get_link_margin_method_offset = 8
    _get_scale_bandwidth_automatically_method_offset = 9
    _set_scale_bandwidth_automatically_method_offset = 10
    _get_bandwidth_method_offset = 11
    _set_bandwidth_method_offset = 12
    _get_select_demodulator_automatically_method_offset = 13
    _set_select_demodulator_automatically_method_offset = 14
    _get_supported_demodulators_method_offset = 15
    _set_demodulator_method_offset = 16
    _get_demodulator_method_offset = 17
    _get_enable_polarization_method_offset = 18
    _set_enable_polarization_method_offset = 19
    _set_polarization_type_method_offset = 20
    _get_polarization_method_offset = 21
    _get_track_frequency_automatically_method_offset = 22
    _set_track_frequency_automatically_method_offset = 23
    _get_frequency_method_offset = 24
    _set_frequency_method_offset = 25
    _get_antenna_control_method_offset = 26
    _get_detector_gain_method_offset = 27
    _set_detector_gain_method_offset = 28
    _get_detector_efficiency_method_offset = 29
    _set_detector_efficiency_method_offset = 30
    _get_detector_dark_current_method_offset = 31
    _set_detector_dark_current_method_offset = 32
    _get_detector_noise_figure_method_offset = 33
    _set_detector_noise_figure_method_offset = 34
    _get_detector_noise_temperature_method_offset = 35
    _set_detector_noise_temperature_method_offset = 36
    _get_detector_load_impedance_method_offset = 37
    _set_detector_load_impedance_method_offset = 38
    _get_use_avalanche_photo_detector_model_method_offset = 39
    _set_use_avalanche_photo_detector_model_method_offset = 40
    _get_propagation_loss_models_method_offset = 41
    _get_filter_component_linking_method_offset = 42
    _metadata = {
        "iid_data" : (5009657509973894705, 12586356116396114339),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReceiverModelLaser)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReceiverModelLaser instead. Gets an array of supported filter model names."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on ReceiverModelLaser instead. Sets the current filter model by name."""
        return self._intf.invoke(ReceiverModelLaser._metadata, ReceiverModelLaser._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on ReceiverModelLaser instead. Gets the current filter model."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_filter_metadata)

    _get_pre_receive_gains_losses_metadata = { "offset" : _get_pre_receive_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_receive_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-receive gains and losses."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_pre_receive_gains_losses_metadata)

    _get_pre_demodulator_gains_losses_metadata = { "offset" : _get_pre_demodulator_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_demodulator_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-demod gains and losses."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_pre_demodulator_gains_losses_metadata)

    _get_link_margin_metadata = { "offset" : _get_link_margin_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def link_margin(self) -> "LinkMargin":
        """Get the interface for configuring the link margin computation parameters."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_link_margin_metadata)

    _get_scale_bandwidth_automatically_metadata = { "offset" : _get_scale_bandwidth_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def scale_bandwidth_automatically(self) -> bool:
        """Get or set the auto scale bandwidth option."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_scale_bandwidth_automatically_metadata)

    _set_scale_bandwidth_automatically_metadata = { "offset" : _set_scale_bandwidth_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @scale_bandwidth_automatically.setter
    def scale_bandwidth_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_scale_bandwidth_automatically_metadata, value)

    _get_bandwidth_metadata = { "offset" : _get_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bandwidth(self) -> float:
        """Get or set the bandwidth."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_bandwidth_metadata)

    _set_bandwidth_metadata = { "offset" : _set_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bandwidth.setter
    def bandwidth(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_bandwidth_metadata, value)

    _get_select_demodulator_automatically_metadata = { "offset" : _get_select_demodulator_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def select_demodulator_automatically(self) -> bool:
        """Get or set the auto select demodulator option."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_select_demodulator_automatically_metadata)

    _set_select_demodulator_automatically_metadata = { "offset" : _set_select_demodulator_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @select_demodulator_automatically.setter
    def select_demodulator_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_select_demodulator_automatically_metadata, value)

    _get_supported_demodulators_metadata = { "offset" : _get_supported_demodulators_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_demodulators(self) -> list:
        """Get an array of supported demodulator model names."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_supported_demodulators_metadata)

    _set_demodulator_metadata = { "offset" : _set_demodulator_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_demodulator(self, name:str) -> None:
        """Set the current demodulator model by name."""
        return self._intf.invoke(ReceiverModelLaser._metadata, ReceiverModelLaser._set_demodulator_metadata, name)

    _get_demodulator_metadata = { "offset" : _get_demodulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def demodulator(self) -> "IDemodulatorModel":
        """Get the current demodulator model."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_demodulator_metadata)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_enable_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(ReceiverModelLaser._metadata, ReceiverModelLaser._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_polarization_metadata)

    _get_track_frequency_automatically_metadata = { "offset" : _get_track_frequency_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def track_frequency_automatically(self) -> bool:
        """Get or set the auto track frequency option."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_track_frequency_automatically_metadata)

    _set_track_frequency_automatically_metadata = { "offset" : _set_track_frequency_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @track_frequency_automatically.setter
    def track_frequency_automatically(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_track_frequency_automatically_metadata, value)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the frequency."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_frequency_metadata, value)

    _get_antenna_control_metadata = { "offset" : _get_antenna_control_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_control(self) -> "AntennaControl":
        """Get the receiver antenna control."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_antenna_control_metadata)

    _get_detector_gain_metadata = { "offset" : _get_detector_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def detector_gain(self) -> float:
        """Get or set the detector gain."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_detector_gain_metadata)

    _set_detector_gain_metadata = { "offset" : _set_detector_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @detector_gain.setter
    def detector_gain(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_detector_gain_metadata, value)

    _get_detector_efficiency_metadata = { "offset" : _get_detector_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def detector_efficiency(self) -> float:
        """Get or set the detector efficiency."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_detector_efficiency_metadata)

    _set_detector_efficiency_metadata = { "offset" : _set_detector_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @detector_efficiency.setter
    def detector_efficiency(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_detector_efficiency_metadata, value)

    _get_detector_dark_current_metadata = { "offset" : _get_detector_dark_current_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def detector_dark_current(self) -> float:
        """Get or set the detector dark current."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_detector_dark_current_metadata)

    _set_detector_dark_current_metadata = { "offset" : _set_detector_dark_current_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @detector_dark_current.setter
    def detector_dark_current(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_detector_dark_current_metadata, value)

    _get_detector_noise_figure_metadata = { "offset" : _get_detector_noise_figure_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def detector_noise_figure(self) -> float:
        """Get or set the detector noise figure."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_detector_noise_figure_metadata)

    _set_detector_noise_figure_metadata = { "offset" : _set_detector_noise_figure_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @detector_noise_figure.setter
    def detector_noise_figure(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_detector_noise_figure_metadata, value)

    _get_detector_noise_temperature_metadata = { "offset" : _get_detector_noise_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def detector_noise_temperature(self) -> float:
        """Get or set the detector noise temperature."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_detector_noise_temperature_metadata)

    _set_detector_noise_temperature_metadata = { "offset" : _set_detector_noise_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @detector_noise_temperature.setter
    def detector_noise_temperature(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_detector_noise_temperature_metadata, value)

    _get_detector_load_impedance_metadata = { "offset" : _get_detector_load_impedance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def detector_load_impedance(self) -> float:
        """Get or set the detector load impedance."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_detector_load_impedance_metadata)

    _set_detector_load_impedance_metadata = { "offset" : _set_detector_load_impedance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @detector_load_impedance.setter
    def detector_load_impedance(self, value:float) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_detector_load_impedance_metadata, value)

    _get_use_avalanche_photo_detector_model_metadata = { "offset" : _get_use_avalanche_photo_detector_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_avalanche_photo_detector_model(self) -> bool:
        """Get or set the flag for using the APD detector model."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_use_avalanche_photo_detector_model_metadata)

    _set_use_avalanche_photo_detector_model_metadata = { "offset" : _set_use_avalanche_photo_detector_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_avalanche_photo_detector_model.setter
    def use_avalanche_photo_detector_model(self, value:bool) -> None:
        return self._intf.set_property(ReceiverModelLaser._metadata, ReceiverModelLaser._set_use_avalanche_photo_detector_model_metadata, value)

    _get_propagation_loss_models_metadata = { "offset" : _get_propagation_loss_models_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def propagation_loss_models(self) -> "LaserPropagationLossModels":
        """Do not use this property, as it is deprecated. The laser propagation loss models can be accessed from the LaserEnvironment property."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_propagation_loss_models_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(ReceiverModelLaser._metadata, ReceiverModelLaser._get_filter_component_linking_metadata)

    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[pre_receive_gains_losses] = "pre_receive_gains_losses"
    _property_names[pre_demodulator_gains_losses] = "pre_demodulator_gains_losses"
    _property_names[link_margin] = "link_margin"
    _property_names[scale_bandwidth_automatically] = "scale_bandwidth_automatically"
    _property_names[bandwidth] = "bandwidth"
    _property_names[select_demodulator_automatically] = "select_demodulator_automatically"
    _property_names[supported_demodulators] = "supported_demodulators"
    _property_names[demodulator] = "demodulator"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[polarization] = "polarization"
    _property_names[track_frequency_automatically] = "track_frequency_automatically"
    _property_names[frequency] = "frequency"
    _property_names[antenna_control] = "antenna_control"
    _property_names[detector_gain] = "detector_gain"
    _property_names[detector_efficiency] = "detector_efficiency"
    _property_names[detector_dark_current] = "detector_dark_current"
    _property_names[detector_noise_figure] = "detector_noise_figure"
    _property_names[detector_noise_temperature] = "detector_noise_temperature"
    _property_names[detector_load_impedance] = "detector_load_impedance"
    _property_names[use_avalanche_photo_detector_model] = "use_avalanche_photo_detector_model"
    _property_names[propagation_loss_models] = "propagation_loss_models"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type ReceiverModelLaser."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReceiverModelLaser)
        IReceiverModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReceiverModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverModelLaser, [ReceiverModelLaser, IReceiverModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4679543151807268493, 11187604690457110191), ReceiverModelLaser)
agcls.AgTypeNameMap["ReceiverModelLaser"] = ReceiverModelLaser

class ReceiverModelScriptPluginRF(IReceiverModelScriptPlugin, IReceiverModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radio frequency script plugin receiver model."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_interference_method_offset = 1
    _metadata = {
        "iid_data" : (4826083286616315068, 17043481540877613721),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReceiverModelScriptPluginRF)

    _get_interference_metadata = { "offset" : _get_interference_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def interference(self) -> "RFInterference":
        """Get the radio frequency interference."""
        return self._intf.get_property(ReceiverModelScriptPluginRF._metadata, ReceiverModelScriptPluginRF._get_interference_metadata)

    _property_names[interference] = "interference"

    def __init__(self, source_object=None):
        """Construct an object of type ReceiverModelScriptPluginRF."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReceiverModelScriptPluginRF)
        IReceiverModelScriptPlugin.__init__(self, source_object)
        IReceiverModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReceiverModelScriptPlugin._private_init(self, intf)
        IReceiverModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverModelScriptPluginRF, [ReceiverModelScriptPluginRF, IReceiverModelScriptPlugin, IReceiverModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5271092478628703840, 16952219965719880092), ReceiverModelScriptPluginRF)
agcls.AgTypeNameMap["ReceiverModelScriptPluginRF"] = ReceiverModelScriptPluginRF

class ReceiverModelScriptPluginLaser(IReceiverModelScriptPlugin, IReceiverModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a laser script plugin receiver model."""
    def __init__(self, source_object=None):
        """Construct an object of type ReceiverModelScriptPluginLaser."""
        SupportsDeleteCallback.__init__(self)
        IReceiverModelScriptPlugin.__init__(self, source_object)
        IReceiverModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IReceiverModelScriptPlugin._private_init(self, intf)
        IReceiverModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverModelScriptPluginLaser, [IReceiverModelScriptPlugin, IReceiverModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5576009287371399661, 8671452842559843771), ReceiverModelScriptPluginLaser)
agcls.AgTypeNameMap["ReceiverModelScriptPluginLaser"] = ReceiverModelScriptPluginLaser

class ReceiverGraphics3D(SupportsDeleteCallback):
    """ReceiverGraphics3D Interface for a receiver's 3D Graphics properties."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_vector_method_offset = 1
    _get_show_boresight_method_offset = 2
    _set_show_boresight_method_offset = 3
    _get_show_contours_method_offset = 4
    _set_show_contours_method_offset = 5
    _get_volume_method_offset = 6
    _metadata = {
        "iid_data" : (5726821837843080744, 17407588419160919229),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReceiverGraphics3D)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get the receiver's Vector properties."""
        return self._intf.get_property(ReceiverGraphics3D._metadata, ReceiverGraphics3D._get_vector_metadata)

    _get_show_boresight_metadata = { "offset" : _get_show_boresight_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boresight(self) -> bool:
        """Opt whether to display boresight graphics for the receiver's antenna."""
        return self._intf.get_property(ReceiverGraphics3D._metadata, ReceiverGraphics3D._get_show_boresight_metadata)

    _set_show_boresight_metadata = { "offset" : _set_show_boresight_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boresight.setter
    def show_boresight(self, value:bool) -> None:
        return self._intf.set_property(ReceiverGraphics3D._metadata, ReceiverGraphics3D._set_show_boresight_metadata, value)

    _get_show_contours_metadata = { "offset" : _get_show_contours_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_contours(self) -> bool:
        """Opt whether to display contour graphics for the receiver's antenna."""
        return self._intf.get_property(ReceiverGraphics3D._metadata, ReceiverGraphics3D._get_show_contours_metadata)

    _set_show_contours_metadata = { "offset" : _set_show_contours_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_contours.setter
    def show_contours(self, value:bool) -> None:
        return self._intf.set_property(ReceiverGraphics3D._metadata, ReceiverGraphics3D._set_show_contours_metadata, value)

    _get_volume_metadata = { "offset" : _get_volume_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def volume(self) -> "AntennaVolumeGraphics":
        """Get the receiver's antenna volume graphics interface."""
        return self._intf.get_property(ReceiverGraphics3D._metadata, ReceiverGraphics3D._get_volume_metadata)

    _property_names[vector] = "vector"
    _property_names[show_boresight] = "show_boresight"
    _property_names[show_contours] = "show_contours"
    _property_names[volume] = "volume"

    def __init__(self, source_object=None):
        """Construct an object of type ReceiverGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReceiverGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverGraphics3D, [ReceiverGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5103961040756922207, 13947048528883043491), ReceiverGraphics3D)
agcls.AgTypeNameMap["ReceiverGraphics3D"] = ReceiverGraphics3D

class ReceiverGraphics(SupportsDeleteCallback):
    """ReceiverGraphics Interface for a receiver's 2D Graphics properties."""

    _num_methods = 9
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _get_show_boresight_method_offset = 3
    _set_show_boresight_method_offset = 4
    _get_boresight_color_method_offset = 5
    _set_boresight_color_method_offset = 6
    _get_boresight_marker_style_method_offset = 7
    _set_boresight_marker_style_method_offset = 8
    _get_contour_graphics_method_offset = 9
    _metadata = {
        "iid_data" : (5520271447557024199, 5988521791473740210),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ReceiverGraphics)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Opt whether to display graphics for the receiver object."""
        return self._intf.get_property(ReceiverGraphics._metadata, ReceiverGraphics._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, value:bool) -> None:
        return self._intf.set_property(ReceiverGraphics._metadata, ReceiverGraphics._set_show_metadata, value)

    _get_show_boresight_metadata = { "offset" : _get_show_boresight_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boresight(self) -> bool:
        """Opt whether to display boresight graphics for the receiver's antenna."""
        return self._intf.get_property(ReceiverGraphics._metadata, ReceiverGraphics._get_show_boresight_metadata)

    _set_show_boresight_metadata = { "offset" : _set_show_boresight_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boresight.setter
    def show_boresight(self, value:bool) -> None:
        return self._intf.set_property(ReceiverGraphics._metadata, ReceiverGraphics._set_show_boresight_metadata, value)

    _get_boresight_color_metadata = { "offset" : _get_boresight_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def boresight_color(self) -> agcolor.Color:
        """The color in which boresight graphics display."""
        return self._intf.get_property(ReceiverGraphics._metadata, ReceiverGraphics._get_boresight_color_metadata)

    _set_boresight_color_metadata = { "offset" : _set_boresight_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @boresight_color.setter
    def boresight_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(ReceiverGraphics._metadata, ReceiverGraphics._set_boresight_color_metadata, value)

    _get_boresight_marker_style_metadata = { "offset" : _get_boresight_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def boresight_marker_style(self) -> str:
        """The marker style used to represent the boresight graphically."""
        return self._intf.get_property(ReceiverGraphics._metadata, ReceiverGraphics._get_boresight_marker_style_metadata)

    _set_boresight_marker_style_metadata = { "offset" : _set_boresight_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @boresight_marker_style.setter
    def boresight_marker_style(self, value:str) -> None:
        return self._intf.set_property(ReceiverGraphics._metadata, ReceiverGraphics._set_boresight_marker_style_metadata, value)

    _get_contour_graphics_metadata = { "offset" : _get_contour_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def contour_graphics(self) -> "AntennaContourGraphics":
        """Get the receiver's antenna contour graphics interface."""
        return self._intf.get_property(ReceiverGraphics._metadata, ReceiverGraphics._get_contour_graphics_metadata)

    _property_names[show] = "show"
    _property_names[show_boresight] = "show_boresight"
    _property_names[boresight_color] = "boresight_color"
    _property_names[boresight_marker_style] = "boresight_marker_style"
    _property_names[contour_graphics] = "contour_graphics"

    def __init__(self, source_object=None):
        """Construct an object of type ReceiverGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ReceiverGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceiverGraphics, [ReceiverGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5516583228124557434, 3452180815303224998), ReceiverGraphics)
agcls.AgTypeNameMap["ReceiverGraphics"] = ReceiverGraphics

class RadarDopplerClutterFilters(SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar doppler clutter filter."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_mainlobe_clutter_method_offset = 1
    _set_enable_mainlobe_clutter_method_offset = 2
    _get_mainlobe_clutter_bandwidth_method_offset = 3
    _set_mainlobe_clutter_bandwidth_method_offset = 4
    _get_enable_sidelobe_clutter_method_offset = 5
    _set_enable_sidelobe_clutter_method_offset = 6
    _get_sidelobe_clutter_bandwidth_method_offset = 7
    _set_sidelobe_clutter_bandwidth_method_offset = 8
    _metadata = {
        "iid_data" : (5537265967641474366, 72532340718304913),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarDopplerClutterFilters)

    _get_enable_mainlobe_clutter_metadata = { "offset" : _get_enable_mainlobe_clutter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_mainlobe_clutter(self) -> bool:
        """Option for enabling/disabling the mainlobe clutter filter."""
        return self._intf.get_property(RadarDopplerClutterFilters._metadata, RadarDopplerClutterFilters._get_enable_mainlobe_clutter_metadata)

    _set_enable_mainlobe_clutter_metadata = { "offset" : _set_enable_mainlobe_clutter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_mainlobe_clutter.setter
    def enable_mainlobe_clutter(self, value:bool) -> None:
        return self._intf.set_property(RadarDopplerClutterFilters._metadata, RadarDopplerClutterFilters._set_enable_mainlobe_clutter_metadata, value)

    _get_mainlobe_clutter_bandwidth_metadata = { "offset" : _get_mainlobe_clutter_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def mainlobe_clutter_bandwidth(self) -> float:
        """Get or set the mainlobe filter bandwidth."""
        return self._intf.get_property(RadarDopplerClutterFilters._metadata, RadarDopplerClutterFilters._get_mainlobe_clutter_bandwidth_metadata)

    _set_mainlobe_clutter_bandwidth_metadata = { "offset" : _set_mainlobe_clutter_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @mainlobe_clutter_bandwidth.setter
    def mainlobe_clutter_bandwidth(self, value:float) -> None:
        return self._intf.set_property(RadarDopplerClutterFilters._metadata, RadarDopplerClutterFilters._set_mainlobe_clutter_bandwidth_metadata, value)

    _get_enable_sidelobe_clutter_metadata = { "offset" : _get_enable_sidelobe_clutter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_sidelobe_clutter(self) -> bool:
        """Option for enabling/disabling the sidelobe clutter filter."""
        return self._intf.get_property(RadarDopplerClutterFilters._metadata, RadarDopplerClutterFilters._get_enable_sidelobe_clutter_metadata)

    _set_enable_sidelobe_clutter_metadata = { "offset" : _set_enable_sidelobe_clutter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_sidelobe_clutter.setter
    def enable_sidelobe_clutter(self, value:bool) -> None:
        return self._intf.set_property(RadarDopplerClutterFilters._metadata, RadarDopplerClutterFilters._set_enable_sidelobe_clutter_metadata, value)

    _get_sidelobe_clutter_bandwidth_metadata = { "offset" : _get_sidelobe_clutter_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sidelobe_clutter_bandwidth(self) -> float:
        """Get or set the sidelobe filter bandwidth."""
        return self._intf.get_property(RadarDopplerClutterFilters._metadata, RadarDopplerClutterFilters._get_sidelobe_clutter_bandwidth_metadata)

    _set_sidelobe_clutter_bandwidth_metadata = { "offset" : _set_sidelobe_clutter_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sidelobe_clutter_bandwidth.setter
    def sidelobe_clutter_bandwidth(self, value:float) -> None:
        return self._intf.set_property(RadarDopplerClutterFilters._metadata, RadarDopplerClutterFilters._set_sidelobe_clutter_bandwidth_metadata, value)

    _property_names[enable_mainlobe_clutter] = "enable_mainlobe_clutter"
    _property_names[mainlobe_clutter_bandwidth] = "mainlobe_clutter_bandwidth"
    _property_names[enable_sidelobe_clutter] = "enable_sidelobe_clutter"
    _property_names[sidelobe_clutter_bandwidth] = "sidelobe_clutter_bandwidth"

    def __init__(self, source_object=None):
        """Construct an object of type RadarDopplerClutterFilters."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarDopplerClutterFilters)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarDopplerClutterFilters, [RadarDopplerClutterFilters, ])

agcls.AgClassCatalog.add_catalog_entry((5148747070289966997, 13821313708935283134), RadarDopplerClutterFilters)
agcls.AgTypeNameMap["RadarDopplerClutterFilters"] = RadarDopplerClutterFilters

class Waveform(IWaveform, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a waveform."""
    def __init__(self, source_object=None):
        """Construct an object of type Waveform."""
        SupportsDeleteCallback.__init__(self)
        IWaveform.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IWaveform._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Waveform, [IWaveform, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5741656948204287256, 845351615565018511), Waveform)
agcls.AgTypeNameMap["Waveform"] = Waveform

class WaveformRectangular(IWaveform, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to a rectangular waveform."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_definition_method_offset = 1
    _metadata = {
        "iid_data" : (5399473675731470652, 17447809893560808609),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, WaveformRectangular)

    _get_pulse_definition_metadata = { "offset" : _get_pulse_definition_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse_definition(self) -> "WaveformPulseDefinition":
        """Get the pulse definition parameters."""
        return self._intf.get_property(WaveformRectangular._metadata, WaveformRectangular._get_pulse_definition_metadata)

    _property_names[pulse_definition] = "pulse_definition"

    def __init__(self, source_object=None):
        """Construct an object of type WaveformRectangular."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, WaveformRectangular)
        IWaveform.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IWaveform._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, WaveformRectangular, [WaveformRectangular, IWaveform, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4650814757037591390, 16335390248248131767), WaveformRectangular)
agcls.AgTypeNameMap["WaveformRectangular"] = WaveformRectangular

class WaveformPulseDefinition(SupportsDeleteCallback):
    """Provide access to the properties and methods defining the pulse definition for a rectangular pulsed waveform."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_repetition_frequency_mode_method_offset = 1
    _set_pulse_repetition_frequency_mode_method_offset = 2
    _get_pulse_repetition_frequency_method_offset = 3
    _set_pulse_repetition_frequency_method_offset = 4
    _get_unambiguous_range_method_offset = 5
    _set_unambiguous_range_method_offset = 6
    _get_unambiguous_velocity_method_offset = 7
    _set_unambiguous_velocity_method_offset = 8
    _get_pulse_width_mode_method_offset = 9
    _set_pulse_width_mode_method_offset = 10
    _get_pulse_width_method_offset = 11
    _set_pulse_width_method_offset = 12
    _get_duty_factor_method_offset = 13
    _set_duty_factor_method_offset = 14
    _get_number_of_pulses_method_offset = 15
    _set_number_of_pulses_method_offset = 16
    _metadata = {
        "iid_data" : (4826768792565487562, 17433448639326558131),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, WaveformPulseDefinition)

    _get_pulse_repetition_frequency_mode_metadata = { "offset" : _get_pulse_repetition_frequency_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PRFMode),) }
    @property
    def pulse_repetition_frequency_mode(self) -> "PRFMode":
        """Get or set the prf mode enumeration."""
        return self._intf.get_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._get_pulse_repetition_frequency_mode_metadata)

    _set_pulse_repetition_frequency_mode_metadata = { "offset" : _set_pulse_repetition_frequency_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PRFMode),) }
    @pulse_repetition_frequency_mode.setter
    def pulse_repetition_frequency_mode(self, value:"PRFMode") -> None:
        return self._intf.set_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._set_pulse_repetition_frequency_mode_metadata, value)

    _get_pulse_repetition_frequency_metadata = { "offset" : _get_pulse_repetition_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pulse_repetition_frequency(self) -> float:
        """Get or set the pulse repetition frequency."""
        return self._intf.get_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._get_pulse_repetition_frequency_metadata)

    _set_pulse_repetition_frequency_metadata = { "offset" : _set_pulse_repetition_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pulse_repetition_frequency.setter
    def pulse_repetition_frequency(self, value:float) -> None:
        return self._intf.set_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._set_pulse_repetition_frequency_metadata, value)

    _get_unambiguous_range_metadata = { "offset" : _get_unambiguous_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def unambiguous_range(self) -> float:
        """Get or set the unambiguous range."""
        return self._intf.get_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._get_unambiguous_range_metadata)

    _set_unambiguous_range_metadata = { "offset" : _set_unambiguous_range_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @unambiguous_range.setter
    def unambiguous_range(self, value:float) -> None:
        return self._intf.set_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._set_unambiguous_range_metadata, value)

    _get_unambiguous_velocity_metadata = { "offset" : _get_unambiguous_velocity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def unambiguous_velocity(self) -> float:
        """Get or set the unambiguous velocity."""
        return self._intf.get_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._get_unambiguous_velocity_metadata)

    _set_unambiguous_velocity_metadata = { "offset" : _set_unambiguous_velocity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @unambiguous_velocity.setter
    def unambiguous_velocity(self, value:float) -> None:
        return self._intf.set_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._set_unambiguous_velocity_metadata, value)

    _get_pulse_width_mode_metadata = { "offset" : _get_pulse_width_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(PulseWidthMode),) }
    @property
    def pulse_width_mode(self) -> "PulseWidthMode":
        """Get or set the pulse width mode enumeration."""
        return self._intf.get_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._get_pulse_width_mode_metadata)

    _set_pulse_width_mode_metadata = { "offset" : _set_pulse_width_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PulseWidthMode),) }
    @pulse_width_mode.setter
    def pulse_width_mode(self, value:"PulseWidthMode") -> None:
        return self._intf.set_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._set_pulse_width_mode_metadata, value)

    _get_pulse_width_metadata = { "offset" : _get_pulse_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pulse_width(self) -> float:
        """Get or set the pulse width."""
        return self._intf.get_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._get_pulse_width_metadata)

    _set_pulse_width_metadata = { "offset" : _set_pulse_width_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pulse_width.setter
    def pulse_width(self, value:float) -> None:
        return self._intf.set_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._set_pulse_width_metadata, value)

    _get_duty_factor_metadata = { "offset" : _get_duty_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def duty_factor(self) -> float:
        """Get or set the duty factor."""
        return self._intf.get_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._get_duty_factor_metadata)

    _set_duty_factor_metadata = { "offset" : _set_duty_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @duty_factor.setter
    def duty_factor(self, value:float) -> None:
        return self._intf.set_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._set_duty_factor_metadata, value)

    _get_number_of_pulses_metadata = { "offset" : _get_number_of_pulses_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_pulses(self) -> int:
        """Get or set the number of pulses."""
        return self._intf.get_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._get_number_of_pulses_metadata)

    _set_number_of_pulses_metadata = { "offset" : _set_number_of_pulses_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_pulses.setter
    def number_of_pulses(self, value:int) -> None:
        return self._intf.set_property(WaveformPulseDefinition._metadata, WaveformPulseDefinition._set_number_of_pulses_metadata, value)

    _property_names[pulse_repetition_frequency_mode] = "pulse_repetition_frequency_mode"
    _property_names[pulse_repetition_frequency] = "pulse_repetition_frequency"
    _property_names[unambiguous_range] = "unambiguous_range"
    _property_names[unambiguous_velocity] = "unambiguous_velocity"
    _property_names[pulse_width_mode] = "pulse_width_mode"
    _property_names[pulse_width] = "pulse_width"
    _property_names[duty_factor] = "duty_factor"
    _property_names[number_of_pulses] = "number_of_pulses"

    def __init__(self, source_object=None):
        """Construct an object of type WaveformPulseDefinition."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, WaveformPulseDefinition)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, WaveformPulseDefinition, [WaveformPulseDefinition, ])

agcls.AgClassCatalog.add_catalog_entry((5363164212426851459, 4635886023377051521), WaveformPulseDefinition)
agcls.AgTypeNameMap["WaveformPulseDefinition"] = WaveformPulseDefinition

class RadarMultifunctionWaveformStrategySettings(SupportsDeleteCallback):
    """Interface which defines a multifunction radar waveform strategy settings."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_short_range_limit_method_offset = 1
    _set_short_range_limit_method_offset = 2
    _get_medium_range_limit_method_offset = 3
    _set_medium_range_limit_method_offset = 4
    _get_long_range_limit_method_offset = 5
    _set_long_range_limit_method_offset = 6
    _get_supported_short_range_waveforms_method_offset = 7
    _get_supported_medium_range_waveforms_method_offset = 8
    _get_supported_long_range_waveforms_method_offset = 9
    _get_supported_ultra_long_range_waveforms_method_offset = 10
    _get_short_range_default_waveform_method_offset = 11
    _set_short_range_default_waveform_method_offset = 12
    _get_medium_range_default_waveform_method_offset = 13
    _set_medium_range_default_waveform_method_offset = 14
    _get_long_range_default_waveform_method_offset = 15
    _set_long_range_default_waveform_method_offset = 16
    _get_ultra_long_range_default_waveform_method_offset = 17
    _set_ultra_long_range_default_waveform_method_offset = 18
    _metadata = {
        "iid_data" : (5130743297007084692, 11602760788541528243),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarMultifunctionWaveformStrategySettings)

    _get_short_range_limit_metadata = { "offset" : _get_short_range_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def short_range_limit(self) -> float:
        """Get or set the short range limit value."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_short_range_limit_metadata)

    _set_short_range_limit_metadata = { "offset" : _set_short_range_limit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @short_range_limit.setter
    def short_range_limit(self, value:float) -> None:
        return self._intf.set_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._set_short_range_limit_metadata, value)

    _get_medium_range_limit_metadata = { "offset" : _get_medium_range_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def medium_range_limit(self) -> float:
        """Get or set the medium range limit value."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_medium_range_limit_metadata)

    _set_medium_range_limit_metadata = { "offset" : _set_medium_range_limit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @medium_range_limit.setter
    def medium_range_limit(self, value:float) -> None:
        return self._intf.set_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._set_medium_range_limit_metadata, value)

    _get_long_range_limit_metadata = { "offset" : _get_long_range_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def long_range_limit(self) -> float:
        """Get or set the long range limit value."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_long_range_limit_metadata)

    _set_long_range_limit_metadata = { "offset" : _set_long_range_limit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @long_range_limit.setter
    def long_range_limit(self, value:float) -> None:
        return self._intf.set_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._set_long_range_limit_metadata, value)

    _get_supported_short_range_waveforms_metadata = { "offset" : _get_supported_short_range_waveforms_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_short_range_waveforms(self) -> list:
        """Get an array of supported short range waveform names."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_supported_short_range_waveforms_metadata)

    _get_supported_medium_range_waveforms_metadata = { "offset" : _get_supported_medium_range_waveforms_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_medium_range_waveforms(self) -> list:
        """Get an array of supported medium range waveform names."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_supported_medium_range_waveforms_metadata)

    _get_supported_long_range_waveforms_metadata = { "offset" : _get_supported_long_range_waveforms_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_long_range_waveforms(self) -> list:
        """Get an array of supported long range waveform names."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_supported_long_range_waveforms_metadata)

    _get_supported_ultra_long_range_waveforms_metadata = { "offset" : _get_supported_ultra_long_range_waveforms_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_ultra_long_range_waveforms(self) -> list:
        """Get an array of supported ultra long range waveform names."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_supported_ultra_long_range_waveforms_metadata)

    _get_short_range_default_waveform_metadata = { "offset" : _get_short_range_default_waveform_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def short_range_default_waveform(self) -> str:
        """Get or set the short range default waveform."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_short_range_default_waveform_metadata)

    _set_short_range_default_waveform_metadata = { "offset" : _set_short_range_default_waveform_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @short_range_default_waveform.setter
    def short_range_default_waveform(self, default_waveform:str) -> None:
        """Get or set the short range default waveform."""
        return self._intf.set_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._set_short_range_default_waveform_metadata, default_waveform)

    _get_medium_range_default_waveform_metadata = { "offset" : _get_medium_range_default_waveform_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def medium_range_default_waveform(self) -> str:
        """Get or set the medium range default waveform."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_medium_range_default_waveform_metadata)

    _set_medium_range_default_waveform_metadata = { "offset" : _set_medium_range_default_waveform_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @medium_range_default_waveform.setter
    def medium_range_default_waveform(self, default_waveform:str) -> None:
        """Get or set the medium range default waveform."""
        return self._intf.set_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._set_medium_range_default_waveform_metadata, default_waveform)

    _get_long_range_default_waveform_metadata = { "offset" : _get_long_range_default_waveform_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def long_range_default_waveform(self) -> str:
        """Get or set the long range default waveform."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_long_range_default_waveform_metadata)

    _set_long_range_default_waveform_metadata = { "offset" : _set_long_range_default_waveform_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @long_range_default_waveform.setter
    def long_range_default_waveform(self, default_waveform:str) -> None:
        """Get or set the long range default waveform."""
        return self._intf.set_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._set_long_range_default_waveform_metadata, default_waveform)

    _get_ultra_long_range_default_waveform_metadata = { "offset" : _get_ultra_long_range_default_waveform_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def ultra_long_range_default_waveform(self) -> str:
        """Get or set the ultra long range default waveform."""
        return self._intf.get_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._get_ultra_long_range_default_waveform_metadata)

    _set_ultra_long_range_default_waveform_metadata = { "offset" : _set_ultra_long_range_default_waveform_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @ultra_long_range_default_waveform.setter
    def ultra_long_range_default_waveform(self, default_waveform:str) -> None:
        """Get or set the ultra long range default waveform."""
        return self._intf.set_property(RadarMultifunctionWaveformStrategySettings._metadata, RadarMultifunctionWaveformStrategySettings._set_ultra_long_range_default_waveform_metadata, default_waveform)

    _property_names[short_range_limit] = "short_range_limit"
    _property_names[medium_range_limit] = "medium_range_limit"
    _property_names[long_range_limit] = "long_range_limit"
    _property_names[supported_short_range_waveforms] = "supported_short_range_waveforms"
    _property_names[supported_medium_range_waveforms] = "supported_medium_range_waveforms"
    _property_names[supported_long_range_waveforms] = "supported_long_range_waveforms"
    _property_names[supported_ultra_long_range_waveforms] = "supported_ultra_long_range_waveforms"
    _property_names[short_range_default_waveform] = "short_range_default_waveform"
    _property_names[medium_range_default_waveform] = "medium_range_default_waveform"
    _property_names[long_range_default_waveform] = "long_range_default_waveform"
    _property_names[ultra_long_range_default_waveform] = "ultra_long_range_default_waveform"

    def __init__(self, source_object=None):
        """Construct an object of type RadarMultifunctionWaveformStrategySettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarMultifunctionWaveformStrategySettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarMultifunctionWaveformStrategySettings, [RadarMultifunctionWaveformStrategySettings, ])

agcls.AgClassCatalog.add_catalog_entry((5266231601139311016, 2859085022575014785), RadarMultifunctionWaveformStrategySettings)
agcls.AgTypeNameMap["RadarMultifunctionWaveformStrategySettings"] = RadarMultifunctionWaveformStrategySettings

class WaveformSelectionStrategy(IWaveformSelectionStrategy, SupportsDeleteCallback):
    """Class defining the waveform selection strategy."""
    def __init__(self, source_object=None):
        """Construct an object of type WaveformSelectionStrategy."""
        SupportsDeleteCallback.__init__(self)
        IWaveformSelectionStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IWaveformSelectionStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, WaveformSelectionStrategy, [IWaveformSelectionStrategy])

agcls.AgClassCatalog.add_catalog_entry((5599466620496992570, 8455906936366277020), WaveformSelectionStrategy)
agcls.AgTypeNameMap["WaveformSelectionStrategy"] = WaveformSelectionStrategy

class WaveformSelectionStrategyFixed(IWaveformSelectionStrategy, SupportsDeleteCallback):
    """Provide the base interface for a waveform selection strategy which produces a Fixed waveform."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_waveforms_method_offset = 1
    _get_fixed_waveform_method_offset = 2
    _set_fixed_waveform_method_offset = 3
    _metadata = {
        "iid_data" : (5689712125248380937, 4281349156240394627),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, WaveformSelectionStrategyFixed)

    _get_supported_waveforms_metadata = { "offset" : _get_supported_waveforms_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_waveforms(self) -> list:
        """Get an array of supported waveform names."""
        return self._intf.get_property(WaveformSelectionStrategyFixed._metadata, WaveformSelectionStrategyFixed._get_supported_waveforms_metadata)

    _get_fixed_waveform_metadata = { "offset" : _get_fixed_waveform_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def fixed_waveform(self) -> str:
        """Get or set the fixed waveform."""
        return self._intf.get_property(WaveformSelectionStrategyFixed._metadata, WaveformSelectionStrategyFixed._get_fixed_waveform_metadata)

    _set_fixed_waveform_metadata = { "offset" : _set_fixed_waveform_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @fixed_waveform.setter
    def fixed_waveform(self, fixed_waveform:str) -> None:
        """Get or set the fixed waveform."""
        return self._intf.set_property(WaveformSelectionStrategyFixed._metadata, WaveformSelectionStrategyFixed._set_fixed_waveform_metadata, fixed_waveform)

    _property_names[supported_waveforms] = "supported_waveforms"
    _property_names[fixed_waveform] = "fixed_waveform"

    def __init__(self, source_object=None):
        """Construct an object of type WaveformSelectionStrategyFixed."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, WaveformSelectionStrategyFixed)
        IWaveformSelectionStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IWaveformSelectionStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, WaveformSelectionStrategyFixed, [WaveformSelectionStrategyFixed, IWaveformSelectionStrategy])

agcls.AgClassCatalog.add_catalog_entry((5530861086980169693, 475909913225641892), WaveformSelectionStrategyFixed)
agcls.AgTypeNameMap["WaveformSelectionStrategyFixed"] = WaveformSelectionStrategyFixed

class WaveformSelectionStrategyRangeLimits(IWaveformSelectionStrategy, SupportsDeleteCallback):
    """Provide the base interface for a waveform selection strategy which produces a waveform based on target range."""

    _num_methods = 23
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_short_range_limit_method_offset = 1
    _get_override_default_short_range_waveform_method_offset = 2
    _set_override_default_short_range_waveform_method_offset = 3
    _get_supported_short_range_waveforms_method_offset = 4
    _get_short_range_waveform_method_offset = 5
    _set_short_range_waveform_method_offset = 6
    _get_medium_range_limit_method_offset = 7
    _get_override_default_medium_range_waveform_method_offset = 8
    _set_override_default_medium_range_waveform_method_offset = 9
    _get_supported_medium_range_waveforms_method_offset = 10
    _get_medium_range_waveform_method_offset = 11
    _set_medium_range_waveform_method_offset = 12
    _get_long_range_limit_method_offset = 13
    _get_override_default_long_range_waveform_method_offset = 14
    _set_override_default_long_range_waveform_method_offset = 15
    _get_supported_long_range_waveforms_method_offset = 16
    _get_long_range_waveform_method_offset = 17
    _set_long_range_waveform_method_offset = 18
    _get_override_default_ultra_long_range_waveform_method_offset = 19
    _set_override_default_ultra_long_range_waveform_method_offset = 20
    _get_supported_ultra_long_range_waveforms_method_offset = 21
    _get_ultra_long_range_waveform_method_offset = 22
    _set_ultra_long_range_waveform_method_offset = 23
    _metadata = {
        "iid_data" : (5399751606704123746, 12328859047826751131),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, WaveformSelectionStrategyRangeLimits)

    _get_short_range_limit_metadata = { "offset" : _get_short_range_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def short_range_limit(self) -> float:
        """Get the short range limit value."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_short_range_limit_metadata)

    _get_override_default_short_range_waveform_metadata = { "offset" : _get_override_default_short_range_waveform_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_default_short_range_waveform(self) -> bool:
        """Get or set a value indicating whether or not to override the default short range waveform."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_override_default_short_range_waveform_metadata)

    _set_override_default_short_range_waveform_metadata = { "offset" : _set_override_default_short_range_waveform_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_default_short_range_waveform.setter
    def override_default_short_range_waveform(self, value:bool) -> None:
        """Get or set a value indicating whether or not to override the default short range waveform."""
        return self._intf.set_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._set_override_default_short_range_waveform_metadata, value)

    _get_supported_short_range_waveforms_metadata = { "offset" : _get_supported_short_range_waveforms_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_short_range_waveforms(self) -> list:
        """Get an array of supported short range waveform names."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_supported_short_range_waveforms_metadata)

    _get_short_range_waveform_metadata = { "offset" : _get_short_range_waveform_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def short_range_waveform(self) -> str:
        """Get or set the short range waveform."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_short_range_waveform_metadata)

    _set_short_range_waveform_metadata = { "offset" : _set_short_range_waveform_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @short_range_waveform.setter
    def short_range_waveform(self, value:str) -> None:
        """Get or set the short range waveform."""
        return self._intf.set_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._set_short_range_waveform_metadata, value)

    _get_medium_range_limit_metadata = { "offset" : _get_medium_range_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def medium_range_limit(self) -> float:
        """Get the medium range limit value."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_medium_range_limit_metadata)

    _get_override_default_medium_range_waveform_metadata = { "offset" : _get_override_default_medium_range_waveform_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_default_medium_range_waveform(self) -> bool:
        """Get or set a value indicating whether or not to override the default medium range waveform."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_override_default_medium_range_waveform_metadata)

    _set_override_default_medium_range_waveform_metadata = { "offset" : _set_override_default_medium_range_waveform_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_default_medium_range_waveform.setter
    def override_default_medium_range_waveform(self, value:bool) -> None:
        """Get or set a value indicating whether or not to override the default medium range waveform."""
        return self._intf.set_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._set_override_default_medium_range_waveform_metadata, value)

    _get_supported_medium_range_waveforms_metadata = { "offset" : _get_supported_medium_range_waveforms_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_medium_range_waveforms(self) -> list:
        """Get an array of supported medium range waveform names."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_supported_medium_range_waveforms_metadata)

    _get_medium_range_waveform_metadata = { "offset" : _get_medium_range_waveform_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def medium_range_waveform(self) -> str:
        """Get or set the medium range waveform."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_medium_range_waveform_metadata)

    _set_medium_range_waveform_metadata = { "offset" : _set_medium_range_waveform_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @medium_range_waveform.setter
    def medium_range_waveform(self, value:str) -> None:
        """Get or set the medium range waveform."""
        return self._intf.set_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._set_medium_range_waveform_metadata, value)

    _get_long_range_limit_metadata = { "offset" : _get_long_range_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def long_range_limit(self) -> float:
        """Get the long range limit value."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_long_range_limit_metadata)

    _get_override_default_long_range_waveform_metadata = { "offset" : _get_override_default_long_range_waveform_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_default_long_range_waveform(self) -> bool:
        """Get or set a value indicating whether or not to override the default long range waveform."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_override_default_long_range_waveform_metadata)

    _set_override_default_long_range_waveform_metadata = { "offset" : _set_override_default_long_range_waveform_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_default_long_range_waveform.setter
    def override_default_long_range_waveform(self, value:bool) -> None:
        """Get or set a value indicating whether or not to override the default long range waveform."""
        return self._intf.set_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._set_override_default_long_range_waveform_metadata, value)

    _get_supported_long_range_waveforms_metadata = { "offset" : _get_supported_long_range_waveforms_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_long_range_waveforms(self) -> list:
        """Get an array of supported long range waveform names."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_supported_long_range_waveforms_metadata)

    _get_long_range_waveform_metadata = { "offset" : _get_long_range_waveform_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def long_range_waveform(self) -> str:
        """Get or set the long range waveform."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_long_range_waveform_metadata)

    _set_long_range_waveform_metadata = { "offset" : _set_long_range_waveform_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @long_range_waveform.setter
    def long_range_waveform(self, value:str) -> None:
        """Get or set the long range waveform."""
        return self._intf.set_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._set_long_range_waveform_metadata, value)

    _get_override_default_ultra_long_range_waveform_metadata = { "offset" : _get_override_default_ultra_long_range_waveform_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_default_ultra_long_range_waveform(self) -> bool:
        """Get or set a value indicating whether or not to override the default ultra long range waveform."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_override_default_ultra_long_range_waveform_metadata)

    _set_override_default_ultra_long_range_waveform_metadata = { "offset" : _set_override_default_ultra_long_range_waveform_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_default_ultra_long_range_waveform.setter
    def override_default_ultra_long_range_waveform(self, value:bool) -> None:
        """Get or set a value indicating whether or not to override the default ultra long range waveform."""
        return self._intf.set_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._set_override_default_ultra_long_range_waveform_metadata, value)

    _get_supported_ultra_long_range_waveforms_metadata = { "offset" : _get_supported_ultra_long_range_waveforms_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_ultra_long_range_waveforms(self) -> list:
        """Get an array of supported ultra long range waveform names."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_supported_ultra_long_range_waveforms_metadata)

    _get_ultra_long_range_waveform_metadata = { "offset" : _get_ultra_long_range_waveform_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def ultra_long_range_waveform(self) -> str:
        """Get or set the ultra long range waveform."""
        return self._intf.get_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._get_ultra_long_range_waveform_metadata)

    _set_ultra_long_range_waveform_metadata = { "offset" : _set_ultra_long_range_waveform_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @ultra_long_range_waveform.setter
    def ultra_long_range_waveform(self, value:str) -> None:
        """Get or set the ultra long range waveform."""
        return self._intf.set_property(WaveformSelectionStrategyRangeLimits._metadata, WaveformSelectionStrategyRangeLimits._set_ultra_long_range_waveform_metadata, value)

    _property_names[short_range_limit] = "short_range_limit"
    _property_names[override_default_short_range_waveform] = "override_default_short_range_waveform"
    _property_names[supported_short_range_waveforms] = "supported_short_range_waveforms"
    _property_names[short_range_waveform] = "short_range_waveform"
    _property_names[medium_range_limit] = "medium_range_limit"
    _property_names[override_default_medium_range_waveform] = "override_default_medium_range_waveform"
    _property_names[supported_medium_range_waveforms] = "supported_medium_range_waveforms"
    _property_names[medium_range_waveform] = "medium_range_waveform"
    _property_names[long_range_limit] = "long_range_limit"
    _property_names[override_default_long_range_waveform] = "override_default_long_range_waveform"
    _property_names[supported_long_range_waveforms] = "supported_long_range_waveforms"
    _property_names[long_range_waveform] = "long_range_waveform"
    _property_names[override_default_ultra_long_range_waveform] = "override_default_ultra_long_range_waveform"
    _property_names[supported_ultra_long_range_waveforms] = "supported_ultra_long_range_waveforms"
    _property_names[ultra_long_range_waveform] = "ultra_long_range_waveform"

    def __init__(self, source_object=None):
        """Construct an object of type WaveformSelectionStrategyRangeLimits."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, WaveformSelectionStrategyRangeLimits)
        IWaveformSelectionStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IWaveformSelectionStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, WaveformSelectionStrategyRangeLimits, [WaveformSelectionStrategyRangeLimits, IWaveformSelectionStrategy])

agcls.AgClassCatalog.add_catalog_entry((4657068144368146598, 7860101329468214407), WaveformSelectionStrategyRangeLimits)
agcls.AgTypeNameMap["WaveformSelectionStrategyRangeLimits"] = WaveformSelectionStrategyRangeLimits

class Radar(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an Radar object."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_models_method_offset = 1
    _set_model_method_offset = 2
    _get_model_method_offset = 3
    _get_refraction_method_offset = 4
    _set_refraction_method_offset = 5
    _is_refraction_type_supported_method_offset = 6
    _get_refraction_supported_types_method_offset = 7
    _get_refraction_model_method_offset = 8
    _get_use_refraction_in_access_method_offset = 9
    _set_use_refraction_in_access_method_offset = 10
    _get_graphics_3d_method_offset = 11
    _get_graphics_method_offset = 12
    _get_rf_environment_method_offset = 13
    _get_model_component_linking_method_offset = 14
    _metadata = {
        "iid_data" : (5247575139225571263, 10390471045415214501),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Radar)

    _get_supported_models_metadata = { "offset" : _get_supported_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_models(self) -> list:
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on Radar instead. Gets an array of supported model names."""
        return self._intf.get_property(Radar._metadata, Radar._get_supported_models_metadata)

    _set_model_metadata = { "offset" : _set_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use ModelComponentLinking on Radar instead. Sets the current radar model by name."""
        return self._intf.invoke(Radar._metadata, Radar._set_model_metadata, model_name)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "IRadarModel":
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on Radar instead. Gets the current radar model."""
        return self._intf.get_property(Radar._metadata, Radar._get_model_metadata)

    _get_refraction_metadata = { "offset" : _get_refraction_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType),) }
    @property
    def refraction(self) -> "SensorRefractionType":
        """Refraction method, a member of the SensorRefractionType enumeration."""
        return self._intf.get_property(Radar._metadata, Radar._get_refraction_metadata)

    _set_refraction_metadata = { "offset" : _set_refraction_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType),) }
    @refraction.setter
    def refraction(self, value:"SensorRefractionType") -> None:
        return self._intf.set_property(Radar._metadata, Radar._set_refraction_metadata, value)

    _is_refraction_type_supported_metadata = { "offset" : _is_refraction_type_supported_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(SensorRefractionType), agmarshall.VariantBoolArg,) }
    def is_refraction_type_supported(self, model:"SensorRefractionType") -> bool:
        """Get a value indicating whether the specified type can be used."""
        return self._intf.invoke(Radar._metadata, Radar._is_refraction_type_supported_metadata, model, OutArg())

    _get_refraction_supported_types_metadata = { "offset" : _get_refraction_supported_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def refraction_supported_types(self) -> list:
        """Return an array of valid choices."""
        return self._intf.get_property(Radar._metadata, Radar._get_refraction_supported_types_metadata)

    _get_refraction_model_metadata = { "offset" : _get_refraction_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def refraction_model(self) -> "IRefractionModelBase":
        """Get a refraction model."""
        return self._intf.get_property(Radar._metadata, Radar._get_refraction_model_metadata)

    _get_use_refraction_in_access_metadata = { "offset" : _get_use_refraction_in_access_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_refraction_in_access(self) -> bool:
        """Flag controls whether refraction is applied when computing relative position in Access."""
        return self._intf.get_property(Radar._metadata, Radar._get_use_refraction_in_access_metadata)

    _set_use_refraction_in_access_metadata = { "offset" : _set_use_refraction_in_access_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_refraction_in_access.setter
    def use_refraction_in_access(self, use_refraction_in_access:bool) -> None:
        return self._intf.set_property(Radar._metadata, Radar._set_use_refraction_in_access_metadata, use_refraction_in_access)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "RadarGraphics3D":
        """Get the 3D Graphics properties for the radar."""
        return self._intf.get_property(Radar._metadata, Radar._get_graphics_3d_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "RadarGraphics":
        """Get the 2D Graphics properties for the radar."""
        return self._intf.get_property(Radar._metadata, Radar._get_graphics_metadata)

    _get_rf_environment_metadata = { "offset" : _get_rf_environment_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rf_environment(self) -> "ObjectRFEnvironment":
        """Get the object RF Environment settings."""
        return self._intf.get_property(Radar._metadata, Radar._get_rf_environment_metadata)

    _get_model_component_linking_metadata = { "offset" : _get_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the radar model component."""
        return self._intf.get_property(Radar._metadata, Radar._get_model_component_linking_metadata)

    _property_names[supported_models] = "supported_models"
    _property_names[model] = "model"
    _property_names[refraction] = "refraction"
    _property_names[refraction_supported_types] = "refraction_supported_types"
    _property_names[refraction_model] = "refraction_model"
    _property_names[use_refraction_in_access] = "use_refraction_in_access"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[graphics] = "graphics"
    _property_names[rf_environment] = "rf_environment"
    _property_names[model_component_linking] = "model_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type Radar."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Radar)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Radar, [Radar, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((4613714985234168403, 15116091825176422803), Radar)
agcls.AgTypeNameMap["Radar"] = Radar

class RadarModel(IRadarModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a generic radar model."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarModel."""
        SupportsDeleteCallback.__init__(self)
        IRadarModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModel, [IRadarModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5716717331933050310, 17549470831985610166), RadarModel)
agcls.AgTypeNameMap["RadarModel"] = RadarModel

class RadarModelMonostatic(IRadarModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a monostatic radar model."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_modes_method_offset = 1
    _set_mode_method_offset = 2
    _get_mode_method_offset = 3
    _get_transmitter_method_offset = 4
    _get_receiver_method_offset = 5
    _get_clutter_geometry_method_offset = 6
    _get_jamming_method_offset = 7
    _get_antenna_control_method_offset = 8
    _get_clutter_method_offset = 9
    _get_mode_component_linking_method_offset = 10
    _metadata = {
        "iid_data" : (5714305018524211426, 8109907985367544737),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModelMonostatic)

    _get_supported_modes_metadata = { "offset" : _get_supported_modes_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_modes(self) -> list:
        """Do not use this property, as it is deprecated. Use ModeComponentLinking on RadarModelMonostatic instead. Gets an array of supported mode names."""
        return self._intf.get_property(RadarModelMonostatic._metadata, RadarModelMonostatic._get_supported_modes_metadata)

    _set_mode_metadata = { "offset" : _set_mode_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_mode(self, mode_name:str) -> None:
        """Do not use this method, as it is deprecated. Use ModeComponentLinking on RadarModelMonostatic instead. Sets the current radar mode by name."""
        return self._intf.invoke(RadarModelMonostatic._metadata, RadarModelMonostatic._set_mode_metadata, mode_name)

    _get_mode_metadata = { "offset" : _get_mode_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def mode(self) -> "IRadarModeMonostatic":
        """Do not use this property, as it is deprecated. Use ModeComponentLinking on RadarModelMonostatic instead. Gets the current radar mode."""
        return self._intf.get_property(RadarModelMonostatic._metadata, RadarModelMonostatic._get_mode_metadata)

    _get_transmitter_metadata = { "offset" : _get_transmitter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def transmitter(self) -> "RadarTransmitter":
        """Get the radar transmitter."""
        return self._intf.get_property(RadarModelMonostatic._metadata, RadarModelMonostatic._get_transmitter_metadata)

    _get_receiver_metadata = { "offset" : _get_receiver_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def receiver(self) -> "RadarReceiver":
        """Get the radar receiver."""
        return self._intf.get_property(RadarModelMonostatic._metadata, RadarModelMonostatic._get_receiver_metadata)

    _get_clutter_geometry_metadata = { "offset" : _get_clutter_geometry_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def clutter_geometry(self) -> "RadarClutterGeometry":
        """Do not use this property, as it is deprecated. Use the Clutter property instead. Gets the radar clutter geometry."""
        return self._intf.get_property(RadarModelMonostatic._metadata, RadarModelMonostatic._get_clutter_geometry_metadata)

    _get_jamming_metadata = { "offset" : _get_jamming_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def jamming(self) -> "RadarJamming":
        """Get the radar jamming."""
        return self._intf.get_property(RadarModelMonostatic._metadata, RadarModelMonostatic._get_jamming_metadata)

    _get_antenna_control_metadata = { "offset" : _get_antenna_control_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_control(self) -> "AntennaControl":
        """Get the radar antenna control."""
        return self._intf.get_property(RadarModelMonostatic._metadata, RadarModelMonostatic._get_antenna_control_metadata)

    _get_clutter_metadata = { "offset" : _get_clutter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def clutter(self) -> "RadarClutter":
        """Get the radar clutter settings."""
        return self._intf.get_property(RadarModelMonostatic._metadata, RadarModelMonostatic._get_clutter_metadata)

    _get_mode_component_linking_metadata = { "offset" : _get_mode_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def mode_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the radar mode component."""
        return self._intf.get_property(RadarModelMonostatic._metadata, RadarModelMonostatic._get_mode_component_linking_metadata)

    _property_names[supported_modes] = "supported_modes"
    _property_names[mode] = "mode"
    _property_names[transmitter] = "transmitter"
    _property_names[receiver] = "receiver"
    _property_names[clutter_geometry] = "clutter_geometry"
    _property_names[jamming] = "jamming"
    _property_names[antenna_control] = "antenna_control"
    _property_names[clutter] = "clutter"
    _property_names[mode_component_linking] = "mode_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModelMonostatic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModelMonostatic)
        IRadarModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModelMonostatic, [RadarModelMonostatic, IRadarModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5527282309156552701, 10751960101605568421), RadarModelMonostatic)
agcls.AgTypeNameMap["RadarModelMonostatic"] = RadarModelMonostatic

class RadarModelMultifunction(IRadarModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a multifunction radar model."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_transmitter_method_offset = 1
    _get_receiver_method_offset = 2
    _get_clutter_geometry_method_offset = 3
    _get_jamming_method_offset = 4
    _get_location_method_offset = 5
    _get_detection_processing_method_offset = 6
    _set_pointing_strategy_type_method_offset = 7
    _get_pointing_strategy_method_offset = 8
    _get_antenna_beams_method_offset = 9
    _get_waveform_strategy_settings_method_offset = 10
    _get_clutter_method_offset = 11
    _metadata = {
        "iid_data" : (5735644521411142125, 12796203976091823517),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModelMultifunction)

    _get_transmitter_metadata = { "offset" : _get_transmitter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def transmitter(self) -> "RadarTransmitterMultifunction":
        """Get the radar transmitter."""
        return self._intf.get_property(RadarModelMultifunction._metadata, RadarModelMultifunction._get_transmitter_metadata)

    _get_receiver_metadata = { "offset" : _get_receiver_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def receiver(self) -> "RadarReceiver":
        """Get the radar receiver."""
        return self._intf.get_property(RadarModelMultifunction._metadata, RadarModelMultifunction._get_receiver_metadata)

    _get_clutter_geometry_metadata = { "offset" : _get_clutter_geometry_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def clutter_geometry(self) -> "RadarClutterGeometry":
        """Do not use this property, as it is deprecated.Use the Clutter property instead.Gets the radar clutter geometry."""
        return self._intf.get_property(RadarModelMultifunction._metadata, RadarModelMultifunction._get_clutter_geometry_metadata)

    _get_jamming_metadata = { "offset" : _get_jamming_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def jamming(self) -> "RadarJamming":
        """Get the radar jamming."""
        return self._intf.get_property(RadarModelMultifunction._metadata, RadarModelMultifunction._get_jamming_metadata)

    _get_location_metadata = { "offset" : _get_location_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def location(self) -> "CommRadCartesianLocation":
        """Get the radar location object."""
        return self._intf.get_property(RadarModelMultifunction._metadata, RadarModelMultifunction._get_location_metadata)

    _get_detection_processing_metadata = { "offset" : _get_detection_processing_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def detection_processing(self) -> "RadarMultifunctionDetectionProcessing":
        """Get the radar detection processing object."""
        return self._intf.get_property(RadarModelMultifunction._metadata, RadarModelMultifunction._get_detection_processing_metadata)

    _set_pointing_strategy_type_metadata = { "offset" : _set_pointing_strategy_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PointingStrategyType),) }
    def set_pointing_strategy_type(self, value:"PointingStrategyType") -> None:
        """Set the current pointing strategy type."""
        return self._intf.invoke(RadarModelMultifunction._metadata, RadarModelMultifunction._set_pointing_strategy_type_metadata, value)

    _get_pointing_strategy_metadata = { "offset" : _get_pointing_strategy_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pointing_strategy(self) -> "IPointingStrategy":
        """Get the pointing strategy."""
        return self._intf.get_property(RadarModelMultifunction._metadata, RadarModelMultifunction._get_pointing_strategy_metadata)

    _get_antenna_beams_metadata = { "offset" : _get_antenna_beams_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_beams(self) -> "RadarAntennaBeamCollection":
        """Get the antenna beams collection."""
        return self._intf.get_property(RadarModelMultifunction._metadata, RadarModelMultifunction._get_antenna_beams_metadata)

    _get_waveform_strategy_settings_metadata = { "offset" : _get_waveform_strategy_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def waveform_strategy_settings(self) -> "RadarMultifunctionWaveformStrategySettings":
        """Get the waveform selection strategy settings."""
        return self._intf.get_property(RadarModelMultifunction._metadata, RadarModelMultifunction._get_waveform_strategy_settings_metadata)

    _get_clutter_metadata = { "offset" : _get_clutter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def clutter(self) -> "RadarClutter":
        """Get the radar clutter settings."""
        return self._intf.get_property(RadarModelMultifunction._metadata, RadarModelMultifunction._get_clutter_metadata)

    _property_names[transmitter] = "transmitter"
    _property_names[receiver] = "receiver"
    _property_names[clutter_geometry] = "clutter_geometry"
    _property_names[jamming] = "jamming"
    _property_names[location] = "location"
    _property_names[detection_processing] = "detection_processing"
    _property_names[pointing_strategy] = "pointing_strategy"
    _property_names[antenna_beams] = "antenna_beams"
    _property_names[waveform_strategy_settings] = "waveform_strategy_settings"
    _property_names[clutter] = "clutter"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModelMultifunction."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModelMultifunction)
        IRadarModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModelMultifunction, [RadarModelMultifunction, IRadarModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4743533431339015350, 15555076424337263506), RadarModelMultifunction)
agcls.AgTypeNameMap["RadarModelMultifunction"] = RadarModelMultifunction

class RadarModelBistaticTransmitter(IRadarModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a bistatic transmitter radar model."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_modes_method_offset = 1
    _set_mode_method_offset = 2
    _get_mode_method_offset = 3
    _get_transmitter_method_offset = 4
    _get_bistatic_receivers_method_offset = 5
    _get_antenna_control_method_offset = 6
    _get_mode_component_linking_method_offset = 7
    _metadata = {
        "iid_data" : (4710968602749225626, 5855510858460563879),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModelBistaticTransmitter)

    _get_supported_modes_metadata = { "offset" : _get_supported_modes_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_modes(self) -> list:
        """Do not use this property, as it is deprecated. Use ModeComponentLinking on RadarModelBistaticTransmitter instead. Gets an array of supported mode names."""
        return self._intf.get_property(RadarModelBistaticTransmitter._metadata, RadarModelBistaticTransmitter._get_supported_modes_metadata)

    _set_mode_metadata = { "offset" : _set_mode_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_mode(self, mode_name:str) -> None:
        """Do not use this method, as it is deprecated. Use ModeComponentLinking on RadarModelBistaticTransmitter instead. Sets the current radar mode by name."""
        return self._intf.invoke(RadarModelBistaticTransmitter._metadata, RadarModelBistaticTransmitter._set_mode_metadata, mode_name)

    _get_mode_metadata = { "offset" : _get_mode_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def mode(self) -> "IRadarModeBistaticTransmitter":
        """Do not use this property, as it is deprecated. Use ModeComponentLinking on RadarModelBistaticTransmitter instead. Gets the current radar mode."""
        return self._intf.get_property(RadarModelBistaticTransmitter._metadata, RadarModelBistaticTransmitter._get_mode_metadata)

    _get_transmitter_metadata = { "offset" : _get_transmitter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def transmitter(self) -> "RadarTransmitter":
        """Get the radar transmitter."""
        return self._intf.get_property(RadarModelBistaticTransmitter._metadata, RadarModelBistaticTransmitter._get_transmitter_metadata)

    _get_bistatic_receivers_metadata = { "offset" : _get_bistatic_receivers_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def bistatic_receivers(self) -> "ObjectLinkCollection":
        """Get the bistatic receiver collection."""
        return self._intf.get_property(RadarModelBistaticTransmitter._metadata, RadarModelBistaticTransmitter._get_bistatic_receivers_metadata)

    _get_antenna_control_metadata = { "offset" : _get_antenna_control_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_control(self) -> "AntennaControl":
        """Get the radar antenna control."""
        return self._intf.get_property(RadarModelBistaticTransmitter._metadata, RadarModelBistaticTransmitter._get_antenna_control_metadata)

    _get_mode_component_linking_metadata = { "offset" : _get_mode_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def mode_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the radar mode component."""
        return self._intf.get_property(RadarModelBistaticTransmitter._metadata, RadarModelBistaticTransmitter._get_mode_component_linking_metadata)

    _property_names[supported_modes] = "supported_modes"
    _property_names[mode] = "mode"
    _property_names[transmitter] = "transmitter"
    _property_names[bistatic_receivers] = "bistatic_receivers"
    _property_names[antenna_control] = "antenna_control"
    _property_names[mode_component_linking] = "mode_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModelBistaticTransmitter."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModelBistaticTransmitter)
        IRadarModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModelBistaticTransmitter, [RadarModelBistaticTransmitter, IRadarModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4961336996405425932, 3287077321471752597), RadarModelBistaticTransmitter)
agcls.AgTypeNameMap["RadarModelBistaticTransmitter"] = RadarModelBistaticTransmitter

class RadarModelBistaticReceiver(IRadarModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a bistatic receiver radar model."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_modes_method_offset = 1
    _set_mode_method_offset = 2
    _get_mode_method_offset = 3
    _get_receiver_method_offset = 4
    _get_clutter_geometry_method_offset = 5
    _get_jamming_method_offset = 6
    _get_bistatic_transmitters_method_offset = 7
    _get_antenna_control_method_offset = 8
    _get_clutter_method_offset = 9
    _get_mode_component_linking_method_offset = 10
    _metadata = {
        "iid_data" : (5236642534995095125, 9667510107065167265),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModelBistaticReceiver)

    _get_supported_modes_metadata = { "offset" : _get_supported_modes_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_modes(self) -> list:
        """Do not use this property, as it is deprecated. Use ModeComponentLinking on RadarModelBistaticReceiver instead. Gets an array of supported mode names."""
        return self._intf.get_property(RadarModelBistaticReceiver._metadata, RadarModelBistaticReceiver._get_supported_modes_metadata)

    _set_mode_metadata = { "offset" : _set_mode_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_mode(self, mode_name:str) -> None:
        """Do not use this method, as it is deprecated. Use ModeComponentLinking on RadarModelBistaticReceiver instead. Sets the current radar mode by name."""
        return self._intf.invoke(RadarModelBistaticReceiver._metadata, RadarModelBistaticReceiver._set_mode_metadata, mode_name)

    _get_mode_metadata = { "offset" : _get_mode_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def mode(self) -> "IRadarModeBistaticReceiver":
        """Do not use this property, as it is deprecated. Use ModeComponentLinking on RadarModelBistaticReceiver instead. Gets the current radar mode."""
        return self._intf.get_property(RadarModelBistaticReceiver._metadata, RadarModelBistaticReceiver._get_mode_metadata)

    _get_receiver_metadata = { "offset" : _get_receiver_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def receiver(self) -> "RadarReceiver":
        """Get the radar receiver."""
        return self._intf.get_property(RadarModelBistaticReceiver._metadata, RadarModelBistaticReceiver._get_receiver_metadata)

    _get_clutter_geometry_metadata = { "offset" : _get_clutter_geometry_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def clutter_geometry(self) -> "RadarClutterGeometry":
        """Do not use this property, as it is deprecated.Use the Clutter property instead.Gets the radar clutter geometry."""
        return self._intf.get_property(RadarModelBistaticReceiver._metadata, RadarModelBistaticReceiver._get_clutter_geometry_metadata)

    _get_jamming_metadata = { "offset" : _get_jamming_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def jamming(self) -> "RadarJamming":
        """Get the radar jamming."""
        return self._intf.get_property(RadarModelBistaticReceiver._metadata, RadarModelBistaticReceiver._get_jamming_metadata)

    _get_bistatic_transmitters_metadata = { "offset" : _get_bistatic_transmitters_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def bistatic_transmitters(self) -> "ObjectLinkCollection":
        """Get the bistatic transmitter collection."""
        return self._intf.get_property(RadarModelBistaticReceiver._metadata, RadarModelBistaticReceiver._get_bistatic_transmitters_metadata)

    _get_antenna_control_metadata = { "offset" : _get_antenna_control_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_control(self) -> "AntennaControl":
        """Get the radar antenna control."""
        return self._intf.get_property(RadarModelBistaticReceiver._metadata, RadarModelBistaticReceiver._get_antenna_control_metadata)

    _get_clutter_metadata = { "offset" : _get_clutter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def clutter(self) -> "RadarClutter":
        """Get the radar clutter settings."""
        return self._intf.get_property(RadarModelBistaticReceiver._metadata, RadarModelBistaticReceiver._get_clutter_metadata)

    _get_mode_component_linking_metadata = { "offset" : _get_mode_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def mode_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the radar mode component."""
        return self._intf.get_property(RadarModelBistaticReceiver._metadata, RadarModelBistaticReceiver._get_mode_component_linking_metadata)

    _property_names[supported_modes] = "supported_modes"
    _property_names[mode] = "mode"
    _property_names[receiver] = "receiver"
    _property_names[clutter_geometry] = "clutter_geometry"
    _property_names[jamming] = "jamming"
    _property_names[bistatic_transmitters] = "bistatic_transmitters"
    _property_names[antenna_control] = "antenna_control"
    _property_names[clutter] = "clutter"
    _property_names[mode_component_linking] = "mode_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModelBistaticReceiver."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModelBistaticReceiver)
        IRadarModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModelBistaticReceiver, [RadarModelBistaticReceiver, IRadarModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5497977493135416833, 10278716686206911638), RadarModelBistaticReceiver)
agcls.AgTypeNameMap["RadarModelBistaticReceiver"] = RadarModelBistaticReceiver

class RadarGraphics3D(SupportsDeleteCallback):
    """RadarGraphics3D Interface for a radar's 3D Graphics properties."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_vector_method_offset = 1
    _get_show_boresight_method_offset = 2
    _set_show_boresight_method_offset = 3
    _get_show_contours_method_offset = 4
    _set_show_contours_method_offset = 5
    _get_volume_method_offset = 6
    _metadata = {
        "iid_data" : (4669699381953722529, 12585503706617708963),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarGraphics3D)

    _get_vector_metadata = { "offset" : _get_vector_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def vector(self) -> "Graphics3DVector":
        """Get the radar's Vector properties."""
        return self._intf.get_property(RadarGraphics3D._metadata, RadarGraphics3D._get_vector_metadata)

    _get_show_boresight_metadata = { "offset" : _get_show_boresight_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boresight(self) -> bool:
        """Opt whether to display boresight graphics for the radar's antenna."""
        return self._intf.get_property(RadarGraphics3D._metadata, RadarGraphics3D._get_show_boresight_metadata)

    _set_show_boresight_metadata = { "offset" : _set_show_boresight_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boresight.setter
    def show_boresight(self, value:bool) -> None:
        return self._intf.set_property(RadarGraphics3D._metadata, RadarGraphics3D._set_show_boresight_metadata, value)

    _get_show_contours_metadata = { "offset" : _get_show_contours_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_contours(self) -> bool:
        """Opt whether to display contour graphics for the radar's antenna."""
        return self._intf.get_property(RadarGraphics3D._metadata, RadarGraphics3D._get_show_contours_metadata)

    _set_show_contours_metadata = { "offset" : _set_show_contours_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_contours.setter
    def show_contours(self, value:bool) -> None:
        return self._intf.set_property(RadarGraphics3D._metadata, RadarGraphics3D._set_show_contours_metadata, value)

    _get_volume_metadata = { "offset" : _get_volume_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def volume(self) -> "AntennaVolumeGraphics":
        """Get the radar's antenna volume graphics interface."""
        return self._intf.get_property(RadarGraphics3D._metadata, RadarGraphics3D._get_volume_metadata)

    _property_names[vector] = "vector"
    _property_names[show_boresight] = "show_boresight"
    _property_names[show_contours] = "show_contours"
    _property_names[volume] = "volume"

    def __init__(self, source_object=None):
        """Construct an object of type RadarGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarGraphics3D, [RadarGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5260194432111423373, 9223627852312507573), RadarGraphics3D)
agcls.AgTypeNameMap["RadarGraphics3D"] = RadarGraphics3D

class RadarGraphics(SupportsDeleteCallback):
    """RadarGraphics Interface for a radar's 2D Graphics properties."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _get_show_boresight_method_offset = 3
    _set_show_boresight_method_offset = 4
    _get_boresight_color_method_offset = 5
    _set_boresight_color_method_offset = 6
    _get_boresight_marker_style_method_offset = 7
    _set_boresight_marker_style_method_offset = 8
    _get_contour_graphics_method_offset = 9
    _get_access_method_offset = 10
    _get_multipath_method_offset = 11
    _metadata = {
        "iid_data" : (5299428669301551841, 18311479034072150204),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarGraphics)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Opt whether to display graphics for the radar object."""
        return self._intf.get_property(RadarGraphics._metadata, RadarGraphics._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, value:bool) -> None:
        return self._intf.set_property(RadarGraphics._metadata, RadarGraphics._set_show_metadata, value)

    _get_show_boresight_metadata = { "offset" : _get_show_boresight_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boresight(self) -> bool:
        """Opt whether to display boresight graphics for the radar's antenna."""
        return self._intf.get_property(RadarGraphics._metadata, RadarGraphics._get_show_boresight_metadata)

    _set_show_boresight_metadata = { "offset" : _set_show_boresight_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boresight.setter
    def show_boresight(self, value:bool) -> None:
        return self._intf.set_property(RadarGraphics._metadata, RadarGraphics._set_show_boresight_metadata, value)

    _get_boresight_color_metadata = { "offset" : _get_boresight_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def boresight_color(self) -> agcolor.Color:
        """The color in which boresight graphics display."""
        return self._intf.get_property(RadarGraphics._metadata, RadarGraphics._get_boresight_color_metadata)

    _set_boresight_color_metadata = { "offset" : _set_boresight_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @boresight_color.setter
    def boresight_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarGraphics._metadata, RadarGraphics._set_boresight_color_metadata, value)

    _get_boresight_marker_style_metadata = { "offset" : _get_boresight_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def boresight_marker_style(self) -> str:
        """The marker style used to represent the boresight graphically."""
        return self._intf.get_property(RadarGraphics._metadata, RadarGraphics._get_boresight_marker_style_metadata)

    _set_boresight_marker_style_metadata = { "offset" : _set_boresight_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @boresight_marker_style.setter
    def boresight_marker_style(self, value:str) -> None:
        return self._intf.set_property(RadarGraphics._metadata, RadarGraphics._set_boresight_marker_style_metadata, value)

    _get_contour_graphics_metadata = { "offset" : _get_contour_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def contour_graphics(self) -> "AntennaContourGraphics":
        """Get the radar's antenna contour graphics interface."""
        return self._intf.get_property(RadarGraphics._metadata, RadarGraphics._get_contour_graphics_metadata)

    _get_access_metadata = { "offset" : _get_access_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access(self) -> "RadarAccessGraphics":
        """Get the radar's access graphics interface."""
        return self._intf.get_property(RadarGraphics._metadata, RadarGraphics._get_access_metadata)

    _get_multipath_metadata = { "offset" : _get_multipath_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def multipath(self) -> "RadarMultipathGraphics":
        """Get the radar's multipath graphics interface."""
        return self._intf.get_property(RadarGraphics._metadata, RadarGraphics._get_multipath_metadata)

    _property_names[show] = "show"
    _property_names[show_boresight] = "show_boresight"
    _property_names[boresight_color] = "boresight_color"
    _property_names[boresight_marker_style] = "boresight_marker_style"
    _property_names[contour_graphics] = "contour_graphics"
    _property_names[access] = "access"
    _property_names[multipath] = "multipath"

    def __init__(self, source_object=None):
        """Construct an object of type RadarGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarGraphics, [RadarGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5288657565495993342, 3409738211214099899), RadarGraphics)
agcls.AgTypeNameMap["RadarGraphics"] = RadarGraphics

class RadarAccessGraphics(SupportsDeleteCallback):
    """RadarAccessGraphics Interface for a radar's access graphics properties."""

    _num_methods = 28
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_snr_contour_method_offset = 1
    _set_show_snr_contour_method_offset = 2
    _get_snr_contour_type_method_offset = 3
    _set_snr_contour_type_method_offset = 4
    _get_snr_method_offset = 5
    _set_snr_method_offset = 6
    _get_radar_to_target_color_method_offset = 7
    _set_radar_to_target_color_method_offset = 8
    _get_show_bistatic_radar_to_target_method_offset = 9
    _set_show_bistatic_radar_to_target_method_offset = 10
    _get_bistatic_radar_to_target_color_method_offset = 11
    _set_bistatic_radar_to_target_color_method_offset = 12
    _get_bistatic_radar_to_target_line_style_method_offset = 13
    _set_bistatic_radar_to_target_line_style_method_offset = 14
    _get_bistatic_radar_to_target_line_width_method_offset = 15
    _set_bistatic_radar_to_target_line_width_method_offset = 16
    _get_show_bistatic_transmitter_to_bistatic_receiver_method_offset = 17
    _set_show_bistatic_transmitter_to_bistatic_receiver_method_offset = 18
    _get_bistatic_transmitter_to_bistatic_receiver_color_method_offset = 19
    _set_bistatic_transmitter_to_bistatic_receiver_color_method_offset = 20
    _get_bistatic_transmitter_to_bistatic_receiver_line_style_method_offset = 21
    _set_bistatic_transmitter_to_bistatic_receiver_line_style_method_offset = 22
    _get_bistatic_transmitter_to_bistatic_receiver_line_width_method_offset = 23
    _set_bistatic_transmitter_to_bistatic_receiver_line_width_method_offset = 24
    _get_show_clutter_method_offset = 25
    _set_show_clutter_method_offset = 26
    _get_clutter_color_method_offset = 27
    _set_clutter_color_method_offset = 28
    _metadata = {
        "iid_data" : (4967413982029834965, 6122528538634893457),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarAccessGraphics)

    _get_show_snr_contour_metadata = { "offset" : _get_show_snr_contour_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_snr_contour(self) -> bool:
        """Opt whether to display graphics for the SNR contour."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_show_snr_contour_metadata)

    _set_show_snr_contour_metadata = { "offset" : _set_show_snr_contour_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_snr_contour.setter
    def show_snr_contour(self, value:bool) -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_show_snr_contour_metadata, value)

    _get_snr_contour_type_metadata = { "offset" : _get_snr_contour_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarSNRContourType),) }
    @property
    def snr_contour_type(self) -> "RadarSNRContourType":
        """Get or set the SNR contour type."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_snr_contour_type_metadata)

    _set_snr_contour_type_metadata = { "offset" : _set_snr_contour_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarSNRContourType),) }
    @snr_contour_type.setter
    def snr_contour_type(self, value:"RadarSNRContourType") -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_snr_contour_type_metadata, value)

    _get_snr_metadata = { "offset" : _get_snr_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def snr(self) -> float:
        """Get or set the SNR."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_snr_metadata)

    _set_snr_metadata = { "offset" : _set_snr_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @snr.setter
    def snr(self, value:float) -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_snr_metadata, value)

    _get_radar_to_target_color_metadata = { "offset" : _get_radar_to_target_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def radar_to_target_color(self) -> agcolor.Color:
        """Get or set the Radar to Target access color."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_radar_to_target_color_metadata)

    _set_radar_to_target_color_metadata = { "offset" : _set_radar_to_target_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @radar_to_target_color.setter
    def radar_to_target_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_radar_to_target_color_metadata, value)

    _get_show_bistatic_radar_to_target_metadata = { "offset" : _get_show_bistatic_radar_to_target_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_bistatic_radar_to_target(self) -> bool:
        """Get or set the option for showing Bistatic Radar to Target graphics."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_show_bistatic_radar_to_target_metadata)

    _set_show_bistatic_radar_to_target_metadata = { "offset" : _set_show_bistatic_radar_to_target_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_bistatic_radar_to_target.setter
    def show_bistatic_radar_to_target(self, value:bool) -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_show_bistatic_radar_to_target_metadata, value)

    _get_bistatic_radar_to_target_color_metadata = { "offset" : _get_bistatic_radar_to_target_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def bistatic_radar_to_target_color(self) -> agcolor.Color:
        """Get or set the Bistatic Radar to Target color."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_bistatic_radar_to_target_color_metadata)

    _set_bistatic_radar_to_target_color_metadata = { "offset" : _set_bistatic_radar_to_target_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @bistatic_radar_to_target_color.setter
    def bistatic_radar_to_target_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_bistatic_radar_to_target_color_metadata, value)

    _get_bistatic_radar_to_target_line_style_metadata = { "offset" : _get_bistatic_radar_to_target_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def bistatic_radar_to_target_line_style(self) -> "LineStyle":
        """Get or set the LineStyle enumeration for the Bistatic Radar to Target."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_bistatic_radar_to_target_line_style_metadata)

    _set_bistatic_radar_to_target_line_style_metadata = { "offset" : _set_bistatic_radar_to_target_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @bistatic_radar_to_target_line_style.setter
    def bistatic_radar_to_target_line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_bistatic_radar_to_target_line_style_metadata, value)

    _get_bistatic_radar_to_target_line_width_metadata = { "offset" : _get_bistatic_radar_to_target_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def bistatic_radar_to_target_line_width(self) -> "LineWidth":
        """Get or set the LineWidth enumeration for the Bistatic Radar to Target."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_bistatic_radar_to_target_line_width_metadata)

    _set_bistatic_radar_to_target_line_width_metadata = { "offset" : _set_bistatic_radar_to_target_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @bistatic_radar_to_target_line_width.setter
    def bistatic_radar_to_target_line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_bistatic_radar_to_target_line_width_metadata, value)

    _get_show_bistatic_transmitter_to_bistatic_receiver_metadata = { "offset" : _get_show_bistatic_transmitter_to_bistatic_receiver_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_bistatic_transmitter_to_bistatic_receiver(self) -> bool:
        """Get or set the option for showing Bistatic Radar Transmitter to Bistatic Radar Receiver graphics."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_show_bistatic_transmitter_to_bistatic_receiver_metadata)

    _set_show_bistatic_transmitter_to_bistatic_receiver_metadata = { "offset" : _set_show_bistatic_transmitter_to_bistatic_receiver_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_bistatic_transmitter_to_bistatic_receiver.setter
    def show_bistatic_transmitter_to_bistatic_receiver(self, value:bool) -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_show_bistatic_transmitter_to_bistatic_receiver_metadata, value)

    _get_bistatic_transmitter_to_bistatic_receiver_color_metadata = { "offset" : _get_bistatic_transmitter_to_bistatic_receiver_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def bistatic_transmitter_to_bistatic_receiver_color(self) -> agcolor.Color:
        """Get or set the Bistatic Radar Transmitter to Bistatic Radar Receiver color."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_bistatic_transmitter_to_bistatic_receiver_color_metadata)

    _set_bistatic_transmitter_to_bistatic_receiver_color_metadata = { "offset" : _set_bistatic_transmitter_to_bistatic_receiver_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @bistatic_transmitter_to_bistatic_receiver_color.setter
    def bistatic_transmitter_to_bistatic_receiver_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_bistatic_transmitter_to_bistatic_receiver_color_metadata, value)

    _get_bistatic_transmitter_to_bistatic_receiver_line_style_metadata = { "offset" : _get_bistatic_transmitter_to_bistatic_receiver_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def bistatic_transmitter_to_bistatic_receiver_line_style(self) -> "LineStyle":
        """Get or set the LineStyle enumeration for the Bistatic Radar Transmitter to Bistatic Radar Receiver."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_bistatic_transmitter_to_bistatic_receiver_line_style_metadata)

    _set_bistatic_transmitter_to_bistatic_receiver_line_style_metadata = { "offset" : _set_bistatic_transmitter_to_bistatic_receiver_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @bistatic_transmitter_to_bistatic_receiver_line_style.setter
    def bistatic_transmitter_to_bistatic_receiver_line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_bistatic_transmitter_to_bistatic_receiver_line_style_metadata, value)

    _get_bistatic_transmitter_to_bistatic_receiver_line_width_metadata = { "offset" : _get_bistatic_transmitter_to_bistatic_receiver_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def bistatic_transmitter_to_bistatic_receiver_line_width(self) -> "LineWidth":
        """Get or set the LineWidth enumeration for the Bistatic Radar Transmitter to Bistatic Radar Receiver."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_bistatic_transmitter_to_bistatic_receiver_line_width_metadata)

    _set_bistatic_transmitter_to_bistatic_receiver_line_width_metadata = { "offset" : _set_bistatic_transmitter_to_bistatic_receiver_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @bistatic_transmitter_to_bistatic_receiver_line_width.setter
    def bistatic_transmitter_to_bistatic_receiver_line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_bistatic_transmitter_to_bistatic_receiver_line_width_metadata, value)

    _get_show_clutter_metadata = { "offset" : _get_show_clutter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_clutter(self) -> bool:
        """Get or set the option for showing clutter graphics."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_show_clutter_metadata)

    _set_show_clutter_metadata = { "offset" : _set_show_clutter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_clutter.setter
    def show_clutter(self, value:bool) -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_show_clutter_metadata, value)

    _get_clutter_color_metadata = { "offset" : _get_clutter_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def clutter_color(self) -> agcolor.Color:
        """Get or set the clutter color."""
        return self._intf.get_property(RadarAccessGraphics._metadata, RadarAccessGraphics._get_clutter_color_metadata)

    _set_clutter_color_metadata = { "offset" : _set_clutter_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @clutter_color.setter
    def clutter_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarAccessGraphics._metadata, RadarAccessGraphics._set_clutter_color_metadata, value)

    _property_names[show_snr_contour] = "show_snr_contour"
    _property_names[snr_contour_type] = "snr_contour_type"
    _property_names[snr] = "snr"
    _property_names[radar_to_target_color] = "radar_to_target_color"
    _property_names[show_bistatic_radar_to_target] = "show_bistatic_radar_to_target"
    _property_names[bistatic_radar_to_target_color] = "bistatic_radar_to_target_color"
    _property_names[bistatic_radar_to_target_line_style] = "bistatic_radar_to_target_line_style"
    _property_names[bistatic_radar_to_target_line_width] = "bistatic_radar_to_target_line_width"
    _property_names[show_bistatic_transmitter_to_bistatic_receiver] = "show_bistatic_transmitter_to_bistatic_receiver"
    _property_names[bistatic_transmitter_to_bistatic_receiver_color] = "bistatic_transmitter_to_bistatic_receiver_color"
    _property_names[bistatic_transmitter_to_bistatic_receiver_line_style] = "bistatic_transmitter_to_bistatic_receiver_line_style"
    _property_names[bistatic_transmitter_to_bistatic_receiver_line_width] = "bistatic_transmitter_to_bistatic_receiver_line_width"
    _property_names[show_clutter] = "show_clutter"
    _property_names[clutter_color] = "clutter_color"

    def __init__(self, source_object=None):
        """Construct an object of type RadarAccessGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarAccessGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarAccessGraphics, [RadarAccessGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5655419145620211170, 8944283720677287823), RadarAccessGraphics)
agcls.AgTypeNameMap["RadarAccessGraphics"] = RadarAccessGraphics

class RadarMultipathGraphics(SupportsDeleteCallback):
    """RadarMultipathGraphics Interface for a radar's multipath graphics properties."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_transmitter_to_target_ground_reflection_point_method_offset = 1
    _set_show_transmitter_to_target_ground_reflection_point_method_offset = 2
    _get_transmitter_to_target_ground_reflection_point_color_method_offset = 3
    _set_transmitter_to_target_ground_reflection_point_color_method_offset = 4
    _get_transmitter_to_target_ground_reflection_point_marker_style_method_offset = 5
    _set_transmitter_to_target_ground_reflection_point_marker_style_method_offset = 6
    _get_show_receiver_to_target_ground_reflection_point_method_offset = 7
    _set_show_receiver_to_target_ground_reflection_point_method_offset = 8
    _get_receiver_to_target_ground_reflection_point_color_method_offset = 9
    _set_receiver_to_target_ground_reflection_point_color_method_offset = 10
    _get_receiver_to_target_ground_reflection_point_marker_style_method_offset = 11
    _set_receiver_to_target_ground_reflection_point_marker_style_method_offset = 12
    _get_show_transmitter_to_receiver_ground_reflection_point_method_offset = 13
    _set_show_transmitter_to_receiver_ground_reflection_point_method_offset = 14
    _get_transmitter_to_receiver_ground_reflection_point_color_method_offset = 15
    _set_transmitter_to_receiver_ground_reflection_point_color_method_offset = 16
    _get_transmitter_to_receiver_ground_reflection_point_marker_style_method_offset = 17
    _set_transmitter_to_receiver_ground_reflection_point_marker_style_method_offset = 18
    _metadata = {
        "iid_data" : (5003589439488869000, 6041007283729731487),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarMultipathGraphics)

    _get_show_transmitter_to_target_ground_reflection_point_metadata = { "offset" : _get_show_transmitter_to_target_ground_reflection_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_transmitter_to_target_ground_reflection_point(self) -> bool:
        """Opt whether to display graphics for the transmit radar to the target ground reflection point."""
        return self._intf.get_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._get_show_transmitter_to_target_ground_reflection_point_metadata)

    _set_show_transmitter_to_target_ground_reflection_point_metadata = { "offset" : _set_show_transmitter_to_target_ground_reflection_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_transmitter_to_target_ground_reflection_point.setter
    def show_transmitter_to_target_ground_reflection_point(self, value:bool) -> None:
        return self._intf.set_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._set_show_transmitter_to_target_ground_reflection_point_metadata, value)

    _get_transmitter_to_target_ground_reflection_point_color_metadata = { "offset" : _get_transmitter_to_target_ground_reflection_point_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def transmitter_to_target_ground_reflection_point_color(self) -> agcolor.Color:
        """Get or set the transmit radar to target ground reflection point color."""
        return self._intf.get_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._get_transmitter_to_target_ground_reflection_point_color_metadata)

    _set_transmitter_to_target_ground_reflection_point_color_metadata = { "offset" : _set_transmitter_to_target_ground_reflection_point_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @transmitter_to_target_ground_reflection_point_color.setter
    def transmitter_to_target_ground_reflection_point_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._set_transmitter_to_target_ground_reflection_point_color_metadata, value)

    _get_transmitter_to_target_ground_reflection_point_marker_style_metadata = { "offset" : _get_transmitter_to_target_ground_reflection_point_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def transmitter_to_target_ground_reflection_point_marker_style(self) -> str:
        """Get or set the transmit radar to target ground reflection point marker style."""
        return self._intf.get_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._get_transmitter_to_target_ground_reflection_point_marker_style_metadata)

    _set_transmitter_to_target_ground_reflection_point_marker_style_metadata = { "offset" : _set_transmitter_to_target_ground_reflection_point_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @transmitter_to_target_ground_reflection_point_marker_style.setter
    def transmitter_to_target_ground_reflection_point_marker_style(self, value:str) -> None:
        return self._intf.set_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._set_transmitter_to_target_ground_reflection_point_marker_style_metadata, value)

    _get_show_receiver_to_target_ground_reflection_point_metadata = { "offset" : _get_show_receiver_to_target_ground_reflection_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_receiver_to_target_ground_reflection_point(self) -> bool:
        """Opt whether to display graphics for the receive radar to the target ground reflection point."""
        return self._intf.get_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._get_show_receiver_to_target_ground_reflection_point_metadata)

    _set_show_receiver_to_target_ground_reflection_point_metadata = { "offset" : _set_show_receiver_to_target_ground_reflection_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_receiver_to_target_ground_reflection_point.setter
    def show_receiver_to_target_ground_reflection_point(self, value:bool) -> None:
        return self._intf.set_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._set_show_receiver_to_target_ground_reflection_point_metadata, value)

    _get_receiver_to_target_ground_reflection_point_color_metadata = { "offset" : _get_receiver_to_target_ground_reflection_point_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def receiver_to_target_ground_reflection_point_color(self) -> agcolor.Color:
        """Get or set the receive radar to target ground reflection point color."""
        return self._intf.get_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._get_receiver_to_target_ground_reflection_point_color_metadata)

    _set_receiver_to_target_ground_reflection_point_color_metadata = { "offset" : _set_receiver_to_target_ground_reflection_point_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @receiver_to_target_ground_reflection_point_color.setter
    def receiver_to_target_ground_reflection_point_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._set_receiver_to_target_ground_reflection_point_color_metadata, value)

    _get_receiver_to_target_ground_reflection_point_marker_style_metadata = { "offset" : _get_receiver_to_target_ground_reflection_point_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def receiver_to_target_ground_reflection_point_marker_style(self) -> str:
        """Get or set the receive radar to target ground reflection point marker style."""
        return self._intf.get_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._get_receiver_to_target_ground_reflection_point_marker_style_metadata)

    _set_receiver_to_target_ground_reflection_point_marker_style_metadata = { "offset" : _set_receiver_to_target_ground_reflection_point_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @receiver_to_target_ground_reflection_point_marker_style.setter
    def receiver_to_target_ground_reflection_point_marker_style(self, value:str) -> None:
        return self._intf.set_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._set_receiver_to_target_ground_reflection_point_marker_style_metadata, value)

    _get_show_transmitter_to_receiver_ground_reflection_point_metadata = { "offset" : _get_show_transmitter_to_receiver_ground_reflection_point_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_transmitter_to_receiver_ground_reflection_point(self) -> bool:
        """Opt whether to display graphics for the transmit radar to the receive radar ground reflection point."""
        return self._intf.get_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._get_show_transmitter_to_receiver_ground_reflection_point_metadata)

    _set_show_transmitter_to_receiver_ground_reflection_point_metadata = { "offset" : _set_show_transmitter_to_receiver_ground_reflection_point_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_transmitter_to_receiver_ground_reflection_point.setter
    def show_transmitter_to_receiver_ground_reflection_point(self, value:bool) -> None:
        return self._intf.set_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._set_show_transmitter_to_receiver_ground_reflection_point_metadata, value)

    _get_transmitter_to_receiver_ground_reflection_point_color_metadata = { "offset" : _get_transmitter_to_receiver_ground_reflection_point_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def transmitter_to_receiver_ground_reflection_point_color(self) -> agcolor.Color:
        """Get or set the transmit radar to receive radar ground reflection point color."""
        return self._intf.get_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._get_transmitter_to_receiver_ground_reflection_point_color_metadata)

    _set_transmitter_to_receiver_ground_reflection_point_color_metadata = { "offset" : _set_transmitter_to_receiver_ground_reflection_point_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @transmitter_to_receiver_ground_reflection_point_color.setter
    def transmitter_to_receiver_ground_reflection_point_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._set_transmitter_to_receiver_ground_reflection_point_color_metadata, value)

    _get_transmitter_to_receiver_ground_reflection_point_marker_style_metadata = { "offset" : _get_transmitter_to_receiver_ground_reflection_point_marker_style_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def transmitter_to_receiver_ground_reflection_point_marker_style(self) -> str:
        """Get or set the transmit radar to receive radar ground reflection point marker style."""
        return self._intf.get_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._get_transmitter_to_receiver_ground_reflection_point_marker_style_metadata)

    _set_transmitter_to_receiver_ground_reflection_point_marker_style_metadata = { "offset" : _set_transmitter_to_receiver_ground_reflection_point_marker_style_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @transmitter_to_receiver_ground_reflection_point_marker_style.setter
    def transmitter_to_receiver_ground_reflection_point_marker_style(self, value:str) -> None:
        return self._intf.set_property(RadarMultipathGraphics._metadata, RadarMultipathGraphics._set_transmitter_to_receiver_ground_reflection_point_marker_style_metadata, value)

    _property_names[show_transmitter_to_target_ground_reflection_point] = "show_transmitter_to_target_ground_reflection_point"
    _property_names[transmitter_to_target_ground_reflection_point_color] = "transmitter_to_target_ground_reflection_point_color"
    _property_names[transmitter_to_target_ground_reflection_point_marker_style] = "transmitter_to_target_ground_reflection_point_marker_style"
    _property_names[show_receiver_to_target_ground_reflection_point] = "show_receiver_to_target_ground_reflection_point"
    _property_names[receiver_to_target_ground_reflection_point_color] = "receiver_to_target_ground_reflection_point_color"
    _property_names[receiver_to_target_ground_reflection_point_marker_style] = "receiver_to_target_ground_reflection_point_marker_style"
    _property_names[show_transmitter_to_receiver_ground_reflection_point] = "show_transmitter_to_receiver_ground_reflection_point"
    _property_names[transmitter_to_receiver_ground_reflection_point_color] = "transmitter_to_receiver_ground_reflection_point_color"
    _property_names[transmitter_to_receiver_ground_reflection_point_marker_style] = "transmitter_to_receiver_ground_reflection_point_marker_style"

    def __init__(self, source_object=None):
        """Construct an object of type RadarMultipathGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarMultipathGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarMultipathGraphics, [RadarMultipathGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5673532927235178709, 4302570103209248922), RadarMultipathGraphics)
agcls.AgTypeNameMap["RadarMultipathGraphics"] = RadarMultipathGraphics

class RadarModeMonostatic(IRadarModeMonostatic, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a monostatic radar mode."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarModeMonostatic."""
        SupportsDeleteCallback.__init__(self)
        IRadarModeMonostatic.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModeMonostatic._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModeMonostatic, [IRadarModeMonostatic, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5275029481245222466, 9477023677153738425), RadarModeMonostatic)
agcls.AgTypeNameMap["RadarModeMonostatic"] = RadarModeMonostatic

class RadarModeMonostaticSearchTrack(IRadarModeMonostatic, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a monostatic search/track mode."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _set_waveform_type_method_offset = 1
    _get_waveform_method_offset = 2
    _get_doppler_clutter_filters_method_offset = 3
    _metadata = {
        "iid_data" : (4703960674926488325, 750073239834764198),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModeMonostaticSearchTrack)

    _set_waveform_type_metadata = { "offset" : _set_waveform_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarWaveformSearchTrackType),) }
    def set_waveform_type(self, value:"RadarWaveformSearchTrackType") -> None:
        """Set the waveform type."""
        return self._intf.invoke(RadarModeMonostaticSearchTrack._metadata, RadarModeMonostaticSearchTrack._set_waveform_type_metadata, value)

    _get_waveform_metadata = { "offset" : _get_waveform_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def waveform(self) -> "IRadarWaveformSearchTrack":
        """Get the interface for configuring the search/track waveform."""
        return self._intf.get_property(RadarModeMonostaticSearchTrack._metadata, RadarModeMonostaticSearchTrack._get_waveform_metadata)

    _get_doppler_clutter_filters_metadata = { "offset" : _get_doppler_clutter_filters_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def doppler_clutter_filters(self) -> "RadarDopplerClutterFilters":
        """Get the RadarDopplerClutterFilters interface for configuring the doppler clutter filters."""
        return self._intf.get_property(RadarModeMonostaticSearchTrack._metadata, RadarModeMonostaticSearchTrack._get_doppler_clutter_filters_metadata)

    _property_names[waveform] = "waveform"
    _property_names[doppler_clutter_filters] = "doppler_clutter_filters"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModeMonostaticSearchTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModeMonostaticSearchTrack)
        IRadarModeMonostatic.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModeMonostatic._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModeMonostaticSearchTrack, [RadarModeMonostaticSearchTrack, IRadarModeMonostatic, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4988970140227107371, 13522470549691048600), RadarModeMonostaticSearchTrack)
agcls.AgTypeNameMap["RadarModeMonostaticSearchTrack"] = RadarModeMonostaticSearchTrack

class RadarModeMonostaticSAR(IRadarModeMonostatic, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a monostatic sar mode."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_definition_method_offset = 1
    _get_modulator_method_offset = 2
    _get_pulse_integration_method_offset = 3
    _metadata = {
        "iid_data" : (4881683129910680029, 6527527231245443975),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModeMonostaticSAR)

    _get_pulse_definition_metadata = { "offset" : _get_pulse_definition_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse_definition(self) -> "RadarWaveformSarPulseDefinition":
        """Get the interface for configuring the SAR waveform pulse definition."""
        return self._intf.get_property(RadarModeMonostaticSAR._metadata, RadarModeMonostaticSAR._get_pulse_definition_metadata)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "RadarModulator":
        """Get the interface for setting the modulator parameters."""
        return self._intf.get_property(RadarModeMonostaticSAR._metadata, RadarModeMonostaticSAR._get_modulator_metadata)

    _get_pulse_integration_metadata = { "offset" : _get_pulse_integration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse_integration(self) -> "RadarWaveformSarPulseIntegration":
        """Get the interface for configuring the SAR waveform pulse integration."""
        return self._intf.get_property(RadarModeMonostaticSAR._metadata, RadarModeMonostaticSAR._get_pulse_integration_metadata)

    _property_names[pulse_definition] = "pulse_definition"
    _property_names[modulator] = "modulator"
    _property_names[pulse_integration] = "pulse_integration"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModeMonostaticSAR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModeMonostaticSAR)
        IRadarModeMonostatic.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModeMonostatic._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModeMonostaticSAR, [RadarModeMonostaticSAR, IRadarModeMonostatic, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5277617700081317294, 3764173000830571427), RadarModeMonostaticSAR)
agcls.AgTypeNameMap["RadarModeMonostaticSAR"] = RadarModeMonostaticSAR

class RadarModeBistaticTransmitter(IRadarModeBistaticTransmitter, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a bistatic transmitter radar mode."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarModeBistaticTransmitter."""
        SupportsDeleteCallback.__init__(self)
        IRadarModeBistaticTransmitter.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModeBistaticTransmitter._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModeBistaticTransmitter, [IRadarModeBistaticTransmitter, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4713583068794842960, 4254841078474696837), RadarModeBistaticTransmitter)
agcls.AgTypeNameMap["RadarModeBistaticTransmitter"] = RadarModeBistaticTransmitter

class RadarModeBistaticTransmitterSearchTrack(IRadarModeBistaticTransmitter, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a bistatic transmitter search/track mode."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _set_waveform_type_method_offset = 1
    _get_waveform_method_offset = 2
    _metadata = {
        "iid_data" : (5124810458180448988, 7779907723266807713),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModeBistaticTransmitterSearchTrack)

    _set_waveform_type_metadata = { "offset" : _set_waveform_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarWaveformSearchTrackType),) }
    def set_waveform_type(self, value:"RadarWaveformSearchTrackType") -> None:
        """Set the waveform type."""
        return self._intf.invoke(RadarModeBistaticTransmitterSearchTrack._metadata, RadarModeBistaticTransmitterSearchTrack._set_waveform_type_metadata, value)

    _get_waveform_metadata = { "offset" : _get_waveform_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def waveform(self) -> "IRadarWaveformSearchTrack":
        """Get the interface for configuring the search/track waveform."""
        return self._intf.get_property(RadarModeBistaticTransmitterSearchTrack._metadata, RadarModeBistaticTransmitterSearchTrack._get_waveform_metadata)

    _property_names[waveform] = "waveform"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModeBistaticTransmitterSearchTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModeBistaticTransmitterSearchTrack)
        IRadarModeBistaticTransmitter.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModeBistaticTransmitter._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModeBistaticTransmitterSearchTrack, [RadarModeBistaticTransmitterSearchTrack, IRadarModeBistaticTransmitter, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5137168637898595306, 7613173637507799487), RadarModeBistaticTransmitterSearchTrack)
agcls.AgTypeNameMap["RadarModeBistaticTransmitterSearchTrack"] = RadarModeBistaticTransmitterSearchTrack

class RadarModeBistaticTransmitterSAR(IRadarModeBistaticTransmitter, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a bistatic transmitter sar mode."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_definition_method_offset = 1
    _get_modulator_method_offset = 2
    _metadata = {
        "iid_data" : (4988300237650844353, 2919634869468118964),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModeBistaticTransmitterSAR)

    _get_pulse_definition_metadata = { "offset" : _get_pulse_definition_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse_definition(self) -> "RadarWaveformSarPulseDefinition":
        """Get the interface for configuring the SAR waveform pulse definition."""
        return self._intf.get_property(RadarModeBistaticTransmitterSAR._metadata, RadarModeBistaticTransmitterSAR._get_pulse_definition_metadata)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "RadarModulator":
        """Get the interface for setting the modulator parameters."""
        return self._intf.get_property(RadarModeBistaticTransmitterSAR._metadata, RadarModeBistaticTransmitterSAR._get_modulator_metadata)

    _property_names[pulse_definition] = "pulse_definition"
    _property_names[modulator] = "modulator"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModeBistaticTransmitterSAR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModeBistaticTransmitterSAR)
        IRadarModeBistaticTransmitter.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModeBistaticTransmitter._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModeBistaticTransmitterSAR, [RadarModeBistaticTransmitterSAR, IRadarModeBistaticTransmitter, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5263004080077937082, 11466337311219551400), RadarModeBistaticTransmitterSAR)
agcls.AgTypeNameMap["RadarModeBistaticTransmitterSAR"] = RadarModeBistaticTransmitterSAR

class RadarModeBistaticReceiver(IRadarModeBistaticReceiver, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a bistatic receiver radar mode."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarModeBistaticReceiver."""
        SupportsDeleteCallback.__init__(self)
        IRadarModeBistaticReceiver.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModeBistaticReceiver._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModeBistaticReceiver, [IRadarModeBistaticReceiver, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5507482396936618413, 15094076089254612415), RadarModeBistaticReceiver)
agcls.AgTypeNameMap["RadarModeBistaticReceiver"] = RadarModeBistaticReceiver

class RadarModeBistaticReceiverSearchTrack(IRadarModeBistaticReceiver, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a bistatic receiver search/track mode."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _set_waveform_type_method_offset = 1
    _get_waveform_method_offset = 2
    _get_doppler_clutter_filters_method_offset = 3
    _metadata = {
        "iid_data" : (4859712968981037016, 5258894247999054782),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModeBistaticReceiverSearchTrack)

    _set_waveform_type_metadata = { "offset" : _set_waveform_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarWaveformSearchTrackType),) }
    def set_waveform_type(self, value:"RadarWaveformSearchTrackType") -> None:
        """Set the waveform type."""
        return self._intf.invoke(RadarModeBistaticReceiverSearchTrack._metadata, RadarModeBistaticReceiverSearchTrack._set_waveform_type_metadata, value)

    _get_waveform_metadata = { "offset" : _get_waveform_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def waveform(self) -> "IRadarWaveformSearchTrack":
        """Get the interface for configuring the search/track waveform."""
        return self._intf.get_property(RadarModeBistaticReceiverSearchTrack._metadata, RadarModeBistaticReceiverSearchTrack._get_waveform_metadata)

    _get_doppler_clutter_filters_metadata = { "offset" : _get_doppler_clutter_filters_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def doppler_clutter_filters(self) -> "RadarDopplerClutterFilters":
        """Get the RadarDopplerClutterFilters interface for configuring the doppler clutter filters."""
        return self._intf.get_property(RadarModeBistaticReceiverSearchTrack._metadata, RadarModeBistaticReceiverSearchTrack._get_doppler_clutter_filters_metadata)

    _property_names[waveform] = "waveform"
    _property_names[doppler_clutter_filters] = "doppler_clutter_filters"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModeBistaticReceiverSearchTrack."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModeBistaticReceiverSearchTrack)
        IRadarModeBistaticReceiver.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModeBistaticReceiver._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModeBistaticReceiverSearchTrack, [RadarModeBistaticReceiverSearchTrack, IRadarModeBistaticReceiver, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5475295876696632103, 13213653107243163785), RadarModeBistaticReceiverSearchTrack)
agcls.AgTypeNameMap["RadarModeBistaticReceiverSearchTrack"] = RadarModeBistaticReceiverSearchTrack

class RadarModeBistaticReceiverSAR(IRadarModeBistaticReceiver, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a bistatic receiver sar mode."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_integration_method_offset = 1
    _metadata = {
        "iid_data" : (5383844150413613218, 16953484075270958219),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModeBistaticReceiverSAR)

    _get_pulse_integration_metadata = { "offset" : _get_pulse_integration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse_integration(self) -> "RadarWaveformSarPulseIntegration":
        """Get the interface for configuring the SAR waveform pulse integration."""
        return self._intf.get_property(RadarModeBistaticReceiverSAR._metadata, RadarModeBistaticReceiverSAR._get_pulse_integration_metadata)

    _property_names[pulse_integration] = "pulse_integration"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModeBistaticReceiverSAR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModeBistaticReceiverSAR)
        IRadarModeBistaticReceiver.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarModeBistaticReceiver._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModeBistaticReceiverSAR, [RadarModeBistaticReceiverSAR, IRadarModeBistaticReceiver, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5667583771973268600, 3511202669697615283), RadarModeBistaticReceiverSAR)
agcls.AgTypeNameMap["RadarModeBistaticReceiverSAR"] = RadarModeBistaticReceiverSAR

class RadarWaveformMonostaticSearchTrackContinuous(IRadarWaveformSearchTrack, SupportsDeleteCallback):
    """Interface which is implemented by a search/track waveform."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_analysis_mode_type_method_offset = 1
    _set_analysis_mode_type_method_offset = 2
    _get_analysis_mode_method_offset = 3
    _get_probability_of_false_alarm_method_offset = 4
    _set_probability_of_false_alarm_method_offset = 5
    _get_modulator_method_offset = 6
    _metadata = {
        "iid_data" : (4774871494175659357, 5367903443254069153),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarWaveformMonostaticSearchTrackContinuous)

    _get_analysis_mode_type_metadata = { "offset" : _get_analysis_mode_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarContinuousWaveAnalysisMode),) }
    @property
    def analysis_mode_type(self) -> "RadarContinuousWaveAnalysisMode":
        """Get or set the analysis type."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackContinuous._metadata, RadarWaveformMonostaticSearchTrackContinuous._get_analysis_mode_type_metadata)

    _set_analysis_mode_type_metadata = { "offset" : _set_analysis_mode_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarContinuousWaveAnalysisMode),) }
    @analysis_mode_type.setter
    def analysis_mode_type(self, value:"RadarContinuousWaveAnalysisMode") -> None:
        return self._intf.set_property(RadarWaveformMonostaticSearchTrackContinuous._metadata, RadarWaveformMonostaticSearchTrackContinuous._set_analysis_mode_type_metadata, value)

    _get_analysis_mode_metadata = { "offset" : _get_analysis_mode_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis_mode(self) -> "IRadarContinuousWaveAnalysisMode":
        """Get the interface for setting analysis parameters."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackContinuous._metadata, RadarWaveformMonostaticSearchTrackContinuous._get_analysis_mode_metadata)

    _get_probability_of_false_alarm_metadata = { "offset" : _get_probability_of_false_alarm_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def probability_of_false_alarm(self) -> float:
        """Get or set the probability of false alarm."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackContinuous._metadata, RadarWaveformMonostaticSearchTrackContinuous._get_probability_of_false_alarm_metadata)

    _set_probability_of_false_alarm_metadata = { "offset" : _set_probability_of_false_alarm_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @probability_of_false_alarm.setter
    def probability_of_false_alarm(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformMonostaticSearchTrackContinuous._metadata, RadarWaveformMonostaticSearchTrackContinuous._set_probability_of_false_alarm_metadata, value)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "RadarModulator":
        """Get the interface for setting the modulator parameters."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackContinuous._metadata, RadarWaveformMonostaticSearchTrackContinuous._get_modulator_metadata)

    _property_names[analysis_mode_type] = "analysis_mode_type"
    _property_names[analysis_mode] = "analysis_mode"
    _property_names[probability_of_false_alarm] = "probability_of_false_alarm"
    _property_names[modulator] = "modulator"

    def __init__(self, source_object=None):
        """Construct an object of type RadarWaveformMonostaticSearchTrackContinuous."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarWaveformMonostaticSearchTrackContinuous)
        IRadarWaveformSearchTrack.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarWaveformSearchTrack._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarWaveformMonostaticSearchTrackContinuous, [RadarWaveformMonostaticSearchTrackContinuous, IRadarWaveformSearchTrack])

agcls.AgClassCatalog.add_catalog_entry((5480381591184086667, 16825617308278781884), RadarWaveformMonostaticSearchTrackContinuous)
agcls.AgTypeNameMap["RadarWaveformMonostaticSearchTrackContinuous"] = RadarWaveformMonostaticSearchTrackContinuous

class RadarWaveformMonostaticSearchTrackFixedPRF(IRadarWaveformSearchTrack, SupportsDeleteCallback):
    """Interface which is implemented by a search/track waveform."""

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_definition_method_offset = 1
    _get_modulator_method_offset = 2
    _get_supported_probability_of_detection_method_offset = 3
    _set_probability_of_detection_method_offset = 4
    _get_probability_of_detection_method_offset = 5
    _get_pulse_integration_type_method_offset = 6
    _set_pulse_integration_type_method_offset = 7
    _get_pulse_integration_method_offset = 8
    _get_enable_resolution_override_method_offset = 9
    _set_enable_resolution_override_method_offset = 10
    _get_range_cell_resolution_method_offset = 11
    _set_range_cell_resolution_method_offset = 12
    _get_azimuth_resolution_method_offset = 13
    _set_azimuth_resolution_method_offset = 14
    _get_enable_pulse_canceller_method_offset = 15
    _set_enable_pulse_canceller_method_offset = 16
    _get_number_of_pulses_to_cancel_method_offset = 17
    _set_number_of_pulses_to_cancel_method_offset = 18
    _get_enable_coherent_pulses_method_offset = 19
    _set_enable_coherent_pulses_method_offset = 20
    _metadata = {
        "iid_data" : (4968952472128624414, 16301240424128455861),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarWaveformMonostaticSearchTrackFixedPRF)

    _get_pulse_definition_metadata = { "offset" : _get_pulse_definition_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse_definition(self) -> "RadarWaveformSearchTrackPulseDefinition":
        """Get the interface for setting the pulse definition parameters."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_pulse_definition_metadata)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "RadarModulator":
        """Get the interface for setting the modulator parameters."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_modulator_metadata)

    _get_supported_probability_of_detection_metadata = { "offset" : _get_supported_probability_of_detection_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_probability_of_detection(self) -> list:
        """Get an array of supported model names."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_supported_probability_of_detection_metadata)

    _set_probability_of_detection_metadata = { "offset" : _set_probability_of_detection_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_probability_of_detection(self, name:str) -> None:
        """Set the probability of detection algorithm by name."""
        return self._intf.invoke(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._set_probability_of_detection_metadata, name)

    _get_probability_of_detection_metadata = { "offset" : _get_probability_of_detection_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def probability_of_detection(self) -> "IRadarProbabilityOfDetection":
        """Get the interface for setting the probability of detection parameters."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_probability_of_detection_metadata)

    _get_pulse_integration_type_metadata = { "offset" : _get_pulse_integration_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegrationType),) }
    @property
    def pulse_integration_type(self) -> "RadarPulseIntegrationType":
        """Get or set the pulse integration type."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_pulse_integration_type_metadata)

    _set_pulse_integration_type_metadata = { "offset" : _set_pulse_integration_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegrationType),) }
    @pulse_integration_type.setter
    def pulse_integration_type(self, value:"RadarPulseIntegrationType") -> None:
        return self._intf.set_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._set_pulse_integration_type_metadata, value)

    _get_pulse_integration_metadata = { "offset" : _get_pulse_integration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse_integration(self) -> "IRadarPulseIntegration":
        """Get the interface for setting pulse integration parameters."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_pulse_integration_metadata)

    _get_enable_resolution_override_metadata = { "offset" : _get_enable_resolution_override_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_resolution_override(self) -> bool:
        """Get or set the flag for overriding the computed range and azimuth resolution values."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_enable_resolution_override_metadata)

    _set_enable_resolution_override_metadata = { "offset" : _set_enable_resolution_override_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_resolution_override.setter
    def enable_resolution_override(self, value:bool) -> None:
        return self._intf.set_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._set_enable_resolution_override_metadata, value)

    _get_range_cell_resolution_metadata = { "offset" : _get_range_cell_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def range_cell_resolution(self) -> float:
        """Get or set the overriding range cell resolution value."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_range_cell_resolution_metadata)

    _set_range_cell_resolution_metadata = { "offset" : _set_range_cell_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @range_cell_resolution.setter
    def range_cell_resolution(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._set_range_cell_resolution_metadata, value)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_resolution(self) -> float:
        """Get or set the overriding azimuth resolution value."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_azimuth_resolution_metadata)

    _set_azimuth_resolution_metadata = { "offset" : _set_azimuth_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth_resolution.setter
    def azimuth_resolution(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._set_azimuth_resolution_metadata, value)

    _get_enable_pulse_canceller_metadata = { "offset" : _get_enable_pulse_canceller_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_pulse_canceller(self) -> bool:
        """Get or set the flag for enabling pulse cancellation."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_enable_pulse_canceller_metadata)

    _set_enable_pulse_canceller_metadata = { "offset" : _set_enable_pulse_canceller_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_pulse_canceller.setter
    def enable_pulse_canceller(self, value:bool) -> None:
        return self._intf.set_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._set_enable_pulse_canceller_metadata, value)

    _get_number_of_pulses_to_cancel_metadata = { "offset" : _get_number_of_pulses_to_cancel_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_pulses_to_cancel(self) -> int:
        """Get or set the number of pulses to cancel."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_number_of_pulses_to_cancel_metadata)

    _set_number_of_pulses_to_cancel_metadata = { "offset" : _set_number_of_pulses_to_cancel_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_pulses_to_cancel.setter
    def number_of_pulses_to_cancel(self, value:int) -> None:
        return self._intf.set_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._set_number_of_pulses_to_cancel_metadata, value)

    _get_enable_coherent_pulses_metadata = { "offset" : _get_enable_coherent_pulses_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_coherent_pulses(self) -> bool:
        """Get or set the flag for modeling coherent pulses."""
        return self._intf.get_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._get_enable_coherent_pulses_metadata)

    _set_enable_coherent_pulses_metadata = { "offset" : _set_enable_coherent_pulses_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_coherent_pulses.setter
    def enable_coherent_pulses(self, value:bool) -> None:
        return self._intf.set_property(RadarWaveformMonostaticSearchTrackFixedPRF._metadata, RadarWaveformMonostaticSearchTrackFixedPRF._set_enable_coherent_pulses_metadata, value)

    _property_names[pulse_definition] = "pulse_definition"
    _property_names[modulator] = "modulator"
    _property_names[supported_probability_of_detection] = "supported_probability_of_detection"
    _property_names[probability_of_detection] = "probability_of_detection"
    _property_names[pulse_integration_type] = "pulse_integration_type"
    _property_names[pulse_integration] = "pulse_integration"
    _property_names[enable_resolution_override] = "enable_resolution_override"
    _property_names[range_cell_resolution] = "range_cell_resolution"
    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[enable_pulse_canceller] = "enable_pulse_canceller"
    _property_names[number_of_pulses_to_cancel] = "number_of_pulses_to_cancel"
    _property_names[enable_coherent_pulses] = "enable_coherent_pulses"

    def __init__(self, source_object=None):
        """Construct an object of type RadarWaveformMonostaticSearchTrackFixedPRF."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarWaveformMonostaticSearchTrackFixedPRF)
        IRadarWaveformSearchTrack.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarWaveformSearchTrack._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarWaveformMonostaticSearchTrackFixedPRF, [RadarWaveformMonostaticSearchTrackFixedPRF, IRadarWaveformSearchTrack])

agcls.AgClassCatalog.add_catalog_entry((5755260144078118334, 13847817894990840503), RadarWaveformMonostaticSearchTrackFixedPRF)
agcls.AgTypeNameMap["RadarWaveformMonostaticSearchTrackFixedPRF"] = RadarWaveformMonostaticSearchTrackFixedPRF

class RadarMultifunctionDetectionProcessing(SupportsDeleteCallback):
    """Interface which represents multifunction radar detection processing."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_probability_of_detection_method_offset = 1
    _set_probability_of_detection_method_offset = 2
    _get_probability_of_detection_method_offset = 3
    _get_pulse_integration_type_method_offset = 4
    _set_pulse_integration_type_method_offset = 5
    _get_pulse_integration_method_offset = 6
    _get_enable_resolution_override_method_offset = 7
    _set_enable_resolution_override_method_offset = 8
    _get_range_cell_resolution_method_offset = 9
    _set_range_cell_resolution_method_offset = 10
    _get_azimuth_resolution_method_offset = 11
    _set_azimuth_resolution_method_offset = 12
    _get_enable_pulse_canceller_method_offset = 13
    _set_enable_pulse_canceller_method_offset = 14
    _get_number_of_pulses_to_cancel_method_offset = 15
    _set_number_of_pulses_to_cancel_method_offset = 16
    _get_enable_coherent_pulses_method_offset = 17
    _set_enable_coherent_pulses_method_offset = 18
    _metadata = {
        "iid_data" : (5653011410572517130, 10551993303390792895),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarMultifunctionDetectionProcessing)

    _get_supported_probability_of_detection_metadata = { "offset" : _get_supported_probability_of_detection_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_probability_of_detection(self) -> list:
        """Get an array of supported model names."""
        return self._intf.get_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._get_supported_probability_of_detection_metadata)

    _set_probability_of_detection_metadata = { "offset" : _set_probability_of_detection_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_probability_of_detection(self, name:str) -> None:
        """Set the probability of detection algorithm by name."""
        return self._intf.invoke(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._set_probability_of_detection_metadata, name)

    _get_probability_of_detection_metadata = { "offset" : _get_probability_of_detection_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def probability_of_detection(self) -> "IRadarProbabilityOfDetection":
        """Get the interface for setting the probability of detection parameters."""
        return self._intf.get_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._get_probability_of_detection_metadata)

    _get_pulse_integration_type_metadata = { "offset" : _get_pulse_integration_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegrationType),) }
    @property
    def pulse_integration_type(self) -> "RadarPulseIntegrationType":
        """Get or set the pulse integration type."""
        return self._intf.get_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._get_pulse_integration_type_metadata)

    _set_pulse_integration_type_metadata = { "offset" : _set_pulse_integration_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegrationType),) }
    @pulse_integration_type.setter
    def pulse_integration_type(self, value:"RadarPulseIntegrationType") -> None:
        return self._intf.set_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._set_pulse_integration_type_metadata, value)

    _get_pulse_integration_metadata = { "offset" : _get_pulse_integration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse_integration(self) -> "IRadarPulseIntegration":
        """Get the interface for setting pulse integration parameters."""
        return self._intf.get_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._get_pulse_integration_metadata)

    _get_enable_resolution_override_metadata = { "offset" : _get_enable_resolution_override_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_resolution_override(self) -> bool:
        """Get or set the flag for overriding the computed range and azimuth resolution values."""
        return self._intf.get_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._get_enable_resolution_override_metadata)

    _set_enable_resolution_override_metadata = { "offset" : _set_enable_resolution_override_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_resolution_override.setter
    def enable_resolution_override(self, value:bool) -> None:
        return self._intf.set_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._set_enable_resolution_override_metadata, value)

    _get_range_cell_resolution_metadata = { "offset" : _get_range_cell_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def range_cell_resolution(self) -> float:
        """Get or set the overriding range cell resolution value."""
        return self._intf.get_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._get_range_cell_resolution_metadata)

    _set_range_cell_resolution_metadata = { "offset" : _set_range_cell_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @range_cell_resolution.setter
    def range_cell_resolution(self, value:float) -> None:
        return self._intf.set_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._set_range_cell_resolution_metadata, value)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_resolution(self) -> float:
        """Get or set the overriding azimuth resolution value."""
        return self._intf.get_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._get_azimuth_resolution_metadata)

    _set_azimuth_resolution_metadata = { "offset" : _set_azimuth_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth_resolution.setter
    def azimuth_resolution(self, value:float) -> None:
        return self._intf.set_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._set_azimuth_resolution_metadata, value)

    _get_enable_pulse_canceller_metadata = { "offset" : _get_enable_pulse_canceller_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_pulse_canceller(self) -> bool:
        """Get or set the flag for enabling pulse cancellation."""
        return self._intf.get_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._get_enable_pulse_canceller_metadata)

    _set_enable_pulse_canceller_metadata = { "offset" : _set_enable_pulse_canceller_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_pulse_canceller.setter
    def enable_pulse_canceller(self, value:bool) -> None:
        return self._intf.set_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._set_enable_pulse_canceller_metadata, value)

    _get_number_of_pulses_to_cancel_metadata = { "offset" : _get_number_of_pulses_to_cancel_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_pulses_to_cancel(self) -> int:
        """Get or set the number of pulses to cancel."""
        return self._intf.get_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._get_number_of_pulses_to_cancel_metadata)

    _set_number_of_pulses_to_cancel_metadata = { "offset" : _set_number_of_pulses_to_cancel_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_pulses_to_cancel.setter
    def number_of_pulses_to_cancel(self, value:int) -> None:
        return self._intf.set_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._set_number_of_pulses_to_cancel_metadata, value)

    _get_enable_coherent_pulses_metadata = { "offset" : _get_enable_coherent_pulses_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_coherent_pulses(self) -> bool:
        """Get or set the flag for modeling coherent pulses."""
        return self._intf.get_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._get_enable_coherent_pulses_metadata)

    _set_enable_coherent_pulses_metadata = { "offset" : _set_enable_coherent_pulses_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_coherent_pulses.setter
    def enable_coherent_pulses(self, value:bool) -> None:
        return self._intf.set_property(RadarMultifunctionDetectionProcessing._metadata, RadarMultifunctionDetectionProcessing._set_enable_coherent_pulses_metadata, value)

    _property_names[supported_probability_of_detection] = "supported_probability_of_detection"
    _property_names[probability_of_detection] = "probability_of_detection"
    _property_names[pulse_integration_type] = "pulse_integration_type"
    _property_names[pulse_integration] = "pulse_integration"
    _property_names[enable_resolution_override] = "enable_resolution_override"
    _property_names[range_cell_resolution] = "range_cell_resolution"
    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[enable_pulse_canceller] = "enable_pulse_canceller"
    _property_names[number_of_pulses_to_cancel] = "number_of_pulses_to_cancel"
    _property_names[enable_coherent_pulses] = "enable_coherent_pulses"

    def __init__(self, source_object=None):
        """Construct an object of type RadarMultifunctionDetectionProcessing."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarMultifunctionDetectionProcessing)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarMultifunctionDetectionProcessing, [RadarMultifunctionDetectionProcessing, ])

agcls.AgClassCatalog.add_catalog_entry((5232769372470264722, 16283148039702626969), RadarMultifunctionDetectionProcessing)
agcls.AgTypeNameMap["RadarMultifunctionDetectionProcessing"] = RadarMultifunctionDetectionProcessing

class RadarWaveformBistaticTransmitterSearchTrackContinuous(IRadarWaveformSearchTrack, SupportsDeleteCallback):
    """Interface which is implemented by a search/track waveform."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_modulator_method_offset = 1
    _metadata = {
        "iid_data" : (4781944528219952479, 7954383914840456072),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarWaveformBistaticTransmitterSearchTrackContinuous)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "RadarModulator":
        """Get the interface for setting the modulator parameters."""
        return self._intf.get_property(RadarWaveformBistaticTransmitterSearchTrackContinuous._metadata, RadarWaveformBistaticTransmitterSearchTrackContinuous._get_modulator_metadata)

    _property_names[modulator] = "modulator"

    def __init__(self, source_object=None):
        """Construct an object of type RadarWaveformBistaticTransmitterSearchTrackContinuous."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarWaveformBistaticTransmitterSearchTrackContinuous)
        IRadarWaveformSearchTrack.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarWaveformSearchTrack._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarWaveformBistaticTransmitterSearchTrackContinuous, [RadarWaveformBistaticTransmitterSearchTrackContinuous, IRadarWaveformSearchTrack])

agcls.AgClassCatalog.add_catalog_entry((5751032566539433446, 572465958807163061), RadarWaveformBistaticTransmitterSearchTrackContinuous)
agcls.AgTypeNameMap["RadarWaveformBistaticTransmitterSearchTrackContinuous"] = RadarWaveformBistaticTransmitterSearchTrackContinuous

class RadarWaveformBistaticTransmitterSearchTrackFixedPRF(IRadarWaveformSearchTrack, SupportsDeleteCallback):
    """Interface which is implemented by a search/track waveform."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_definition_method_offset = 1
    _get_modulator_method_offset = 2
    _metadata = {
        "iid_data" : (5419515358819275752, 1693961262099000711),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarWaveformBistaticTransmitterSearchTrackFixedPRF)

    _get_pulse_definition_metadata = { "offset" : _get_pulse_definition_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse_definition(self) -> "RadarWaveformSearchTrackPulseDefinition":
        """Get the interface for setting the pulse definition parameters."""
        return self._intf.get_property(RadarWaveformBistaticTransmitterSearchTrackFixedPRF._metadata, RadarWaveformBistaticTransmitterSearchTrackFixedPRF._get_pulse_definition_metadata)

    _get_modulator_metadata = { "offset" : _get_modulator_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def modulator(self) -> "RadarModulator":
        """Get the interface for setting the modulator parameters."""
        return self._intf.get_property(RadarWaveformBistaticTransmitterSearchTrackFixedPRF._metadata, RadarWaveformBistaticTransmitterSearchTrackFixedPRF._get_modulator_metadata)

    _property_names[pulse_definition] = "pulse_definition"
    _property_names[modulator] = "modulator"

    def __init__(self, source_object=None):
        """Construct an object of type RadarWaveformBistaticTransmitterSearchTrackFixedPRF."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarWaveformBistaticTransmitterSearchTrackFixedPRF)
        IRadarWaveformSearchTrack.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarWaveformSearchTrack._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarWaveformBistaticTransmitterSearchTrackFixedPRF, [RadarWaveformBistaticTransmitterSearchTrackFixedPRF, IRadarWaveformSearchTrack])

agcls.AgClassCatalog.add_catalog_entry((5696207584921168781, 3416728640336631970), RadarWaveformBistaticTransmitterSearchTrackFixedPRF)
agcls.AgTypeNameMap["RadarWaveformBistaticTransmitterSearchTrackFixedPRF"] = RadarWaveformBistaticTransmitterSearchTrackFixedPRF

class RadarWaveformBistaticReceiverSearchTrackContinuous(IRadarWaveformSearchTrack, SupportsDeleteCallback):
    """Interface which is implemented by a search/track waveform."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_analysis_mode_type_method_offset = 1
    _set_analysis_mode_type_method_offset = 2
    _get_analysis_mode_method_offset = 3
    _get_probability_of_false_alarm_method_offset = 4
    _set_probability_of_false_alarm_method_offset = 5
    _metadata = {
        "iid_data" : (5490362264602103205, 2547690696800598691),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarWaveformBistaticReceiverSearchTrackContinuous)

    _get_analysis_mode_type_metadata = { "offset" : _get_analysis_mode_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarContinuousWaveAnalysisMode),) }
    @property
    def analysis_mode_type(self) -> "RadarContinuousWaveAnalysisMode":
        """Get or set the analysis type."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackContinuous._metadata, RadarWaveformBistaticReceiverSearchTrackContinuous._get_analysis_mode_type_metadata)

    _set_analysis_mode_type_metadata = { "offset" : _set_analysis_mode_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarContinuousWaveAnalysisMode),) }
    @analysis_mode_type.setter
    def analysis_mode_type(self, value:"RadarContinuousWaveAnalysisMode") -> None:
        return self._intf.set_property(RadarWaveformBistaticReceiverSearchTrackContinuous._metadata, RadarWaveformBistaticReceiverSearchTrackContinuous._set_analysis_mode_type_metadata, value)

    _get_analysis_mode_metadata = { "offset" : _get_analysis_mode_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def analysis_mode(self) -> "IRadarContinuousWaveAnalysisMode":
        """Get the interface for setting analysis parameters."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackContinuous._metadata, RadarWaveformBistaticReceiverSearchTrackContinuous._get_analysis_mode_metadata)

    _get_probability_of_false_alarm_metadata = { "offset" : _get_probability_of_false_alarm_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def probability_of_false_alarm(self) -> float:
        """Get or set the probability of false alarm."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackContinuous._metadata, RadarWaveformBistaticReceiverSearchTrackContinuous._get_probability_of_false_alarm_metadata)

    _set_probability_of_false_alarm_metadata = { "offset" : _set_probability_of_false_alarm_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @probability_of_false_alarm.setter
    def probability_of_false_alarm(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformBistaticReceiverSearchTrackContinuous._metadata, RadarWaveformBistaticReceiverSearchTrackContinuous._set_probability_of_false_alarm_metadata, value)

    _property_names[analysis_mode_type] = "analysis_mode_type"
    _property_names[analysis_mode] = "analysis_mode"
    _property_names[probability_of_false_alarm] = "probability_of_false_alarm"

    def __init__(self, source_object=None):
        """Construct an object of type RadarWaveformBistaticReceiverSearchTrackContinuous."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarWaveformBistaticReceiverSearchTrackContinuous)
        IRadarWaveformSearchTrack.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarWaveformSearchTrack._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarWaveformBistaticReceiverSearchTrackContinuous, [RadarWaveformBistaticReceiverSearchTrackContinuous, IRadarWaveformSearchTrack])

agcls.AgClassCatalog.add_catalog_entry((5498634903543058909, 17559213329599466681), RadarWaveformBistaticReceiverSearchTrackContinuous)
agcls.AgTypeNameMap["RadarWaveformBistaticReceiverSearchTrackContinuous"] = RadarWaveformBistaticReceiverSearchTrackContinuous

class RadarWaveformBistaticReceiverSearchTrackFixedPRF(IRadarWaveformSearchTrack, SupportsDeleteCallback):
    """Interface which is implemented by a search/track waveform."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_probability_of_detection_method_offset = 1
    _get_probability_of_detection_method_offset = 2
    _set_probability_of_detection_method_offset = 3
    _get_pulse_integration_type_method_offset = 4
    _set_pulse_integration_type_method_offset = 5
    _get_pulse_integration_method_offset = 6
    _get_enable_resolution_override_method_offset = 7
    _set_enable_resolution_override_method_offset = 8
    _get_range_cell_resolution_method_offset = 9
    _set_range_cell_resolution_method_offset = 10
    _get_azimuth_resolution_method_offset = 11
    _set_azimuth_resolution_method_offset = 12
    _get_enable_pulse_canceller_method_offset = 13
    _set_enable_pulse_canceller_method_offset = 14
    _get_number_of_pulses_to_cancel_method_offset = 15
    _set_number_of_pulses_to_cancel_method_offset = 16
    _get_enable_coherent_pulses_method_offset = 17
    _set_enable_coherent_pulses_method_offset = 18
    _metadata = {
        "iid_data" : (4794144140521090346, 13409967698265214375),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarWaveformBistaticReceiverSearchTrackFixedPRF)

    _get_supported_probability_of_detection_metadata = { "offset" : _get_supported_probability_of_detection_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_probability_of_detection(self) -> list:
        """Get an array of supported model names."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._get_supported_probability_of_detection_metadata)

    _get_probability_of_detection_metadata = { "offset" : _get_probability_of_detection_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def probability_of_detection(self) -> "IRadarProbabilityOfDetection":
        """Get the interface for setting the probability of detection parameters."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._get_probability_of_detection_metadata)

    _set_probability_of_detection_metadata = { "offset" : _set_probability_of_detection_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_probability_of_detection(self, name:str) -> None:
        """Set the probability of detection algorithm by name."""
        return self._intf.invoke(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._set_probability_of_detection_metadata, name)

    _get_pulse_integration_type_metadata = { "offset" : _get_pulse_integration_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegrationType),) }
    @property
    def pulse_integration_type(self) -> "RadarPulseIntegrationType":
        """Get or set the pulse integration type."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._get_pulse_integration_type_metadata)

    _set_pulse_integration_type_metadata = { "offset" : _set_pulse_integration_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegrationType),) }
    @pulse_integration_type.setter
    def pulse_integration_type(self, value:"RadarPulseIntegrationType") -> None:
        return self._intf.set_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._set_pulse_integration_type_metadata, value)

    _get_pulse_integration_metadata = { "offset" : _get_pulse_integration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pulse_integration(self) -> "IRadarPulseIntegration":
        """Get the interface for setting pulse integration parameters."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._get_pulse_integration_metadata)

    _get_enable_resolution_override_metadata = { "offset" : _get_enable_resolution_override_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_resolution_override(self) -> bool:
        """Get or set the flag for overriding the computed range and azimuth resolution values."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._get_enable_resolution_override_metadata)

    _set_enable_resolution_override_metadata = { "offset" : _set_enable_resolution_override_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_resolution_override.setter
    def enable_resolution_override(self, value:bool) -> None:
        return self._intf.set_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._set_enable_resolution_override_metadata, value)

    _get_range_cell_resolution_metadata = { "offset" : _get_range_cell_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def range_cell_resolution(self) -> float:
        """Get or set the overriding range cell resolution value."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._get_range_cell_resolution_metadata)

    _set_range_cell_resolution_metadata = { "offset" : _set_range_cell_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @range_cell_resolution.setter
    def range_cell_resolution(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._set_range_cell_resolution_metadata, value)

    _get_azimuth_resolution_metadata = { "offset" : _get_azimuth_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_resolution(self) -> float:
        """Get or set the overriding azimuth resolution value."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._get_azimuth_resolution_metadata)

    _set_azimuth_resolution_metadata = { "offset" : _set_azimuth_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth_resolution.setter
    def azimuth_resolution(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._set_azimuth_resolution_metadata, value)

    _get_enable_pulse_canceller_metadata = { "offset" : _get_enable_pulse_canceller_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_pulse_canceller(self) -> bool:
        """Get or set the flag for enabling pulse cancellation."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._get_enable_pulse_canceller_metadata)

    _set_enable_pulse_canceller_metadata = { "offset" : _set_enable_pulse_canceller_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_pulse_canceller.setter
    def enable_pulse_canceller(self, value:bool) -> None:
        return self._intf.set_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._set_enable_pulse_canceller_metadata, value)

    _get_number_of_pulses_to_cancel_metadata = { "offset" : _get_number_of_pulses_to_cancel_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_pulses_to_cancel(self) -> int:
        """Get or set the number of pulses to cancel."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._get_number_of_pulses_to_cancel_metadata)

    _set_number_of_pulses_to_cancel_metadata = { "offset" : _set_number_of_pulses_to_cancel_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_pulses_to_cancel.setter
    def number_of_pulses_to_cancel(self, value:int) -> None:
        return self._intf.set_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._set_number_of_pulses_to_cancel_metadata, value)

    _get_enable_coherent_pulses_metadata = { "offset" : _get_enable_coherent_pulses_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_coherent_pulses(self) -> bool:
        """Get or set the flag for modeling coherent pulses."""
        return self._intf.get_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._get_enable_coherent_pulses_metadata)

    _set_enable_coherent_pulses_metadata = { "offset" : _set_enable_coherent_pulses_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_coherent_pulses.setter
    def enable_coherent_pulses(self, value:bool) -> None:
        return self._intf.set_property(RadarWaveformBistaticReceiverSearchTrackFixedPRF._metadata, RadarWaveformBistaticReceiverSearchTrackFixedPRF._set_enable_coherent_pulses_metadata, value)

    _property_names[supported_probability_of_detection] = "supported_probability_of_detection"
    _property_names[probability_of_detection] = "probability_of_detection"
    _property_names[pulse_integration_type] = "pulse_integration_type"
    _property_names[pulse_integration] = "pulse_integration"
    _property_names[enable_resolution_override] = "enable_resolution_override"
    _property_names[range_cell_resolution] = "range_cell_resolution"
    _property_names[azimuth_resolution] = "azimuth_resolution"
    _property_names[enable_pulse_canceller] = "enable_pulse_canceller"
    _property_names[number_of_pulses_to_cancel] = "number_of_pulses_to_cancel"
    _property_names[enable_coherent_pulses] = "enable_coherent_pulses"

    def __init__(self, source_object=None):
        """Construct an object of type RadarWaveformBistaticReceiverSearchTrackFixedPRF."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarWaveformBistaticReceiverSearchTrackFixedPRF)
        IRadarWaveformSearchTrack.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarWaveformSearchTrack._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarWaveformBistaticReceiverSearchTrackFixedPRF, [RadarWaveformBistaticReceiverSearchTrackFixedPRF, IRadarWaveformSearchTrack])

agcls.AgClassCatalog.add_catalog_entry((5670044728743397201, 8679737085903903935), RadarWaveformBistaticReceiverSearchTrackFixedPRF)
agcls.AgTypeNameMap["RadarWaveformBistaticReceiverSearchTrackFixedPRF"] = RadarWaveformBistaticReceiverSearchTrackFixedPRF

class RadarWaveformSearchTrackPulseDefinition(SupportsDeleteCallback):
    """Provide access to the properties and methods defining the pulse definition for a search track waveform."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_repetition_frequency_mode_method_offset = 1
    _set_pulse_repetition_frequency_mode_method_offset = 2
    _get_pulse_repetition_frequency_method_offset = 3
    _set_pulse_repetition_frequency_method_offset = 4
    _get_unambiguous_range_method_offset = 5
    _set_unambiguous_range_method_offset = 6
    _get_unambiguous_velocity_method_offset = 7
    _set_unambiguous_velocity_method_offset = 8
    _get_pulse_width_mode_method_offset = 9
    _set_pulse_width_mode_method_offset = 10
    _get_pulse_width_method_offset = 11
    _set_pulse_width_method_offset = 12
    _get_duty_factor_method_offset = 13
    _set_duty_factor_method_offset = 14
    _get_number_of_pulses_method_offset = 15
    _set_number_of_pulses_method_offset = 16
    _metadata = {
        "iid_data" : (4809329348057789478, 16431098045111486640),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarWaveformSearchTrackPulseDefinition)

    _get_pulse_repetition_frequency_mode_metadata = { "offset" : _get_pulse_repetition_frequency_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarSearchTrackPRFMode),) }
    @property
    def pulse_repetition_frequency_mode(self) -> "RadarSearchTrackPRFMode":
        """Get or set the prf mode enumeration."""
        return self._intf.get_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._get_pulse_repetition_frequency_mode_metadata)

    _set_pulse_repetition_frequency_mode_metadata = { "offset" : _set_pulse_repetition_frequency_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarSearchTrackPRFMode),) }
    @pulse_repetition_frequency_mode.setter
    def pulse_repetition_frequency_mode(self, value:"RadarSearchTrackPRFMode") -> None:
        return self._intf.set_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._set_pulse_repetition_frequency_mode_metadata, value)

    _get_pulse_repetition_frequency_metadata = { "offset" : _get_pulse_repetition_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pulse_repetition_frequency(self) -> float:
        """Get or set the pulse repetition frequency."""
        return self._intf.get_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._get_pulse_repetition_frequency_metadata)

    _set_pulse_repetition_frequency_metadata = { "offset" : _set_pulse_repetition_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pulse_repetition_frequency.setter
    def pulse_repetition_frequency(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._set_pulse_repetition_frequency_metadata, value)

    _get_unambiguous_range_metadata = { "offset" : _get_unambiguous_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def unambiguous_range(self) -> float:
        """Get or set the unambiguous range."""
        return self._intf.get_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._get_unambiguous_range_metadata)

    _set_unambiguous_range_metadata = { "offset" : _set_unambiguous_range_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @unambiguous_range.setter
    def unambiguous_range(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._set_unambiguous_range_metadata, value)

    _get_unambiguous_velocity_metadata = { "offset" : _get_unambiguous_velocity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def unambiguous_velocity(self) -> float:
        """Get or set the unambiguous velocity."""
        return self._intf.get_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._get_unambiguous_velocity_metadata)

    _set_unambiguous_velocity_metadata = { "offset" : _set_unambiguous_velocity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @unambiguous_velocity.setter
    def unambiguous_velocity(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._set_unambiguous_velocity_metadata, value)

    _get_pulse_width_mode_metadata = { "offset" : _get_pulse_width_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarSearchTrackPulseWidthMode),) }
    @property
    def pulse_width_mode(self) -> "RadarSearchTrackPulseWidthMode":
        """Get or set the pulse width mode enumeration."""
        return self._intf.get_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._get_pulse_width_mode_metadata)

    _set_pulse_width_mode_metadata = { "offset" : _set_pulse_width_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarSearchTrackPulseWidthMode),) }
    @pulse_width_mode.setter
    def pulse_width_mode(self, value:"RadarSearchTrackPulseWidthMode") -> None:
        return self._intf.set_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._set_pulse_width_mode_metadata, value)

    _get_pulse_width_metadata = { "offset" : _get_pulse_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pulse_width(self) -> float:
        """Get or set the pulse width."""
        return self._intf.get_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._get_pulse_width_metadata)

    _set_pulse_width_metadata = { "offset" : _set_pulse_width_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pulse_width.setter
    def pulse_width(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._set_pulse_width_metadata, value)

    _get_duty_factor_metadata = { "offset" : _get_duty_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def duty_factor(self) -> float:
        """Get or set the duty factor."""
        return self._intf.get_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._get_duty_factor_metadata)

    _set_duty_factor_metadata = { "offset" : _set_duty_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @duty_factor.setter
    def duty_factor(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._set_duty_factor_metadata, value)

    _get_number_of_pulses_metadata = { "offset" : _get_number_of_pulses_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_pulses(self) -> int:
        """Get or set the number of pulses."""
        return self._intf.get_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._get_number_of_pulses_metadata)

    _set_number_of_pulses_metadata = { "offset" : _set_number_of_pulses_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_pulses.setter
    def number_of_pulses(self, value:int) -> None:
        return self._intf.set_property(RadarWaveformSearchTrackPulseDefinition._metadata, RadarWaveformSearchTrackPulseDefinition._set_number_of_pulses_metadata, value)

    _property_names[pulse_repetition_frequency_mode] = "pulse_repetition_frequency_mode"
    _property_names[pulse_repetition_frequency] = "pulse_repetition_frequency"
    _property_names[unambiguous_range] = "unambiguous_range"
    _property_names[unambiguous_velocity] = "unambiguous_velocity"
    _property_names[pulse_width_mode] = "pulse_width_mode"
    _property_names[pulse_width] = "pulse_width"
    _property_names[duty_factor] = "duty_factor"
    _property_names[number_of_pulses] = "number_of_pulses"

    def __init__(self, source_object=None):
        """Construct an object of type RadarWaveformSearchTrackPulseDefinition."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarWaveformSearchTrackPulseDefinition)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarWaveformSearchTrackPulseDefinition, [RadarWaveformSearchTrackPulseDefinition, ])

agcls.AgClassCatalog.add_catalog_entry((5565204335609998861, 8793145597210167466), RadarWaveformSearchTrackPulseDefinition)
agcls.AgTypeNameMap["RadarWaveformSearchTrackPulseDefinition"] = RadarWaveformSearchTrackPulseDefinition

class RadarModulator(SupportsDeleteCallback):
    """Provide access to the properties and methods defining the radar modulator."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_signal_psd_method_offset = 1
    _set_use_signal_psd_method_offset = 2
    _get_psd_limit_multiplier_method_offset = 3
    _set_psd_limit_multiplier_method_offset = 4
    _metadata = {
        "iid_data" : (5538355609780840005, 9144330260265301660),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarModulator)

    _get_use_signal_psd_metadata = { "offset" : _get_use_signal_psd_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_signal_psd(self) -> bool:
        """Options for enabling signal psd analysis."""
        return self._intf.get_property(RadarModulator._metadata, RadarModulator._get_use_signal_psd_metadata)

    _set_use_signal_psd_metadata = { "offset" : _set_use_signal_psd_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_signal_psd.setter
    def use_signal_psd(self, value:bool) -> None:
        return self._intf.set_property(RadarModulator._metadata, RadarModulator._set_use_signal_psd_metadata, value)

    _get_psd_limit_multiplier_metadata = { "offset" : _get_psd_limit_multiplier_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def psd_limit_multiplier(self) -> int:
        """Get or set the PSD limit multiplier."""
        return self._intf.get_property(RadarModulator._metadata, RadarModulator._get_psd_limit_multiplier_metadata)

    _set_psd_limit_multiplier_metadata = { "offset" : _set_psd_limit_multiplier_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @psd_limit_multiplier.setter
    def psd_limit_multiplier(self, value:int) -> None:
        return self._intf.set_property(RadarModulator._metadata, RadarModulator._set_psd_limit_multiplier_metadata, value)

    _property_names[use_signal_psd] = "use_signal_psd"
    _property_names[psd_limit_multiplier] = "psd_limit_multiplier"

    def __init__(self, source_object=None):
        """Construct an object of type RadarModulator."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarModulator)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarModulator, [RadarModulator, ])

agcls.AgClassCatalog.add_catalog_entry((4783160779317548800, 3079614367665476494), RadarModulator)
agcls.AgTypeNameMap["RadarModulator"] = RadarModulator

class RadarProbabilityOfDetection(IRadarProbabilityOfDetection, SupportsDeleteCallback):
    """Class defining the probability of detection."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarProbabilityOfDetection."""
        SupportsDeleteCallback.__init__(self)
        IRadarProbabilityOfDetection.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarProbabilityOfDetection._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarProbabilityOfDetection, [IRadarProbabilityOfDetection])

agcls.AgClassCatalog.add_catalog_entry((5300801801952481580, 4137988419918089379), RadarProbabilityOfDetection)
agcls.AgTypeNameMap["RadarProbabilityOfDetection"] = RadarProbabilityOfDetection

class RadarProbabilityOfDetectionCFAR(IRadarProbabilityOfDetectionCFAR, IRadarProbabilityOfDetection, SupportsDeleteCallback):
    """Class defining the probability of detection cfar."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarProbabilityOfDetectionCFAR."""
        SupportsDeleteCallback.__init__(self)
        IRadarProbabilityOfDetectionCFAR.__init__(self, source_object)
        IRadarProbabilityOfDetection.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarProbabilityOfDetectionCFAR._private_init(self, intf)
        IRadarProbabilityOfDetection._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarProbabilityOfDetectionCFAR, [IRadarProbabilityOfDetectionCFAR, IRadarProbabilityOfDetection])

agcls.AgClassCatalog.add_catalog_entry((5688406021356571131, 7932905462529022143), RadarProbabilityOfDetectionCFAR)
agcls.AgTypeNameMap["RadarProbabilityOfDetectionCFAR"] = RadarProbabilityOfDetectionCFAR

class RadarProbabilityOfDetectionNonCFAR(IRadarProbabilityOfDetection, SupportsDeleteCallback):
    """Provide access to the properties and methods for configuring non CFAR probability of detection parameters."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_probability_of_false_alarm_method_offset = 1
    _set_probability_of_false_alarm_method_offset = 2
    _metadata = {
        "iid_data" : (5644248967505574649, 10742184690869668509),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarProbabilityOfDetectionNonCFAR)

    _get_probability_of_false_alarm_metadata = { "offset" : _get_probability_of_false_alarm_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def probability_of_false_alarm(self) -> float:
        """Get or set the probability of false alarm."""
        return self._intf.get_property(RadarProbabilityOfDetectionNonCFAR._metadata, RadarProbabilityOfDetectionNonCFAR._get_probability_of_false_alarm_metadata)

    _set_probability_of_false_alarm_metadata = { "offset" : _set_probability_of_false_alarm_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @probability_of_false_alarm.setter
    def probability_of_false_alarm(self, value:float) -> None:
        return self._intf.set_property(RadarProbabilityOfDetectionNonCFAR._metadata, RadarProbabilityOfDetectionNonCFAR._set_probability_of_false_alarm_metadata, value)

    _property_names[probability_of_false_alarm] = "probability_of_false_alarm"

    def __init__(self, source_object=None):
        """Construct an object of type RadarProbabilityOfDetectionNonCFAR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarProbabilityOfDetectionNonCFAR)
        IRadarProbabilityOfDetection.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarProbabilityOfDetection._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarProbabilityOfDetectionNonCFAR, [RadarProbabilityOfDetectionNonCFAR, IRadarProbabilityOfDetection])

agcls.AgClassCatalog.add_catalog_entry((4777407556771485942, 993605068805147037), RadarProbabilityOfDetectionNonCFAR)
agcls.AgTypeNameMap["RadarProbabilityOfDetectionNonCFAR"] = RadarProbabilityOfDetectionNonCFAR

class RadarProbabilityOfDetectionPlugin(IRadarProbabilityOfDetection, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar clutter geometry plugin model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_plugin_configuration_method_offset = 1
    _get_raw_plugin_object_method_offset = 2
    _metadata = {
        "iid_data" : (5679603904759249462, 9509640510194861503),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarProbabilityOfDetectionPlugin)

    _get_plugin_configuration_metadata = { "offset" : _get_plugin_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_configuration(self) -> "CommRadPluginConfiguration":
        """Get the plugin configuration interface."""
        return self._intf.get_property(RadarProbabilityOfDetectionPlugin._metadata, RadarProbabilityOfDetectionPlugin._get_plugin_configuration_metadata)

    _get_raw_plugin_object_metadata = { "offset" : _get_raw_plugin_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def raw_plugin_object(self) -> typing.Any:
        """Get the raw plugin IUnknown interface."""
        return self._intf.get_property(RadarProbabilityOfDetectionPlugin._metadata, RadarProbabilityOfDetectionPlugin._get_raw_plugin_object_metadata)

    _property_names[plugin_configuration] = "plugin_configuration"
    _property_names[raw_plugin_object] = "raw_plugin_object"

    def __init__(self, source_object=None):
        """Construct an object of type RadarProbabilityOfDetectionPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarProbabilityOfDetectionPlugin)
        IRadarProbabilityOfDetection.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarProbabilityOfDetection._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarProbabilityOfDetectionPlugin, [RadarProbabilityOfDetectionPlugin, IRadarProbabilityOfDetection])

agcls.AgClassCatalog.add_catalog_entry((5650446461921293147, 6099803733836928686), RadarProbabilityOfDetectionPlugin)
agcls.AgTypeNameMap["RadarProbabilityOfDetectionPlugin"] = RadarProbabilityOfDetectionPlugin

class RadarProbabilityOfDetectionCFARCellAveraging(IRadarProbabilityOfDetectionCFAR, IRadarProbabilityOfDetection, SupportsDeleteCallback):
    """Class defining the probability of detection cell averaging cfar."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarProbabilityOfDetectionCFARCellAveraging."""
        SupportsDeleteCallback.__init__(self)
        IRadarProbabilityOfDetectionCFAR.__init__(self, source_object)
        IRadarProbabilityOfDetection.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarProbabilityOfDetectionCFAR._private_init(self, intf)
        IRadarProbabilityOfDetection._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarProbabilityOfDetectionCFARCellAveraging, [IRadarProbabilityOfDetectionCFAR, IRadarProbabilityOfDetection])

agcls.AgClassCatalog.add_catalog_entry((5333865623641149454, 13733423815443300756), RadarProbabilityOfDetectionCFARCellAveraging)
agcls.AgTypeNameMap["RadarProbabilityOfDetectionCFARCellAveraging"] = RadarProbabilityOfDetectionCFARCellAveraging

class RadarProbabilityOfDetectionCFAROrderedStatistics(IRadarProbabilityOfDetectionCFAR, IRadarProbabilityOfDetection, SupportsDeleteCallback):
    """Class defining the probability of detection ordered statistics cfar."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarProbabilityOfDetectionCFAROrderedStatistics."""
        SupportsDeleteCallback.__init__(self)
        IRadarProbabilityOfDetectionCFAR.__init__(self, source_object)
        IRadarProbabilityOfDetection.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarProbabilityOfDetectionCFAR._private_init(self, intf)
        IRadarProbabilityOfDetection._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarProbabilityOfDetectionCFAROrderedStatistics, [IRadarProbabilityOfDetectionCFAR, IRadarProbabilityOfDetection])

agcls.AgClassCatalog.add_catalog_entry((5432533986375847262, 8786602925712056245), RadarProbabilityOfDetectionCFAROrderedStatistics)
agcls.AgTypeNameMap["RadarProbabilityOfDetectionCFAROrderedStatistics"] = RadarProbabilityOfDetectionCFAROrderedStatistics

class RadarPulseIntegrationGoalSNR(IRadarPulseIntegration, SupportsDeleteCallback):
    """Interface which defines a goal SNR integration method."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_snr_method_offset = 1
    _set_snr_method_offset = 2
    _get_maximum_pulses_method_offset = 3
    _set_maximum_pulses_method_offset = 4
    _get_integrator_type_method_offset = 5
    _set_integrator_type_method_offset = 6
    _get_constant_efficiency_method_offset = 7
    _set_constant_efficiency_method_offset = 8
    _get_exponent_on_pulse_number_method_offset = 9
    _set_exponent_on_pulse_number_method_offset = 10
    _get_integration_filename_method_offset = 11
    _set_integration_filename_method_offset = 12
    _get_non_coherent_integration_method_offset = 13
    _set_non_coherent_integration_method_offset = 14
    _metadata = {
        "iid_data" : (4749323002137685544, 17096102236977138102),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarPulseIntegrationGoalSNR)

    _get_snr_metadata = { "offset" : _get_snr_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def snr(self) -> float:
        """Get or set the goal SNR value."""
        return self._intf.get_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._get_snr_metadata)

    _set_snr_metadata = { "offset" : _set_snr_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @snr.setter
    def snr(self, value:float) -> None:
        return self._intf.set_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._set_snr_metadata, value)

    _get_maximum_pulses_metadata = { "offset" : _get_maximum_pulses_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def maximum_pulses(self) -> int:
        """Get or set the maximum number of pulses."""
        return self._intf.get_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._get_maximum_pulses_metadata)

    _set_maximum_pulses_metadata = { "offset" : _set_maximum_pulses_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @maximum_pulses.setter
    def maximum_pulses(self, value:int) -> None:
        return self._intf.set_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._set_maximum_pulses_metadata, value)

    _get_integrator_type_metadata = { "offset" : _get_integrator_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegratorType),) }
    @property
    def integrator_type(self) -> "RadarPulseIntegratorType":
        """Get or set the integrator type."""
        return self._intf.get_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._get_integrator_type_metadata)

    _set_integrator_type_metadata = { "offset" : _set_integrator_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegratorType),) }
    @integrator_type.setter
    def integrator_type(self, value:"RadarPulseIntegratorType") -> None:
        return self._intf.set_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._set_integrator_type_metadata, value)

    _get_constant_efficiency_metadata = { "offset" : _get_constant_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def constant_efficiency(self) -> float:
        """Get or set the constant efficiency value."""
        return self._intf.get_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._get_constant_efficiency_metadata)

    _set_constant_efficiency_metadata = { "offset" : _set_constant_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @constant_efficiency.setter
    def constant_efficiency(self, value:float) -> None:
        return self._intf.set_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._set_constant_efficiency_metadata, value)

    _get_exponent_on_pulse_number_metadata = { "offset" : _get_exponent_on_pulse_number_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def exponent_on_pulse_number(self) -> float:
        """Get or set the exponent on pulse number value."""
        return self._intf.get_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._get_exponent_on_pulse_number_metadata)

    _set_exponent_on_pulse_number_metadata = { "offset" : _set_exponent_on_pulse_number_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @exponent_on_pulse_number.setter
    def exponent_on_pulse_number(self, value:float) -> None:
        return self._intf.set_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._set_exponent_on_pulse_number_metadata, value)

    _get_integration_filename_metadata = { "offset" : _get_integration_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def integration_filename(self) -> str:
        """Get or set the integration file."""
        return self._intf.get_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._get_integration_filename_metadata)

    _set_integration_filename_metadata = { "offset" : _set_integration_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @integration_filename.setter
    def integration_filename(self, value:str) -> None:
        return self._intf.set_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._set_integration_filename_metadata, value)

    _get_non_coherent_integration_metadata = { "offset" : _get_non_coherent_integration_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def non_coherent_integration(self) -> bool:
        """Get or set the non-coherent integration flag."""
        return self._intf.get_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._get_non_coherent_integration_metadata)

    _set_non_coherent_integration_metadata = { "offset" : _set_non_coherent_integration_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @non_coherent_integration.setter
    def non_coherent_integration(self, value:bool) -> None:
        return self._intf.set_property(RadarPulseIntegrationGoalSNR._metadata, RadarPulseIntegrationGoalSNR._set_non_coherent_integration_metadata, value)

    _property_names[snr] = "snr"
    _property_names[maximum_pulses] = "maximum_pulses"
    _property_names[integrator_type] = "integrator_type"
    _property_names[constant_efficiency] = "constant_efficiency"
    _property_names[exponent_on_pulse_number] = "exponent_on_pulse_number"
    _property_names[integration_filename] = "integration_filename"
    _property_names[non_coherent_integration] = "non_coherent_integration"

    def __init__(self, source_object=None):
        """Construct an object of type RadarPulseIntegrationGoalSNR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarPulseIntegrationGoalSNR)
        IRadarPulseIntegration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarPulseIntegration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarPulseIntegrationGoalSNR, [RadarPulseIntegrationGoalSNR, IRadarPulseIntegration])

agcls.AgClassCatalog.add_catalog_entry((5368137918370151493, 3831812722283309471), RadarPulseIntegrationGoalSNR)
agcls.AgTypeNameMap["RadarPulseIntegrationGoalSNR"] = RadarPulseIntegrationGoalSNR

class RadarPulseIntegrationFixedNumberOfPulses(IRadarPulseIntegration, SupportsDeleteCallback):
    """Interface which defines a fixed number of pulses integration method."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_number_method_offset = 1
    _set_pulse_number_method_offset = 2
    _get_integrator_type_method_offset = 3
    _set_integrator_type_method_offset = 4
    _get_constant_efficiency_method_offset = 5
    _set_constant_efficiency_method_offset = 6
    _get_exponent_on_pulse_number_method_offset = 7
    _set_exponent_on_pulse_number_method_offset = 8
    _get_non_coherent_integration_method_offset = 9
    _set_non_coherent_integration_method_offset = 10
    _metadata = {
        "iid_data" : (5288742732858107816, 16372684868370527159),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarPulseIntegrationFixedNumberOfPulses)

    _get_pulse_number_metadata = { "offset" : _get_pulse_number_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def pulse_number(self) -> int:
        """Get or set the pulse number."""
        return self._intf.get_property(RadarPulseIntegrationFixedNumberOfPulses._metadata, RadarPulseIntegrationFixedNumberOfPulses._get_pulse_number_metadata)

    _set_pulse_number_metadata = { "offset" : _set_pulse_number_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @pulse_number.setter
    def pulse_number(self, value:int) -> None:
        return self._intf.set_property(RadarPulseIntegrationFixedNumberOfPulses._metadata, RadarPulseIntegrationFixedNumberOfPulses._set_pulse_number_metadata, value)

    _get_integrator_type_metadata = { "offset" : _get_integrator_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegratorType),) }
    @property
    def integrator_type(self) -> "RadarPulseIntegratorType":
        """Get or set the integrator type."""
        return self._intf.get_property(RadarPulseIntegrationFixedNumberOfPulses._metadata, RadarPulseIntegrationFixedNumberOfPulses._get_integrator_type_metadata)

    _set_integrator_type_metadata = { "offset" : _set_integrator_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarPulseIntegratorType),) }
    @integrator_type.setter
    def integrator_type(self, value:"RadarPulseIntegratorType") -> None:
        return self._intf.set_property(RadarPulseIntegrationFixedNumberOfPulses._metadata, RadarPulseIntegrationFixedNumberOfPulses._set_integrator_type_metadata, value)

    _get_constant_efficiency_metadata = { "offset" : _get_constant_efficiency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def constant_efficiency(self) -> float:
        """Get or set the constant efficiency value."""
        return self._intf.get_property(RadarPulseIntegrationFixedNumberOfPulses._metadata, RadarPulseIntegrationFixedNumberOfPulses._get_constant_efficiency_metadata)

    _set_constant_efficiency_metadata = { "offset" : _set_constant_efficiency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @constant_efficiency.setter
    def constant_efficiency(self, value:float) -> None:
        return self._intf.set_property(RadarPulseIntegrationFixedNumberOfPulses._metadata, RadarPulseIntegrationFixedNumberOfPulses._set_constant_efficiency_metadata, value)

    _get_exponent_on_pulse_number_metadata = { "offset" : _get_exponent_on_pulse_number_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def exponent_on_pulse_number(self) -> float:
        """Get or set the exponent on pulse number value."""
        return self._intf.get_property(RadarPulseIntegrationFixedNumberOfPulses._metadata, RadarPulseIntegrationFixedNumberOfPulses._get_exponent_on_pulse_number_metadata)

    _set_exponent_on_pulse_number_metadata = { "offset" : _set_exponent_on_pulse_number_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @exponent_on_pulse_number.setter
    def exponent_on_pulse_number(self, value:float) -> None:
        return self._intf.set_property(RadarPulseIntegrationFixedNumberOfPulses._metadata, RadarPulseIntegrationFixedNumberOfPulses._set_exponent_on_pulse_number_metadata, value)

    _get_non_coherent_integration_metadata = { "offset" : _get_non_coherent_integration_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def non_coherent_integration(self) -> bool:
        """Get or set the non-coherent integration flag."""
        return self._intf.get_property(RadarPulseIntegrationFixedNumberOfPulses._metadata, RadarPulseIntegrationFixedNumberOfPulses._get_non_coherent_integration_metadata)

    _set_non_coherent_integration_metadata = { "offset" : _set_non_coherent_integration_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @non_coherent_integration.setter
    def non_coherent_integration(self, value:bool) -> None:
        return self._intf.set_property(RadarPulseIntegrationFixedNumberOfPulses._metadata, RadarPulseIntegrationFixedNumberOfPulses._set_non_coherent_integration_metadata, value)

    _property_names[pulse_number] = "pulse_number"
    _property_names[integrator_type] = "integrator_type"
    _property_names[constant_efficiency] = "constant_efficiency"
    _property_names[exponent_on_pulse_number] = "exponent_on_pulse_number"
    _property_names[non_coherent_integration] = "non_coherent_integration"

    def __init__(self, source_object=None):
        """Construct an object of type RadarPulseIntegrationFixedNumberOfPulses."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarPulseIntegrationFixedNumberOfPulses)
        IRadarPulseIntegration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarPulseIntegration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarPulseIntegrationFixedNumberOfPulses, [RadarPulseIntegrationFixedNumberOfPulses, IRadarPulseIntegration])

agcls.AgClassCatalog.add_catalog_entry((4697201478193897832, 579282622629041571), RadarPulseIntegrationFixedNumberOfPulses)
agcls.AgTypeNameMap["RadarPulseIntegrationFixedNumberOfPulses"] = RadarPulseIntegrationFixedNumberOfPulses

class RadarContinuousWaveAnalysisModeGoalSNR(IRadarContinuousWaveAnalysisMode, SupportsDeleteCallback):
    """Interface which defines an continuous wave goal SNR analysis."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_snr_method_offset = 1
    _set_snr_method_offset = 2
    _metadata = {
        "iid_data" : (5490176230111336027, 16947232508181065875),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarContinuousWaveAnalysisModeGoalSNR)

    _get_snr_metadata = { "offset" : _get_snr_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def snr(self) -> float:
        """Get or set the goal SNR."""
        return self._intf.get_property(RadarContinuousWaveAnalysisModeGoalSNR._metadata, RadarContinuousWaveAnalysisModeGoalSNR._get_snr_metadata)

    _set_snr_metadata = { "offset" : _set_snr_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @snr.setter
    def snr(self, value:float) -> None:
        return self._intf.set_property(RadarContinuousWaveAnalysisModeGoalSNR._metadata, RadarContinuousWaveAnalysisModeGoalSNR._set_snr_metadata, value)

    _property_names[snr] = "snr"

    def __init__(self, source_object=None):
        """Construct an object of type RadarContinuousWaveAnalysisModeGoalSNR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarContinuousWaveAnalysisModeGoalSNR)
        IRadarContinuousWaveAnalysisMode.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarContinuousWaveAnalysisMode._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarContinuousWaveAnalysisModeGoalSNR, [RadarContinuousWaveAnalysisModeGoalSNR, IRadarContinuousWaveAnalysisMode])

agcls.AgClassCatalog.add_catalog_entry((4940886480788568275, 11948798497088688558), RadarContinuousWaveAnalysisModeGoalSNR)
agcls.AgTypeNameMap["RadarContinuousWaveAnalysisModeGoalSNR"] = RadarContinuousWaveAnalysisModeGoalSNR

class RadarContinuousWaveAnalysisModeFixedTime(IRadarContinuousWaveAnalysisMode, SupportsDeleteCallback):
    """Interface which defines an continuous wave fixed time analysis."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_fixed_time_method_offset = 1
    _set_fixed_time_method_offset = 2
    _metadata = {
        "iid_data" : (5343876695564198710, 12551339207020094088),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarContinuousWaveAnalysisModeFixedTime)

    _get_fixed_time_metadata = { "offset" : _get_fixed_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fixed_time(self) -> float:
        """Get or set the fixed time value."""
        return self._intf.get_property(RadarContinuousWaveAnalysisModeFixedTime._metadata, RadarContinuousWaveAnalysisModeFixedTime._get_fixed_time_metadata)

    _set_fixed_time_metadata = { "offset" : _set_fixed_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fixed_time.setter
    def fixed_time(self, value:float) -> None:
        return self._intf.set_property(RadarContinuousWaveAnalysisModeFixedTime._metadata, RadarContinuousWaveAnalysisModeFixedTime._set_fixed_time_metadata, value)

    _property_names[fixed_time] = "fixed_time"

    def __init__(self, source_object=None):
        """Construct an object of type RadarContinuousWaveAnalysisModeFixedTime."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarContinuousWaveAnalysisModeFixedTime)
        IRadarContinuousWaveAnalysisMode.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarContinuousWaveAnalysisMode._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarContinuousWaveAnalysisModeFixedTime, [RadarContinuousWaveAnalysisModeFixedTime, IRadarContinuousWaveAnalysisMode])

agcls.AgClassCatalog.add_catalog_entry((5329712172617314049, 6352091836858372524), RadarContinuousWaveAnalysisModeFixedTime)
agcls.AgTypeNameMap["RadarContinuousWaveAnalysisModeFixedTime"] = RadarContinuousWaveAnalysisModeFixedTime

class RadarWaveformSarPulseDefinition(SupportsDeleteCallback):
    """Provide access to the properties and methods defining the pulse definition for a Sar waveform."""

    _num_methods = 28
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_repetition_frequency_mode_method_offset = 1
    _set_pulse_repetition_frequency_mode_method_offset = 2
    _get_pulse_repetition_frequency_method_offset = 3
    _set_pulse_repetition_frequency_method_offset = 4
    _get_unambiguous_range_method_offset = 5
    _set_unambiguous_range_method_offset = 6
    _get_range_resolution_mode_method_offset = 7
    _set_range_resolution_mode_method_offset = 8
    _get_range_resolution_method_offset = 9
    _set_range_resolution_method_offset = 10
    _get_bandwidth_method_offset = 11
    _set_bandwidth_method_offset = 12
    _get_pulse_compression_ratio_mode_method_offset = 13
    _set_pulse_compression_ratio_mode_method_offset = 14
    _get_pulse_compression_ratio_method_offset = 15
    _set_pulse_compression_ratio_method_offset = 16
    _get_pulse_width_method_offset = 17
    _set_pulse_width_method_offset = 18
    _get_scene_depth_method_offset = 19
    _set_scene_depth_method_offset = 20
    _get_fm_chirp_rate_method_offset = 21
    _set_fm_chirp_rate_method_offset = 22
    _get_range_broadening_factor_method_offset = 23
    _set_range_broadening_factor_method_offset = 24
    _get_if_bandwidth_method_offset = 25
    _set_if_bandwidth_method_offset = 26
    _get_number_of_pulses_method_offset = 27
    _set_number_of_pulses_method_offset = 28
    _metadata = {
        "iid_data" : (5309974392535383465, 14780148273819455924),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarWaveformSarPulseDefinition)

    _get_pulse_repetition_frequency_mode_metadata = { "offset" : _get_pulse_repetition_frequency_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarSarPRFMode),) }
    @property
    def pulse_repetition_frequency_mode(self) -> "RadarSarPRFMode":
        """Get or set the prf mode enumeration."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_pulse_repetition_frequency_mode_metadata)

    _set_pulse_repetition_frequency_mode_metadata = { "offset" : _set_pulse_repetition_frequency_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarSarPRFMode),) }
    @pulse_repetition_frequency_mode.setter
    def pulse_repetition_frequency_mode(self, value:"RadarSarPRFMode") -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_pulse_repetition_frequency_mode_metadata, value)

    _get_pulse_repetition_frequency_metadata = { "offset" : _get_pulse_repetition_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pulse_repetition_frequency(self) -> float:
        """Get or set the pulse repetition frequency."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_pulse_repetition_frequency_metadata)

    _set_pulse_repetition_frequency_metadata = { "offset" : _set_pulse_repetition_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pulse_repetition_frequency.setter
    def pulse_repetition_frequency(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_pulse_repetition_frequency_metadata, value)

    _get_unambiguous_range_metadata = { "offset" : _get_unambiguous_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def unambiguous_range(self) -> float:
        """Get or set the unambiguous range."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_unambiguous_range_metadata)

    _set_unambiguous_range_metadata = { "offset" : _set_unambiguous_range_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @unambiguous_range.setter
    def unambiguous_range(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_unambiguous_range_metadata, value)

    _get_range_resolution_mode_metadata = { "offset" : _get_range_resolution_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarSarRangeResolutionMode),) }
    @property
    def range_resolution_mode(self) -> "RadarSarRangeResolutionMode":
        """Get or set the range resolution mode enumeration."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_range_resolution_mode_metadata)

    _set_range_resolution_mode_metadata = { "offset" : _set_range_resolution_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarSarRangeResolutionMode),) }
    @range_resolution_mode.setter
    def range_resolution_mode(self, value:"RadarSarRangeResolutionMode") -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_range_resolution_mode_metadata, value)

    _get_range_resolution_metadata = { "offset" : _get_range_resolution_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def range_resolution(self) -> float:
        """Get or set the range resolution."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_range_resolution_metadata)

    _set_range_resolution_metadata = { "offset" : _set_range_resolution_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @range_resolution.setter
    def range_resolution(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_range_resolution_metadata, value)

    _get_bandwidth_metadata = { "offset" : _get_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def bandwidth(self) -> float:
        """Get or set the bandwidth."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_bandwidth_metadata)

    _set_bandwidth_metadata = { "offset" : _set_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @bandwidth.setter
    def bandwidth(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_bandwidth_metadata, value)

    _get_pulse_compression_ratio_mode_metadata = { "offset" : _get_pulse_compression_ratio_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarSarPcrMode),) }
    @property
    def pulse_compression_ratio_mode(self) -> "RadarSarPcrMode":
        """Get or set the pulse compression ratio mode enumeration."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_pulse_compression_ratio_mode_metadata)

    _set_pulse_compression_ratio_mode_metadata = { "offset" : _set_pulse_compression_ratio_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarSarPcrMode),) }
    @pulse_compression_ratio_mode.setter
    def pulse_compression_ratio_mode(self, value:"RadarSarPcrMode") -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_pulse_compression_ratio_mode_metadata, value)

    _get_pulse_compression_ratio_metadata = { "offset" : _get_pulse_compression_ratio_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pulse_compression_ratio(self) -> float:
        """Get or set the pulse compression ratio."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_pulse_compression_ratio_metadata)

    _set_pulse_compression_ratio_metadata = { "offset" : _set_pulse_compression_ratio_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pulse_compression_ratio.setter
    def pulse_compression_ratio(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_pulse_compression_ratio_metadata, value)

    _get_pulse_width_metadata = { "offset" : _get_pulse_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pulse_width(self) -> float:
        """Get or set the pulse width."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_pulse_width_metadata)

    _set_pulse_width_metadata = { "offset" : _set_pulse_width_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pulse_width.setter
    def pulse_width(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_pulse_width_metadata, value)

    _get_scene_depth_metadata = { "offset" : _get_scene_depth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scene_depth(self) -> float:
        """Get or set the scene depth."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_scene_depth_metadata)

    _set_scene_depth_metadata = { "offset" : _set_scene_depth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scene_depth.setter
    def scene_depth(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_scene_depth_metadata, value)

    _get_fm_chirp_rate_metadata = { "offset" : _get_fm_chirp_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fm_chirp_rate(self) -> float:
        """Get or set the FM chirp rate."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_fm_chirp_rate_metadata)

    _set_fm_chirp_rate_metadata = { "offset" : _set_fm_chirp_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fm_chirp_rate.setter
    def fm_chirp_rate(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_fm_chirp_rate_metadata, value)

    _get_range_broadening_factor_metadata = { "offset" : _get_range_broadening_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def range_broadening_factor(self) -> float:
        """Get or set the range broadening factor. This property is read only for monostatic radar systems."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_range_broadening_factor_metadata)

    _set_range_broadening_factor_metadata = { "offset" : _set_range_broadening_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @range_broadening_factor.setter
    def range_broadening_factor(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_range_broadening_factor_metadata, value)

    _get_if_bandwidth_metadata = { "offset" : _get_if_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def if_bandwidth(self) -> float:
        """Get or set the IF bandwidth. This property is read only for monostatic radar systems."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_if_bandwidth_metadata)

    _set_if_bandwidth_metadata = { "offset" : _set_if_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @if_bandwidth.setter
    def if_bandwidth(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_if_bandwidth_metadata, value)

    _get_number_of_pulses_metadata = { "offset" : _get_number_of_pulses_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_pulses(self) -> int:
        """Get or set the number of pulses."""
        return self._intf.get_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._get_number_of_pulses_metadata)

    _set_number_of_pulses_metadata = { "offset" : _set_number_of_pulses_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_pulses.setter
    def number_of_pulses(self, value:int) -> None:
        return self._intf.set_property(RadarWaveformSarPulseDefinition._metadata, RadarWaveformSarPulseDefinition._set_number_of_pulses_metadata, value)

    _property_names[pulse_repetition_frequency_mode] = "pulse_repetition_frequency_mode"
    _property_names[pulse_repetition_frequency] = "pulse_repetition_frequency"
    _property_names[unambiguous_range] = "unambiguous_range"
    _property_names[range_resolution_mode] = "range_resolution_mode"
    _property_names[range_resolution] = "range_resolution"
    _property_names[bandwidth] = "bandwidth"
    _property_names[pulse_compression_ratio_mode] = "pulse_compression_ratio_mode"
    _property_names[pulse_compression_ratio] = "pulse_compression_ratio"
    _property_names[pulse_width] = "pulse_width"
    _property_names[scene_depth] = "scene_depth"
    _property_names[fm_chirp_rate] = "fm_chirp_rate"
    _property_names[range_broadening_factor] = "range_broadening_factor"
    _property_names[if_bandwidth] = "if_bandwidth"
    _property_names[number_of_pulses] = "number_of_pulses"

    def __init__(self, source_object=None):
        """Construct an object of type RadarWaveformSarPulseDefinition."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarWaveformSarPulseDefinition)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarWaveformSarPulseDefinition, [RadarWaveformSarPulseDefinition, ])

agcls.AgClassCatalog.add_catalog_entry((5222371102576167163, 13758584620212783752), RadarWaveformSarPulseDefinition)
agcls.AgTypeNameMap["RadarWaveformSarPulseDefinition"] = RadarWaveformSarPulseDefinition

class RadarWaveformSarPulseIntegration(SupportsDeleteCallback):
    """Provide access to the properties and methods defining the pulse integration for a SAR waveform."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_azimuth_broadening_factor_method_offset = 1
    _set_azimuth_broadening_factor_method_offset = 2
    _get_range_broadening_factor_method_offset = 3
    _set_range_broadening_factor_method_offset = 4
    _get_if_bandwidth_method_offset = 5
    _set_if_bandwidth_method_offset = 6
    _get_analysis_mode_method_offset = 7
    _set_analysis_mode_method_offset = 8
    _get_analysis_mode_value_method_offset = 9
    _set_analysis_mode_value_method_offset = 10
    _get_multiplicative_noise_ratio_method_offset = 11
    _set_multiplicative_noise_ratio_method_offset = 12
    _metadata = {
        "iid_data" : (5537709251843932020, 12219804905698444984),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarWaveformSarPulseIntegration)

    _get_azimuth_broadening_factor_metadata = { "offset" : _get_azimuth_broadening_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_broadening_factor(self) -> float:
        """Get or set the azimuth broadening factor."""
        return self._intf.get_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._get_azimuth_broadening_factor_metadata)

    _set_azimuth_broadening_factor_metadata = { "offset" : _set_azimuth_broadening_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth_broadening_factor.setter
    def azimuth_broadening_factor(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._set_azimuth_broadening_factor_metadata, value)

    _get_range_broadening_factor_metadata = { "offset" : _get_range_broadening_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def range_broadening_factor(self) -> float:
        """Get or set the range broadening factor."""
        return self._intf.get_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._get_range_broadening_factor_metadata)

    _set_range_broadening_factor_metadata = { "offset" : _set_range_broadening_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @range_broadening_factor.setter
    def range_broadening_factor(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._set_range_broadening_factor_metadata, value)

    _get_if_bandwidth_metadata = { "offset" : _get_if_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def if_bandwidth(self) -> float:
        """Get or set the IF bandwidth."""
        return self._intf.get_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._get_if_bandwidth_metadata)

    _set_if_bandwidth_metadata = { "offset" : _set_if_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @if_bandwidth.setter
    def if_bandwidth(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._set_if_bandwidth_metadata, value)

    _get_analysis_mode_metadata = { "offset" : _get_analysis_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarSARPulseIntegrationAnalysisMode),) }
    @property
    def analysis_mode(self) -> "RadarSARPulseIntegrationAnalysisMode":
        """Get or set the analysis mode enumeration."""
        return self._intf.get_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._get_analysis_mode_metadata)

    _set_analysis_mode_metadata = { "offset" : _set_analysis_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarSARPulseIntegrationAnalysisMode),) }
    @analysis_mode.setter
    def analysis_mode(self, value:"RadarSARPulseIntegrationAnalysisMode") -> None:
        return self._intf.set_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._set_analysis_mode_metadata, value)

    _get_analysis_mode_value_metadata = { "offset" : _get_analysis_mode_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def analysis_mode_value(self) -> float:
        """Get or set the analysis mode value."""
        return self._intf.get_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._get_analysis_mode_value_metadata)

    _set_analysis_mode_value_metadata = { "offset" : _set_analysis_mode_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @analysis_mode_value.setter
    def analysis_mode_value(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._set_analysis_mode_value_metadata, value)

    _get_multiplicative_noise_ratio_metadata = { "offset" : _get_multiplicative_noise_ratio_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def multiplicative_noise_ratio(self) -> float:
        """Get or set the multiplicative noise ratio."""
        return self._intf.get_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._get_multiplicative_noise_ratio_metadata)

    _set_multiplicative_noise_ratio_metadata = { "offset" : _set_multiplicative_noise_ratio_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @multiplicative_noise_ratio.setter
    def multiplicative_noise_ratio(self, value:float) -> None:
        return self._intf.set_property(RadarWaveformSarPulseIntegration._metadata, RadarWaveformSarPulseIntegration._set_multiplicative_noise_ratio_metadata, value)

    _property_names[azimuth_broadening_factor] = "azimuth_broadening_factor"
    _property_names[range_broadening_factor] = "range_broadening_factor"
    _property_names[if_bandwidth] = "if_bandwidth"
    _property_names[analysis_mode] = "analysis_mode"
    _property_names[analysis_mode_value] = "analysis_mode_value"
    _property_names[multiplicative_noise_ratio] = "multiplicative_noise_ratio"

    def __init__(self, source_object=None):
        """Construct an object of type RadarWaveformSarPulseIntegration."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarWaveformSarPulseIntegration)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarWaveformSarPulseIntegration, [RadarWaveformSarPulseIntegration, ])

agcls.AgClassCatalog.add_catalog_entry((5705161175462916561, 2264211053627365044), RadarWaveformSarPulseIntegration)
agcls.AgTypeNameMap["RadarWaveformSarPulseIntegration"] = RadarWaveformSarPulseIntegration

class RadarTransmitter(SupportsDeleteCallback):
    """Interface which defines a radar transmitter."""

    _num_methods = 23
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_frequency_specification_method_offset = 1
    _set_frequency_specification_method_offset = 2
    _get_frequency_method_offset = 3
    _set_frequency_method_offset = 4
    _get_wavelength_method_offset = 5
    _set_wavelength_method_offset = 6
    _get_power_method_offset = 7
    _set_power_method_offset = 8
    _get_post_transmit_gains_losses_method_offset = 9
    _get_enable_polarization_method_offset = 10
    _set_enable_polarization_method_offset = 11
    _get_enable_orthogonal_polarization_method_offset = 12
    _set_enable_orthogonal_polarization_method_offset = 13
    _set_polarization_type_method_offset = 14
    _get_polarization_method_offset = 15
    _get_power_amplifier_bandwidth_method_offset = 16
    _set_power_amplifier_bandwidth_method_offset = 17
    _get_enable_filter_method_offset = 18
    _set_enable_filter_method_offset = 19
    _get_supported_filters_method_offset = 20
    _set_filter_method_offset = 21
    _get_filter_method_offset = 22
    _get_filter_component_linking_method_offset = 23
    _metadata = {
        "iid_data" : (5346788497031824684, 4841748737081806222),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarTransmitter)

    _get_frequency_specification_metadata = { "offset" : _get_frequency_specification_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarFrequencySpecificationType),) }
    @property
    def frequency_specification(self) -> "RadarFrequencySpecificationType":
        """Get or set the frequency specification."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_frequency_specification_metadata)

    _set_frequency_specification_metadata = { "offset" : _set_frequency_specification_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarFrequencySpecificationType),) }
    @frequency_specification.setter
    def frequency_specification(self, value:"RadarFrequencySpecificationType") -> None:
        return self._intf.set_property(RadarTransmitter._metadata, RadarTransmitter._set_frequency_specification_metadata, value)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the frequency."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, value:float) -> None:
        return self._intf.set_property(RadarTransmitter._metadata, RadarTransmitter._set_frequency_metadata, value)

    _get_wavelength_metadata = { "offset" : _get_wavelength_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def wavelength(self) -> float:
        """Get or set the wavelength."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_wavelength_metadata)

    _set_wavelength_metadata = { "offset" : _set_wavelength_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @wavelength.setter
    def wavelength(self, value:float) -> None:
        return self._intf.set_property(RadarTransmitter._metadata, RadarTransmitter._set_wavelength_metadata, value)

    _get_power_metadata = { "offset" : _get_power_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def power(self) -> float:
        """Get or set the power."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_power_metadata)

    _set_power_metadata = { "offset" : _set_power_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @power.setter
    def power(self, value:float) -> None:
        return self._intf.set_property(RadarTransmitter._metadata, RadarTransmitter._set_power_metadata, value)

    _get_post_transmit_gains_losses_metadata = { "offset" : _get_post_transmit_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def post_transmit_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional post transmit gains and losses."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_post_transmit_gains_losses_metadata)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(RadarTransmitter._metadata, RadarTransmitter._set_enable_polarization_metadata, value)

    _get_enable_orthogonal_polarization_metadata = { "offset" : _get_enable_orthogonal_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_orthogonal_polarization(self) -> bool:
        """Get or set the option for enabling the orthogonal polarization."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_enable_orthogonal_polarization_metadata)

    _set_enable_orthogonal_polarization_metadata = { "offset" : _set_enable_orthogonal_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_orthogonal_polarization.setter
    def enable_orthogonal_polarization(self, value:bool) -> None:
        return self._intf.set_property(RadarTransmitter._metadata, RadarTransmitter._set_enable_orthogonal_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(RadarTransmitter._metadata, RadarTransmitter._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_polarization_metadata)

    _get_power_amplifier_bandwidth_metadata = { "offset" : _get_power_amplifier_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def power_amplifier_bandwidth(self) -> float:
        """Get or set the power amplifier bandwidth."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_power_amplifier_bandwidth_metadata)

    _set_power_amplifier_bandwidth_metadata = { "offset" : _set_power_amplifier_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @power_amplifier_bandwidth.setter
    def power_amplifier_bandwidth(self, value:float) -> None:
        return self._intf.set_property(RadarTransmitter._metadata, RadarTransmitter._set_power_amplifier_bandwidth_metadata, value)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(RadarTransmitter._metadata, RadarTransmitter._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on RadarTransmitter instead. Gets an array of supported filter model names."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on RadarTransmitter instead. Sets the current filter model by name."""
        return self._intf.invoke(RadarTransmitter._metadata, RadarTransmitter._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on RadarTransmitter instead. Gets the current filter model."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_filter_metadata)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(RadarTransmitter._metadata, RadarTransmitter._get_filter_component_linking_metadata)

    _property_names[frequency_specification] = "frequency_specification"
    _property_names[frequency] = "frequency"
    _property_names[wavelength] = "wavelength"
    _property_names[power] = "power"
    _property_names[post_transmit_gains_losses] = "post_transmit_gains_losses"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[enable_orthogonal_polarization] = "enable_orthogonal_polarization"
    _property_names[polarization] = "polarization"
    _property_names[power_amplifier_bandwidth] = "power_amplifier_bandwidth"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type RadarTransmitter."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarTransmitter)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarTransmitter, [RadarTransmitter, ])

agcls.AgClassCatalog.add_catalog_entry((5214539059549655289, 16663210543677685916), RadarTransmitter)
agcls.AgTypeNameMap["RadarTransmitter"] = RadarTransmitter

class RadarTransmitterMultifunction(SupportsDeleteCallback):
    """Interface which defines a multifunction radar transmitter."""

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_post_transmit_gains_losses_method_offset = 1
    _get_enable_polarization_method_offset = 2
    _set_enable_polarization_method_offset = 3
    _get_enable_orthogonal_polarization_method_offset = 4
    _set_enable_orthogonal_polarization_method_offset = 5
    _set_polarization_type_method_offset = 6
    _get_polarization_method_offset = 7
    _get_power_amplifier_bandwidth_method_offset = 8
    _set_power_amplifier_bandwidth_method_offset = 9
    _get_enable_filter_method_offset = 10
    _set_enable_filter_method_offset = 11
    _get_supported_filters_method_offset = 12
    _set_filter_method_offset = 13
    _get_filter_method_offset = 14
    _get_maximum_power_limit_method_offset = 15
    _set_maximum_power_limit_method_offset = 16
    _get_filter_component_linking_method_offset = 17
    _metadata = {
        "iid_data" : (5735444454254985787, 16572340388840428176),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarTransmitterMultifunction)

    _get_post_transmit_gains_losses_metadata = { "offset" : _get_post_transmit_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def post_transmit_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional post transmit gains and losses."""
        return self._intf.get_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._get_post_transmit_gains_losses_metadata)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._set_enable_polarization_metadata, value)

    _get_enable_orthogonal_polarization_metadata = { "offset" : _get_enable_orthogonal_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_orthogonal_polarization(self) -> bool:
        """Get or set the option for enabling the orthogonal polarization."""
        return self._intf.get_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._get_enable_orthogonal_polarization_metadata)

    _set_enable_orthogonal_polarization_metadata = { "offset" : _set_enable_orthogonal_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_orthogonal_polarization.setter
    def enable_orthogonal_polarization(self, value:bool) -> None:
        return self._intf.set_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._set_enable_orthogonal_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._get_polarization_metadata)

    _get_power_amplifier_bandwidth_metadata = { "offset" : _get_power_amplifier_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def power_amplifier_bandwidth(self) -> float:
        """Get or set the power amplifier bandwidth."""
        return self._intf.get_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._get_power_amplifier_bandwidth_metadata)

    _set_power_amplifier_bandwidth_metadata = { "offset" : _set_power_amplifier_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @power_amplifier_bandwidth.setter
    def power_amplifier_bandwidth(self, value:float) -> None:
        return self._intf.set_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._set_power_amplifier_bandwidth_metadata, value)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on RadarTransmitterMultifunction instead. Gets an array of supported filter model names."""
        return self._intf.get_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on RadarTransmitterMultifunction instead. Sets the current filter model by name."""
        return self._intf.invoke(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on RadarTransmitterMultifunction instead. Gets the current filter model."""
        return self._intf.get_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._get_filter_metadata)

    _get_maximum_power_limit_metadata = { "offset" : _get_maximum_power_limit_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_power_limit(self) -> float:
        """Get or set the power."""
        return self._intf.get_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._get_maximum_power_limit_metadata)

    _set_maximum_power_limit_metadata = { "offset" : _set_maximum_power_limit_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_power_limit.setter
    def maximum_power_limit(self, value:float) -> None:
        return self._intf.set_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._set_maximum_power_limit_metadata, value)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(RadarTransmitterMultifunction._metadata, RadarTransmitterMultifunction._get_filter_component_linking_metadata)

    _property_names[post_transmit_gains_losses] = "post_transmit_gains_losses"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[enable_orthogonal_polarization] = "enable_orthogonal_polarization"
    _property_names[polarization] = "polarization"
    _property_names[power_amplifier_bandwidth] = "power_amplifier_bandwidth"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[maximum_power_limit] = "maximum_power_limit"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type RadarTransmitterMultifunction."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarTransmitterMultifunction)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarTransmitterMultifunction, [RadarTransmitterMultifunction, ])

agcls.AgClassCatalog.add_catalog_entry((4948251357925301591, 6845419164901774739), RadarTransmitterMultifunction)
agcls.AgTypeNameMap["RadarTransmitterMultifunction"] = RadarTransmitterMultifunction

class RadarReceiver(SupportsDeleteCallback):
    """Interface which defines a radar receiver."""

    _num_methods = 39
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_antenna_to_lna_line_loss_method_offset = 1
    _set_antenna_to_lna_line_loss_method_offset = 2
    _get_lna_gain_method_offset = 3
    _set_lna_gain_method_offset = 4
    _get_lna_to_receiver_line_loss_method_offset = 5
    _set_lna_to_receiver_line_loss_method_offset = 6
    _get_use_rain_method_offset = 7
    _set_use_rain_method_offset = 8
    _get_supported_rain_outage_percent_values_method_offset = 9
    _get_rain_outage_percent_method_offset = 10
    _set_rain_outage_percent_method_offset = 11
    _get_pre_receive_gains_losses_method_offset = 12
    _get_enable_polarization_method_offset = 13
    _set_enable_polarization_method_offset = 14
    _get_enable_orthogonal_polarization_method_offset = 15
    _set_enable_orthogonal_polarization_method_offset = 16
    _set_polarization_type_method_offset = 17
    _get_polarization_method_offset = 18
    _get_lna_bandwidth_method_offset = 19
    _set_lna_bandwidth_method_offset = 20
    _get_enable_filter_method_offset = 21
    _set_enable_filter_method_offset = 22
    _get_supported_filters_method_offset = 23
    _set_filter_method_offset = 24
    _get_filter_method_offset = 25
    _get_system_noise_temperature_method_offset = 26
    _get_enable_rfstc_method_offset = 27
    _set_enable_rfstc_method_offset = 28
    _set_rfstc_type_method_offset = 29
    _get_rfstc_method_offset = 30
    _get_enable_ifstc_method_offset = 31
    _set_enable_ifstc_method_offset = 32
    _set_ifstc_type_method_offset = 33
    _get_ifstc_method_offset = 34
    _get_supported_rfstc_types_method_offset = 35
    _get_supported_ifstc_types_method_offset = 36
    _get_frequency_method_offset = 37
    _set_frequency_method_offset = 38
    _get_filter_component_linking_method_offset = 39
    _metadata = {
        "iid_data" : (5755312692785904905, 46171344266796425),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarReceiver)

    _get_antenna_to_lna_line_loss_metadata = { "offset" : _get_antenna_to_lna_line_loss_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def antenna_to_lna_line_loss(self) -> float:
        """Get or set the antenna to LNA line loss."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_antenna_to_lna_line_loss_metadata)

    _set_antenna_to_lna_line_loss_metadata = { "offset" : _set_antenna_to_lna_line_loss_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @antenna_to_lna_line_loss.setter
    def antenna_to_lna_line_loss(self, value:float) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_antenna_to_lna_line_loss_metadata, value)

    _get_lna_gain_metadata = { "offset" : _get_lna_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_gain(self) -> float:
        """Get or set the LNA gain."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_lna_gain_metadata)

    _set_lna_gain_metadata = { "offset" : _set_lna_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_gain.setter
    def lna_gain(self, value:float) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_lna_gain_metadata, value)

    _get_lna_to_receiver_line_loss_metadata = { "offset" : _get_lna_to_receiver_line_loss_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_to_receiver_line_loss(self) -> float:
        """Get or set the LNA to receiver line loss."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_lna_to_receiver_line_loss_metadata)

    _set_lna_to_receiver_line_loss_metadata = { "offset" : _set_lna_to_receiver_line_loss_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_to_receiver_line_loss.setter
    def lna_to_receiver_line_loss(self, value:float) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_lna_to_receiver_line_loss_metadata, value)

    _get_use_rain_metadata = { "offset" : _get_use_rain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_rain(self) -> bool:
        """Get or set the option for computing rain loss."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_use_rain_metadata)

    _set_use_rain_metadata = { "offset" : _set_use_rain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_rain.setter
    def use_rain(self, value:bool) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_use_rain_metadata, value)

    _get_supported_rain_outage_percent_values_metadata = { "offset" : _get_supported_rain_outage_percent_values_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_rain_outage_percent_values(self) -> list:
        """Get an array of supported rain outage percent values."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_supported_rain_outage_percent_values_metadata)

    _get_rain_outage_percent_metadata = { "offset" : _get_rain_outage_percent_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def rain_outage_percent(self) -> float:
        """Get or set the rain outage percent."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_rain_outage_percent_metadata)

    _set_rain_outage_percent_metadata = { "offset" : _set_rain_outage_percent_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @rain_outage_percent.setter
    def rain_outage_percent(self, value:float) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_rain_outage_percent_metadata, value)

    _get_pre_receive_gains_losses_metadata = { "offset" : _get_pre_receive_gains_losses_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_receive_gains_losses(self) -> "AdditionalGainLossCollection":
        """Get the collection of additional pre-receive gains and losses."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_pre_receive_gains_losses_metadata)

    _get_enable_polarization_metadata = { "offset" : _get_enable_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_polarization(self) -> bool:
        """Get or set the enable polarization option."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_enable_polarization_metadata)

    _set_enable_polarization_metadata = { "offset" : _set_enable_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_polarization.setter
    def enable_polarization(self, value:bool) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_enable_polarization_metadata, value)

    _get_enable_orthogonal_polarization_metadata = { "offset" : _get_enable_orthogonal_polarization_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_orthogonal_polarization(self) -> bool:
        """Get or set the option for enabling the orthogonal polarization."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_enable_orthogonal_polarization_metadata)

    _set_enable_orthogonal_polarization_metadata = { "offset" : _set_enable_orthogonal_polarization_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_orthogonal_polarization.setter
    def enable_orthogonal_polarization(self, value:bool) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_enable_orthogonal_polarization_metadata, value)

    _set_polarization_type_metadata = { "offset" : _set_polarization_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PolarizationType),) }
    def set_polarization_type(self, value:"PolarizationType") -> None:
        """Set the current polarization type."""
        return self._intf.invoke(RadarReceiver._metadata, RadarReceiver._set_polarization_type_metadata, value)

    _get_polarization_metadata = { "offset" : _get_polarization_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def polarization(self) -> "IPolarization":
        """Get the polarization."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_polarization_metadata)

    _get_lna_bandwidth_metadata = { "offset" : _get_lna_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_bandwidth(self) -> float:
        """Get or set the LNA bandwidth."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_lna_bandwidth_metadata)

    _set_lna_bandwidth_metadata = { "offset" : _set_lna_bandwidth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_bandwidth.setter
    def lna_bandwidth(self, value:float) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_lna_bandwidth_metadata, value)

    _get_enable_filter_metadata = { "offset" : _get_enable_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_filter(self) -> bool:
        """Get or set the flag determines whether or not to enable the Filter."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_enable_filter_metadata)

    _set_enable_filter_metadata = { "offset" : _set_enable_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_filter.setter
    def enable_filter(self, value:bool) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_enable_filter_metadata, value)

    _get_supported_filters_metadata = { "offset" : _get_supported_filters_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_filters(self) -> list:
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on RadarReceiver instead. Gets an array of supported model names."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_supported_filters_metadata)

    _set_filter_metadata = { "offset" : _set_filter_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_filter(self, name:str) -> None:
        """Do not use this method, as it is deprecated. Use FilterComponentLinking on RadarReceiver instead. Sets the current filter model by name."""
        return self._intf.invoke(RadarReceiver._metadata, RadarReceiver._set_filter_metadata, name)

    _get_filter_metadata = { "offset" : _get_filter_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter(self) -> "IRFFilterModel":
        """Do not use this property, as it is deprecated. Use FilterComponentLinking on RadarReceiver instead. Gets the current filter model."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_filter_metadata)

    _get_system_noise_temperature_metadata = { "offset" : _get_system_noise_temperature_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def system_noise_temperature(self) -> "SystemNoiseTemperature":
        """Get the system noise temperature interface."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_system_noise_temperature_metadata)

    _get_enable_rfstc_metadata = { "offset" : _get_enable_rfstc_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_rfstc(self) -> bool:
        """Get or set whether the RF STC is enabled."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_enable_rfstc_metadata)

    _set_enable_rfstc_metadata = { "offset" : _set_enable_rfstc_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_rfstc.setter
    def enable_rfstc(self, value:bool) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_enable_rfstc_metadata, value)

    _set_rfstc_type_metadata = { "offset" : _set_rfstc_type_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_rfstc_type(self, type_name:str) -> None:
        """Set the RF STC Type."""
        return self._intf.invoke(RadarReceiver._metadata, RadarReceiver._set_rfstc_type_metadata, type_name)

    _get_rfstc_metadata = { "offset" : _get_rfstc_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rfstc(self) -> "IRadarSTCAttenuation":
        """Get the RF STC."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_rfstc_metadata)

    _get_enable_ifstc_metadata = { "offset" : _get_enable_ifstc_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_ifstc(self) -> bool:
        """Get or set whether the IF STC is enabled."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_enable_ifstc_metadata)

    _set_enable_ifstc_metadata = { "offset" : _set_enable_ifstc_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_ifstc.setter
    def enable_ifstc(self, value:bool) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_enable_ifstc_metadata, value)

    _set_ifstc_type_metadata = { "offset" : _set_ifstc_type_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_ifstc_type(self, type_name:str) -> None:
        """Set the IF STC Type."""
        return self._intf.invoke(RadarReceiver._metadata, RadarReceiver._set_ifstc_type_metadata, type_name)

    _get_ifstc_metadata = { "offset" : _get_ifstc_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ifstc(self) -> "IRadarSTCAttenuation":
        """Get the IF STC."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_ifstc_metadata)

    _get_supported_rfstc_types_metadata = { "offset" : _get_supported_rfstc_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_rfstc_types(self) -> list:
        """Get the RF STC Types."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_supported_rfstc_types_metadata)

    _get_supported_ifstc_types_metadata = { "offset" : _get_supported_ifstc_types_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_ifstc_types(self) -> list:
        """Get the IF STC Types."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_supported_ifstc_types_metadata)

    _get_frequency_metadata = { "offset" : _get_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def frequency(self) -> float:
        """Get or set the receiver center frequency."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_frequency_metadata)

    _set_frequency_metadata = { "offset" : _set_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @frequency.setter
    def frequency(self, frequency:float) -> None:
        return self._intf.set_property(RadarReceiver._metadata, RadarReceiver._set_frequency_metadata, frequency)

    _get_filter_component_linking_metadata = { "offset" : _get_filter_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def filter_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the filter model component."""
        return self._intf.get_property(RadarReceiver._metadata, RadarReceiver._get_filter_component_linking_metadata)

    _property_names[antenna_to_lna_line_loss] = "antenna_to_lna_line_loss"
    _property_names[lna_gain] = "lna_gain"
    _property_names[lna_to_receiver_line_loss] = "lna_to_receiver_line_loss"
    _property_names[use_rain] = "use_rain"
    _property_names[supported_rain_outage_percent_values] = "supported_rain_outage_percent_values"
    _property_names[rain_outage_percent] = "rain_outage_percent"
    _property_names[pre_receive_gains_losses] = "pre_receive_gains_losses"
    _property_names[enable_polarization] = "enable_polarization"
    _property_names[enable_orthogonal_polarization] = "enable_orthogonal_polarization"
    _property_names[polarization] = "polarization"
    _property_names[lna_bandwidth] = "lna_bandwidth"
    _property_names[enable_filter] = "enable_filter"
    _property_names[supported_filters] = "supported_filters"
    _property_names[filter] = "filter"
    _property_names[system_noise_temperature] = "system_noise_temperature"
    _property_names[enable_rfstc] = "enable_rfstc"
    _property_names[rfstc] = "rfstc"
    _property_names[enable_ifstc] = "enable_ifstc"
    _property_names[ifstc] = "ifstc"
    _property_names[supported_rfstc_types] = "supported_rfstc_types"
    _property_names[supported_ifstc_types] = "supported_ifstc_types"
    _property_names[frequency] = "frequency"
    _property_names[filter_component_linking] = "filter_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type RadarReceiver."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarReceiver)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarReceiver, [RadarReceiver, ])

agcls.AgClassCatalog.add_catalog_entry((5195425438449718174, 9003726987945863303), RadarReceiver)
agcls.AgTypeNameMap["RadarReceiver"] = RadarReceiver

class AdditionalGainLoss(SupportsDeleteCallback):
    """Provide access to an additional gain/loss."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_gain_method_offset = 1
    _set_gain_method_offset = 2
    _get_identifier_method_offset = 3
    _set_identifier_method_offset = 4
    _metadata = {
        "iid_data" : (5094924740987704570, 6762949817274188470),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AdditionalGainLoss)

    _get_gain_metadata = { "offset" : _get_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def gain(self) -> float:
        """Get or set the gain/loss value."""
        return self._intf.get_property(AdditionalGainLoss._metadata, AdditionalGainLoss._get_gain_metadata)

    _set_gain_metadata = { "offset" : _set_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @gain.setter
    def gain(self, value:float) -> None:
        return self._intf.set_property(AdditionalGainLoss._metadata, AdditionalGainLoss._set_gain_metadata, value)

    _get_identifier_metadata = { "offset" : _get_identifier_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def identifier(self) -> str:
        """Get or set the gain/loss identifier."""
        return self._intf.get_property(AdditionalGainLoss._metadata, AdditionalGainLoss._get_identifier_metadata)

    _set_identifier_metadata = { "offset" : _set_identifier_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @identifier.setter
    def identifier(self, value:str) -> None:
        return self._intf.set_property(AdditionalGainLoss._metadata, AdditionalGainLoss._set_identifier_metadata, value)

    _property_names[gain] = "gain"
    _property_names[identifier] = "identifier"

    def __init__(self, source_object=None):
        """Construct an object of type AdditionalGainLoss."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AdditionalGainLoss)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AdditionalGainLoss, [AdditionalGainLoss, ])

agcls.AgClassCatalog.add_catalog_entry((5682735709052352217, 4609487949052129924), AdditionalGainLoss)
agcls.AgTypeNameMap["AdditionalGainLoss"] = AdditionalGainLoss

class AdditionalGainLossCollection(SupportsDeleteCallback):
    """Represents a collection of gains and losses."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _add_method_offset = 5
    _clear_method_offset = 6
    _metadata = {
        "iid_data" : (5062140261960825298, 13382843627764962732),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AdditionalGainLossCollection)
    def __iter__(self):
        """Create an iterator for the AdditionalGainLossCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "AdditionalGainLoss":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(AdditionalGainLossCollection._metadata, AdditionalGainLossCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "AdditionalGainLoss":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(AdditionalGainLossCollection._metadata, AdditionalGainLossCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(AdditionalGainLossCollection._metadata, AdditionalGainLossCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the gain with the supplied index."""
        return self._intf.invoke(AdditionalGainLossCollection._metadata, AdditionalGainLossCollection._remove_at_metadata, index)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add(self, value:float) -> "AdditionalGainLoss":
        """Add and returns a new gain with the corresponding value."""
        return self._intf.invoke(AdditionalGainLossCollection._metadata, AdditionalGainLossCollection._add_metadata, value, OutArg())

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear all gain values from the collection."""
        return self._intf.invoke(AdditionalGainLossCollection._metadata, AdditionalGainLossCollection._clear_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type AdditionalGainLossCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AdditionalGainLossCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AdditionalGainLossCollection, [AdditionalGainLossCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5406265494170268280, 1291788711589501334), AdditionalGainLossCollection)
agcls.AgTypeNameMap["AdditionalGainLossCollection"] = AdditionalGainLossCollection

class Polarization(IPolarization, SupportsDeleteCallback):
    """Class defining an polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type Polarization."""
        SupportsDeleteCallback.__init__(self)
        IPolarization.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarization._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Polarization, [IPolarization])

agcls.AgClassCatalog.add_catalog_entry((4751973537586723216, 12404375208248974217), Polarization)
agcls.AgTypeNameMap["Polarization"] = Polarization

class PolarizationElliptical(IPolarizationElliptical, IPolarization, SupportsDeleteCallback):
    """Class defining an elliptical polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type PolarizationElliptical."""
        SupportsDeleteCallback.__init__(self)
        IPolarizationElliptical.__init__(self, source_object)
        IPolarization.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarizationElliptical._private_init(self, intf)
        IPolarization._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PolarizationElliptical, [IPolarizationElliptical, IPolarization])

agcls.AgClassCatalog.add_catalog_entry((5116581439074682501, 16670526883984973984), PolarizationElliptical)
agcls.AgTypeNameMap["PolarizationElliptical"] = PolarizationElliptical

class ReceivePolarizationElliptical(IPolarizationElliptical, IPolarization, IPolarizationCrossPolLeakage, SupportsDeleteCallback):
    """Class defining an elliptical polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type ReceivePolarizationElliptical."""
        SupportsDeleteCallback.__init__(self)
        IPolarizationElliptical.__init__(self, source_object)
        IPolarization.__init__(self, source_object)
        IPolarizationCrossPolLeakage.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarizationElliptical._private_init(self, intf)
        IPolarization._private_init(self, intf)
        IPolarizationCrossPolLeakage._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceivePolarizationElliptical, [IPolarizationElliptical, IPolarization, IPolarizationCrossPolLeakage])

agcls.AgClassCatalog.add_catalog_entry((4833226716223694246, 9891830273554576539), ReceivePolarizationElliptical)
agcls.AgTypeNameMap["ReceivePolarizationElliptical"] = ReceivePolarizationElliptical

class PolarizationLeftHandCircular(IPolarization, SupportsDeleteCallback):
    """Class defining a LHC polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type PolarizationLeftHandCircular."""
        SupportsDeleteCallback.__init__(self)
        IPolarization.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarization._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PolarizationLeftHandCircular, [IPolarization])

agcls.AgClassCatalog.add_catalog_entry((5192098775989115471, 881085508417223590), PolarizationLeftHandCircular)
agcls.AgTypeNameMap["PolarizationLeftHandCircular"] = PolarizationLeftHandCircular

class PolarizationRightHandCircular(IPolarization, SupportsDeleteCallback):
    """Class defining a RHC polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type PolarizationRightHandCircular."""
        SupportsDeleteCallback.__init__(self)
        IPolarization.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarization._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PolarizationRightHandCircular, [IPolarization])

agcls.AgClassCatalog.add_catalog_entry((5393557937731544061, 16298636420924547749), PolarizationRightHandCircular)
agcls.AgTypeNameMap["PolarizationRightHandCircular"] = PolarizationRightHandCircular

class ReceivePolarizationLeftHandCircular(IPolarization, IPolarizationCrossPolLeakage, SupportsDeleteCallback):
    """Class defining a LHC polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type ReceivePolarizationLeftHandCircular."""
        SupportsDeleteCallback.__init__(self)
        IPolarization.__init__(self, source_object)
        IPolarizationCrossPolLeakage.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarization._private_init(self, intf)
        IPolarizationCrossPolLeakage._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceivePolarizationLeftHandCircular, [IPolarization, IPolarizationCrossPolLeakage])

agcls.AgClassCatalog.add_catalog_entry((5419490449546229185, 17905242584093076907), ReceivePolarizationLeftHandCircular)
agcls.AgTypeNameMap["ReceivePolarizationLeftHandCircular"] = ReceivePolarizationLeftHandCircular

class ReceivePolarizationRightHandCircular(IPolarization, IPolarizationCrossPolLeakage, SupportsDeleteCallback):
    """Class defining a RHC polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type ReceivePolarizationRightHandCircular."""
        SupportsDeleteCallback.__init__(self)
        IPolarization.__init__(self, source_object)
        IPolarizationCrossPolLeakage.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarization._private_init(self, intf)
        IPolarizationCrossPolLeakage._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceivePolarizationRightHandCircular, [IPolarization, IPolarizationCrossPolLeakage])

agcls.AgClassCatalog.add_catalog_entry((5545659532126529311, 6406822239863139766), ReceivePolarizationRightHandCircular)
agcls.AgTypeNameMap["ReceivePolarizationRightHandCircular"] = ReceivePolarizationRightHandCircular

class PolarizationLinear(IPolarizationLinear, IPolarization, SupportsDeleteCallback):
    """Class defining a linear polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type PolarizationLinear."""
        SupportsDeleteCallback.__init__(self)
        IPolarizationLinear.__init__(self, source_object)
        IPolarization.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarizationLinear._private_init(self, intf)
        IPolarization._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PolarizationLinear, [IPolarizationLinear, IPolarization])

agcls.AgClassCatalog.add_catalog_entry((5687187341805242738, 6132402773416215182), PolarizationLinear)
agcls.AgTypeNameMap["PolarizationLinear"] = PolarizationLinear

class ReceivePolarizationLinear(IPolarizationLinear, IPolarization, IPolarizationCrossPolLeakage, SupportsDeleteCallback):
    """Class defining a linear polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type ReceivePolarizationLinear."""
        SupportsDeleteCallback.__init__(self)
        IPolarizationLinear.__init__(self, source_object)
        IPolarization.__init__(self, source_object)
        IPolarizationCrossPolLeakage.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarizationLinear._private_init(self, intf)
        IPolarization._private_init(self, intf)
        IPolarizationCrossPolLeakage._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceivePolarizationLinear, [IPolarizationLinear, IPolarization, IPolarizationCrossPolLeakage])

agcls.AgClassCatalog.add_catalog_entry((4977764218078753687, 14997278564294843059), ReceivePolarizationLinear)
agcls.AgTypeNameMap["ReceivePolarizationLinear"] = ReceivePolarizationLinear

class PolarizationHorizontal(IPolarizationHorizontal, IPolarization, SupportsDeleteCallback):
    """Class defining a horizontal polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type PolarizationHorizontal."""
        SupportsDeleteCallback.__init__(self)
        IPolarizationHorizontal.__init__(self, source_object)
        IPolarization.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarizationHorizontal._private_init(self, intf)
        IPolarization._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PolarizationHorizontal, [IPolarizationHorizontal, IPolarization])

agcls.AgClassCatalog.add_catalog_entry((5418938938258060381, 6335625040115232441), PolarizationHorizontal)
agcls.AgTypeNameMap["PolarizationHorizontal"] = PolarizationHorizontal

class ReceivePolarizationHorizontal(IPolarizationHorizontal, IPolarization, IPolarizationCrossPolLeakage, SupportsDeleteCallback):
    """Class defining a horizontal polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type ReceivePolarizationHorizontal."""
        SupportsDeleteCallback.__init__(self)
        IPolarizationHorizontal.__init__(self, source_object)
        IPolarization.__init__(self, source_object)
        IPolarizationCrossPolLeakage.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarizationHorizontal._private_init(self, intf)
        IPolarization._private_init(self, intf)
        IPolarizationCrossPolLeakage._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceivePolarizationHorizontal, [IPolarizationHorizontal, IPolarization, IPolarizationCrossPolLeakage])

agcls.AgClassCatalog.add_catalog_entry((5522323876503326801, 10796101697844337300), ReceivePolarizationHorizontal)
agcls.AgTypeNameMap["ReceivePolarizationHorizontal"] = ReceivePolarizationHorizontal

class PolarizationVertical(IPolarizationVertical, IPolarization, SupportsDeleteCallback):
    """Class defining a vertical polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type PolarizationVertical."""
        SupportsDeleteCallback.__init__(self)
        IPolarizationVertical.__init__(self, source_object)
        IPolarization.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarizationVertical._private_init(self, intf)
        IPolarization._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PolarizationVertical, [IPolarizationVertical, IPolarization])

agcls.AgClassCatalog.add_catalog_entry((4900475257025166235, 4102054416101261470), PolarizationVertical)
agcls.AgTypeNameMap["PolarizationVertical"] = PolarizationVertical

class ReceivePolarizationVertical(IPolarizationVertical, IPolarization, IPolarizationCrossPolLeakage, SupportsDeleteCallback):
    """Class defining a receive vertical polarization."""
    def __init__(self, source_object=None):
        """Construct an object of type ReceivePolarizationVertical."""
        SupportsDeleteCallback.__init__(self)
        IPolarizationVertical.__init__(self, source_object)
        IPolarization.__init__(self, source_object)
        IPolarizationCrossPolLeakage.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPolarizationVertical._private_init(self, intf)
        IPolarization._private_init(self, intf)
        IPolarizationCrossPolLeakage._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ReceivePolarizationVertical, [IPolarizationVertical, IPolarization, IPolarizationCrossPolLeakage])

agcls.AgClassCatalog.add_catalog_entry((5535086889572697489, 626388335970649746), ReceivePolarizationVertical)
agcls.AgTypeNameMap["ReceivePolarizationVertical"] = ReceivePolarizationVertical

class RadarClutter(SupportsDeleteCallback):
    """Interface which defines a radar's clutter."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enabled_method_offset = 1
    _set_enabled_method_offset = 2
    _get_scattering_point_provider_list_method_offset = 3
    _metadata = {
        "iid_data" : (5168882518317674814, 3309995650725238944),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarClutter)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Get or set whether clutter is enabled or disabled."""
        return self._intf.get_property(RadarClutter._metadata, RadarClutter._get_enabled_metadata)

    _set_enabled_metadata = { "offset" : _set_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enabled.setter
    def enabled(self, value:bool) -> None:
        return self._intf.set_property(RadarClutter._metadata, RadarClutter._set_enabled_metadata, value)

    _get_scattering_point_provider_list_metadata = { "offset" : _get_scattering_point_provider_list_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def scattering_point_provider_list(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the scattering point provider list component."""
        return self._intf.get_property(RadarClutter._metadata, RadarClutter._get_scattering_point_provider_list_metadata)

    _property_names[enabled] = "enabled"
    _property_names[scattering_point_provider_list] = "scattering_point_provider_list"

    def __init__(self, source_object=None):
        """Construct an object of type RadarClutter."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarClutter)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarClutter, [RadarClutter, ])

agcls.AgClassCatalog.add_catalog_entry((5446389681844244080, 6917271294534740374), RadarClutter)
agcls.AgTypeNameMap["RadarClutter"] = RadarClutter

class RadarClutterGeometry(SupportsDeleteCallback):
    """Do not use this interface, as it is deprecated. Use RadarClutter interface instead. Interface which defines a radar's clutter geometry."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enabled_method_offset = 1
    _set_enabled_method_offset = 2
    _get_supported_models_method_offset = 3
    _set_model_method_offset = 4
    _get_model_method_offset = 5
    _metadata = {
        "iid_data" : (4911158199686748657, 8573846423485161915),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarClutterGeometry)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Do not use this property, as it is deprecated. Use Enabled on RadarClutter instead. Gets or sets whether clutter geometry is enabled or disabled."""
        return self._intf.get_property(RadarClutterGeometry._metadata, RadarClutterGeometry._get_enabled_metadata)

    _set_enabled_metadata = { "offset" : _set_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enabled.setter
    def enabled(self, value:bool) -> None:
        return self._intf.set_property(RadarClutterGeometry._metadata, RadarClutterGeometry._set_enabled_metadata, value)

    _get_supported_models_metadata = { "offset" : _get_supported_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_models(self) -> list:
        """Do not use this property, as it is deprecated. Use ScatteringPointProviderList on RadarClutter instead. Gets an array of supported model names."""
        return self._intf.get_property(RadarClutterGeometry._metadata, RadarClutterGeometry._get_supported_models_metadata)

    _set_model_metadata = { "offset" : _set_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use ScatteringPointProviderList on RadarClutter instead. Sets the current clutter geometry model by name."""
        return self._intf.invoke(RadarClutterGeometry._metadata, RadarClutterGeometry._set_model_metadata, model_name)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "IRadarClutterGeometryModel":
        """Do not use this property, as it is deprecated. Use ScatteringPointProviderList on RadarClutter instead. Gets the current clutter geometry model."""
        return self._intf.get_property(RadarClutterGeometry._metadata, RadarClutterGeometry._get_model_metadata)

    _property_names[enabled] = "enabled"
    _property_names[supported_models] = "supported_models"
    _property_names[model] = "model"

    def __init__(self, source_object=None):
        """Construct an object of type RadarClutterGeometry."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarClutterGeometry)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarClutterGeometry, [RadarClutterGeometry, ])

agcls.AgClassCatalog.add_catalog_entry((5565776891712654667, 11368507770641792176), RadarClutterGeometry)
agcls.AgTypeNameMap["RadarClutterGeometry"] = RadarClutterGeometry

class ScatteringPointProviderCollectionElement(SupportsDeleteCallback):
    """Provide access to the properties and methods defining an entry in the scattering point provider collection."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enabled_method_offset = 1
    _set_enabled_method_offset = 2
    _get_scattering_point_provider_method_offset = 3
    _metadata = {
        "iid_data" : (5164645861531851640, 7041626969981290138),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointProviderCollectionElement)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Get or set whether or not the scattering point provider is active."""
        return self._intf.get_property(ScatteringPointProviderCollectionElement._metadata, ScatteringPointProviderCollectionElement._get_enabled_metadata)

    _set_enabled_metadata = { "offset" : _set_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enabled.setter
    def enabled(self, value:bool) -> None:
        """Get or set whether or not the scattering point provider is active."""
        return self._intf.set_property(ScatteringPointProviderCollectionElement._metadata, ScatteringPointProviderCollectionElement._set_enabled_metadata, value)

    _get_scattering_point_provider_metadata = { "offset" : _get_scattering_point_provider_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def scattering_point_provider(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the scattering point provider component."""
        return self._intf.get_property(ScatteringPointProviderCollectionElement._metadata, ScatteringPointProviderCollectionElement._get_scattering_point_provider_metadata)

    _property_names[enabled] = "enabled"
    _property_names[scattering_point_provider] = "scattering_point_provider"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointProviderCollectionElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointProviderCollectionElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointProviderCollectionElement, [ScatteringPointProviderCollectionElement, ])

agcls.AgClassCatalog.add_catalog_entry((5634683201981453251, 2819009902751801481), ScatteringPointProviderCollectionElement)
agcls.AgTypeNameMap["ScatteringPointProviderCollectionElement"] = ScatteringPointProviderCollectionElement

class ScatteringPointProviderCollection(SupportsDeleteCallback):
    """Represents a collection of scattering point provider elements."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _insert_at_method_offset = 5
    _add_method_offset = 6
    _clear_method_offset = 7
    _metadata = {
        "iid_data" : (4759452363943221997, 6636610040457297574),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointProviderCollection)
    def __iter__(self):
        """Create an iterator for the ScatteringPointProviderCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "ScatteringPointProviderCollectionElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of scattering point provider elements in the collection."""
        return self._intf.get_property(ScatteringPointProviderCollection._metadata, ScatteringPointProviderCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "ScatteringPointProviderCollectionElement":
        """Given an index, returns the scattering point provider element in the collection."""
        return self._intf.invoke(ScatteringPointProviderCollection._metadata, ScatteringPointProviderCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(ScatteringPointProviderCollection._metadata, ScatteringPointProviderCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the scattering point provider element with the specified index."""
        return self._intf.invoke(ScatteringPointProviderCollection._metadata, ScatteringPointProviderCollection._remove_at_metadata, index)

    _insert_at_metadata = { "offset" : _insert_at_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def insert_at(self, index:int) -> "ScatteringPointProviderCollectionElement":
        """Insert a new scattering point provider element at the supplied index, configured with a component with the supplied identifier."""
        return self._intf.invoke(ScatteringPointProviderCollection._metadata, ScatteringPointProviderCollection._insert_at_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "ScatteringPointProviderCollectionElement":
        """Add a new default scattering point provider element to the collection."""
        return self._intf.invoke(ScatteringPointProviderCollection._metadata, ScatteringPointProviderCollection._add_metadata, OutArg())

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear all scattering point provider elements from the collection."""
        return self._intf.invoke(ScatteringPointProviderCollection._metadata, ScatteringPointProviderCollection._clear_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointProviderCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointProviderCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointProviderCollection, [ScatteringPointProviderCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4901768796550852408, 339185683783481535), ScatteringPointProviderCollection)
agcls.AgTypeNameMap["ScatteringPointProviderCollection"] = ScatteringPointProviderCollection

class ScatteringPointProviderList(IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a scattering point provider list."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_type_method_offset = 2
    _get_point_providers_method_offset = 3
    _metadata = {
        "iid_data" : (5017216755788155351, 12548796245204282514),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointProviderList)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the scattering point provider list name."""
        return self._intf.get_property(ScatteringPointProviderList._metadata, ScatteringPointProviderList._get_name_metadata)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ScatteringPointProviderListType),) }
    @property
    def type(self) -> "ScatteringPointProviderListType":
        """Get the scattering point provider list type enumeration."""
        return self._intf.get_property(ScatteringPointProviderList._metadata, ScatteringPointProviderList._get_type_metadata)

    _get_point_providers_metadata = { "offset" : _get_point_providers_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def point_providers(self) -> "ScatteringPointProviderCollection":
        """Get the scattering point provider list collection."""
        return self._intf.get_property(ScatteringPointProviderList._metadata, ScatteringPointProviderList._get_point_providers_metadata)

    _property_names[name] = "name"
    _property_names[type] = "type"
    _property_names[point_providers] = "point_providers"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointProviderList."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointProviderList)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointProviderList, [ScatteringPointProviderList, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4822536244939461731, 5502763298054753440), ScatteringPointProviderList)
agcls.AgTypeNameMap["ScatteringPointProviderList"] = ScatteringPointProviderList

class ScatteringPointProvider(IScatteringPointProvider, IRadarClutterGeometryModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a scattering point provider."""
    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointProvider."""
        SupportsDeleteCallback.__init__(self)
        IScatteringPointProvider.__init__(self, source_object)
        IRadarClutterGeometryModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IScatteringPointProvider._private_init(self, intf)
        IRadarClutterGeometryModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointProvider, [IScatteringPointProvider, IRadarClutterGeometryModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4854798032688690591, 8298448349348142470), ScatteringPointProvider)
agcls.AgTypeNameMap["ScatteringPointProvider"] = ScatteringPointProvider

class ScatteringPointProviderSinglePoint(IScatteringPointProvider, IRadarClutterGeometryModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a single point scattering point provider."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_scattering_point_model_method_offset = 1
    _metadata = {
        "iid_data" : (5595599865553844890, 9728146516352640405),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointProviderSinglePoint)

    _get_scattering_point_model_metadata = { "offset" : _get_scattering_point_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def scattering_point_model(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the scattering point model component."""
        return self._intf.get_property(ScatteringPointProviderSinglePoint._metadata, ScatteringPointProviderSinglePoint._get_scattering_point_model_metadata)

    _property_names[scattering_point_model] = "scattering_point_model"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointProviderSinglePoint."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointProviderSinglePoint)
        IScatteringPointProvider.__init__(self, source_object)
        IRadarClutterGeometryModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IScatteringPointProvider._private_init(self, intf)
        IRadarClutterGeometryModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointProviderSinglePoint, [ScatteringPointProviderSinglePoint, IScatteringPointProvider, IRadarClutterGeometryModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4629876405841926841, 14954022476427155115), ScatteringPointProviderSinglePoint)
agcls.AgTypeNameMap["ScatteringPointProviderSinglePoint"] = ScatteringPointProviderSinglePoint

class ScatteringPointCollectionElement(SupportsDeleteCallback):
    """Provide access to the properties and methods defining a scattering point collection element."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_latitude_method_offset = 1
    _get_longitude_method_offset = 2
    _get_altitude_method_offset = 3
    _get_scattering_point_model_method_offset = 4
    _metadata = {
        "iid_data" : (5183174695715109717, 17824756061308989329),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointCollectionElement)

    _get_latitude_metadata = { "offset" : _get_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def latitude(self) -> float:
        """Get the scattering points latitude."""
        return self._intf.get_property(ScatteringPointCollectionElement._metadata, ScatteringPointCollectionElement._get_latitude_metadata)

    _get_longitude_metadata = { "offset" : _get_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def longitude(self) -> float:
        """Get the scattering points longitude."""
        return self._intf.get_property(ScatteringPointCollectionElement._metadata, ScatteringPointCollectionElement._get_longitude_metadata)

    _get_altitude_metadata = { "offset" : _get_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def altitude(self) -> float:
        """Get the scattering points altitude."""
        return self._intf.get_property(ScatteringPointCollectionElement._metadata, ScatteringPointCollectionElement._get_altitude_metadata)

    _get_scattering_point_model_metadata = { "offset" : _get_scattering_point_model_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def scattering_point_model(self) -> str:
        """Get the scattering point's scattering model component name."""
        return self._intf.get_property(ScatteringPointCollectionElement._metadata, ScatteringPointCollectionElement._get_scattering_point_model_metadata)

    _property_names[latitude] = "latitude"
    _property_names[longitude] = "longitude"
    _property_names[altitude] = "altitude"
    _property_names[scattering_point_model] = "scattering_point_model"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointCollectionElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointCollectionElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointCollectionElement, [ScatteringPointCollectionElement, ])

agcls.AgClassCatalog.add_catalog_entry((4641529370476936975, 11992197335585073062), ScatteringPointCollectionElement)
agcls.AgTypeNameMap["ScatteringPointCollectionElement"] = ScatteringPointCollectionElement

class ScatteringPointCollection(SupportsDeleteCallback):
    """Represents a collection of scattering points."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5532341483619553516, 9575971874210053820),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointCollection)
    def __iter__(self):
        """Create an iterator for the ScatteringPointCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "ScatteringPointCollectionElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(ScatteringPointCollection._metadata, ScatteringPointCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "ScatteringPointCollectionElement":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(ScatteringPointCollection._metadata, ScatteringPointCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(ScatteringPointCollection._metadata, ScatteringPointCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointCollection, [ScatteringPointCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4943162981198577722, 12735211158718627501), ScatteringPointCollection)
agcls.AgTypeNameMap["ScatteringPointCollection"] = ScatteringPointCollection

class ScatteringPointProviderPointsFile(IScatteringPointProvider, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a scattering point provider where the scattering points are defined in a ascii text file."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_default_scattering_point_model_method_offset = 3
    _get_scattering_points_method_offset = 4
    _metadata = {
        "iid_data" : (5696122511347215554, 3721055605923258002),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointProviderPointsFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the scattering points filename."""
        return self._intf.get_property(ScatteringPointProviderPointsFile._metadata, ScatteringPointProviderPointsFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(ScatteringPointProviderPointsFile._metadata, ScatteringPointProviderPointsFile._set_filename_metadata, value)

    _get_default_scattering_point_model_metadata = { "offset" : _get_default_scattering_point_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def default_scattering_point_model(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the default scattering point model component."""
        return self._intf.get_property(ScatteringPointProviderPointsFile._metadata, ScatteringPointProviderPointsFile._get_default_scattering_point_model_metadata)

    _get_scattering_points_metadata = { "offset" : _get_scattering_points_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def scattering_points(self) -> "ScatteringPointCollection":
        """Get the collection of scattering points."""
        return self._intf.get_property(ScatteringPointProviderPointsFile._metadata, ScatteringPointProviderPointsFile._get_scattering_points_metadata)

    _property_names[filename] = "filename"
    _property_names[default_scattering_point_model] = "default_scattering_point_model"
    _property_names[scattering_points] = "scattering_points"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointProviderPointsFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointProviderPointsFile)
        IScatteringPointProvider.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IScatteringPointProvider._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointProviderPointsFile, [ScatteringPointProviderPointsFile, IScatteringPointProvider, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4822807775811271212, 3021802653700149900), ScatteringPointProviderPointsFile)
agcls.AgTypeNameMap["ScatteringPointProviderPointsFile"] = ScatteringPointProviderPointsFile

class ScatteringPointProviderRangeOverCFARCells(IScatteringPointProvider, IRadarClutterGeometryModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a range over CFAR cells scattering point provider."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_scattering_point_model_method_offset = 1
    _metadata = {
        "iid_data" : (5010750965002380182, 952345804786277248),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointProviderRangeOverCFARCells)

    _get_scattering_point_model_metadata = { "offset" : _get_scattering_point_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def scattering_point_model(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the scattering point model component."""
        return self._intf.get_property(ScatteringPointProviderRangeOverCFARCells._metadata, ScatteringPointProviderRangeOverCFARCells._get_scattering_point_model_metadata)

    _property_names[scattering_point_model] = "scattering_point_model"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointProviderRangeOverCFARCells."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointProviderRangeOverCFARCells)
        IScatteringPointProvider.__init__(self, source_object)
        IRadarClutterGeometryModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IScatteringPointProvider._private_init(self, intf)
        IRadarClutterGeometryModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointProviderRangeOverCFARCells, [ScatteringPointProviderRangeOverCFARCells, IScatteringPointProvider, IRadarClutterGeometryModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5739708327328351623, 8271262365720943518), ScatteringPointProviderRangeOverCFARCells)
agcls.AgTypeNameMap["ScatteringPointProviderRangeOverCFARCells"] = ScatteringPointProviderRangeOverCFARCells

class ScatteringPointProviderSmoothOblateEarth(IScatteringPointProvider, IRadarClutterGeometryModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a smooth oblate earth scattering point provider."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_scattering_point_model_method_offset = 1
    _metadata = {
        "iid_data" : (5716250268999179873, 8735109389246381491),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointProviderSmoothOblateEarth)

    _get_scattering_point_model_metadata = { "offset" : _get_scattering_point_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def scattering_point_model(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the scattering point model component."""
        return self._intf.get_property(ScatteringPointProviderSmoothOblateEarth._metadata, ScatteringPointProviderSmoothOblateEarth._get_scattering_point_model_metadata)

    _property_names[scattering_point_model] = "scattering_point_model"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointProviderSmoothOblateEarth."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointProviderSmoothOblateEarth)
        IScatteringPointProvider.__init__(self, source_object)
        IRadarClutterGeometryModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IScatteringPointProvider._private_init(self, intf)
        IRadarClutterGeometryModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointProviderSmoothOblateEarth, [ScatteringPointProviderSmoothOblateEarth, IScatteringPointProvider, IRadarClutterGeometryModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4952100746214645463, 13356492844990630297), ScatteringPointProviderSmoothOblateEarth)
agcls.AgTypeNameMap["ScatteringPointProviderSmoothOblateEarth"] = ScatteringPointProviderSmoothOblateEarth

class ScatteringPointProviderPlugin(IScatteringPointProvider, IRadarClutterGeometryModelPlugin, IRadarClutterGeometryModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a plugin scattering point provider."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_plugin_configuration_method_offset = 1
    _get_raw_plugin_object_method_offset = 2
    _get_scattering_point_model_method_offset = 3
    _metadata = {
        "iid_data" : (5253018968690153263, 8762876869549721228),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointProviderPlugin)

    _get_plugin_configuration_metadata = { "offset" : _get_plugin_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_configuration(self) -> "CommRadPluginConfiguration":
        """Get the plugin configuration interface."""
        return self._intf.get_property(ScatteringPointProviderPlugin._metadata, ScatteringPointProviderPlugin._get_plugin_configuration_metadata)

    _get_raw_plugin_object_metadata = { "offset" : _get_raw_plugin_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def raw_plugin_object(self) -> typing.Any:
        """Get the raw plugin IUnknown interface."""
        return self._intf.get_property(ScatteringPointProviderPlugin._metadata, ScatteringPointProviderPlugin._get_raw_plugin_object_metadata)

    _get_scattering_point_model_metadata = { "offset" : _get_scattering_point_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def scattering_point_model(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the default scattering point model component."""
        return self._intf.get_property(ScatteringPointProviderPlugin._metadata, ScatteringPointProviderPlugin._get_scattering_point_model_metadata)

    _property_names[plugin_configuration] = "plugin_configuration"
    _property_names[raw_plugin_object] = "raw_plugin_object"
    _property_names[scattering_point_model] = "scattering_point_model"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointProviderPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointProviderPlugin)
        IScatteringPointProvider.__init__(self, source_object)
        IRadarClutterGeometryModelPlugin.__init__(self, source_object)
        IRadarClutterGeometryModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IScatteringPointProvider._private_init(self, intf)
        IRadarClutterGeometryModelPlugin._private_init(self, intf)
        IRadarClutterGeometryModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointProviderPlugin, [ScatteringPointProviderPlugin, IScatteringPointProvider, IRadarClutterGeometryModelPlugin, IRadarClutterGeometryModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5482111635060205209, 3654786697565804171), ScatteringPointProviderPlugin)
agcls.AgTypeNameMap["ScatteringPointProviderPlugin"] = ScatteringPointProviderPlugin

class CommRadPluginConfiguration(SupportsDeleteCallback):
    """Provide access to plugin properties."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_property_method_offset = 1
    _set_property_method_offset = 2
    _get_available_properties_method_offset = 3
    _metadata = {
        "iid_data" : (5659537235689532234, 16767602768370428345),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommRadPluginConfiguration)

    _get_property_metadata = { "offset" : _get_property_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg,) }
    def get_property(self, path:str) -> typing.Any:
        """Get a property."""
        return self._intf.invoke(CommRadPluginConfiguration._metadata, CommRadPluginConfiguration._get_property_metadata, path, OutArg())

    _set_property_metadata = { "offset" : _set_property_method_offset,
            "arg_types" : (agcom.BSTR, agcom.Variant,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantArg,) }
    def set_property(self, path:str, value:typing.Any) -> None:
        """Set a property."""
        return self._intf.invoke(CommRadPluginConfiguration._metadata, CommRadPluginConfiguration._set_property_metadata, path, value)

    _get_available_properties_metadata = { "offset" : _get_available_properties_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_properties(self) -> list:
        """Available properties."""
        return self._intf.get_property(CommRadPluginConfiguration._metadata, CommRadPluginConfiguration._get_available_properties_metadata)

    _property_names[available_properties] = "available_properties"

    def __init__(self, source_object=None):
        """Construct an object of type CommRadPluginConfiguration."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommRadPluginConfiguration)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommRadPluginConfiguration, [CommRadPluginConfiguration, ])

agcls.AgClassCatalog.add_catalog_entry((5544855377727467594, 274456648255893416), CommRadPluginConfiguration)
agcls.AgTypeNameMap["CommRadPluginConfiguration"] = CommRadPluginConfiguration

class RadarJamming(SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar jamming."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enabled_method_offset = 1
    _set_enabled_method_offset = 2
    _get_jammers_method_offset = 3
    _metadata = {
        "iid_data" : (5459620207461970387, 1258836292624543917),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarJamming)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Get or set whether the jamming is enabled or disabled."""
        return self._intf.get_property(RadarJamming._metadata, RadarJamming._get_enabled_metadata)

    _set_enabled_metadata = { "offset" : _set_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enabled.setter
    def enabled(self, value:bool) -> None:
        return self._intf.set_property(RadarJamming._metadata, RadarJamming._set_enabled_metadata, value)

    _get_jammers_metadata = { "offset" : _get_jammers_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def jammers(self) -> "ObjectLinkCollection":
        """Get the jammers collection."""
        return self._intf.get_property(RadarJamming._metadata, RadarJamming._get_jammers_metadata)

    _property_names[enabled] = "enabled"
    _property_names[jammers] = "jammers"

    def __init__(self, source_object=None):
        """Construct an object of type RadarJamming."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarJamming)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarJamming, [RadarJamming, ])

agcls.AgClassCatalog.add_catalog_entry((4712657379495561923, 15929368760823389583), RadarJamming)
agcls.AgTypeNameMap["RadarJamming"] = RadarJamming

class RFInterference(SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radio frequency interference."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enabled_method_offset = 1
    _set_enabled_method_offset = 2
    _get_include_active_comm_system_interference_emitters_method_offset = 3
    _set_include_active_comm_system_interference_emitters_method_offset = 4
    _get_emitters_method_offset = 5
    _metadata = {
        "iid_data" : (5094662241621176907, 11573498537633176464),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFInterference)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Get or set whether the interference is enabled or disabled."""
        return self._intf.get_property(RFInterference._metadata, RFInterference._get_enabled_metadata)

    _set_enabled_metadata = { "offset" : _set_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enabled.setter
    def enabled(self, value:bool) -> None:
        return self._intf.set_property(RFInterference._metadata, RFInterference._set_enabled_metadata, value)

    _get_include_active_comm_system_interference_emitters_metadata = { "offset" : _get_include_active_comm_system_interference_emitters_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_active_comm_system_interference_emitters(self) -> bool:
        """Get or set whether the emitters from the active CommSystem object are included in their interference computation."""
        return self._intf.get_property(RFInterference._metadata, RFInterference._get_include_active_comm_system_interference_emitters_metadata)

    _set_include_active_comm_system_interference_emitters_metadata = { "offset" : _set_include_active_comm_system_interference_emitters_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_active_comm_system_interference_emitters.setter
    def include_active_comm_system_interference_emitters(self, value:bool) -> None:
        return self._intf.set_property(RFInterference._metadata, RFInterference._set_include_active_comm_system_interference_emitters_metadata, value)

    _get_emitters_metadata = { "offset" : _get_emitters_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def emitters(self) -> "ObjectLinkCollection":
        """Get the interference emitters collection."""
        return self._intf.get_property(RFInterference._metadata, RFInterference._get_emitters_metadata)

    _property_names[enabled] = "enabled"
    _property_names[include_active_comm_system_interference_emitters] = "include_active_comm_system_interference_emitters"
    _property_names[emitters] = "emitters"

    def __init__(self, source_object=None):
        """Construct an object of type RFInterference."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFInterference)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFInterference, [RFInterference, ])

agcls.AgClassCatalog.add_catalog_entry((5365109665810799108, 13477068911912998030), RFInterference)
agcls.AgTypeNameMap["RFInterference"] = RFInterference

class RFFilterModel(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a generic RF filter model."""
    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModel."""
        SupportsDeleteCallback.__init__(self)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModel, [IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4707346307578976217, 345716557890396849), RFFilterModel)
agcls.AgTypeNameMap["RFFilterModel"] = RFFilterModel

class RFFilterModelBessel(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an bessel RF filter model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_order_method_offset = 1
    _set_order_method_offset = 2
    _get_cut_off_frequency_method_offset = 3
    _set_cut_off_frequency_method_offset = 4
    _metadata = {
        "iid_data" : (4782008349536829709, 13636785445635067791),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelBessel)

    _get_order_metadata = { "offset" : _get_order_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def order(self) -> int:
        """Get or set the filter order."""
        return self._intf.get_property(RFFilterModelBessel._metadata, RFFilterModelBessel._get_order_metadata)

    _set_order_metadata = { "offset" : _set_order_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @order.setter
    def order(self, value:int) -> None:
        return self._intf.set_property(RFFilterModelBessel._metadata, RFFilterModelBessel._set_order_metadata, value)

    _get_cut_off_frequency_metadata = { "offset" : _get_cut_off_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cut_off_frequency(self) -> float:
        """Get or set the filter cut off frequency."""
        return self._intf.get_property(RFFilterModelBessel._metadata, RFFilterModelBessel._get_cut_off_frequency_metadata)

    _set_cut_off_frequency_metadata = { "offset" : _set_cut_off_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cut_off_frequency.setter
    def cut_off_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelBessel._metadata, RFFilterModelBessel._set_cut_off_frequency_metadata, value)

    _property_names[order] = "order"
    _property_names[cut_off_frequency] = "cut_off_frequency"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelBessel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelBessel)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelBessel, [RFFilterModelBessel, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5715240842551260984, 1968119855833270189), RFFilterModelBessel)
agcls.AgTypeNameMap["RFFilterModelBessel"] = RFFilterModelBessel

class RFFilterModelSincEnvelopeSinc(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a sinc envelope sinc analog RF filter model."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_order_method_offset = 1
    _set_order_method_offset = 2
    _get_cut_off_frequency_method_offset = 3
    _set_cut_off_frequency_method_offset = 4
    _get_ripple_method_offset = 5
    _set_ripple_method_offset = 6
    _metadata = {
        "iid_data" : (5760017345188252330, 3450472844153863822),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelSincEnvelopeSinc)

    _get_order_metadata = { "offset" : _get_order_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def order(self) -> int:
        """Get or set the filter order."""
        return self._intf.get_property(RFFilterModelSincEnvelopeSinc._metadata, RFFilterModelSincEnvelopeSinc._get_order_metadata)

    _set_order_metadata = { "offset" : _set_order_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @order.setter
    def order(self, value:int) -> None:
        return self._intf.set_property(RFFilterModelSincEnvelopeSinc._metadata, RFFilterModelSincEnvelopeSinc._set_order_metadata, value)

    _get_cut_off_frequency_metadata = { "offset" : _get_cut_off_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cut_off_frequency(self) -> float:
        """Get or set the filter cut off frequency."""
        return self._intf.get_property(RFFilterModelSincEnvelopeSinc._metadata, RFFilterModelSincEnvelopeSinc._get_cut_off_frequency_metadata)

    _set_cut_off_frequency_metadata = { "offset" : _set_cut_off_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cut_off_frequency.setter
    def cut_off_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelSincEnvelopeSinc._metadata, RFFilterModelSincEnvelopeSinc._set_cut_off_frequency_metadata, value)

    _get_ripple_metadata = { "offset" : _get_ripple_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ripple(self) -> float:
        """Get or set the ripple."""
        return self._intf.get_property(RFFilterModelSincEnvelopeSinc._metadata, RFFilterModelSincEnvelopeSinc._get_ripple_metadata)

    _set_ripple_metadata = { "offset" : _set_ripple_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ripple.setter
    def ripple(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelSincEnvelopeSinc._metadata, RFFilterModelSincEnvelopeSinc._set_ripple_metadata, value)

    _property_names[order] = "order"
    _property_names[cut_off_frequency] = "cut_off_frequency"
    _property_names[ripple] = "ripple"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelSincEnvelopeSinc."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelSincEnvelopeSinc)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelSincEnvelopeSinc, [RFFilterModelSincEnvelopeSinc, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4786457897261225808, 16282800259192966815), RFFilterModelSincEnvelopeSinc)
agcls.AgTypeNameMap["RFFilterModelSincEnvelopeSinc"] = RFFilterModelSincEnvelopeSinc

class RFFilterModelElliptic(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an elliptic analog RF filter model."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_order_method_offset = 1
    _set_order_method_offset = 2
    _get_cut_off_frequency_method_offset = 3
    _set_cut_off_frequency_method_offset = 4
    _get_ripple_method_offset = 5
    _set_ripple_method_offset = 6
    _metadata = {
        "iid_data" : (5392797063248195043, 36633914269235391),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelElliptic)

    _get_order_metadata = { "offset" : _get_order_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def order(self) -> int:
        """Get or set the filter order."""
        return self._intf.get_property(RFFilterModelElliptic._metadata, RFFilterModelElliptic._get_order_metadata)

    _set_order_metadata = { "offset" : _set_order_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @order.setter
    def order(self, value:int) -> None:
        return self._intf.set_property(RFFilterModelElliptic._metadata, RFFilterModelElliptic._set_order_metadata, value)

    _get_cut_off_frequency_metadata = { "offset" : _get_cut_off_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cut_off_frequency(self) -> float:
        """Get or set the filter cut off frequency."""
        return self._intf.get_property(RFFilterModelElliptic._metadata, RFFilterModelElliptic._get_cut_off_frequency_metadata)

    _set_cut_off_frequency_metadata = { "offset" : _set_cut_off_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cut_off_frequency.setter
    def cut_off_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelElliptic._metadata, RFFilterModelElliptic._set_cut_off_frequency_metadata, value)

    _get_ripple_metadata = { "offset" : _get_ripple_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ripple(self) -> float:
        """Get or set the ripple."""
        return self._intf.get_property(RFFilterModelElliptic._metadata, RFFilterModelElliptic._get_ripple_metadata)

    _set_ripple_metadata = { "offset" : _set_ripple_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ripple.setter
    def ripple(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelElliptic._metadata, RFFilterModelElliptic._set_ripple_metadata, value)

    _property_names[order] = "order"
    _property_names[cut_off_frequency] = "cut_off_frequency"
    _property_names[ripple] = "ripple"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelElliptic."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelElliptic)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelElliptic, [RFFilterModelElliptic, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4674017288989042326, 15020896759159198367), RFFilterModelElliptic)
agcls.AgTypeNameMap["RFFilterModelElliptic"] = RFFilterModelElliptic

class RFFilterModelChebyshev(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an Chebyshev analog RF filter model."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_order_method_offset = 1
    _set_order_method_offset = 2
    _get_cut_off_frequency_method_offset = 3
    _set_cut_off_frequency_method_offset = 4
    _get_ripple_method_offset = 5
    _set_ripple_method_offset = 6
    _metadata = {
        "iid_data" : (5625704225210502185, 18141837436843319939),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelChebyshev)

    _get_order_metadata = { "offset" : _get_order_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def order(self) -> int:
        """Get or set the filter order."""
        return self._intf.get_property(RFFilterModelChebyshev._metadata, RFFilterModelChebyshev._get_order_metadata)

    _set_order_metadata = { "offset" : _set_order_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @order.setter
    def order(self, value:int) -> None:
        return self._intf.set_property(RFFilterModelChebyshev._metadata, RFFilterModelChebyshev._set_order_metadata, value)

    _get_cut_off_frequency_metadata = { "offset" : _get_cut_off_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cut_off_frequency(self) -> float:
        """Get or set the filter cut off frequency."""
        return self._intf.get_property(RFFilterModelChebyshev._metadata, RFFilterModelChebyshev._get_cut_off_frequency_metadata)

    _set_cut_off_frequency_metadata = { "offset" : _set_cut_off_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cut_off_frequency.setter
    def cut_off_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelChebyshev._metadata, RFFilterModelChebyshev._set_cut_off_frequency_metadata, value)

    _get_ripple_metadata = { "offset" : _get_ripple_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def ripple(self) -> float:
        """Get or set the ripple."""
        return self._intf.get_property(RFFilterModelChebyshev._metadata, RFFilterModelChebyshev._get_ripple_metadata)

    _set_ripple_metadata = { "offset" : _set_ripple_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @ripple.setter
    def ripple(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelChebyshev._metadata, RFFilterModelChebyshev._set_ripple_metadata, value)

    _property_names[order] = "order"
    _property_names[cut_off_frequency] = "cut_off_frequency"
    _property_names[ripple] = "ripple"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelChebyshev."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelChebyshev)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelChebyshev, [RFFilterModelChebyshev, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5006169553721238676, 16385701369788637373), RFFilterModelChebyshev)
agcls.AgTypeNameMap["RFFilterModelChebyshev"] = RFFilterModelChebyshev

class RFFilterModelCosineWindow(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a cosine window RF filter model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sampling_frequency_method_offset = 1
    _set_sampling_frequency_method_offset = 2
    _metadata = {
        "iid_data" : (5348590045288652640, 10095862065597802629),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelCosineWindow)

    _get_sampling_frequency_metadata = { "offset" : _get_sampling_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sampling_frequency(self) -> float:
        """Get or set the sampling frequency."""
        return self._intf.get_property(RFFilterModelCosineWindow._metadata, RFFilterModelCosineWindow._get_sampling_frequency_metadata)

    _set_sampling_frequency_metadata = { "offset" : _set_sampling_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sampling_frequency.setter
    def sampling_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelCosineWindow._metadata, RFFilterModelCosineWindow._set_sampling_frequency_metadata, value)

    _property_names[sampling_frequency] = "sampling_frequency"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelCosineWindow."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelCosineWindow)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelCosineWindow, [RFFilterModelCosineWindow, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5217931242581035235, 3250193995871840700), RFFilterModelCosineWindow)
agcls.AgTypeNameMap["RFFilterModelCosineWindow"] = RFFilterModelCosineWindow

class RFFilterModelGaussianWindow(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a gaussian window RF filter model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sampling_frequency_method_offset = 1
    _set_sampling_frequency_method_offset = 2
    _get_order_method_offset = 3
    _set_order_method_offset = 4
    _metadata = {
        "iid_data" : (5442419997740582581, 8669404957169854371),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelGaussianWindow)

    _get_sampling_frequency_metadata = { "offset" : _get_sampling_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sampling_frequency(self) -> float:
        """Get or set the sampling frequency."""
        return self._intf.get_property(RFFilterModelGaussianWindow._metadata, RFFilterModelGaussianWindow._get_sampling_frequency_metadata)

    _set_sampling_frequency_metadata = { "offset" : _set_sampling_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sampling_frequency.setter
    def sampling_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelGaussianWindow._metadata, RFFilterModelGaussianWindow._set_sampling_frequency_metadata, value)

    _get_order_metadata = { "offset" : _get_order_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def order(self) -> int:
        """Get or set the filter order."""
        return self._intf.get_property(RFFilterModelGaussianWindow._metadata, RFFilterModelGaussianWindow._get_order_metadata)

    _set_order_metadata = { "offset" : _set_order_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @order.setter
    def order(self, value:int) -> None:
        return self._intf.set_property(RFFilterModelGaussianWindow._metadata, RFFilterModelGaussianWindow._set_order_metadata, value)

    _property_names[sampling_frequency] = "sampling_frequency"
    _property_names[order] = "order"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelGaussianWindow."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelGaussianWindow)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelGaussianWindow, [RFFilterModelGaussianWindow, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5461229864632156863, 4604682717255579064), RFFilterModelGaussianWindow)
agcls.AgTypeNameMap["RFFilterModelGaussianWindow"] = RFFilterModelGaussianWindow

class RFFilterModelHammingWindow(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a Hamming window RF filter model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sampling_frequency_method_offset = 1
    _set_sampling_frequency_method_offset = 2
    _get_order_method_offset = 3
    _set_order_method_offset = 4
    _metadata = {
        "iid_data" : (5156714265466433020, 15513271751052546948),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelHammingWindow)

    _get_sampling_frequency_metadata = { "offset" : _get_sampling_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sampling_frequency(self) -> float:
        """Get or set the sampling frequency."""
        return self._intf.get_property(RFFilterModelHammingWindow._metadata, RFFilterModelHammingWindow._get_sampling_frequency_metadata)

    _set_sampling_frequency_metadata = { "offset" : _set_sampling_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sampling_frequency.setter
    def sampling_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelHammingWindow._metadata, RFFilterModelHammingWindow._set_sampling_frequency_metadata, value)

    _get_order_metadata = { "offset" : _get_order_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def order(self) -> int:
        """Get or set the filter order."""
        return self._intf.get_property(RFFilterModelHammingWindow._metadata, RFFilterModelHammingWindow._get_order_metadata)

    _set_order_metadata = { "offset" : _set_order_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @order.setter
    def order(self, value:int) -> None:
        return self._intf.set_property(RFFilterModelHammingWindow._metadata, RFFilterModelHammingWindow._set_order_metadata, value)

    _property_names[sampling_frequency] = "sampling_frequency"
    _property_names[order] = "order"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelHammingWindow."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelHammingWindow)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelHammingWindow, [RFFilterModelHammingWindow, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5070681451409578098, 13744107761264828065), RFFilterModelHammingWindow)
agcls.AgTypeNameMap["RFFilterModelHammingWindow"] = RFFilterModelHammingWindow

class RFFilterModelButterworth(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an butterworth RF filter model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_order_method_offset = 1
    _set_order_method_offset = 2
    _get_cut_off_frequency_method_offset = 3
    _set_cut_off_frequency_method_offset = 4
    _metadata = {
        "iid_data" : (4954318071993173698, 6796901170742248620),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelButterworth)

    _get_order_metadata = { "offset" : _get_order_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def order(self) -> int:
        """Get or set the filter order."""
        return self._intf.get_property(RFFilterModelButterworth._metadata, RFFilterModelButterworth._get_order_metadata)

    _set_order_metadata = { "offset" : _set_order_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @order.setter
    def order(self, value:int) -> None:
        return self._intf.set_property(RFFilterModelButterworth._metadata, RFFilterModelButterworth._set_order_metadata, value)

    _get_cut_off_frequency_metadata = { "offset" : _get_cut_off_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cut_off_frequency(self) -> float:
        """Get or set the filter cut off frequency."""
        return self._intf.get_property(RFFilterModelButterworth._metadata, RFFilterModelButterworth._get_cut_off_frequency_metadata)

    _set_cut_off_frequency_metadata = { "offset" : _set_cut_off_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cut_off_frequency.setter
    def cut_off_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelButterworth._metadata, RFFilterModelButterworth._set_cut_off_frequency_metadata, value)

    _property_names[order] = "order"
    _property_names[cut_off_frequency] = "cut_off_frequency"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelButterworth."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelButterworth)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelButterworth, [RFFilterModelButterworth, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4821354172546741600, 8441841714580107422), RFFilterModelButterworth)
agcls.AgTypeNameMap["RFFilterModelButterworth"] = RFFilterModelButterworth

class RFFilterModelExternal(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a external RF filter model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_override_bandwidth_limits_method_offset = 1
    _set_override_bandwidth_limits_method_offset = 2
    _get_filename_method_offset = 3
    _set_filename_method_offset = 4
    _metadata = {
        "iid_data" : (5553084312298212244, 5818184130947287981),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelExternal)

    _get_override_bandwidth_limits_metadata = { "offset" : _get_override_bandwidth_limits_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_bandwidth_limits(self) -> bool:
        """Get or set option to override the bandwidth limits."""
        return self._intf.get_property(RFFilterModelExternal._metadata, RFFilterModelExternal._get_override_bandwidth_limits_metadata)

    _set_override_bandwidth_limits_metadata = { "offset" : _set_override_bandwidth_limits_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_bandwidth_limits.setter
    def override_bandwidth_limits(self, value:bool) -> None:
        return self._intf.set_property(RFFilterModelExternal._metadata, RFFilterModelExternal._set_override_bandwidth_limits_metadata, value)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the external filename."""
        return self._intf.get_property(RFFilterModelExternal._metadata, RFFilterModelExternal._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(RFFilterModelExternal._metadata, RFFilterModelExternal._set_filename_metadata, value)

    _property_names[override_bandwidth_limits] = "override_bandwidth_limits"
    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelExternal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelExternal)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelExternal, [RFFilterModelExternal, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4807881389515378170, 14058292818322733247), RFFilterModelExternal)
agcls.AgTypeNameMap["RFFilterModelExternal"] = RFFilterModelExternal

class RFFilterModelScriptPlugin(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a script plugin RF filter model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (4665806284093169527, 7018392086969892252),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelScriptPlugin)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the external filename."""
        return self._intf.get_property(RFFilterModelScriptPlugin._metadata, RFFilterModelScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(RFFilterModelScriptPlugin._metadata, RFFilterModelScriptPlugin._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelScriptPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelScriptPlugin)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelScriptPlugin, [RFFilterModelScriptPlugin, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5756906025674968459, 9481384784617261740), RFFilterModelScriptPlugin)
agcls.AgTypeNameMap["RFFilterModelScriptPlugin"] = RFFilterModelScriptPlugin

class RFFilterModelSinc(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a sinc RF filter model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_cut_off_frequency_method_offset = 1
    _set_cut_off_frequency_method_offset = 2
    _metadata = {
        "iid_data" : (5273873139212179841, 11704024208333767871),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelSinc)

    _get_cut_off_frequency_metadata = { "offset" : _get_cut_off_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cut_off_frequency(self) -> float:
        """Get or set the analog filter cut off frequency."""
        return self._intf.get_property(RFFilterModelSinc._metadata, RFFilterModelSinc._get_cut_off_frequency_metadata)

    _set_cut_off_frequency_metadata = { "offset" : _set_cut_off_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cut_off_frequency.setter
    def cut_off_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelSinc._metadata, RFFilterModelSinc._set_cut_off_frequency_metadata, value)

    _property_names[cut_off_frequency] = "cut_off_frequency"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelSinc."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelSinc)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelSinc, [RFFilterModelSinc, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4674111101996595252, 1357945678237432494), RFFilterModelSinc)
agcls.AgTypeNameMap["RFFilterModelSinc"] = RFFilterModelSinc

class RFFilterModelRaisedCosine(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a raised cosine RF filter model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_roll_off_factor_method_offset = 1
    _set_roll_off_factor_method_offset = 2
    _get_symbol_rate_method_offset = 3
    _set_symbol_rate_method_offset = 4
    _metadata = {
        "iid_data" : (5130581956956898169, 14923196847889768351),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelRaisedCosine)

    _get_roll_off_factor_metadata = { "offset" : _get_roll_off_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def roll_off_factor(self) -> float:
        """Get or set the roll off factor."""
        return self._intf.get_property(RFFilterModelRaisedCosine._metadata, RFFilterModelRaisedCosine._get_roll_off_factor_metadata)

    _set_roll_off_factor_metadata = { "offset" : _set_roll_off_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @roll_off_factor.setter
    def roll_off_factor(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelRaisedCosine._metadata, RFFilterModelRaisedCosine._set_roll_off_factor_metadata, value)

    _get_symbol_rate_metadata = { "offset" : _get_symbol_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def symbol_rate(self) -> float:
        """Get or set the symbol rate."""
        return self._intf.get_property(RFFilterModelRaisedCosine._metadata, RFFilterModelRaisedCosine._get_symbol_rate_metadata)

    _set_symbol_rate_metadata = { "offset" : _set_symbol_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @symbol_rate.setter
    def symbol_rate(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelRaisedCosine._metadata, RFFilterModelRaisedCosine._set_symbol_rate_metadata, value)

    _property_names[roll_off_factor] = "roll_off_factor"
    _property_names[symbol_rate] = "symbol_rate"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelRaisedCosine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelRaisedCosine)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelRaisedCosine, [RFFilterModelRaisedCosine, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5234846269625468004, 3043856005352537743), RFFilterModelRaisedCosine)
agcls.AgTypeNameMap["RFFilterModelRaisedCosine"] = RFFilterModelRaisedCosine

class RFFilterModelRootRaisedCosine(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a root raised cosine RF filter model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_roll_off_factor_method_offset = 1
    _set_roll_off_factor_method_offset = 2
    _get_symbol_rate_method_offset = 3
    _set_symbol_rate_method_offset = 4
    _metadata = {
        "iid_data" : (4672859799657404273, 11240569673929657790),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelRootRaisedCosine)

    _get_roll_off_factor_metadata = { "offset" : _get_roll_off_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def roll_off_factor(self) -> float:
        """Get or set the roll off factor."""
        return self._intf.get_property(RFFilterModelRootRaisedCosine._metadata, RFFilterModelRootRaisedCosine._get_roll_off_factor_metadata)

    _set_roll_off_factor_metadata = { "offset" : _set_roll_off_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @roll_off_factor.setter
    def roll_off_factor(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelRootRaisedCosine._metadata, RFFilterModelRootRaisedCosine._set_roll_off_factor_metadata, value)

    _get_symbol_rate_metadata = { "offset" : _get_symbol_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def symbol_rate(self) -> float:
        """Get or set the symbol rate."""
        return self._intf.get_property(RFFilterModelRootRaisedCosine._metadata, RFFilterModelRootRaisedCosine._get_symbol_rate_metadata)

    _set_symbol_rate_metadata = { "offset" : _set_symbol_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @symbol_rate.setter
    def symbol_rate(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelRootRaisedCosine._metadata, RFFilterModelRootRaisedCosine._set_symbol_rate_metadata, value)

    _property_names[roll_off_factor] = "roll_off_factor"
    _property_names[symbol_rate] = "symbol_rate"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelRootRaisedCosine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelRootRaisedCosine)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelRootRaisedCosine, [RFFilterModelRootRaisedCosine, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4892946009171531021, 16635407540747627169), RFFilterModelRootRaisedCosine)
agcls.AgTypeNameMap["RFFilterModelRootRaisedCosine"] = RFFilterModelRootRaisedCosine

class RFFilterModelRCLowPass(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a rc low pass RF filter model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_cut_off_frequency_method_offset = 1
    _set_cut_off_frequency_method_offset = 2
    _metadata = {
        "iid_data" : (4711997272202021127, 1159363429069067446),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelRCLowPass)

    _get_cut_off_frequency_metadata = { "offset" : _get_cut_off_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cut_off_frequency(self) -> float:
        """Get or set the filter cut off frequency."""
        return self._intf.get_property(RFFilterModelRCLowPass._metadata, RFFilterModelRCLowPass._get_cut_off_frequency_metadata)

    _set_cut_off_frequency_metadata = { "offset" : _set_cut_off_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cut_off_frequency.setter
    def cut_off_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelRCLowPass._metadata, RFFilterModelRCLowPass._set_cut_off_frequency_metadata, value)

    _property_names[cut_off_frequency] = "cut_off_frequency"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelRCLowPass."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelRCLowPass)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelRCLowPass, [RFFilterModelRCLowPass, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5341161207723261962, 2650594838907685563), RFFilterModelRCLowPass)
agcls.AgTypeNameMap["RFFilterModelRCLowPass"] = RFFilterModelRCLowPass

class RFFilterModelRectangular(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a rectangular filter model."""
    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelRectangular."""
        SupportsDeleteCallback.__init__(self)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelRectangular, [IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5381725004990592168, 15434774356122514064), RFFilterModelRectangular)
agcls.AgTypeNameMap["RFFilterModelRectangular"] = RFFilterModelRectangular

class RFFilterModelFIRBoxCar(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a FIR box car RF filter model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sampling_frequency_method_offset = 1
    _set_sampling_frequency_method_offset = 2
    _get_order_method_offset = 3
    _set_order_method_offset = 4
    _metadata = {
        "iid_data" : (4621229939711438607, 17182549100652040894),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelFIRBoxCar)

    _get_sampling_frequency_metadata = { "offset" : _get_sampling_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sampling_frequency(self) -> float:
        """Get or set the sampling frequency."""
        return self._intf.get_property(RFFilterModelFIRBoxCar._metadata, RFFilterModelFIRBoxCar._get_sampling_frequency_metadata)

    _set_sampling_frequency_metadata = { "offset" : _set_sampling_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sampling_frequency.setter
    def sampling_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelFIRBoxCar._metadata, RFFilterModelFIRBoxCar._set_sampling_frequency_metadata, value)

    _get_order_metadata = { "offset" : _get_order_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def order(self) -> int:
        """Get or set the filter order."""
        return self._intf.get_property(RFFilterModelFIRBoxCar._metadata, RFFilterModelFIRBoxCar._get_order_metadata)

    _set_order_metadata = { "offset" : _set_order_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @order.setter
    def order(self, value:int) -> None:
        return self._intf.set_property(RFFilterModelFIRBoxCar._metadata, RFFilterModelFIRBoxCar._set_order_metadata, value)

    _property_names[sampling_frequency] = "sampling_frequency"
    _property_names[order] = "order"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelFIRBoxCar."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelFIRBoxCar)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelFIRBoxCar, [RFFilterModelFIRBoxCar, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5364887657859785031, 6954353800708546178), RFFilterModelFIRBoxCar)
agcls.AgTypeNameMap["RFFilterModelFIRBoxCar"] = RFFilterModelFIRBoxCar

class RFFilterModelIIR(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a IIR RF filter model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sampling_frequency_method_offset = 1
    _set_sampling_frequency_method_offset = 2
    _get_numerator_complex_polynomial_method_offset = 3
    _get_denominator_complex_polynomial_method_offset = 4
    _metadata = {
        "iid_data" : (5691732506503769572, 14354055764130272694),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelIIR)

    _get_sampling_frequency_metadata = { "offset" : _get_sampling_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sampling_frequency(self) -> float:
        """Get or set the sampling frequency."""
        return self._intf.get_property(RFFilterModelIIR._metadata, RFFilterModelIIR._get_sampling_frequency_metadata)

    _set_sampling_frequency_metadata = { "offset" : _set_sampling_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sampling_frequency.setter
    def sampling_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelIIR._metadata, RFFilterModelIIR._set_sampling_frequency_metadata, value)

    _get_numerator_complex_polynomial_metadata = { "offset" : _get_numerator_complex_polynomial_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def numerator_complex_polynomial(self) -> "CommRadComplexNumberCollection":
        """Get the numerator complex polynomial."""
        return self._intf.get_property(RFFilterModelIIR._metadata, RFFilterModelIIR._get_numerator_complex_polynomial_metadata)

    _get_denominator_complex_polynomial_metadata = { "offset" : _get_denominator_complex_polynomial_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def denominator_complex_polynomial(self) -> "CommRadComplexNumberCollection":
        """Get the denominator complex polynomial."""
        return self._intf.get_property(RFFilterModelIIR._metadata, RFFilterModelIIR._get_denominator_complex_polynomial_metadata)

    _property_names[sampling_frequency] = "sampling_frequency"
    _property_names[numerator_complex_polynomial] = "numerator_complex_polynomial"
    _property_names[denominator_complex_polynomial] = "denominator_complex_polynomial"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelIIR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelIIR)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelIIR, [RFFilterModelIIR, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4974366104755137442, 9697635744765532325), RFFilterModelIIR)
agcls.AgTypeNameMap["RFFilterModelIIR"] = RFFilterModelIIR

class RFFilterModelFIR(IRFFilterModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a FIR RF filter model."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sampling_frequency_method_offset = 1
    _set_sampling_frequency_method_offset = 2
    _get_numerator_complex_polynomial_method_offset = 3
    _metadata = {
        "iid_data" : (5357189288372147677, 11011199438352548790),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFFilterModelFIR)

    _get_sampling_frequency_metadata = { "offset" : _get_sampling_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sampling_frequency(self) -> float:
        """Get or set the sampling frequency."""
        return self._intf.get_property(RFFilterModelFIR._metadata, RFFilterModelFIR._get_sampling_frequency_metadata)

    _set_sampling_frequency_metadata = { "offset" : _set_sampling_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sampling_frequency.setter
    def sampling_frequency(self, value:float) -> None:
        return self._intf.set_property(RFFilterModelFIR._metadata, RFFilterModelFIR._set_sampling_frequency_metadata, value)

    _get_numerator_complex_polynomial_metadata = { "offset" : _get_numerator_complex_polynomial_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def numerator_complex_polynomial(self) -> "CommRadComplexNumberCollection":
        """Get the numerator complex polynomial."""
        return self._intf.get_property(RFFilterModelFIR._metadata, RFFilterModelFIR._get_numerator_complex_polynomial_metadata)

    _property_names[sampling_frequency] = "sampling_frequency"
    _property_names[numerator_complex_polynomial] = "numerator_complex_polynomial"

    def __init__(self, source_object=None):
        """Construct an object of type RFFilterModelFIR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFFilterModelFIR)
        IRFFilterModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRFFilterModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFFilterModelFIR, [RFFilterModelFIR, IRFFilterModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5605038488638540504, 15874944814273129400), RFFilterModelFIR)
agcls.AgTypeNameMap["RFFilterModelFIR"] = RFFilterModelFIR

class SystemNoiseTemperature(SupportsDeleteCallback):
    """Provide access to the system noise temperature parameters."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_type_method_offset = 1
    _set_compute_type_method_offset = 2
    _get_constant_noise_temperature_method_offset = 3
    _set_constant_noise_temperature_method_offset = 4
    _get_antenna_to_lna_line_temperature_method_offset = 5
    _set_antenna_to_lna_line_temperature_method_offset = 6
    _get_lna_to_receiver_line_temperature_method_offset = 7
    _set_lna_to_receiver_line_temperature_method_offset = 8
    _get_lna_noise_figure_method_offset = 9
    _set_lna_noise_figure_method_offset = 10
    _get_lna_temperature_method_offset = 11
    _set_lna_temperature_method_offset = 12
    _get_antenna_noise_temperature_method_offset = 13
    _metadata = {
        "iid_data" : (4769729277280215194, 12814441936355069071),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SystemNoiseTemperature)

    _get_compute_type_metadata = { "offset" : _get_compute_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(NoiseTemperatureComputeType),) }
    @property
    def compute_type(self) -> "NoiseTemperatureComputeType":
        """Get or set the system noise temperature compute type."""
        return self._intf.get_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._get_compute_type_metadata)

    _set_compute_type_metadata = { "offset" : _set_compute_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(NoiseTemperatureComputeType),) }
    @compute_type.setter
    def compute_type(self, value:"NoiseTemperatureComputeType") -> None:
        return self._intf.set_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._set_compute_type_metadata, value)

    _get_constant_noise_temperature_metadata = { "offset" : _get_constant_noise_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def constant_noise_temperature(self) -> float:
        """Get or set the constant system noise temperature value."""
        return self._intf.get_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._get_constant_noise_temperature_metadata)

    _set_constant_noise_temperature_metadata = { "offset" : _set_constant_noise_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @constant_noise_temperature.setter
    def constant_noise_temperature(self, value:float) -> None:
        return self._intf.set_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._set_constant_noise_temperature_metadata, value)

    _get_antenna_to_lna_line_temperature_metadata = { "offset" : _get_antenna_to_lna_line_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def antenna_to_lna_line_temperature(self) -> float:
        """Get or set the antenna to LNA line temperature."""
        return self._intf.get_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._get_antenna_to_lna_line_temperature_metadata)

    _set_antenna_to_lna_line_temperature_metadata = { "offset" : _set_antenna_to_lna_line_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @antenna_to_lna_line_temperature.setter
    def antenna_to_lna_line_temperature(self, value:float) -> None:
        return self._intf.set_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._set_antenna_to_lna_line_temperature_metadata, value)

    _get_lna_to_receiver_line_temperature_metadata = { "offset" : _get_lna_to_receiver_line_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_to_receiver_line_temperature(self) -> float:
        """Get or set the LNA to receiver line temperature."""
        return self._intf.get_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._get_lna_to_receiver_line_temperature_metadata)

    _set_lna_to_receiver_line_temperature_metadata = { "offset" : _set_lna_to_receiver_line_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_to_receiver_line_temperature.setter
    def lna_to_receiver_line_temperature(self, value:float) -> None:
        return self._intf.set_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._set_lna_to_receiver_line_temperature_metadata, value)

    _get_lna_noise_figure_metadata = { "offset" : _get_lna_noise_figure_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_noise_figure(self) -> float:
        """Get or set the LNA noise figure."""
        return self._intf.get_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._get_lna_noise_figure_metadata)

    _set_lna_noise_figure_metadata = { "offset" : _set_lna_noise_figure_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_noise_figure.setter
    def lna_noise_figure(self, value:float) -> None:
        return self._intf.set_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._set_lna_noise_figure_metadata, value)

    _get_lna_temperature_metadata = { "offset" : _get_lna_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def lna_temperature(self) -> float:
        """Get or set the LNA temperature."""
        return self._intf.get_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._get_lna_temperature_metadata)

    _set_lna_temperature_metadata = { "offset" : _set_lna_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @lna_temperature.setter
    def lna_temperature(self, value:float) -> None:
        return self._intf.set_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._set_lna_temperature_metadata, value)

    _get_antenna_noise_temperature_metadata = { "offset" : _get_antenna_noise_temperature_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_noise_temperature(self) -> "AntennaNoiseTemperature":
        """Get the interface for setting the antenna noise temperature parameters."""
        return self._intf.get_property(SystemNoiseTemperature._metadata, SystemNoiseTemperature._get_antenna_noise_temperature_metadata)

    _property_names[compute_type] = "compute_type"
    _property_names[constant_noise_temperature] = "constant_noise_temperature"
    _property_names[antenna_to_lna_line_temperature] = "antenna_to_lna_line_temperature"
    _property_names[lna_to_receiver_line_temperature] = "lna_to_receiver_line_temperature"
    _property_names[lna_noise_figure] = "lna_noise_figure"
    _property_names[lna_temperature] = "lna_temperature"
    _property_names[antenna_noise_temperature] = "antenna_noise_temperature"

    def __init__(self, source_object=None):
        """Construct an object of type SystemNoiseTemperature."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SystemNoiseTemperature)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SystemNoiseTemperature, [SystemNoiseTemperature, ])

agcls.AgClassCatalog.add_catalog_entry((4729595297057133290, 13832572760484407996), SystemNoiseTemperature)
agcls.AgTypeNameMap["SystemNoiseTemperature"] = SystemNoiseTemperature

class AntennaNoiseTemperature(SupportsDeleteCallback):
    """Provide access to the antenna noise temperature parameters."""

    _num_methods = 32
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_type_method_offset = 1
    _set_compute_type_method_offset = 2
    _get_constant_noise_temperature_method_offset = 3
    _set_constant_noise_temperature_method_offset = 4
    _get_use_earth_method_offset = 5
    _set_use_earth_method_offset = 6
    _get_use_sun_method_offset = 7
    _set_use_sun_method_offset = 8
    _get_use_atmosphere_method_offset = 9
    _set_use_atmosphere_method_offset = 10
    _get_use_urban_terrestrial_method_offset = 11
    _set_use_urban_terrestrial_method_offset = 12
    _get_use_rain_method_offset = 13
    _set_use_rain_method_offset = 14
    _get_use_clouds_fog_method_offset = 15
    _set_use_clouds_fog_method_offset = 16
    _get_use_tropospheric_scintillation_method_offset = 17
    _set_use_tropospheric_scintillation_method_offset = 18
    _get_use_cosmic_background_method_offset = 19
    _set_use_cosmic_background_method_offset = 20
    _get_inherit_scenario_earth_temperature_method_offset = 21
    _set_inherit_scenario_earth_temperature_method_offset = 22
    _get_local_earth_temperature_method_offset = 23
    _set_local_earth_temperature_method_offset = 24
    _get_other_noise_temperature_method_offset = 25
    _set_other_noise_temperature_method_offset = 26
    _get_use_external_method_offset = 27
    _set_use_external_method_offset = 28
    _get_external_noise_filename_method_offset = 29
    _set_external_noise_filename_method_offset = 30
    _get_use_ionospheric_fading_method_offset = 31
    _set_use_ionospheric_fading_method_offset = 32
    _metadata = {
        "iid_data" : (5551438147019954942, 12778566241840459398),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaNoiseTemperature)

    _get_compute_type_metadata = { "offset" : _get_compute_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(NoiseTemperatureComputeType),) }
    @property
    def compute_type(self) -> "NoiseTemperatureComputeType":
        """Get or set the system noise temperature compute type."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_compute_type_metadata)

    _set_compute_type_metadata = { "offset" : _set_compute_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(NoiseTemperatureComputeType),) }
    @compute_type.setter
    def compute_type(self, value:"NoiseTemperatureComputeType") -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_compute_type_metadata, value)

    _get_constant_noise_temperature_metadata = { "offset" : _get_constant_noise_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def constant_noise_temperature(self) -> float:
        """Get or set the constant system noise temperature value."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_constant_noise_temperature_metadata)

    _set_constant_noise_temperature_metadata = { "offset" : _set_constant_noise_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @constant_noise_temperature.setter
    def constant_noise_temperature(self, value:float) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_constant_noise_temperature_metadata, value)

    _get_use_earth_metadata = { "offset" : _get_use_earth_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_earth(self) -> bool:
        """Get or set the flag to use noise due to the earth."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_use_earth_metadata)

    _set_use_earth_metadata = { "offset" : _set_use_earth_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_earth.setter
    def use_earth(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_use_earth_metadata, value)

    _get_use_sun_metadata = { "offset" : _get_use_sun_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_sun(self) -> bool:
        """Get or set the flag to use noise due to the sun."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_use_sun_metadata)

    _set_use_sun_metadata = { "offset" : _set_use_sun_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_sun.setter
    def use_sun(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_use_sun_metadata, value)

    _get_use_atmosphere_metadata = { "offset" : _get_use_atmosphere_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_atmosphere(self) -> bool:
        """Get or set the flag to use noise due to the atmosphere."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_use_atmosphere_metadata)

    _set_use_atmosphere_metadata = { "offset" : _set_use_atmosphere_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_atmosphere.setter
    def use_atmosphere(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_use_atmosphere_metadata, value)

    _get_use_urban_terrestrial_metadata = { "offset" : _get_use_urban_terrestrial_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_urban_terrestrial(self) -> bool:
        """Get or set the flag to use noise due to the urban/terrestrial."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_use_urban_terrestrial_metadata)

    _set_use_urban_terrestrial_metadata = { "offset" : _set_use_urban_terrestrial_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_urban_terrestrial.setter
    def use_urban_terrestrial(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_use_urban_terrestrial_metadata, value)

    _get_use_rain_metadata = { "offset" : _get_use_rain_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_rain(self) -> bool:
        """Get or set the flag to use noise due to the rain."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_use_rain_metadata)

    _set_use_rain_metadata = { "offset" : _set_use_rain_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_rain.setter
    def use_rain(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_use_rain_metadata, value)

    _get_use_clouds_fog_metadata = { "offset" : _get_use_clouds_fog_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_clouds_fog(self) -> bool:
        """Get or set the flag to use noise due to the clouds and fog."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_use_clouds_fog_metadata)

    _set_use_clouds_fog_metadata = { "offset" : _set_use_clouds_fog_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_clouds_fog.setter
    def use_clouds_fog(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_use_clouds_fog_metadata, value)

    _get_use_tropospheric_scintillation_metadata = { "offset" : _get_use_tropospheric_scintillation_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_tropospheric_scintillation(self) -> bool:
        """Get or set the flag to use noise due to the tropospheric scintillation."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_use_tropospheric_scintillation_metadata)

    _set_use_tropospheric_scintillation_metadata = { "offset" : _set_use_tropospheric_scintillation_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_tropospheric_scintillation.setter
    def use_tropospheric_scintillation(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_use_tropospheric_scintillation_metadata, value)

    _get_use_cosmic_background_metadata = { "offset" : _get_use_cosmic_background_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_cosmic_background(self) -> bool:
        """Get or set the flag to use noise due to the cosmic background."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_use_cosmic_background_metadata)

    _set_use_cosmic_background_metadata = { "offset" : _set_use_cosmic_background_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_cosmic_background.setter
    def use_cosmic_background(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_use_cosmic_background_metadata, value)

    _get_inherit_scenario_earth_temperature_metadata = { "offset" : _get_inherit_scenario_earth_temperature_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_scenario_earth_temperature(self) -> bool:
        """Get or set the flag to inherit the scenairo earth temperature."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_inherit_scenario_earth_temperature_metadata)

    _set_inherit_scenario_earth_temperature_metadata = { "offset" : _set_inherit_scenario_earth_temperature_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_scenario_earth_temperature.setter
    def inherit_scenario_earth_temperature(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_inherit_scenario_earth_temperature_metadata, value)

    _get_local_earth_temperature_metadata = { "offset" : _get_local_earth_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_earth_temperature(self) -> float:
        """Get or set the local earth temperature."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_local_earth_temperature_metadata)

    _set_local_earth_temperature_metadata = { "offset" : _set_local_earth_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_earth_temperature.setter
    def local_earth_temperature(self, value:float) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_local_earth_temperature_metadata, value)

    _get_other_noise_temperature_metadata = { "offset" : _get_other_noise_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def other_noise_temperature(self) -> float:
        """Get or set additional misc. noise temperature."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_other_noise_temperature_metadata)

    _set_other_noise_temperature_metadata = { "offset" : _set_other_noise_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @other_noise_temperature.setter
    def other_noise_temperature(self, value:float) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_other_noise_temperature_metadata, value)

    _get_use_external_metadata = { "offset" : _get_use_external_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_external(self) -> bool:
        """Get or set the flag to use noise due to an external source."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_use_external_metadata)

    _set_use_external_metadata = { "offset" : _set_use_external_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_external.setter
    def use_external(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_use_external_metadata, value)

    _get_external_noise_filename_metadata = { "offset" : _get_external_noise_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def external_noise_filename(self) -> str:
        """Get or set the external noise file path."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_external_noise_filename_metadata)

    _set_external_noise_filename_metadata = { "offset" : _set_external_noise_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @external_noise_filename.setter
    def external_noise_filename(self, value:str) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_external_noise_filename_metadata, value)

    _get_use_ionospheric_fading_metadata = { "offset" : _get_use_ionospheric_fading_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_ionospheric_fading(self) -> bool:
        """Get or set the flag to use noise due to the ionospheric fading."""
        return self._intf.get_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._get_use_ionospheric_fading_metadata)

    _set_use_ionospheric_fading_metadata = { "offset" : _set_use_ionospheric_fading_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_ionospheric_fading.setter
    def use_ionospheric_fading(self, value:bool) -> None:
        return self._intf.set_property(AntennaNoiseTemperature._metadata, AntennaNoiseTemperature._set_use_ionospheric_fading_metadata, value)

    _property_names[compute_type] = "compute_type"
    _property_names[constant_noise_temperature] = "constant_noise_temperature"
    _property_names[use_earth] = "use_earth"
    _property_names[use_sun] = "use_sun"
    _property_names[use_atmosphere] = "use_atmosphere"
    _property_names[use_urban_terrestrial] = "use_urban_terrestrial"
    _property_names[use_rain] = "use_rain"
    _property_names[use_clouds_fog] = "use_clouds_fog"
    _property_names[use_tropospheric_scintillation] = "use_tropospheric_scintillation"
    _property_names[use_cosmic_background] = "use_cosmic_background"
    _property_names[inherit_scenario_earth_temperature] = "inherit_scenario_earth_temperature"
    _property_names[local_earth_temperature] = "local_earth_temperature"
    _property_names[other_noise_temperature] = "other_noise_temperature"
    _property_names[use_external] = "use_external"
    _property_names[external_noise_filename] = "external_noise_filename"
    _property_names[use_ionospheric_fading] = "use_ionospheric_fading"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaNoiseTemperature."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaNoiseTemperature)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaNoiseTemperature, [AntennaNoiseTemperature, ])

agcls.AgClassCatalog.add_catalog_entry((5485939738867305724, 13925958498845661062), AntennaNoiseTemperature)
agcls.AgTypeNameMap["AntennaNoiseTemperature"] = AntennaNoiseTemperature

class Atmosphere(IPlatformRFEnvironment, SupportsDeleteCallback):
    """Provide access to the properties and methods defining the local atmosphere."""

    _num_methods = 14
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_atmospheric_absorption_model_method_offset = 1
    _set_inherit_atmospheric_absorption_model_method_offset = 2
    _get_supported_local_atmospheric_absorption_models_method_offset = 3
    _set_local_atmospheric_absorption_model_method_offset = 4
    _get_local_atmospheric_absorption_model_method_offset = 5
    _get_enable_local_rain_data_method_offset = 6
    _set_enable_local_rain_data_method_offset = 7
    _get_local_rain_height_method_offset = 8
    _set_local_rain_height_method_offset = 9
    _get_local_rain_rate_method_offset = 10
    _set_local_rain_rate_method_offset = 11
    _get_local_surface_temperature_method_offset = 12
    _set_local_surface_temperature_method_offset = 13
    _get_propagation_channel_method_offset = 14
    _metadata = {
        "iid_data" : (4764617681094875198, 8258957251153987755),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Atmosphere)

    _get_inherit_atmospheric_absorption_model_metadata = { "offset" : _get_inherit_atmospheric_absorption_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit_atmospheric_absorption_model(self) -> bool:
        """Do not use this property, as it is deprecated. Use the PropagationChannel property to enable or disable the atmospheric absorption model."""
        return self._intf.get_property(Atmosphere._metadata, Atmosphere._get_inherit_atmospheric_absorption_model_metadata)

    _set_inherit_atmospheric_absorption_model_metadata = { "offset" : _set_inherit_atmospheric_absorption_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit_atmospheric_absorption_model.setter
    def inherit_atmospheric_absorption_model(self, value:bool) -> None:
        return self._intf.set_property(Atmosphere._metadata, Atmosphere._set_inherit_atmospheric_absorption_model_metadata, value)

    _get_supported_local_atmospheric_absorption_models_metadata = { "offset" : _get_supported_local_atmospheric_absorption_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_local_atmospheric_absorption_models(self) -> list:
        """Do not use this property, as it is deprecated. Use the PropagationChannel property to determine the supported atmospheric absorption models."""
        return self._intf.get_property(Atmosphere._metadata, Atmosphere._get_supported_local_atmospheric_absorption_models_metadata)

    _set_local_atmospheric_absorption_model_metadata = { "offset" : _set_local_atmospheric_absorption_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_local_atmospheric_absorption_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use the PropagationChannel property to set the atmospheric absorption model."""
        return self._intf.invoke(Atmosphere._metadata, Atmosphere._set_local_atmospheric_absorption_model_metadata, model_name)

    _get_local_atmospheric_absorption_model_metadata = { "offset" : _get_local_atmospheric_absorption_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def local_atmospheric_absorption_model(self) -> "IAtmosphericAbsorptionModel":
        """Do not use this property, as it is deprecated. Use the PropagationChannel property to get the atmospheric absorption model."""
        return self._intf.get_property(Atmosphere._metadata, Atmosphere._get_local_atmospheric_absorption_model_metadata)

    _get_enable_local_rain_data_metadata = { "offset" : _get_enable_local_rain_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_local_rain_data(self) -> bool:
        """Get or set the option for enabling local rain data."""
        return self._intf.get_property(Atmosphere._metadata, Atmosphere._get_enable_local_rain_data_metadata)

    _set_enable_local_rain_data_metadata = { "offset" : _set_enable_local_rain_data_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_local_rain_data.setter
    def enable_local_rain_data(self, value:bool) -> None:
        return self._intf.set_property(Atmosphere._metadata, Atmosphere._set_enable_local_rain_data_metadata, value)

    _get_local_rain_height_metadata = { "offset" : _get_local_rain_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_rain_height(self) -> float:
        """Get or set the local rain iso height."""
        return self._intf.get_property(Atmosphere._metadata, Atmosphere._get_local_rain_height_metadata)

    _set_local_rain_height_metadata = { "offset" : _set_local_rain_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_rain_height.setter
    def local_rain_height(self, value:float) -> None:
        return self._intf.set_property(Atmosphere._metadata, Atmosphere._set_local_rain_height_metadata, value)

    _get_local_rain_rate_metadata = { "offset" : _get_local_rain_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_rain_rate(self) -> float:
        """Get or set the local rain rate."""
        return self._intf.get_property(Atmosphere._metadata, Atmosphere._get_local_rain_rate_metadata)

    _set_local_rain_rate_metadata = { "offset" : _set_local_rain_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_rain_rate.setter
    def local_rain_rate(self, value:float) -> None:
        return self._intf.set_property(Atmosphere._metadata, Atmosphere._set_local_rain_rate_metadata, value)

    _get_local_surface_temperature_metadata = { "offset" : _get_local_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def local_surface_temperature(self) -> float:
        """Do not use this property, as it is deprecated. Gets or sets the local surface temperature."""
        return self._intf.get_property(Atmosphere._metadata, Atmosphere._get_local_surface_temperature_metadata)

    _set_local_surface_temperature_metadata = { "offset" : _set_local_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @local_surface_temperature.setter
    def local_surface_temperature(self, value:float) -> None:
        return self._intf.set_property(Atmosphere._metadata, Atmosphere._set_local_surface_temperature_metadata, value)

    _get_propagation_channel_metadata = { "offset" : _get_propagation_channel_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def propagation_channel(self) -> "PropagationChannel":
        """Get the propagation channel."""
        return self._intf.get_property(Atmosphere._metadata, Atmosphere._get_propagation_channel_metadata)

    _property_names[inherit_atmospheric_absorption_model] = "inherit_atmospheric_absorption_model"
    _property_names[supported_local_atmospheric_absorption_models] = "supported_local_atmospheric_absorption_models"
    _property_names[local_atmospheric_absorption_model] = "local_atmospheric_absorption_model"
    _property_names[enable_local_rain_data] = "enable_local_rain_data"
    _property_names[local_rain_height] = "local_rain_height"
    _property_names[local_rain_rate] = "local_rain_rate"
    _property_names[local_surface_temperature] = "local_surface_temperature"
    _property_names[propagation_channel] = "propagation_channel"

    def __init__(self, source_object=None):
        """Construct an object of type Atmosphere."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Atmosphere)
        IPlatformRFEnvironment.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPlatformRFEnvironment._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Atmosphere, [Atmosphere, IPlatformRFEnvironment])

agcls.AgClassCatalog.add_catalog_entry((5585197205904420964, 5936211368614709439), Atmosphere)
agcls.AgTypeNameMap["Atmosphere"] = Atmosphere

class LaserPropagationLossModels(ILaserPropagationChannel, SupportsDeleteCallback):
    """Provide access to laser propagation loss models."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_atmospheric_loss_model_method_offset = 1
    _set_enable_atmospheric_loss_model_method_offset = 2
    _set_atmospheric_loss_model_method_offset = 3
    _get_atmospheric_loss_model_method_offset = 4
    _get_enable_tropospheric_scintillation_loss_model_method_offset = 5
    _set_enable_tropospheric_scintillation_loss_model_method_offset = 6
    _set_tropospheric_scintillation_loss_model_method_offset = 7
    _get_tropospheric_scintillation_loss_model_method_offset = 8
    _metadata = {
        "iid_data" : (5435436756791224819, 5941265634475087016),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaserPropagationLossModels)

    _get_enable_atmospheric_loss_model_metadata = { "offset" : _get_enable_atmospheric_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_atmospheric_loss_model(self) -> bool:
        """Get or set the option for computing atmospheric absorption propagation loss."""
        return self._intf.get_property(LaserPropagationLossModels._metadata, LaserPropagationLossModels._get_enable_atmospheric_loss_model_metadata)

    _set_enable_atmospheric_loss_model_metadata = { "offset" : _set_enable_atmospheric_loss_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_atmospheric_loss_model.setter
    def enable_atmospheric_loss_model(self, value:bool) -> None:
        return self._intf.set_property(LaserPropagationLossModels._metadata, LaserPropagationLossModels._set_enable_atmospheric_loss_model_metadata, value)

    _set_atmospheric_loss_model_metadata = { "offset" : _set_atmospheric_loss_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_atmospheric_loss_model(self, model_name:str) -> None:
        """Set the current atmospheric absorption loss model by name."""
        return self._intf.invoke(LaserPropagationLossModels._metadata, LaserPropagationLossModels._set_atmospheric_loss_model_metadata, model_name)

    _get_atmospheric_loss_model_metadata = { "offset" : _get_atmospheric_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmospheric_loss_model(self) -> "ILaserAtmosphericLossModel":
        """Get the laser atmospheric absorption loss model."""
        return self._intf.get_property(LaserPropagationLossModels._metadata, LaserPropagationLossModels._get_atmospheric_loss_model_metadata)

    _get_enable_tropospheric_scintillation_loss_model_metadata = { "offset" : _get_enable_tropospheric_scintillation_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_tropospheric_scintillation_loss_model(self) -> bool:
        """Get or set the option for computing tropospheric scintillation propagation loss."""
        return self._intf.get_property(LaserPropagationLossModels._metadata, LaserPropagationLossModels._get_enable_tropospheric_scintillation_loss_model_metadata)

    _set_enable_tropospheric_scintillation_loss_model_metadata = { "offset" : _set_enable_tropospheric_scintillation_loss_model_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_tropospheric_scintillation_loss_model.setter
    def enable_tropospheric_scintillation_loss_model(self, value:bool) -> None:
        return self._intf.set_property(LaserPropagationLossModels._metadata, LaserPropagationLossModels._set_enable_tropospheric_scintillation_loss_model_metadata, value)

    _set_tropospheric_scintillation_loss_model_metadata = { "offset" : _set_tropospheric_scintillation_loss_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_tropospheric_scintillation_loss_model(self, model_name:str) -> None:
        """Set the current tropospheric scintillation loss model by name."""
        return self._intf.invoke(LaserPropagationLossModels._metadata, LaserPropagationLossModels._set_tropospheric_scintillation_loss_model_metadata, model_name)

    _get_tropospheric_scintillation_loss_model_metadata = { "offset" : _get_tropospheric_scintillation_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tropospheric_scintillation_loss_model(self) -> "ILaserTroposphericScintillationLossModel":
        """Get the laser propagation loss model."""
        return self._intf.get_property(LaserPropagationLossModels._metadata, LaserPropagationLossModels._get_tropospheric_scintillation_loss_model_metadata)

    _property_names[enable_atmospheric_loss_model] = "enable_atmospheric_loss_model"
    _property_names[atmospheric_loss_model] = "atmospheric_loss_model"
    _property_names[enable_tropospheric_scintillation_loss_model] = "enable_tropospheric_scintillation_loss_model"
    _property_names[tropospheric_scintillation_loss_model] = "tropospheric_scintillation_loss_model"

    def __init__(self, source_object=None):
        """Construct an object of type LaserPropagationLossModels."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaserPropagationLossModels)
        ILaserPropagationChannel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILaserPropagationChannel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaserPropagationLossModels, [LaserPropagationLossModels, ILaserPropagationChannel])

agcls.AgClassCatalog.add_catalog_entry((5615388237798715292, 15255574134301964436), LaserPropagationLossModels)
agcls.AgTypeNameMap["LaserPropagationLossModels"] = LaserPropagationLossModels

class LaserAtmosphericLossModel(ILaserAtmosphericLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining an laser propagation loss model."""
    def __init__(self, source_object=None):
        """Construct an object of type LaserAtmosphericLossModel."""
        SupportsDeleteCallback.__init__(self)
        ILaserAtmosphericLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILaserAtmosphericLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaserAtmosphericLossModel, [ILaserAtmosphericLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5279308850996509103, 4038190526061151911), LaserAtmosphericLossModel)
agcls.AgTypeNameMap["LaserAtmosphericLossModel"] = LaserAtmosphericLossModel

class LaserAtmosphericLossModelBeerBouguerLambertLaw(ILaserAtmosphericLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods a Beer-Bouguer-Lambert law laser propagation loss model."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_evenly_spaced_heights_method_offset = 1
    _get_maximum_altitude_method_offset = 2
    _create_evenly_spaced_layers_method_offset = 3
    _create_unevenly_spaced_layers_method_offset = 4
    _get_atmosphere_layers_method_offset = 5
    _metadata = {
        "iid_data" : (4721379658609316340, 2298092008251654845),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaserAtmosphericLossModelBeerBouguerLambertLaw)

    _get_enable_evenly_spaced_heights_metadata = { "offset" : _get_enable_evenly_spaced_heights_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_evenly_spaced_heights(self) -> bool:
        """Get the option for enabling evenly spaced layer heights."""
        return self._intf.get_property(LaserAtmosphericLossModelBeerBouguerLambertLaw._metadata, LaserAtmosphericLossModelBeerBouguerLambertLaw._get_enable_evenly_spaced_heights_metadata)

    _get_maximum_altitude_metadata = { "offset" : _get_maximum_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_altitude(self) -> float:
        """Get the maximum altitude of the atmosphere."""
        return self._intf.get_property(LaserAtmosphericLossModelBeerBouguerLambertLaw._metadata, LaserAtmosphericLossModelBeerBouguerLambertLaw._get_maximum_altitude_metadata)

    _create_evenly_spaced_layers_metadata = { "offset" : _create_evenly_spaced_layers_method_offset,
            "arg_types" : (agcom.INT, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def create_evenly_spaced_layers(self, layer_count:int, max_altitude:float) -> "BeerBouguerLambertLawLayerCollection":
        """Clear any existing layers in the collection and creates evenly spaced layers from surface of the central body to the maximum altitude."""
        return self._intf.invoke(LaserAtmosphericLossModelBeerBouguerLambertLaw._metadata, LaserAtmosphericLossModelBeerBouguerLambertLaw._create_evenly_spaced_layers_metadata, layer_count, max_altitude, OutArg())

    _create_unevenly_spaced_layers_metadata = { "offset" : _create_unevenly_spaced_layers_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY), POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LPSafearrayArg, agmarshall.InterfaceOutArg,) }
    def create_unevenly_spaced_layers(self, pp_layer_heights:list) -> "BeerBouguerLambertLawLayerCollection":
        """Clear any existing layers in the collection and creates unevenly spaced layers using the array of supplied layer top heights."""
        return self._intf.invoke(LaserAtmosphericLossModelBeerBouguerLambertLaw._metadata, LaserAtmosphericLossModelBeerBouguerLambertLaw._create_unevenly_spaced_layers_metadata, pp_layer_heights, OutArg())

    _get_atmosphere_layers_metadata = { "offset" : _get_atmosphere_layers_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmosphere_layers(self) -> "BeerBouguerLambertLawLayerCollection":
        """Get the atmosphere layer collection."""
        return self._intf.get_property(LaserAtmosphericLossModelBeerBouguerLambertLaw._metadata, LaserAtmosphericLossModelBeerBouguerLambertLaw._get_atmosphere_layers_metadata)

    _property_names[enable_evenly_spaced_heights] = "enable_evenly_spaced_heights"
    _property_names[maximum_altitude] = "maximum_altitude"
    _property_names[atmosphere_layers] = "atmosphere_layers"

    def __init__(self, source_object=None):
        """Construct an object of type LaserAtmosphericLossModelBeerBouguerLambertLaw."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaserAtmosphericLossModelBeerBouguerLambertLaw)
        ILaserAtmosphericLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILaserAtmosphericLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaserAtmosphericLossModelBeerBouguerLambertLaw, [LaserAtmosphericLossModelBeerBouguerLambertLaw, ILaserAtmosphericLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5486650577125135916, 2701769131846601649), LaserAtmosphericLossModelBeerBouguerLambertLaw)
agcls.AgTypeNameMap["LaserAtmosphericLossModelBeerBouguerLambertLaw"] = LaserAtmosphericLossModelBeerBouguerLambertLaw

class MODTRANLookupTablePropagationModel(ILaserAtmosphericLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods of the MODTRAN lookup table model."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_aerosol_model_type_method_offset = 1
    _set_aerosol_model_type_method_offset = 2
    _get_visibility_method_offset = 3
    _set_visibility_method_offset = 4
    _get_relative_humidity_method_offset = 5
    _set_relative_humidity_method_offset = 6
    _get_surface_temperature_method_offset = 7
    _set_surface_temperature_method_offset = 8
    _get_supported_aerosol_models_method_offset = 9
    _set_aerosol_model_type_by_name_method_offset = 10
    _metadata = {
        "iid_data" : (4979905909351079635, 4785264998574566027),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MODTRANLookupTablePropagationModel)

    _get_aerosol_model_type_metadata = { "offset" : _get_aerosol_model_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ModtranAerosolModelType),) }
    @property
    def aerosol_model_type(self) -> "ModtranAerosolModelType":
        """Get or set the aerosol model type."""
        return self._intf.get_property(MODTRANLookupTablePropagationModel._metadata, MODTRANLookupTablePropagationModel._get_aerosol_model_type_metadata)

    _set_aerosol_model_type_metadata = { "offset" : _set_aerosol_model_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ModtranAerosolModelType),) }
    @aerosol_model_type.setter
    def aerosol_model_type(self, value:"ModtranAerosolModelType") -> None:
        return self._intf.set_property(MODTRANLookupTablePropagationModel._metadata, MODTRANLookupTablePropagationModel._set_aerosol_model_type_metadata, value)

    _get_visibility_metadata = { "offset" : _get_visibility_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def visibility(self) -> float:
        """Get or set the visibility."""
        return self._intf.get_property(MODTRANLookupTablePropagationModel._metadata, MODTRANLookupTablePropagationModel._get_visibility_metadata)

    _set_visibility_metadata = { "offset" : _set_visibility_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @visibility.setter
    def visibility(self, value:float) -> None:
        return self._intf.set_property(MODTRANLookupTablePropagationModel._metadata, MODTRANLookupTablePropagationModel._set_visibility_metadata, value)

    _get_relative_humidity_metadata = { "offset" : _get_relative_humidity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def relative_humidity(self) -> float:
        """Get or set the relative humidity."""
        return self._intf.get_property(MODTRANLookupTablePropagationModel._metadata, MODTRANLookupTablePropagationModel._get_relative_humidity_metadata)

    _set_relative_humidity_metadata = { "offset" : _set_relative_humidity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @relative_humidity.setter
    def relative_humidity(self, value:float) -> None:
        return self._intf.set_property(MODTRANLookupTablePropagationModel._metadata, MODTRANLookupTablePropagationModel._set_relative_humidity_metadata, value)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(MODTRANLookupTablePropagationModel._metadata, MODTRANLookupTablePropagationModel._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(MODTRANLookupTablePropagationModel._metadata, MODTRANLookupTablePropagationModel._set_surface_temperature_metadata, value)

    _get_supported_aerosol_models_metadata = { "offset" : _get_supported_aerosol_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_aerosol_models(self) -> list:
        """Get an array of supported aerosol model names."""
        return self._intf.get_property(MODTRANLookupTablePropagationModel._metadata, MODTRANLookupTablePropagationModel._get_supported_aerosol_models_metadata)

    _set_aerosol_model_type_by_name_metadata = { "offset" : _set_aerosol_model_type_by_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_aerosol_model_type_by_name(self, name:str) -> None:
        """Set the aerosol model type by name."""
        return self._intf.invoke(MODTRANLookupTablePropagationModel._metadata, MODTRANLookupTablePropagationModel._set_aerosol_model_type_by_name_metadata, name)

    _property_names[aerosol_model_type] = "aerosol_model_type"
    _property_names[visibility] = "visibility"
    _property_names[relative_humidity] = "relative_humidity"
    _property_names[surface_temperature] = "surface_temperature"
    _property_names[supported_aerosol_models] = "supported_aerosol_models"

    def __init__(self, source_object=None):
        """Construct an object of type MODTRANLookupTablePropagationModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MODTRANLookupTablePropagationModel)
        ILaserAtmosphericLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILaserAtmosphericLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MODTRANLookupTablePropagationModel, [MODTRANLookupTablePropagationModel, ILaserAtmosphericLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5567323933223623179, 3113323672517597357), MODTRANLookupTablePropagationModel)
agcls.AgTypeNameMap["MODTRANLookupTablePropagationModel"] = MODTRANLookupTablePropagationModel

class MODTRANPropagationModel(ILaserAtmosphericLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods of the MODTRAN propagation model."""

    _num_methods = 24
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_aerosol_models_method_offset = 1
    _get_aerosol_model_type_method_offset = 2
    _set_aerosol_model_type_method_offset = 3
    _set_aerosol_model_type_by_name_method_offset = 4
    _get_visibility_method_offset = 5
    _set_visibility_method_offset = 6
    _get_relative_humidity_method_offset = 7
    _set_relative_humidity_method_offset = 8
    _get_surface_temperature_method_offset = 9
    _set_surface_temperature_method_offset = 10
    _get_cloud_model_type_method_offset = 11
    _set_cloud_model_type_method_offset = 12
    _get_override_cloud_thickness_method_offset = 13
    _set_override_cloud_thickness_method_offset = 14
    _get_cloud_thickness_method_offset = 15
    _set_cloud_thickness_method_offset = 16
    _get_override_cloud_altitude_method_offset = 17
    _set_override_cloud_altitude_method_offset = 18
    _get_cloud_altitude_method_offset = 19
    _set_cloud_altitude_method_offset = 20
    _get_write_start_time_method_offset = 21
    _set_write_start_time_method_offset = 22
    _get_number_of_time_steps_to_write_method_offset = 23
    _set_number_of_time_steps_to_write_method_offset = 24
    _metadata = {
        "iid_data" : (4928181358593515925, 3416473217698227368),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MODTRANPropagationModel)

    _get_supported_aerosol_models_metadata = { "offset" : _get_supported_aerosol_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_aerosol_models(self) -> list:
        """Get an array of supported aerosol model names."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_supported_aerosol_models_metadata)

    _get_aerosol_model_type_metadata = { "offset" : _get_aerosol_model_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ModtranAerosolModelType),) }
    @property
    def aerosol_model_type(self) -> "ModtranAerosolModelType":
        """Get or set the aerosol model type."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_aerosol_model_type_metadata)

    _set_aerosol_model_type_metadata = { "offset" : _set_aerosol_model_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ModtranAerosolModelType),) }
    @aerosol_model_type.setter
    def aerosol_model_type(self, value:"ModtranAerosolModelType") -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_aerosol_model_type_metadata, value)

    _set_aerosol_model_type_by_name_metadata = { "offset" : _set_aerosol_model_type_by_name_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_aerosol_model_type_by_name(self, name:str) -> None:
        """Set the aerosol model type by name."""
        return self._intf.invoke(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_aerosol_model_type_by_name_metadata, name)

    _get_visibility_metadata = { "offset" : _get_visibility_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def visibility(self) -> float:
        """Get or set the visibility."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_visibility_metadata)

    _set_visibility_metadata = { "offset" : _set_visibility_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @visibility.setter
    def visibility(self, value:float) -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_visibility_metadata, value)

    _get_relative_humidity_metadata = { "offset" : _get_relative_humidity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def relative_humidity(self) -> float:
        """Get or set the relative humidity."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_relative_humidity_metadata)

    _set_relative_humidity_metadata = { "offset" : _set_relative_humidity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @relative_humidity.setter
    def relative_humidity(self, value:float) -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_relative_humidity_metadata, value)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_surface_temperature_metadata, value)

    _get_cloud_model_type_metadata = { "offset" : _get_cloud_model_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ModtranCloudModelType),) }
    @property
    def cloud_model_type(self) -> "ModtranCloudModelType":
        """Get or set the cloud model type."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_cloud_model_type_metadata)

    _set_cloud_model_type_metadata = { "offset" : _set_cloud_model_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ModtranCloudModelType),) }
    @cloud_model_type.setter
    def cloud_model_type(self, value:"ModtranCloudModelType") -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_cloud_model_type_metadata, value)

    _get_override_cloud_thickness_metadata = { "offset" : _get_override_cloud_thickness_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_cloud_thickness(self) -> bool:
        """Get or set the option for overriding the cloud thickness."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_override_cloud_thickness_metadata)

    _set_override_cloud_thickness_metadata = { "offset" : _set_override_cloud_thickness_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_cloud_thickness.setter
    def override_cloud_thickness(self, value:bool) -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_override_cloud_thickness_metadata, value)

    _get_cloud_thickness_metadata = { "offset" : _get_cloud_thickness_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cloud_thickness(self) -> float:
        """Get or set the cloud thickness value."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_cloud_thickness_metadata)

    _set_cloud_thickness_metadata = { "offset" : _set_cloud_thickness_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cloud_thickness.setter
    def cloud_thickness(self, value:float) -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_cloud_thickness_metadata, value)

    _get_override_cloud_altitude_metadata = { "offset" : _get_override_cloud_altitude_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_cloud_altitude(self) -> bool:
        """Get or set the option for overriding the cloud altitude."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_override_cloud_altitude_metadata)

    _set_override_cloud_altitude_metadata = { "offset" : _set_override_cloud_altitude_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_cloud_altitude.setter
    def override_cloud_altitude(self, value:bool) -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_override_cloud_altitude_metadata, value)

    _get_cloud_altitude_metadata = { "offset" : _get_cloud_altitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cloud_altitude(self) -> float:
        """Get or set the cloud altitude value."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_cloud_altitude_metadata)

    _set_cloud_altitude_metadata = { "offset" : _set_cloud_altitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cloud_altitude.setter
    def cloud_altitude(self, value:float) -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_cloud_altitude_metadata, value)

    _get_write_start_time_metadata = { "offset" : _get_write_start_time_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def write_start_time(self) -> float:
        """Get or set the time to start writing MODTRAN output files."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_write_start_time_metadata)

    _set_write_start_time_metadata = { "offset" : _set_write_start_time_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @write_start_time.setter
    def write_start_time(self, value:float) -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_write_start_time_metadata, value)

    _get_number_of_time_steps_to_write_metadata = { "offset" : _get_number_of_time_steps_to_write_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_time_steps_to_write(self) -> int:
        """Get or set the number of time steps to write MODTRAN output files."""
        return self._intf.get_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._get_number_of_time_steps_to_write_metadata)

    _set_number_of_time_steps_to_write_metadata = { "offset" : _set_number_of_time_steps_to_write_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_time_steps_to_write.setter
    def number_of_time_steps_to_write(self, value:int) -> None:
        return self._intf.set_property(MODTRANPropagationModel._metadata, MODTRANPropagationModel._set_number_of_time_steps_to_write_metadata, value)

    _property_names[supported_aerosol_models] = "supported_aerosol_models"
    _property_names[aerosol_model_type] = "aerosol_model_type"
    _property_names[visibility] = "visibility"
    _property_names[relative_humidity] = "relative_humidity"
    _property_names[surface_temperature] = "surface_temperature"
    _property_names[cloud_model_type] = "cloud_model_type"
    _property_names[override_cloud_thickness] = "override_cloud_thickness"
    _property_names[cloud_thickness] = "cloud_thickness"
    _property_names[override_cloud_altitude] = "override_cloud_altitude"
    _property_names[cloud_altitude] = "cloud_altitude"
    _property_names[write_start_time] = "write_start_time"
    _property_names[number_of_time_steps_to_write] = "number_of_time_steps_to_write"

    def __init__(self, source_object=None):
        """Construct an object of type MODTRANPropagationModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MODTRANPropagationModel)
        ILaserAtmosphericLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILaserAtmosphericLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MODTRANPropagationModel, [MODTRANPropagationModel, ILaserAtmosphericLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4856830700350853084, 11407500548748246970), MODTRANPropagationModel)
agcls.AgTypeNameMap["MODTRANPropagationModel"] = MODTRANPropagationModel

class LaserTroposphericScintillationLossModel(ILaserTroposphericScintillationLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining an laser tropospheric scintillation loss model."""
    def __init__(self, source_object=None):
        """Construct an object of type LaserTroposphericScintillationLossModel."""
        SupportsDeleteCallback.__init__(self)
        ILaserTroposphericScintillationLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILaserTroposphericScintillationLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaserTroposphericScintillationLossModel, [ILaserTroposphericScintillationLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4910437001807751750, 15223147227521599380), LaserTroposphericScintillationLossModel)
agcls.AgTypeNameMap["LaserTroposphericScintillationLossModel"] = LaserTroposphericScintillationLossModel

class AtmosphericTurbulenceModel(IAtmosphericTurbulenceModel, SupportsDeleteCallback):
    """Class defining a atmospheric turbulence model."""
    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericTurbulenceModel."""
        SupportsDeleteCallback.__init__(self)
        IAtmosphericTurbulenceModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericTurbulenceModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericTurbulenceModel, [IAtmosphericTurbulenceModel])

agcls.AgClassCatalog.add_catalog_entry((4708087831159897385, 16726368094267780008), AtmosphericTurbulenceModel)
agcls.AgTypeNameMap["AtmosphericTurbulenceModel"] = AtmosphericTurbulenceModel

class AtmosphericTurbulenceModelConstant(IAtmosphericTurbulenceModel, SupportsDeleteCallback):
    """Provide access to a constant atmospheric turbulence model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_constant_refractive_index_structure_parameter_method_offset = 1
    _set_constant_refractive_index_structure_parameter_method_offset = 2
    _metadata = {
        "iid_data" : (5089439957339525089, 3384195985893157043),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AtmosphericTurbulenceModelConstant)

    _get_constant_refractive_index_structure_parameter_metadata = { "offset" : _get_constant_refractive_index_structure_parameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def constant_refractive_index_structure_parameter(self) -> float:
        """Get or set the constant refractive index structure parameter value."""
        return self._intf.get_property(AtmosphericTurbulenceModelConstant._metadata, AtmosphericTurbulenceModelConstant._get_constant_refractive_index_structure_parameter_metadata)

    _set_constant_refractive_index_structure_parameter_metadata = { "offset" : _set_constant_refractive_index_structure_parameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @constant_refractive_index_structure_parameter.setter
    def constant_refractive_index_structure_parameter(self, value:float) -> None:
        return self._intf.set_property(AtmosphericTurbulenceModelConstant._metadata, AtmosphericTurbulenceModelConstant._set_constant_refractive_index_structure_parameter_metadata, value)

    _property_names[constant_refractive_index_structure_parameter] = "constant_refractive_index_structure_parameter"

    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericTurbulenceModelConstant."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AtmosphericTurbulenceModelConstant)
        IAtmosphericTurbulenceModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericTurbulenceModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericTurbulenceModelConstant, [AtmosphericTurbulenceModelConstant, IAtmosphericTurbulenceModel])

agcls.AgClassCatalog.add_catalog_entry((5376090813289581184, 10225970873999095469), AtmosphericTurbulenceModelConstant)
agcls.AgTypeNameMap["AtmosphericTurbulenceModelConstant"] = AtmosphericTurbulenceModelConstant

class AtmosphericTurbulenceModelHufnagelValley(IAtmosphericTurbulenceModel, SupportsDeleteCallback):
    """Provide access to a Hufnagel Valley atmospheric turbulence model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_nominal_ground_refractive_index_structure_parameter_method_offset = 1
    _set_nominal_ground_refractive_index_structure_parameter_method_offset = 2
    _get_wind_speed_method_offset = 3
    _set_wind_speed_method_offset = 4
    _metadata = {
        "iid_data" : (5559342205485129166, 578920908623233665),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AtmosphericTurbulenceModelHufnagelValley)

    _get_nominal_ground_refractive_index_structure_parameter_metadata = { "offset" : _get_nominal_ground_refractive_index_structure_parameter_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def nominal_ground_refractive_index_structure_parameter(self) -> float:
        """Get or set the refractive index structure parameter value."""
        return self._intf.get_property(AtmosphericTurbulenceModelHufnagelValley._metadata, AtmosphericTurbulenceModelHufnagelValley._get_nominal_ground_refractive_index_structure_parameter_metadata)

    _set_nominal_ground_refractive_index_structure_parameter_metadata = { "offset" : _set_nominal_ground_refractive_index_structure_parameter_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @nominal_ground_refractive_index_structure_parameter.setter
    def nominal_ground_refractive_index_structure_parameter(self, value:float) -> None:
        return self._intf.set_property(AtmosphericTurbulenceModelHufnagelValley._metadata, AtmosphericTurbulenceModelHufnagelValley._set_nominal_ground_refractive_index_structure_parameter_metadata, value)

    _get_wind_speed_metadata = { "offset" : _get_wind_speed_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def wind_speed(self) -> float:
        """Get or set the wind speed value."""
        return self._intf.get_property(AtmosphericTurbulenceModelHufnagelValley._metadata, AtmosphericTurbulenceModelHufnagelValley._get_wind_speed_metadata)

    _set_wind_speed_metadata = { "offset" : _set_wind_speed_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @wind_speed.setter
    def wind_speed(self, value:float) -> None:
        return self._intf.set_property(AtmosphericTurbulenceModelHufnagelValley._metadata, AtmosphericTurbulenceModelHufnagelValley._set_wind_speed_metadata, value)

    _property_names[nominal_ground_refractive_index_structure_parameter] = "nominal_ground_refractive_index_structure_parameter"
    _property_names[wind_speed] = "wind_speed"

    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericTurbulenceModelHufnagelValley."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AtmosphericTurbulenceModelHufnagelValley)
        IAtmosphericTurbulenceModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericTurbulenceModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericTurbulenceModelHufnagelValley, [AtmosphericTurbulenceModelHufnagelValley, IAtmosphericTurbulenceModel])

agcls.AgClassCatalog.add_catalog_entry((5016136030077287382, 16060595095751706539), AtmosphericTurbulenceModelHufnagelValley)
agcls.AgTypeNameMap["AtmosphericTurbulenceModelHufnagelValley"] = AtmosphericTurbulenceModelHufnagelValley

class LaserTroposphericScintillationLossModelITURP1814(ILaserTroposphericScintillationLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods an ITU-R P.1814 laser tropospheric scintillation propagation loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _set_atmospheric_turbulence_model_type_method_offset = 1
    _get_atmospheric_turbulence_model_method_offset = 2
    _metadata = {
        "iid_data" : (4664961298260097455, 425591758792394938),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaserTroposphericScintillationLossModelITURP1814)

    _set_atmospheric_turbulence_model_type_metadata = { "offset" : _set_atmospheric_turbulence_model_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AtmosphericTurbulenceModelType),) }
    def set_atmospheric_turbulence_model_type(self, value:"AtmosphericTurbulenceModelType") -> None:
        """Set the atmospheric turbulence model type."""
        return self._intf.invoke(LaserTroposphericScintillationLossModelITURP1814._metadata, LaserTroposphericScintillationLossModelITURP1814._set_atmospheric_turbulence_model_type_metadata, value)

    _get_atmospheric_turbulence_model_metadata = { "offset" : _get_atmospheric_turbulence_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmospheric_turbulence_model(self) -> "IAtmosphericTurbulenceModel":
        """Get the atmospheric turbulence model."""
        return self._intf.get_property(LaserTroposphericScintillationLossModelITURP1814._metadata, LaserTroposphericScintillationLossModelITURP1814._get_atmospheric_turbulence_model_metadata)

    _property_names[atmospheric_turbulence_model] = "atmospheric_turbulence_model"

    def __init__(self, source_object=None):
        """Construct an object of type LaserTroposphericScintillationLossModelITURP1814."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaserTroposphericScintillationLossModelITURP1814)
        ILaserTroposphericScintillationLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ILaserTroposphericScintillationLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaserTroposphericScintillationLossModelITURP1814, [LaserTroposphericScintillationLossModelITURP1814, ILaserTroposphericScintillationLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4925251130805180948, 8770199815253311922), LaserTroposphericScintillationLossModelITURP1814)
agcls.AgTypeNameMap["LaserTroposphericScintillationLossModelITURP1814"] = LaserTroposphericScintillationLossModelITURP1814

class AtmosphericAbsorptionModel(IAtmosphericAbsorptionModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining an atmospheric absorption model."""
    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericAbsorptionModel."""
        SupportsDeleteCallback.__init__(self)
        IAtmosphericAbsorptionModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericAbsorptionModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericAbsorptionModel, [IAtmosphericAbsorptionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5632847238580763273, 13306142073779176323), AtmosphericAbsorptionModel)
agcls.AgTypeNameMap["AtmosphericAbsorptionModel"] = AtmosphericAbsorptionModel

class AtmosphericAbsorptionModelITURP676Version9(IAtmosphericAbsorptionModelITURP676, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining an atmospheric absorption model."""
    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericAbsorptionModelITURP676Version9."""
        SupportsDeleteCallback.__init__(self)
        IAtmosphericAbsorptionModelITURP676.__init__(self, source_object)
        IAtmosphericAbsorptionModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericAbsorptionModelITURP676._private_init(self, intf)
        IAtmosphericAbsorptionModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericAbsorptionModelITURP676Version9, [IAtmosphericAbsorptionModelITURP676, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5673846839301077155, 16736472837630539914), AtmosphericAbsorptionModelITURP676Version9)
agcls.AgTypeNameMap["AtmosphericAbsorptionModelITURP676Version9"] = AtmosphericAbsorptionModelITURP676Version9

class AtmosphericAbsorptionModelITURP676Version13(IAtmosphericAbsorptionModelITURP676, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining an atmospheric absorption model."""
    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericAbsorptionModelITURP676Version13."""
        SupportsDeleteCallback.__init__(self)
        IAtmosphericAbsorptionModelITURP676.__init__(self, source_object)
        IAtmosphericAbsorptionModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericAbsorptionModelITURP676._private_init(self, intf)
        IAtmosphericAbsorptionModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericAbsorptionModelITURP676Version13, [IAtmosphericAbsorptionModelITURP676, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5630036042037948631, 9807899299651001781), AtmosphericAbsorptionModelITURP676Version13)
agcls.AgTypeNameMap["AtmosphericAbsorptionModelITURP676Version13"] = AtmosphericAbsorptionModelITURP676Version13

class AtmosphericAbsorptionModelGraphics3DACAP(IAtmosphericAbsorptionModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods of the VOACAP atmospheric absorption model."""

    _num_methods = 15
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sunspot_number_method_offset = 1
    _set_sunspot_number_method_offset = 2
    _get_multipath_power_tolerance_method_offset = 3
    _set_multipath_power_tolerance_method_offset = 4
    _get_multipath_delay_tolerance_method_offset = 5
    _set_multipath_delay_tolerance_method_offset = 6
    _get_compute_alternate_frequencies_method_offset = 7
    _set_compute_alternate_frequencies_method_offset = 8
    _get_coefficient_data_type_method_offset = 9
    _set_coefficient_data_type_method_offset = 10
    _get_use_day_of_month_average_method_offset = 11
    _set_use_day_of_month_average_method_offset = 12
    _get_solar_activity_configuration_type_method_offset = 13
    _set_solar_activity_configuration_type_method_offset = 14
    _get_solar_activity_configuration_method_offset = 15
    _metadata = {
        "iid_data" : (5381741029489583424, 13989589519180752276),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AtmosphericAbsorptionModelGraphics3DACAP)

    _get_sunspot_number_metadata = { "offset" : _get_sunspot_number_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def sunspot_number(self) -> int:
        """Do not use this property, as it is deprecated. The Sunspot Number Solar Activity Configuration should be used instead."""
        return self._intf.get_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._get_sunspot_number_metadata)

    _set_sunspot_number_metadata = { "offset" : _set_sunspot_number_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @sunspot_number.setter
    def sunspot_number(self, value:int) -> None:
        """Do not use this property, as it is deprecated. The Sunspot Number Solar Activity Configuration should be used instead."""
        return self._intf.set_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._set_sunspot_number_metadata, value)

    _get_multipath_power_tolerance_metadata = { "offset" : _get_multipath_power_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def multipath_power_tolerance(self) -> float:
        """Get or set the multipath power tolerance."""
        return self._intf.get_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._get_multipath_power_tolerance_metadata)

    _set_multipath_power_tolerance_metadata = { "offset" : _set_multipath_power_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @multipath_power_tolerance.setter
    def multipath_power_tolerance(self, value:float) -> None:
        return self._intf.set_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._set_multipath_power_tolerance_metadata, value)

    _get_multipath_delay_tolerance_metadata = { "offset" : _get_multipath_delay_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def multipath_delay_tolerance(self) -> float:
        """Get or set the multipath delay tolerance."""
        return self._intf.get_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._get_multipath_delay_tolerance_metadata)

    _set_multipath_delay_tolerance_metadata = { "offset" : _set_multipath_delay_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @multipath_delay_tolerance.setter
    def multipath_delay_tolerance(self, value:float) -> None:
        return self._intf.set_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._set_multipath_delay_tolerance_metadata, value)

    _get_compute_alternate_frequencies_metadata = { "offset" : _get_compute_alternate_frequencies_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_alternate_frequencies(self) -> bool:
        """Get or set the indicator to compute alternate frequencies."""
        return self._intf.get_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._get_compute_alternate_frequencies_metadata)

    _set_compute_alternate_frequencies_metadata = { "offset" : _set_compute_alternate_frequencies_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_alternate_frequencies.setter
    def compute_alternate_frequencies(self, value:bool) -> None:
        return self._intf.set_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._set_compute_alternate_frequencies_metadata, value)

    _get_coefficient_data_type_metadata = { "offset" : _get_coefficient_data_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DACAPCoefficientDataType),) }
    @property
    def coefficient_data_type(self) -> "Graphics3DACAPCoefficientDataType":
        """Get or set the coefficient data type."""
        return self._intf.get_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._get_coefficient_data_type_metadata)

    _set_coefficient_data_type_metadata = { "offset" : _set_coefficient_data_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DACAPCoefficientDataType),) }
    @coefficient_data_type.setter
    def coefficient_data_type(self, value:"Graphics3DACAPCoefficientDataType") -> None:
        return self._intf.set_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._set_coefficient_data_type_metadata, value)

    _get_use_day_of_month_average_metadata = { "offset" : _get_use_day_of_month_average_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_day_of_month_average(self) -> bool:
        """Get or set the indicator to use day of month average."""
        return self._intf.get_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._get_use_day_of_month_average_metadata)

    _set_use_day_of_month_average_metadata = { "offset" : _set_use_day_of_month_average_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_day_of_month_average.setter
    def use_day_of_month_average(self, value:bool) -> None:
        return self._intf.set_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._set_use_day_of_month_average_metadata, value)

    _get_solar_activity_configuration_type_metadata = { "offset" : _get_solar_activity_configuration_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(Graphics3DACAPSolarActivityConfigurationType),) }
    @property
    def solar_activity_configuration_type(self) -> "Graphics3DACAPSolarActivityConfigurationType":
        """Get or set the solar activity configuration enumeration."""
        return self._intf.get_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._get_solar_activity_configuration_type_metadata)

    _set_solar_activity_configuration_type_metadata = { "offset" : _set_solar_activity_configuration_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(Graphics3DACAPSolarActivityConfigurationType),) }
    @solar_activity_configuration_type.setter
    def solar_activity_configuration_type(self, value:"Graphics3DACAPSolarActivityConfigurationType") -> None:
        return self._intf.set_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._set_solar_activity_configuration_type_metadata, value)

    _get_solar_activity_configuration_metadata = { "offset" : _get_solar_activity_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def solar_activity_configuration(self) -> "ISolarActivityConfiguration":
        """Get or set the solar activity configuration."""
        return self._intf.get_property(AtmosphericAbsorptionModelGraphics3DACAP._metadata, AtmosphericAbsorptionModelGraphics3DACAP._get_solar_activity_configuration_metadata)

    _property_names[sunspot_number] = "sunspot_number"
    _property_names[multipath_power_tolerance] = "multipath_power_tolerance"
    _property_names[multipath_delay_tolerance] = "multipath_delay_tolerance"
    _property_names[compute_alternate_frequencies] = "compute_alternate_frequencies"
    _property_names[coefficient_data_type] = "coefficient_data_type"
    _property_names[use_day_of_month_average] = "use_day_of_month_average"
    _property_names[solar_activity_configuration_type] = "solar_activity_configuration_type"
    _property_names[solar_activity_configuration] = "solar_activity_configuration"

    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericAbsorptionModelGraphics3DACAP."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AtmosphericAbsorptionModelGraphics3DACAP)
        IAtmosphericAbsorptionModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericAbsorptionModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericAbsorptionModelGraphics3DACAP, [AtmosphericAbsorptionModelGraphics3DACAP, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5644398411193111003, 15949825227761971106), AtmosphericAbsorptionModelGraphics3DACAP)
agcls.AgTypeNameMap["AtmosphericAbsorptionModelGraphics3DACAP"] = AtmosphericAbsorptionModelGraphics3DACAP

class AtmosphericAbsorptionModelTIREM320(IAtmosphericAbsorptionModelTIREM, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining an atmospheric absorption model."""
    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericAbsorptionModelTIREM320."""
        SupportsDeleteCallback.__init__(self)
        IAtmosphericAbsorptionModelTIREM.__init__(self, source_object)
        IAtmosphericAbsorptionModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericAbsorptionModelTIREM._private_init(self, intf)
        IAtmosphericAbsorptionModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericAbsorptionModelTIREM320, [IAtmosphericAbsorptionModelTIREM, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4631424298954845800, 17016480775871646906), AtmosphericAbsorptionModelTIREM320)
agcls.AgTypeNameMap["AtmosphericAbsorptionModelTIREM320"] = AtmosphericAbsorptionModelTIREM320

class AtmosphericAbsorptionModelTIREM331(IAtmosphericAbsorptionModelTIREM, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining an atmospheric absorption model."""
    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericAbsorptionModelTIREM331."""
        SupportsDeleteCallback.__init__(self)
        IAtmosphericAbsorptionModelTIREM.__init__(self, source_object)
        IAtmosphericAbsorptionModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericAbsorptionModelTIREM._private_init(self, intf)
        IAtmosphericAbsorptionModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericAbsorptionModelTIREM331, [IAtmosphericAbsorptionModelTIREM, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5356710457478015373, 3627658830670442165), AtmosphericAbsorptionModelTIREM331)
agcls.AgTypeNameMap["AtmosphericAbsorptionModelTIREM331"] = AtmosphericAbsorptionModelTIREM331

class AtmosphericAbsorptionModelTIREM550(IAtmosphericAbsorptionModelTIREM, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining an atmospheric absorption model."""
    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericAbsorptionModelTIREM550."""
        SupportsDeleteCallback.__init__(self)
        IAtmosphericAbsorptionModelTIREM.__init__(self, source_object)
        IAtmosphericAbsorptionModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericAbsorptionModelTIREM._private_init(self, intf)
        IAtmosphericAbsorptionModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericAbsorptionModelTIREM550, [IAtmosphericAbsorptionModelTIREM, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4850288612490410423, 1426340609434323347), AtmosphericAbsorptionModelTIREM550)
agcls.AgTypeNameMap["AtmosphericAbsorptionModelTIREM550"] = AtmosphericAbsorptionModelTIREM550

class AtmosphericAbsorptionModelSimpleSatcom(IAtmosphericAbsorptionModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods of the Simple Satcom atmospheric absorption model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_surface_temperature_method_offset = 1
    _set_surface_temperature_method_offset = 2
    _get_water_vapor_concentration_method_offset = 3
    _set_water_vapor_concentration_method_offset = 4
    _metadata = {
        "iid_data" : (4833269896877989376, 1396069701207299515),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AtmosphericAbsorptionModelSimpleSatcom)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(AtmosphericAbsorptionModelSimpleSatcom._metadata, AtmosphericAbsorptionModelSimpleSatcom._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(AtmosphericAbsorptionModelSimpleSatcom._metadata, AtmosphericAbsorptionModelSimpleSatcom._set_surface_temperature_metadata, value)

    _get_water_vapor_concentration_metadata = { "offset" : _get_water_vapor_concentration_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def water_vapor_concentration(self) -> float:
        """Get or set the water vapor concentration."""
        return self._intf.get_property(AtmosphericAbsorptionModelSimpleSatcom._metadata, AtmosphericAbsorptionModelSimpleSatcom._get_water_vapor_concentration_metadata)

    _set_water_vapor_concentration_metadata = { "offset" : _set_water_vapor_concentration_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @water_vapor_concentration.setter
    def water_vapor_concentration(self, value:float) -> None:
        return self._intf.set_property(AtmosphericAbsorptionModelSimpleSatcom._metadata, AtmosphericAbsorptionModelSimpleSatcom._set_water_vapor_concentration_metadata, value)

    _property_names[surface_temperature] = "surface_temperature"
    _property_names[water_vapor_concentration] = "water_vapor_concentration"

    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericAbsorptionModelSimpleSatcom."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AtmosphericAbsorptionModelSimpleSatcom)
        IAtmosphericAbsorptionModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericAbsorptionModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericAbsorptionModelSimpleSatcom, [AtmosphericAbsorptionModelSimpleSatcom, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5432040930967619670, 12036159704691930261), AtmosphericAbsorptionModelSimpleSatcom)
agcls.AgTypeNameMap["AtmosphericAbsorptionModelSimpleSatcom"] = AtmosphericAbsorptionModelSimpleSatcom

class AtmosphericAbsorptionModelScriptPlugin(IAtmosphericAbsorptionModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods of the script plugin atmospheric absorption model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (4827678480664885975, 16358761952993165503),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AtmosphericAbsorptionModelScriptPlugin)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the script filename."""
        return self._intf.get_property(AtmosphericAbsorptionModelScriptPlugin._metadata, AtmosphericAbsorptionModelScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AtmosphericAbsorptionModelScriptPlugin._metadata, AtmosphericAbsorptionModelScriptPlugin._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericAbsorptionModelScriptPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AtmosphericAbsorptionModelScriptPlugin)
        IAtmosphericAbsorptionModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericAbsorptionModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericAbsorptionModelScriptPlugin, [AtmosphericAbsorptionModelScriptPlugin, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4709399162802643731, 3760061463599562386), AtmosphericAbsorptionModelScriptPlugin)
agcls.AgTypeNameMap["AtmosphericAbsorptionModelScriptPlugin"] = AtmosphericAbsorptionModelScriptPlugin

class AtmosphericAbsorptionModelCOMPlugin(IAtmosphericAbsorptionModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods of the COM plugin atmospheric absorption model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_plugin_configuration_method_offset = 1
    _get_raw_plugin_object_method_offset = 2
    _metadata = {
        "iid_data" : (5028094713510024806, 5638744710124044969),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AtmosphericAbsorptionModelCOMPlugin)

    _get_plugin_configuration_metadata = { "offset" : _get_plugin_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_configuration(self) -> "CommRadPluginConfiguration":
        """Get the plugin configuration interface."""
        return self._intf.get_property(AtmosphericAbsorptionModelCOMPlugin._metadata, AtmosphericAbsorptionModelCOMPlugin._get_plugin_configuration_metadata)

    _get_raw_plugin_object_metadata = { "offset" : _get_raw_plugin_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def raw_plugin_object(self) -> typing.Any:
        """Get the raw plugin IUnknown interface."""
        return self._intf.get_property(AtmosphericAbsorptionModelCOMPlugin._metadata, AtmosphericAbsorptionModelCOMPlugin._get_raw_plugin_object_metadata)

    _property_names[plugin_configuration] = "plugin_configuration"
    _property_names[raw_plugin_object] = "raw_plugin_object"

    def __init__(self, source_object=None):
        """Construct an object of type AtmosphericAbsorptionModelCOMPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AtmosphericAbsorptionModelCOMPlugin)
        IAtmosphericAbsorptionModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAtmosphericAbsorptionModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AtmosphericAbsorptionModelCOMPlugin, [AtmosphericAbsorptionModelCOMPlugin, IAtmosphericAbsorptionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5649778652509340129, 16523343196515225512), AtmosphericAbsorptionModelCOMPlugin)
agcls.AgTypeNameMap["AtmosphericAbsorptionModelCOMPlugin"] = AtmosphericAbsorptionModelCOMPlugin

class ScatteringPointModel(IScatteringPointModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a scattering point model."""
    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointModel."""
        SupportsDeleteCallback.__init__(self)
        IScatteringPointModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IScatteringPointModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointModel, [IScatteringPointModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4820983590475193357, 13431156287369246855), ScatteringPointModel)
agcls.AgTypeNameMap["ScatteringPointModel"] = ScatteringPointModel

class ScatteringPointModelPlugin(IScatteringPointModel, IComponentInfo, ICloneable, IRadarClutterMapModelPlugin, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a plugin scattering point model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_plugin_configuration_method_offset = 1
    _get_raw_plugin_object_method_offset = 2
    _metadata = {
        "iid_data" : (5327143550945188317, 3545236599358759337),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointModelPlugin)

    _get_plugin_configuration_metadata = { "offset" : _get_plugin_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_configuration(self) -> "CommRadPluginConfiguration":
        """Get the plugin configuration interface."""
        return self._intf.get_property(ScatteringPointModelPlugin._metadata, ScatteringPointModelPlugin._get_plugin_configuration_metadata)

    _get_raw_plugin_object_metadata = { "offset" : _get_raw_plugin_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def raw_plugin_object(self) -> typing.Any:
        """Get the raw plugin IUnknown interface."""
        return self._intf.get_property(ScatteringPointModelPlugin._metadata, ScatteringPointModelPlugin._get_raw_plugin_object_metadata)

    _property_names[plugin_configuration] = "plugin_configuration"
    _property_names[raw_plugin_object] = "raw_plugin_object"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointModelPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointModelPlugin)
        IScatteringPointModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
        IRadarClutterMapModelPlugin.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IScatteringPointModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
        IRadarClutterMapModelPlugin._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointModelPlugin, [ScatteringPointModelPlugin, IScatteringPointModel, IComponentInfo, ICloneable, IRadarClutterMapModelPlugin])

agcls.AgClassCatalog.add_catalog_entry((4789979576428952000, 10883625256432638137), ScatteringPointModelPlugin)
agcls.AgTypeNameMap["ScatteringPointModelPlugin"] = ScatteringPointModelPlugin

class ScatteringPointModelConstantCoefficient(IScatteringPointModel, IComponentInfo, ICloneable, IRadarClutterMapModelConstantCoefficient, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a constant coefficient scattering point model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_constant_coefficient_method_offset = 1
    _set_constant_coefficient_method_offset = 2
    _metadata = {
        "iid_data" : (5197339561469880807, 1308971867152650410),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointModelConstantCoefficient)

    _get_constant_coefficient_metadata = { "offset" : _get_constant_coefficient_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def constant_coefficient(self) -> float:
        """Get the constant coefficient value."""
        return self._intf.get_property(ScatteringPointModelConstantCoefficient._metadata, ScatteringPointModelConstantCoefficient._get_constant_coefficient_metadata)

    _set_constant_coefficient_metadata = { "offset" : _set_constant_coefficient_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @constant_coefficient.setter
    def constant_coefficient(self, value:float) -> None:
        return self._intf.set_property(ScatteringPointModelConstantCoefficient._metadata, ScatteringPointModelConstantCoefficient._set_constant_coefficient_metadata, value)

    _property_names[constant_coefficient] = "constant_coefficient"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointModelConstantCoefficient."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointModelConstantCoefficient)
        IScatteringPointModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
        IRadarClutterMapModelConstantCoefficient.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IScatteringPointModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
        IRadarClutterMapModelConstantCoefficient._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointModelConstantCoefficient, [ScatteringPointModelConstantCoefficient, IScatteringPointModel, IComponentInfo, ICloneable, IRadarClutterMapModelConstantCoefficient])

agcls.AgClassCatalog.add_catalog_entry((5148214614973456548, 2576407895535161016), ScatteringPointModelConstantCoefficient)
agcls.AgTypeNameMap["ScatteringPointModelConstantCoefficient"] = ScatteringPointModelConstantCoefficient

class ScatteringPointModelWindTurbine(IScatteringPointModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a wind turbine scattering point model."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_blade_length_method_offset = 1
    _set_blade_length_method_offset = 2
    _get_blade_rotation_method_offset = 3
    _set_blade_rotation_method_offset = 4
    _get_wind_direction_method_offset = 5
    _set_wind_direction_method_offset = 6
    _get_blade_scattering_cross_section_method_offset = 7
    _set_blade_scattering_cross_section_method_offset = 8
    _get_structure_scattering_cross_section_method_offset = 9
    _set_structure_scattering_cross_section_method_offset = 10
    _metadata = {
        "iid_data" : (4805779447570231397, 2959093596048961461),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ScatteringPointModelWindTurbine)

    _get_blade_length_metadata = { "offset" : _get_blade_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def blade_length(self) -> float:
        """Get the turbine blade length."""
        return self._intf.get_property(ScatteringPointModelWindTurbine._metadata, ScatteringPointModelWindTurbine._get_blade_length_metadata)

    _set_blade_length_metadata = { "offset" : _set_blade_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @blade_length.setter
    def blade_length(self, value:float) -> None:
        return self._intf.set_property(ScatteringPointModelWindTurbine._metadata, ScatteringPointModelWindTurbine._set_blade_length_metadata, value)

    _get_blade_rotation_metadata = { "offset" : _get_blade_rotation_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def blade_rotation(self) -> float:
        """Get the turbine blade rotation."""
        return self._intf.get_property(ScatteringPointModelWindTurbine._metadata, ScatteringPointModelWindTurbine._get_blade_rotation_metadata)

    _set_blade_rotation_metadata = { "offset" : _set_blade_rotation_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @blade_rotation.setter
    def blade_rotation(self, value:float) -> None:
        return self._intf.set_property(ScatteringPointModelWindTurbine._metadata, ScatteringPointModelWindTurbine._set_blade_rotation_metadata, value)

    _get_wind_direction_metadata = { "offset" : _get_wind_direction_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def wind_direction(self) -> float:
        """Get the wind direction."""
        return self._intf.get_property(ScatteringPointModelWindTurbine._metadata, ScatteringPointModelWindTurbine._get_wind_direction_metadata)

    _set_wind_direction_metadata = { "offset" : _set_wind_direction_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @wind_direction.setter
    def wind_direction(self, value:float) -> None:
        return self._intf.set_property(ScatteringPointModelWindTurbine._metadata, ScatteringPointModelWindTurbine._set_wind_direction_metadata, value)

    _get_blade_scattering_cross_section_metadata = { "offset" : _get_blade_scattering_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def blade_scattering_cross_section(self) -> float:
        """Get the turbine blade scattering cross section."""
        return self._intf.get_property(ScatteringPointModelWindTurbine._metadata, ScatteringPointModelWindTurbine._get_blade_scattering_cross_section_metadata)

    _set_blade_scattering_cross_section_metadata = { "offset" : _set_blade_scattering_cross_section_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @blade_scattering_cross_section.setter
    def blade_scattering_cross_section(self, value:float) -> None:
        return self._intf.set_property(ScatteringPointModelWindTurbine._metadata, ScatteringPointModelWindTurbine._set_blade_scattering_cross_section_metadata, value)

    _get_structure_scattering_cross_section_metadata = { "offset" : _get_structure_scattering_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def structure_scattering_cross_section(self) -> float:
        """Get the turbine structure scattering cross section."""
        return self._intf.get_property(ScatteringPointModelWindTurbine._metadata, ScatteringPointModelWindTurbine._get_structure_scattering_cross_section_metadata)

    _set_structure_scattering_cross_section_metadata = { "offset" : _set_structure_scattering_cross_section_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @structure_scattering_cross_section.setter
    def structure_scattering_cross_section(self, value:float) -> None:
        return self._intf.set_property(ScatteringPointModelWindTurbine._metadata, ScatteringPointModelWindTurbine._set_structure_scattering_cross_section_metadata, value)

    _property_names[blade_length] = "blade_length"
    _property_names[blade_rotation] = "blade_rotation"
    _property_names[wind_direction] = "wind_direction"
    _property_names[blade_scattering_cross_section] = "blade_scattering_cross_section"
    _property_names[structure_scattering_cross_section] = "structure_scattering_cross_section"

    def __init__(self, source_object=None):
        """Construct an object of type ScatteringPointModelWindTurbine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ScatteringPointModelWindTurbine)
        IScatteringPointModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IScatteringPointModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ScatteringPointModelWindTurbine, [ScatteringPointModelWindTurbine, IScatteringPointModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4705806339499656155, 17390330975464830100), ScatteringPointModelWindTurbine)
agcls.AgTypeNameMap["ScatteringPointModelWindTurbine"] = ScatteringPointModelWindTurbine

class RadarCrossSection(SupportsDeleteCallback):
    """Provide access to the properties and methods defining radar cross section."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_supported_models_method_offset = 1
    _set_model_method_offset = 2
    _get_model_method_offset = 3
    _get_model_component_linking_method_offset = 4
    _metadata = {
        "iid_data" : (4986149095530593956, 707566951489683072),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSection)

    _get_supported_models_metadata = { "offset" : _get_supported_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_models(self) -> list:
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on RadarCrossSection instead. Gets an array of supported model names."""
        return self._intf.get_property(RadarCrossSection._metadata, RadarCrossSection._get_supported_models_metadata)

    _set_model_metadata = { "offset" : _set_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use ModelComponentLinking on RadarCrossSection instead. Sets the current RCS model by name."""
        return self._intf.invoke(RadarCrossSection._metadata, RadarCrossSection._set_model_metadata, model_name)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "RadarCrossSectionModel":
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on RadarCrossSection instead. Gets the current RCS model."""
        return self._intf.get_property(RadarCrossSection._metadata, RadarCrossSection._get_model_metadata)

    _get_model_component_linking_metadata = { "offset" : _get_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the radar cross section model component."""
        return self._intf.get_property(RadarCrossSection._metadata, RadarCrossSection._get_model_component_linking_metadata)

    _property_names[supported_models] = "supported_models"
    _property_names[model] = "model"
    _property_names[model_component_linking] = "model_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSection, [RadarCrossSection, ])

agcls.AgClassCatalog.add_catalog_entry((5751118330324918820, 18324778179756833675), RadarCrossSection)
agcls.AgTypeNameMap["RadarCrossSection"] = RadarCrossSection

class RadarCrossSectionModel(IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar cross section model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_frequency_bands_method_offset = 2
    _metadata = {
        "iid_data" : (5100015301422994534, 663139725612631957),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionModel)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the radar cross section model name."""
        return self._intf.get_property(RadarCrossSectionModel._metadata, RadarCrossSectionModel._get_name_metadata)

    _get_frequency_bands_metadata = { "offset" : _get_frequency_bands_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def frequency_bands(self) -> "RadarCrossSectionFrequencyBandCollection":
        """Get the RCS frequency band collection."""
        return self._intf.get_property(RadarCrossSectionModel._metadata, RadarCrossSectionModel._get_frequency_bands_metadata)

    _property_names[name] = "name"
    _property_names[frequency_bands] = "frequency_bands"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionModel)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionModel, [RadarCrossSectionModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5609783670234616144, 2790273136649695120), RadarCrossSectionModel)
agcls.AgTypeNameMap["RadarCrossSectionModel"] = RadarCrossSectionModel

class RadarCrossSectionInheritable(SupportsDeleteCallback):
    """Provide access to the properties and methods defining a inheritable radar cross section."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_inherit_method_offset = 1
    _set_inherit_method_offset = 2
    _get_supported_models_method_offset = 3
    _set_model_method_offset = 4
    _get_model_method_offset = 5
    _get_model_component_linking_method_offset = 6
    _metadata = {
        "iid_data" : (4767554070487286746, 15232778532177388959),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionInheritable)

    _get_inherit_metadata = { "offset" : _get_inherit_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def inherit(self) -> bool:
        """Get or set the option to inherit the radar cross section from the scenario object."""
        return self._intf.get_property(RadarCrossSectionInheritable._metadata, RadarCrossSectionInheritable._get_inherit_metadata)

    _set_inherit_metadata = { "offset" : _set_inherit_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @inherit.setter
    def inherit(self, value:bool) -> None:
        return self._intf.set_property(RadarCrossSectionInheritable._metadata, RadarCrossSectionInheritable._set_inherit_metadata, value)

    _get_supported_models_metadata = { "offset" : _get_supported_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_models(self) -> list:
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on RadarCrossSectionInheritable instead. Gets an array of supported model names."""
        return self._intf.get_property(RadarCrossSectionInheritable._metadata, RadarCrossSectionInheritable._get_supported_models_metadata)

    _set_model_metadata = { "offset" : _set_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use ModelComponentLinking on RadarCrossSectionInheritable instead. Sets the current RCS model by name."""
        return self._intf.invoke(RadarCrossSectionInheritable._metadata, RadarCrossSectionInheritable._set_model_metadata, model_name)

    _get_model_metadata = { "offset" : _get_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model(self) -> "RadarCrossSectionModel":
        """Do not use this property, as it is deprecated. Use ModelComponentLinking on RadarCrossSectionInheritable instead. Gets the current RCS model."""
        return self._intf.get_property(RadarCrossSectionInheritable._metadata, RadarCrossSectionInheritable._get_model_metadata)

    _get_model_component_linking_metadata = { "offset" : _get_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the radar cross section model component."""
        return self._intf.get_property(RadarCrossSectionInheritable._metadata, RadarCrossSectionInheritable._get_model_component_linking_metadata)

    _property_names[inherit] = "inherit"
    _property_names[supported_models] = "supported_models"
    _property_names[model] = "model"
    _property_names[model_component_linking] = "model_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionInheritable."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionInheritable)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionInheritable, [RadarCrossSectionInheritable, ])

agcls.AgClassCatalog.add_catalog_entry((5290816335224705872, 13359887565476481678), RadarCrossSectionInheritable)
agcls.AgTypeNameMap["RadarCrossSectionInheritable"] = RadarCrossSectionInheritable

class RadarCrossSectionFrequencyBand(SupportsDeleteCallback):
    """Provide access to the properties and methods defining radar cross section frequency band."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_minimum_frequency_method_offset = 1
    _set_minimum_frequency_method_offset = 2
    _get_maximum_frequency_method_offset = 3
    _get_swerling_case_method_offset = 4
    _set_swerling_case_method_offset = 5
    _get_supported_compute_strategies_method_offset = 6
    _set_compute_strategy_method_offset = 7
    _get_compute_strategy_method_offset = 8
    _metadata = {
        "iid_data" : (5432088725652077263, 14970965070639454125),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionFrequencyBand)

    _get_minimum_frequency_metadata = { "offset" : _get_minimum_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_frequency(self) -> float:
        """Get or set the frequency band minimum frequency."""
        return self._intf.get_property(RadarCrossSectionFrequencyBand._metadata, RadarCrossSectionFrequencyBand._get_minimum_frequency_metadata)

    _set_minimum_frequency_metadata = { "offset" : _set_minimum_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_frequency.setter
    def minimum_frequency(self, value:float) -> None:
        return self._intf.set_property(RadarCrossSectionFrequencyBand._metadata, RadarCrossSectionFrequencyBand._set_minimum_frequency_metadata, value)

    _get_maximum_frequency_metadata = { "offset" : _get_maximum_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_frequency(self) -> float:
        """Get or set the frequency band maximum frequency."""
        return self._intf.get_property(RadarCrossSectionFrequencyBand._metadata, RadarCrossSectionFrequencyBand._get_maximum_frequency_metadata)

    _get_swerling_case_metadata = { "offset" : _get_swerling_case_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(RadarSwerlingCase),) }
    @property
    def swerling_case(self) -> "RadarSwerlingCase":
        """Get or set the band Swerling case."""
        return self._intf.get_property(RadarCrossSectionFrequencyBand._metadata, RadarCrossSectionFrequencyBand._get_swerling_case_metadata)

    _set_swerling_case_metadata = { "offset" : _set_swerling_case_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarSwerlingCase),) }
    @swerling_case.setter
    def swerling_case(self, value:"RadarSwerlingCase") -> None:
        return self._intf.set_property(RadarCrossSectionFrequencyBand._metadata, RadarCrossSectionFrequencyBand._set_swerling_case_metadata, value)

    _get_supported_compute_strategies_metadata = { "offset" : _get_supported_compute_strategies_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_compute_strategies(self) -> list:
        """Get an array of supported compute strategy names."""
        return self._intf.get_property(RadarCrossSectionFrequencyBand._metadata, RadarCrossSectionFrequencyBand._get_supported_compute_strategies_metadata)

    _set_compute_strategy_metadata = { "offset" : _set_compute_strategy_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_compute_strategy(self, compute_strategy_name:str) -> None:
        """Set the current compute strategy by name."""
        return self._intf.invoke(RadarCrossSectionFrequencyBand._metadata, RadarCrossSectionFrequencyBand._set_compute_strategy_metadata, compute_strategy_name)

    _get_compute_strategy_metadata = { "offset" : _get_compute_strategy_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def compute_strategy(self) -> "IRadarCrossSectionComputeStrategy":
        """Get the current compute strategy."""
        return self._intf.get_property(RadarCrossSectionFrequencyBand._metadata, RadarCrossSectionFrequencyBand._get_compute_strategy_metadata)

    _property_names[minimum_frequency] = "minimum_frequency"
    _property_names[maximum_frequency] = "maximum_frequency"
    _property_names[swerling_case] = "swerling_case"
    _property_names[supported_compute_strategies] = "supported_compute_strategies"
    _property_names[compute_strategy] = "compute_strategy"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionFrequencyBand."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionFrequencyBand)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionFrequencyBand, [RadarCrossSectionFrequencyBand, ])

agcls.AgClassCatalog.add_catalog_entry((5611081599835783959, 5187970909869017525), RadarCrossSectionFrequencyBand)
agcls.AgTypeNameMap["RadarCrossSectionFrequencyBand"] = RadarCrossSectionFrequencyBand

class RadarCrossSectionFrequencyBandCollection(SupportsDeleteCallback):
    """Represents a collection of radar cross section frequency bands."""

    _num_methods = 5
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _add_method_offset = 5
    _metadata = {
        "iid_data" : (5166598568327799405, 15275429108610318000),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionFrequencyBandCollection)
    def __iter__(self):
        """Create an iterator for the RadarCrossSectionFrequencyBandCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "RadarCrossSectionFrequencyBand":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(RadarCrossSectionFrequencyBandCollection._metadata, RadarCrossSectionFrequencyBandCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "RadarCrossSectionFrequencyBand":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(RadarCrossSectionFrequencyBandCollection._metadata, RadarCrossSectionFrequencyBandCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(RadarCrossSectionFrequencyBandCollection._metadata, RadarCrossSectionFrequencyBandCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the band with the supplied index."""
        return self._intf.invoke(RadarCrossSectionFrequencyBandCollection._metadata, RadarCrossSectionFrequencyBandCollection._remove_at_metadata, index)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add(self, min_frequency:float, max_frequency:float) -> "RadarCrossSectionFrequencyBand":
        """Add a band with supplied minimum and maximum frequencies."""
        return self._intf.invoke(RadarCrossSectionFrequencyBandCollection._metadata, RadarCrossSectionFrequencyBandCollection._add_metadata, min_frequency, max_frequency, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionFrequencyBandCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionFrequencyBandCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionFrequencyBandCollection, [RadarCrossSectionFrequencyBandCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5184052192908143986, 6050112988231901573), RadarCrossSectionFrequencyBandCollection)
agcls.AgTypeNameMap["RadarCrossSectionFrequencyBandCollection"] = RadarCrossSectionFrequencyBandCollection

class RadarCrossSectionComputeStrategy(IRadarCrossSectionComputeStrategy, SupportsDeleteCallback):
    """Class defining a inheritable radar cross section compute strategy."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionComputeStrategy."""
        SupportsDeleteCallback.__init__(self)
        IRadarCrossSectionComputeStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarCrossSectionComputeStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionComputeStrategy, [IRadarCrossSectionComputeStrategy])

agcls.AgClassCatalog.add_catalog_entry((5580843933448401332, 11500471288468538266), RadarCrossSectionComputeStrategy)
agcls.AgTypeNameMap["RadarCrossSectionComputeStrategy"] = RadarCrossSectionComputeStrategy

class RadarCrossSectionComputeStrategyConstantValue(IRadarCrossSectionComputeStrategy, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar cross section constant value compute Strategy."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_constant_value_method_offset = 1
    _set_constant_value_method_offset = 2
    _metadata = {
        "iid_data" : (5230551874527362081, 14560806213660620418),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionComputeStrategyConstantValue)

    _get_constant_value_metadata = { "offset" : _get_constant_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def constant_value(self) -> float:
        """Get or set the constant RCS value."""
        return self._intf.get_property(RadarCrossSectionComputeStrategyConstantValue._metadata, RadarCrossSectionComputeStrategyConstantValue._get_constant_value_metadata)

    _set_constant_value_metadata = { "offset" : _set_constant_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @constant_value.setter
    def constant_value(self, value:float) -> None:
        return self._intf.set_property(RadarCrossSectionComputeStrategyConstantValue._metadata, RadarCrossSectionComputeStrategyConstantValue._set_constant_value_metadata, value)

    _property_names[constant_value] = "constant_value"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionComputeStrategyConstantValue."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionComputeStrategyConstantValue)
        IRadarCrossSectionComputeStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarCrossSectionComputeStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionComputeStrategyConstantValue, [RadarCrossSectionComputeStrategyConstantValue, IRadarCrossSectionComputeStrategy])

agcls.AgClassCatalog.add_catalog_entry((5553815472410945110, 4450153700496091816), RadarCrossSectionComputeStrategyConstantValue)
agcls.AgTypeNameMap["RadarCrossSectionComputeStrategyConstantValue"] = RadarCrossSectionComputeStrategyConstantValue

class RadarCrossSectionComputeStrategyScriptPlugin(IRadarCrossSectionComputeStrategy, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar cross section script plugin compute Strategy."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (4838950741387825307, 3252641238159379386),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionComputeStrategyScriptPlugin)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the script filename."""
        return self._intf.get_property(RadarCrossSectionComputeStrategyScriptPlugin._metadata, RadarCrossSectionComputeStrategyScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(RadarCrossSectionComputeStrategyScriptPlugin._metadata, RadarCrossSectionComputeStrategyScriptPlugin._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionComputeStrategyScriptPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionComputeStrategyScriptPlugin)
        IRadarCrossSectionComputeStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarCrossSectionComputeStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionComputeStrategyScriptPlugin, [RadarCrossSectionComputeStrategyScriptPlugin, IRadarCrossSectionComputeStrategy])

agcls.AgClassCatalog.add_catalog_entry((5677862367181631863, 2791811464878407343), RadarCrossSectionComputeStrategyScriptPlugin)
agcls.AgTypeNameMap["RadarCrossSectionComputeStrategyScriptPlugin"] = RadarCrossSectionComputeStrategyScriptPlugin

class RadarCrossSectionComputeStrategyExternalFile(IRadarCrossSectionComputeStrategy, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar cross section external file compute Strategy."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (4871109488225789747, 16805373931347415719),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionComputeStrategyExternalFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the external rcs data filename."""
        return self._intf.get_property(RadarCrossSectionComputeStrategyExternalFile._metadata, RadarCrossSectionComputeStrategyExternalFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(RadarCrossSectionComputeStrategyExternalFile._metadata, RadarCrossSectionComputeStrategyExternalFile._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionComputeStrategyExternalFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionComputeStrategyExternalFile)
        IRadarCrossSectionComputeStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarCrossSectionComputeStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionComputeStrategyExternalFile, [RadarCrossSectionComputeStrategyExternalFile, IRadarCrossSectionComputeStrategy])

agcls.AgClassCatalog.add_catalog_entry((5006148050539626457, 13842698850841944237), RadarCrossSectionComputeStrategyExternalFile)
agcls.AgTypeNameMap["RadarCrossSectionComputeStrategyExternalFile"] = RadarCrossSectionComputeStrategyExternalFile

class RadarCrossSectionComputeStrategyAnsysCSVFile(IRadarCrossSectionComputeStrategy, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar cross section Ansys Csv file compute Strategy."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_primary_polarization_data_filename_method_offset = 1
    _set_primary_polarization_data_filename_method_offset = 2
    _get_orthogonal_polarization_data_filename_method_offset = 3
    _set_orthogonal_polarization_data_filename_method_offset = 4
    _metadata = {
        "iid_data" : (5755782928682698364, 3893364481964793022),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionComputeStrategyAnsysCSVFile)

    _get_primary_polarization_data_filename_metadata = { "offset" : _get_primary_polarization_data_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def primary_polarization_data_filename(self) -> str:
        """Get or set the Ansys HFSS exported primary polarization RCS data CSV formatted filename."""
        return self._intf.get_property(RadarCrossSectionComputeStrategyAnsysCSVFile._metadata, RadarCrossSectionComputeStrategyAnsysCSVFile._get_primary_polarization_data_filename_metadata)

    _set_primary_polarization_data_filename_metadata = { "offset" : _set_primary_polarization_data_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @primary_polarization_data_filename.setter
    def primary_polarization_data_filename(self, value:str) -> None:
        return self._intf.set_property(RadarCrossSectionComputeStrategyAnsysCSVFile._metadata, RadarCrossSectionComputeStrategyAnsysCSVFile._set_primary_polarization_data_filename_metadata, value)

    _get_orthogonal_polarization_data_filename_metadata = { "offset" : _get_orthogonal_polarization_data_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def orthogonal_polarization_data_filename(self) -> str:
        """Get or set the Ansys HFSS exported orthogonal polarization RCS data CSV formatted filename."""
        return self._intf.get_property(RadarCrossSectionComputeStrategyAnsysCSVFile._metadata, RadarCrossSectionComputeStrategyAnsysCSVFile._get_orthogonal_polarization_data_filename_metadata)

    _set_orthogonal_polarization_data_filename_metadata = { "offset" : _set_orthogonal_polarization_data_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @orthogonal_polarization_data_filename.setter
    def orthogonal_polarization_data_filename(self, value:str) -> None:
        return self._intf.set_property(RadarCrossSectionComputeStrategyAnsysCSVFile._metadata, RadarCrossSectionComputeStrategyAnsysCSVFile._set_orthogonal_polarization_data_filename_metadata, value)

    _property_names[primary_polarization_data_filename] = "primary_polarization_data_filename"
    _property_names[orthogonal_polarization_data_filename] = "orthogonal_polarization_data_filename"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionComputeStrategyAnsysCSVFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionComputeStrategyAnsysCSVFile)
        IRadarCrossSectionComputeStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarCrossSectionComputeStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionComputeStrategyAnsysCSVFile, [RadarCrossSectionComputeStrategyAnsysCSVFile, IRadarCrossSectionComputeStrategy])

agcls.AgClassCatalog.add_catalog_entry((4945111464234607714, 12608302787161830316), RadarCrossSectionComputeStrategyAnsysCSVFile)
agcls.AgTypeNameMap["RadarCrossSectionComputeStrategyAnsysCSVFile"] = RadarCrossSectionComputeStrategyAnsysCSVFile

class RadarCrossSectionComputeStrategyPlugin(IRadarCrossSectionComputeStrategy, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar cross section plugin compute Strategy."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_plugin_configuration_method_offset = 1
    _get_raw_plugin_object_method_offset = 2
    _metadata = {
        "iid_data" : (4645611397537040976, 15798982701976683655),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarCrossSectionComputeStrategyPlugin)

    _get_plugin_configuration_metadata = { "offset" : _get_plugin_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_configuration(self) -> "CommRadPluginConfiguration":
        """Get the plugin configuration interface."""
        return self._intf.get_property(RadarCrossSectionComputeStrategyPlugin._metadata, RadarCrossSectionComputeStrategyPlugin._get_plugin_configuration_metadata)

    _get_raw_plugin_object_metadata = { "offset" : _get_raw_plugin_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def raw_plugin_object(self) -> typing.Any:
        """Get the raw plugin IUnknown interface."""
        return self._intf.get_property(RadarCrossSectionComputeStrategyPlugin._metadata, RadarCrossSectionComputeStrategyPlugin._get_raw_plugin_object_metadata)

    _property_names[plugin_configuration] = "plugin_configuration"
    _property_names[raw_plugin_object] = "raw_plugin_object"

    def __init__(self, source_object=None):
        """Construct an object of type RadarCrossSectionComputeStrategyPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarCrossSectionComputeStrategyPlugin)
        IRadarCrossSectionComputeStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarCrossSectionComputeStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarCrossSectionComputeStrategyPlugin, [RadarCrossSectionComputeStrategyPlugin, IRadarCrossSectionComputeStrategy])

agcls.AgClassCatalog.add_catalog_entry((5733470186387836782, 8348074273490001559), RadarCrossSectionComputeStrategyPlugin)
agcls.AgTypeNameMap["RadarCrossSectionComputeStrategyPlugin"] = RadarCrossSectionComputeStrategyPlugin

class CustomPropagationModel(SupportsDeleteCallback):
    """Provide access to the properties and methods for a custom propagation model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_method_offset = 1
    _set_enable_method_offset = 2
    _get_filename_method_offset = 3
    _set_filename_method_offset = 4
    _metadata = {
        "iid_data" : (5563527321729450221, 6330450156356828571),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CustomPropagationModel)

    _get_enable_metadata = { "offset" : _get_enable_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable(self) -> bool:
        """Get or set the option to use the custom model."""
        return self._intf.get_property(CustomPropagationModel._metadata, CustomPropagationModel._get_enable_metadata)

    _set_enable_metadata = { "offset" : _set_enable_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable.setter
    def enable(self, value:bool) -> None:
        return self._intf.set_property(CustomPropagationModel._metadata, CustomPropagationModel._set_enable_metadata, value)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the custom model filename."""
        return self._intf.get_property(CustomPropagationModel._metadata, CustomPropagationModel._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(CustomPropagationModel._metadata, CustomPropagationModel._set_filename_metadata, value)

    _property_names[enable] = "enable"
    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type CustomPropagationModel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CustomPropagationModel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CustomPropagationModel, [CustomPropagationModel, ])

agcls.AgClassCatalog.add_catalog_entry((5201194027753287346, 7170595038257016465), CustomPropagationModel)
agcls.AgTypeNameMap["CustomPropagationModel"] = CustomPropagationModel

class PropagationChannel(SupportsDeleteCallback):
    """Provide access to the properties and methods defining a propagation channel."""

    _num_methods = 41
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_atmospheric_absorption_method_offset = 1
    _set_enable_atmospheric_absorption_method_offset = 2
    _get_supported_atmospheric_absorption_models_method_offset = 3
    _set_atmospheric_absorption_model_method_offset = 4
    _get_atmospheric_absorption_model_method_offset = 5
    _get_enable_rain_loss_method_offset = 6
    _set_enable_rain_loss_method_offset = 7
    _get_supported_rain_loss_models_method_offset = 8
    _set_rain_loss_model_method_offset = 9
    _get_rain_loss_model_method_offset = 10
    _get_custom_a_method_offset = 11
    _get_custom_b_method_offset = 12
    _get_custom_c_method_offset = 13
    _get_enable_itu_618_section2_p5_method_offset = 14
    _set_enable_itu_618_section2_p5_method_offset = 15
    _get_enable_urban_terrestrial_loss_method_offset = 16
    _set_enable_urban_terrestrial_loss_method_offset = 17
    _get_supported_urban_terrestrial_loss_models_method_offset = 18
    _set_urban_terrestrial_loss_model_method_offset = 19
    _get_urban_terrestrial_loss_model_method_offset = 20
    _get_supported_clouds_and_fog_fading_loss_models_method_offset = 21
    _set_clouds_and_fog_fading_loss_model_method_offset = 22
    _get_clouds_and_fog_fading_loss_model_method_offset = 23
    _get_supported_tropospheric_scintillation_fading_loss_models_method_offset = 24
    _set_tropospheric_scintillation_fading_loss_model_method_offset = 25
    _get_tropospheric_scintillation_fading_loss_model_method_offset = 26
    _get_supported_ionospheric_fading_loss_models_method_offset = 27
    _set_ionospheric_fading_loss_model_method_offset = 28
    _get_ionospheric_fading_loss_model_method_offset = 29
    _get_enable_clouds_and_fog_fading_loss_method_offset = 30
    _set_enable_clouds_and_fog_fading_loss_method_offset = 31
    _get_enable_tropospheric_scintillation_fading_loss_method_offset = 32
    _set_enable_tropospheric_scintillation_fading_loss_method_offset = 33
    _get_enable_ionospheric_fading_loss_method_offset = 34
    _set_enable_ionospheric_fading_loss_method_offset = 35
    _get_atmospheric_absorption_model_component_linking_method_offset = 36
    _get_rain_loss_model_component_linking_method_offset = 37
    _get_urban_terrestrial_loss_model_component_linking_method_offset = 38
    _get_clouds_and_fog_fading_loss_model_component_linking_method_offset = 39
    _get_tropospheric_scintillation_fading_loss_model_component_linking_method_offset = 40
    _get_ionospheric_fading_loss_model_component_linking_method_offset = 41
    _metadata = {
        "iid_data" : (5288706326446294416, 11371664375571663272),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PropagationChannel)

    _get_enable_atmospheric_absorption_metadata = { "offset" : _get_enable_atmospheric_absorption_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_atmospheric_absorption(self) -> bool:
        """Get or set the option to use the atmospheric absorption model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_enable_atmospheric_absorption_metadata)

    _set_enable_atmospheric_absorption_metadata = { "offset" : _set_enable_atmospheric_absorption_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_atmospheric_absorption.setter
    def enable_atmospheric_absorption(self, value:bool) -> None:
        return self._intf.set_property(PropagationChannel._metadata, PropagationChannel._set_enable_atmospheric_absorption_metadata, value)

    _get_supported_atmospheric_absorption_models_metadata = { "offset" : _get_supported_atmospheric_absorption_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_atmospheric_absorption_models(self) -> list:
        """Do not use this property, as it is deprecated. Use AtmosAbsorptionModelComponentLinking on PropagationChannel instead. Gets an array of supported atmospheric absorption model names."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_supported_atmospheric_absorption_models_metadata)

    _set_atmospheric_absorption_model_metadata = { "offset" : _set_atmospheric_absorption_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_atmospheric_absorption_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use AtmosAbsorptionModelComponentLinking on PropagationChannel instead. Sets the atmospheric absorption model by name."""
        return self._intf.invoke(PropagationChannel._metadata, PropagationChannel._set_atmospheric_absorption_model_metadata, model_name)

    _get_atmospheric_absorption_model_metadata = { "offset" : _get_atmospheric_absorption_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmospheric_absorption_model(self) -> "IAtmosphericAbsorptionModel":
        """Do not use this property, as it is deprecated. Use AtmosAbsorptionModelComponentLinking on PropagationChannel instead. Gets the atmospheric absorption model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_atmospheric_absorption_model_metadata)

    _get_enable_rain_loss_metadata = { "offset" : _get_enable_rain_loss_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_rain_loss(self) -> bool:
        """Get or set the option to use the rain loss model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_enable_rain_loss_metadata)

    _set_enable_rain_loss_metadata = { "offset" : _set_enable_rain_loss_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_rain_loss.setter
    def enable_rain_loss(self, value:bool) -> None:
        return self._intf.set_property(PropagationChannel._metadata, PropagationChannel._set_enable_rain_loss_metadata, value)

    _get_supported_rain_loss_models_metadata = { "offset" : _get_supported_rain_loss_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_rain_loss_models(self) -> list:
        """Do not use this property, as it is deprecated. Use RainLossModelComponentLinking on PropagationChannel instead. Gets an array of supported rain loss model names."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_supported_rain_loss_models_metadata)

    _set_rain_loss_model_metadata = { "offset" : _set_rain_loss_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_rain_loss_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use RainLossModelComponentLinking on PropagationChannel instead. Sets the rain loss model by name."""
        return self._intf.invoke(PropagationChannel._metadata, PropagationChannel._set_rain_loss_model_metadata, model_name)

    _get_rain_loss_model_metadata = { "offset" : _get_rain_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rain_loss_model(self) -> "IRainLossModel":
        """Do not use this property, as it is deprecated. Use RainLossModelComponentLinking on PropagationChannel instead. Gets the rain loss model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_rain_loss_model_metadata)

    _get_custom_a_metadata = { "offset" : _get_custom_a_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def custom_a(self) -> "CustomPropagationModel":
        """Get the Custom A propagation model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_custom_a_metadata)

    _get_custom_b_metadata = { "offset" : _get_custom_b_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def custom_b(self) -> "CustomPropagationModel":
        """Get the Custom B propagation model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_custom_b_metadata)

    _get_custom_c_metadata = { "offset" : _get_custom_c_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def custom_c(self) -> "CustomPropagationModel":
        """Get the Custom C propagation model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_custom_c_metadata)

    _get_enable_itu_618_section2_p5_metadata = { "offset" : _get_enable_itu_618_section2_p5_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_itu_618_section2_p5(self) -> bool:
        """Get or set the option to enable the ITU 618 Section 2.5 model for computing total propagation loss."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_enable_itu_618_section2_p5_metadata)

    _set_enable_itu_618_section2_p5_metadata = { "offset" : _set_enable_itu_618_section2_p5_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_itu_618_section2_p5.setter
    def enable_itu_618_section2_p5(self, value:bool) -> None:
        return self._intf.set_property(PropagationChannel._metadata, PropagationChannel._set_enable_itu_618_section2_p5_metadata, value)

    _get_enable_urban_terrestrial_loss_metadata = { "offset" : _get_enable_urban_terrestrial_loss_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_urban_terrestrial_loss(self) -> bool:
        """Get or set the option to use the urban/terrestrial loss model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_enable_urban_terrestrial_loss_metadata)

    _set_enable_urban_terrestrial_loss_metadata = { "offset" : _set_enable_urban_terrestrial_loss_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_urban_terrestrial_loss.setter
    def enable_urban_terrestrial_loss(self, value:bool) -> None:
        return self._intf.set_property(PropagationChannel._metadata, PropagationChannel._set_enable_urban_terrestrial_loss_metadata, value)

    _get_supported_urban_terrestrial_loss_models_metadata = { "offset" : _get_supported_urban_terrestrial_loss_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_urban_terrestrial_loss_models(self) -> list:
        """Do not use this property, as it is deprecated. Use UrbanTerrestrialLossModelComponentLinking on PropagationChannel instead. Gets an array of supported urban/terrestrial loss model names."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_supported_urban_terrestrial_loss_models_metadata)

    _set_urban_terrestrial_loss_model_metadata = { "offset" : _set_urban_terrestrial_loss_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_urban_terrestrial_loss_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use UrbanTerrestrialLossModelComponentLinking on PropagationChannel instead. Sets the urban/terrestrial loss model by name."""
        return self._intf.invoke(PropagationChannel._metadata, PropagationChannel._set_urban_terrestrial_loss_model_metadata, model_name)

    _get_urban_terrestrial_loss_model_metadata = { "offset" : _get_urban_terrestrial_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def urban_terrestrial_loss_model(self) -> "IUrbanTerrestrialLossModel":
        """Do not use this property, as it is deprecated. Use UrbanTerrestrialLossModelComponentLinking on PropagationChannel instead. Gets the urban/terrestrial loss model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_urban_terrestrial_loss_model_metadata)

    _get_supported_clouds_and_fog_fading_loss_models_metadata = { "offset" : _get_supported_clouds_and_fog_fading_loss_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_clouds_and_fog_fading_loss_models(self) -> list:
        """Do not use this property, as it is deprecated. Use CloudsAndFogFadingLossModelComponentLinking on PropagationChannel instead. Gets an array of supported CloudsAndFog Fading loss model names."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_supported_clouds_and_fog_fading_loss_models_metadata)

    _set_clouds_and_fog_fading_loss_model_metadata = { "offset" : _set_clouds_and_fog_fading_loss_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_clouds_and_fog_fading_loss_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use CloudsAndFogFadingLossModelComponentLinking on PropagationChannel instead. Sets the CloudsAndFogFading loss model by name."""
        return self._intf.invoke(PropagationChannel._metadata, PropagationChannel._set_clouds_and_fog_fading_loss_model_metadata, model_name)

    _get_clouds_and_fog_fading_loss_model_metadata = { "offset" : _get_clouds_and_fog_fading_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def clouds_and_fog_fading_loss_model(self) -> "ICloudsAndFogFadingLossModel":
        """Do not use this property, as it is deprecated. Use CloudsAndFogFadingLossModelComponentLinking on PropagationChannel instead. Gets the CloudsAndFogFading loss model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_clouds_and_fog_fading_loss_model_metadata)

    _get_supported_tropospheric_scintillation_fading_loss_models_metadata = { "offset" : _get_supported_tropospheric_scintillation_fading_loss_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_tropospheric_scintillation_fading_loss_models(self) -> list:
        """Do not use this property, as it is deprecated. Use TroposphericScintillationFadingLossModelComponentLinking on PropagationChannel instead. Gets an array of supported Tropospheric Scintillation Fading loss model names."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_supported_tropospheric_scintillation_fading_loss_models_metadata)

    _set_tropospheric_scintillation_fading_loss_model_metadata = { "offset" : _set_tropospheric_scintillation_fading_loss_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_tropospheric_scintillation_fading_loss_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use TroposphericScintillationFadingLossModelComponentLinking on PropagationChannel instead. Sets the Tropospheric Scintillation Fading loss model by name."""
        return self._intf.invoke(PropagationChannel._metadata, PropagationChannel._set_tropospheric_scintillation_fading_loss_model_metadata, model_name)

    _get_tropospheric_scintillation_fading_loss_model_metadata = { "offset" : _get_tropospheric_scintillation_fading_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tropospheric_scintillation_fading_loss_model(self) -> "ITroposphericScintillationFadingLossModel":
        """Do not use this property, as it is deprecated. Use TroposphericScintillationFadingLossModelComponentLinking on PropagationChannel instead. Gets the Tropospheric Scintillation Fading loss model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_tropospheric_scintillation_fading_loss_model_metadata)

    _get_supported_ionospheric_fading_loss_models_metadata = { "offset" : _get_supported_ionospheric_fading_loss_models_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_ionospheric_fading_loss_models(self) -> list:
        """Do not use this property, as it is deprecated. Use IonosphericFadingLossModelComponentLinking on PropagationChannel instead. Gets an array of supported Ionospheric Fading loss model names."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_supported_ionospheric_fading_loss_models_metadata)

    _set_ionospheric_fading_loss_model_metadata = { "offset" : _set_ionospheric_fading_loss_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def set_ionospheric_fading_loss_model(self, model_name:str) -> None:
        """Do not use this method, as it is deprecated. Use IonosphericFadingLossModelComponentLinking on PropagationChannel instead. Sets the Ionospheric Fading loss model by name."""
        return self._intf.invoke(PropagationChannel._metadata, PropagationChannel._set_ionospheric_fading_loss_model_metadata, model_name)

    _get_ionospheric_fading_loss_model_metadata = { "offset" : _get_ionospheric_fading_loss_model_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ionospheric_fading_loss_model(self) -> "IIonosphericFadingLossModel":
        """Do not use this property, as it is deprecated. Use IonosphericFadingLossModelComponentLinking on PropagationChannel instead. Gets the Ionospheric Fading loss model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_ionospheric_fading_loss_model_metadata)

    _get_enable_clouds_and_fog_fading_loss_metadata = { "offset" : _get_enable_clouds_and_fog_fading_loss_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_clouds_and_fog_fading_loss(self) -> bool:
        """Get or set the option to use the clouds and fog fading loss model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_enable_clouds_and_fog_fading_loss_metadata)

    _set_enable_clouds_and_fog_fading_loss_metadata = { "offset" : _set_enable_clouds_and_fog_fading_loss_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_clouds_and_fog_fading_loss.setter
    def enable_clouds_and_fog_fading_loss(self, value:bool) -> None:
        return self._intf.set_property(PropagationChannel._metadata, PropagationChannel._set_enable_clouds_and_fog_fading_loss_metadata, value)

    _get_enable_tropospheric_scintillation_fading_loss_metadata = { "offset" : _get_enable_tropospheric_scintillation_fading_loss_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_tropospheric_scintillation_fading_loss(self) -> bool:
        """Get or set the option to use the tropospheric scintillation fading loss model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_enable_tropospheric_scintillation_fading_loss_metadata)

    _set_enable_tropospheric_scintillation_fading_loss_metadata = { "offset" : _set_enable_tropospheric_scintillation_fading_loss_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_tropospheric_scintillation_fading_loss.setter
    def enable_tropospheric_scintillation_fading_loss(self, value:bool) -> None:
        return self._intf.set_property(PropagationChannel._metadata, PropagationChannel._set_enable_tropospheric_scintillation_fading_loss_metadata, value)

    _get_enable_ionospheric_fading_loss_metadata = { "offset" : _get_enable_ionospheric_fading_loss_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_ionospheric_fading_loss(self) -> bool:
        """Get or set the option to use the ionoospheric fading loss model."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_enable_ionospheric_fading_loss_metadata)

    _set_enable_ionospheric_fading_loss_metadata = { "offset" : _set_enable_ionospheric_fading_loss_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_ionospheric_fading_loss.setter
    def enable_ionospheric_fading_loss(self, value:bool) -> None:
        return self._intf.set_property(PropagationChannel._metadata, PropagationChannel._set_enable_ionospheric_fading_loss_metadata, value)

    _get_atmospheric_absorption_model_component_linking_metadata = { "offset" : _get_atmospheric_absorption_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def atmospheric_absorption_model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the atmospheric absorption model component."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_atmospheric_absorption_model_component_linking_metadata)

    _get_rain_loss_model_component_linking_metadata = { "offset" : _get_rain_loss_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def rain_loss_model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the rain loss model component."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_rain_loss_model_component_linking_metadata)

    _get_urban_terrestrial_loss_model_component_linking_metadata = { "offset" : _get_urban_terrestrial_loss_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def urban_terrestrial_loss_model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the urban terrestrial loss model component."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_urban_terrestrial_loss_model_component_linking_metadata)

    _get_clouds_and_fog_fading_loss_model_component_linking_metadata = { "offset" : _get_clouds_and_fog_fading_loss_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def clouds_and_fog_fading_loss_model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the clouds and fog fading loss model component."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_clouds_and_fog_fading_loss_model_component_linking_metadata)

    _get_tropospheric_scintillation_fading_loss_model_component_linking_metadata = { "offset" : _get_tropospheric_scintillation_fading_loss_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def tropospheric_scintillation_fading_loss_model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the tropospheric scintillation fading loss model component."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_tropospheric_scintillation_fading_loss_model_component_linking_metadata)

    _get_ionospheric_fading_loss_model_component_linking_metadata = { "offset" : _get_ionospheric_fading_loss_model_component_linking_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ionospheric_fading_loss_model_component_linking(self) -> "IComponentLinkEmbedControl":
        """Get the link/embed controller for managing the ionospheric fading loss model component."""
        return self._intf.get_property(PropagationChannel._metadata, PropagationChannel._get_ionospheric_fading_loss_model_component_linking_metadata)

    _property_names[enable_atmospheric_absorption] = "enable_atmospheric_absorption"
    _property_names[supported_atmospheric_absorption_models] = "supported_atmospheric_absorption_models"
    _property_names[atmospheric_absorption_model] = "atmospheric_absorption_model"
    _property_names[enable_rain_loss] = "enable_rain_loss"
    _property_names[supported_rain_loss_models] = "supported_rain_loss_models"
    _property_names[rain_loss_model] = "rain_loss_model"
    _property_names[custom_a] = "custom_a"
    _property_names[custom_b] = "custom_b"
    _property_names[custom_c] = "custom_c"
    _property_names[enable_itu_618_section2_p5] = "enable_itu_618_section2_p5"
    _property_names[enable_urban_terrestrial_loss] = "enable_urban_terrestrial_loss"
    _property_names[supported_urban_terrestrial_loss_models] = "supported_urban_terrestrial_loss_models"
    _property_names[urban_terrestrial_loss_model] = "urban_terrestrial_loss_model"
    _property_names[supported_clouds_and_fog_fading_loss_models] = "supported_clouds_and_fog_fading_loss_models"
    _property_names[clouds_and_fog_fading_loss_model] = "clouds_and_fog_fading_loss_model"
    _property_names[supported_tropospheric_scintillation_fading_loss_models] = "supported_tropospheric_scintillation_fading_loss_models"
    _property_names[tropospheric_scintillation_fading_loss_model] = "tropospheric_scintillation_fading_loss_model"
    _property_names[supported_ionospheric_fading_loss_models] = "supported_ionospheric_fading_loss_models"
    _property_names[ionospheric_fading_loss_model] = "ionospheric_fading_loss_model"
    _property_names[enable_clouds_and_fog_fading_loss] = "enable_clouds_and_fog_fading_loss"
    _property_names[enable_tropospheric_scintillation_fading_loss] = "enable_tropospheric_scintillation_fading_loss"
    _property_names[enable_ionospheric_fading_loss] = "enable_ionospheric_fading_loss"
    _property_names[atmospheric_absorption_model_component_linking] = "atmospheric_absorption_model_component_linking"
    _property_names[rain_loss_model_component_linking] = "rain_loss_model_component_linking"
    _property_names[urban_terrestrial_loss_model_component_linking] = "urban_terrestrial_loss_model_component_linking"
    _property_names[clouds_and_fog_fading_loss_model_component_linking] = "clouds_and_fog_fading_loss_model_component_linking"
    _property_names[tropospheric_scintillation_fading_loss_model_component_linking] = "tropospheric_scintillation_fading_loss_model_component_linking"
    _property_names[ionospheric_fading_loss_model_component_linking] = "ionospheric_fading_loss_model_component_linking"

    def __init__(self, source_object=None):
        """Construct an object of type PropagationChannel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PropagationChannel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PropagationChannel, [PropagationChannel, ])

agcls.AgClassCatalog.add_catalog_entry((5144009767317973052, 1787780712150657683), PropagationChannel)
agcls.AgTypeNameMap["PropagationChannel"] = PropagationChannel

class RFEnvironment(SupportsDeleteCallback):
    """Provide access to the properties and methods defining the RF environment."""

    _num_methods = 13
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_propagation_channel_method_offset = 1
    _get_supported_contour_rain_outage_percent_values_method_offset = 2
    _get_contour_rain_outage_percent_method_offset = 3
    _set_contour_rain_outage_percent_method_offset = 4
    _get_earth_temperature_method_offset = 5
    _set_earth_temperature_method_offset = 6
    _get_supported_active_comm_systems_method_offset = 7
    _get_active_comm_system_method_offset = 8
    _set_active_comm_system_method_offset = 9
    _get_magnetic_north_pole_latitude_method_offset = 10
    _set_magnetic_north_pole_latitude_method_offset = 11
    _get_magnetic_north_pole_longitude_method_offset = 12
    _set_magnetic_north_pole_longitude_method_offset = 13
    _metadata = {
        "iid_data" : (5677520739347068960, 17730414613472973730),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RFEnvironment)

    _get_propagation_channel_metadata = { "offset" : _get_propagation_channel_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def propagation_channel(self) -> "PropagationChannel":
        """Get the propagation channel."""
        return self._intf.get_property(RFEnvironment._metadata, RFEnvironment._get_propagation_channel_metadata)

    _get_supported_contour_rain_outage_percent_values_metadata = { "offset" : _get_supported_contour_rain_outage_percent_values_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_contour_rain_outage_percent_values(self) -> list:
        """Get an array of supported contour rain outage percent values."""
        return self._intf.get_property(RFEnvironment._metadata, RFEnvironment._get_supported_contour_rain_outage_percent_values_metadata)

    _get_contour_rain_outage_percent_metadata = { "offset" : _get_contour_rain_outage_percent_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def contour_rain_outage_percent(self) -> float:
        """Get or set the contour rain outage percent."""
        return self._intf.get_property(RFEnvironment._metadata, RFEnvironment._get_contour_rain_outage_percent_metadata)

    _set_contour_rain_outage_percent_metadata = { "offset" : _set_contour_rain_outage_percent_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @contour_rain_outage_percent.setter
    def contour_rain_outage_percent(self, value:float) -> None:
        return self._intf.set_property(RFEnvironment._metadata, RFEnvironment._set_contour_rain_outage_percent_metadata, value)

    _get_earth_temperature_metadata = { "offset" : _get_earth_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def earth_temperature(self) -> float:
        """Get or set the earth temperature."""
        return self._intf.get_property(RFEnvironment._metadata, RFEnvironment._get_earth_temperature_metadata)

    _set_earth_temperature_metadata = { "offset" : _set_earth_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @earth_temperature.setter
    def earth_temperature(self, value:float) -> None:
        return self._intf.set_property(RFEnvironment._metadata, RFEnvironment._set_earth_temperature_metadata, value)

    _get_supported_active_comm_systems_metadata = { "offset" : _get_supported_active_comm_systems_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_active_comm_systems(self) -> list:
        """Get an array of supported active CommSystem objects."""
        return self._intf.get_property(RFEnvironment._metadata, RFEnvironment._get_supported_active_comm_systems_metadata)

    _get_active_comm_system_metadata = { "offset" : _get_active_comm_system_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def active_comm_system(self) -> str:
        """Get or set the active CommSystem object."""
        return self._intf.get_property(RFEnvironment._metadata, RFEnvironment._get_active_comm_system_metadata)

    _set_active_comm_system_metadata = { "offset" : _set_active_comm_system_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @active_comm_system.setter
    def active_comm_system(self, value:str) -> None:
        return self._intf.set_property(RFEnvironment._metadata, RFEnvironment._set_active_comm_system_metadata, value)

    _get_magnetic_north_pole_latitude_metadata = { "offset" : _get_magnetic_north_pole_latitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def magnetic_north_pole_latitude(self) -> float:
        """Get or set magnetic north pole latitude."""
        return self._intf.get_property(RFEnvironment._metadata, RFEnvironment._get_magnetic_north_pole_latitude_metadata)

    _set_magnetic_north_pole_latitude_metadata = { "offset" : _set_magnetic_north_pole_latitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @magnetic_north_pole_latitude.setter
    def magnetic_north_pole_latitude(self, value:float) -> None:
        return self._intf.set_property(RFEnvironment._metadata, RFEnvironment._set_magnetic_north_pole_latitude_metadata, value)

    _get_magnetic_north_pole_longitude_metadata = { "offset" : _get_magnetic_north_pole_longitude_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def magnetic_north_pole_longitude(self) -> float:
        """Get or set magnetic north pole longitude."""
        return self._intf.get_property(RFEnvironment._metadata, RFEnvironment._get_magnetic_north_pole_longitude_metadata)

    _set_magnetic_north_pole_longitude_metadata = { "offset" : _set_magnetic_north_pole_longitude_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @magnetic_north_pole_longitude.setter
    def magnetic_north_pole_longitude(self, value:float) -> None:
        return self._intf.set_property(RFEnvironment._metadata, RFEnvironment._set_magnetic_north_pole_longitude_metadata, value)

    _property_names[propagation_channel] = "propagation_channel"
    _property_names[supported_contour_rain_outage_percent_values] = "supported_contour_rain_outage_percent_values"
    _property_names[contour_rain_outage_percent] = "contour_rain_outage_percent"
    _property_names[earth_temperature] = "earth_temperature"
    _property_names[supported_active_comm_systems] = "supported_active_comm_systems"
    _property_names[active_comm_system] = "active_comm_system"
    _property_names[magnetic_north_pole_latitude] = "magnetic_north_pole_latitude"
    _property_names[magnetic_north_pole_longitude] = "magnetic_north_pole_longitude"

    def __init__(self, source_object=None):
        """Construct an object of type RFEnvironment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RFEnvironment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RFEnvironment, [RFEnvironment, ])

agcls.AgClassCatalog.add_catalog_entry((4972686981178988871, 10633516970237746099), RFEnvironment)
agcls.AgTypeNameMap["RFEnvironment"] = RFEnvironment

class LaserEnvironment(SupportsDeleteCallback):
    """Provide access to the properties and methods defining the laser environment."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_propagation_channel_method_offset = 1
    _metadata = {
        "iid_data" : (5725609662347877616, 18197756552541595300),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LaserEnvironment)

    _get_propagation_channel_metadata = { "offset" : _get_propagation_channel_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def propagation_channel(self) -> "ILaserPropagationChannel":
        """Get the propagation channel."""
        return self._intf.get_property(LaserEnvironment._metadata, LaserEnvironment._get_propagation_channel_metadata)

    _property_names[propagation_channel] = "propagation_channel"

    def __init__(self, source_object=None):
        """Construct an object of type LaserEnvironment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LaserEnvironment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LaserEnvironment, [LaserEnvironment, ])

agcls.AgClassCatalog.add_catalog_entry((4778113297958779914, 5932642468562345399), LaserEnvironment)
agcls.AgTypeNameMap["LaserEnvironment"] = LaserEnvironment

class ObjectRFEnvironment(SupportsDeleteCallback):
    """Provide access to the properties and methods defining the RF environment for an object."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_propagation_channel_method_offset = 1
    _metadata = {
        "iid_data" : (5287147598859915728, 16299436360048608675),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ObjectRFEnvironment)

    _get_propagation_channel_metadata = { "offset" : _get_propagation_channel_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def propagation_channel(self) -> "PropagationChannel":
        """Get the propagation channel."""
        return self._intf.get_property(ObjectRFEnvironment._metadata, ObjectRFEnvironment._get_propagation_channel_metadata)

    _property_names[propagation_channel] = "propagation_channel"

    def __init__(self, source_object=None):
        """Construct an object of type ObjectRFEnvironment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ObjectRFEnvironment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ObjectRFEnvironment, [ObjectRFEnvironment, ])

agcls.AgClassCatalog.add_catalog_entry((4752333271109803077, 3219615145167937413), ObjectRFEnvironment)
agcls.AgTypeNameMap["ObjectRFEnvironment"] = ObjectRFEnvironment

class ObjectLaserEnvironment(SupportsDeleteCallback):
    """Provide access to the properties and methods defining the laser environment for an object."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_propagation_channel_method_offset = 1
    _metadata = {
        "iid_data" : (5084893380771195883, 5915794350579858),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ObjectLaserEnvironment)

    _get_propagation_channel_metadata = { "offset" : _get_propagation_channel_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def propagation_channel(self) -> "ILaserPropagationChannel":
        """Get the propagation channel."""
        return self._intf.get_property(ObjectLaserEnvironment._metadata, ObjectLaserEnvironment._get_propagation_channel_metadata)

    _property_names[propagation_channel] = "propagation_channel"

    def __init__(self, source_object=None):
        """Construct an object of type ObjectLaserEnvironment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ObjectLaserEnvironment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ObjectLaserEnvironment, [ObjectLaserEnvironment, ])

agcls.AgClassCatalog.add_catalog_entry((5357766764657353990, 14249109134410420865), ObjectLaserEnvironment)
agcls.AgTypeNameMap["ObjectLaserEnvironment"] = ObjectLaserEnvironment

class PlatformLaserEnvironment(SupportsDeleteCallback):
    """Provide access to the properties and methods defining the laser environment for a platform."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_propagation_channel_method_offset = 1
    _metadata = {
        "iid_data" : (5628409401716084852, 7072523876825365689),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PlatformLaserEnvironment)

    _get_propagation_channel_metadata = { "offset" : _get_propagation_channel_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def propagation_channel(self) -> "ILaserPropagationChannel":
        """Get the propagation channel."""
        return self._intf.get_property(PlatformLaserEnvironment._metadata, PlatformLaserEnvironment._get_propagation_channel_metadata)

    _property_names[propagation_channel] = "propagation_channel"

    def __init__(self, source_object=None):
        """Construct an object of type PlatformLaserEnvironment."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PlatformLaserEnvironment)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PlatformLaserEnvironment, [PlatformLaserEnvironment, ])

agcls.AgClassCatalog.add_catalog_entry((5446070563381488502, 13433879976390130104), PlatformLaserEnvironment)
agcls.AgTypeNameMap["PlatformLaserEnvironment"] = PlatformLaserEnvironment

class RainLossModel(IRainLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a rain loss model."""
    def __init__(self, source_object=None):
        """Construct an object of type RainLossModel."""
        SupportsDeleteCallback.__init__(self)
        IRainLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRainLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RainLossModel, [IRainLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5203257044029146833, 14950366462343401388), RainLossModel)
agcls.AgTypeNameMap["RainLossModel"] = RainLossModel

class RainLossModelITURP618Version12(IRainLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for a ITU-R P618-12 rain loss model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_surface_temperature_method_offset = 1
    _set_surface_temperature_method_offset = 2
    _get_enable_depolarization_loss_method_offset = 3
    _set_enable_depolarization_loss_method_offset = 4
    _metadata = {
        "iid_data" : (5523135565685092884, 7523298990413002127),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RainLossModelITURP618Version12)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(RainLossModelITURP618Version12._metadata, RainLossModelITURP618Version12._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(RainLossModelITURP618Version12._metadata, RainLossModelITURP618Version12._set_surface_temperature_metadata, value)

    _get_enable_depolarization_loss_metadata = { "offset" : _get_enable_depolarization_loss_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_depolarization_loss(self) -> bool:
        """Get or set the option to user de-polarization loss."""
        return self._intf.get_property(RainLossModelITURP618Version12._metadata, RainLossModelITURP618Version12._get_enable_depolarization_loss_metadata)

    _set_enable_depolarization_loss_metadata = { "offset" : _set_enable_depolarization_loss_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_depolarization_loss.setter
    def enable_depolarization_loss(self, value:bool) -> None:
        return self._intf.set_property(RainLossModelITURP618Version12._metadata, RainLossModelITURP618Version12._set_enable_depolarization_loss_metadata, value)

    _property_names[surface_temperature] = "surface_temperature"
    _property_names[enable_depolarization_loss] = "enable_depolarization_loss"

    def __init__(self, source_object=None):
        """Construct an object of type RainLossModelITURP618Version12."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RainLossModelITURP618Version12)
        IRainLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRainLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RainLossModelITURP618Version12, [RainLossModelITURP618Version12, IRainLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5407319913697780088, 1602760863517707414), RainLossModelITURP618Version12)
agcls.AgTypeNameMap["RainLossModelITURP618Version12"] = RainLossModelITURP618Version12

class RainLossModelITURP618Version13(IRainLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for a ITU-R P618-13 rain loss model."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_surface_temperature_method_offset = 1
    _set_surface_temperature_method_offset = 2
    _get_enable_depolarization_loss_method_offset = 3
    _set_enable_depolarization_loss_method_offset = 4
    _get_enable_itu_1510_method_offset = 5
    _set_enable_itu_1510_method_offset = 6
    _get_use_annual_itu_1510_method_offset = 7
    _set_use_annual_itu_1510_method_offset = 8
    _get_itu_1510_month_method_offset = 9
    _set_itu_1510_month_method_offset = 10
    _metadata = {
        "iid_data" : (5348529903147496805, 10851271752605081265),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RainLossModelITURP618Version13)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(RainLossModelITURP618Version13._metadata, RainLossModelITURP618Version13._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(RainLossModelITURP618Version13._metadata, RainLossModelITURP618Version13._set_surface_temperature_metadata, value)

    _get_enable_depolarization_loss_metadata = { "offset" : _get_enable_depolarization_loss_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_depolarization_loss(self) -> bool:
        """Get or set the option to user de-polarization loss."""
        return self._intf.get_property(RainLossModelITURP618Version13._metadata, RainLossModelITURP618Version13._get_enable_depolarization_loss_metadata)

    _set_enable_depolarization_loss_metadata = { "offset" : _set_enable_depolarization_loss_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_depolarization_loss.setter
    def enable_depolarization_loss(self, value:bool) -> None:
        return self._intf.set_property(RainLossModelITURP618Version13._metadata, RainLossModelITURP618Version13._set_enable_depolarization_loss_metadata, value)

    _get_enable_itu_1510_metadata = { "offset" : _get_enable_itu_1510_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_itu_1510(self) -> bool:
        """Get or set the option to use surface temperatures from ITU-R P.1510."""
        return self._intf.get_property(RainLossModelITURP618Version13._metadata, RainLossModelITURP618Version13._get_enable_itu_1510_metadata)

    _set_enable_itu_1510_metadata = { "offset" : _set_enable_itu_1510_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_itu_1510.setter
    def enable_itu_1510(self, value:bool) -> None:
        return self._intf.set_property(RainLossModelITURP618Version13._metadata, RainLossModelITURP618Version13._set_enable_itu_1510_metadata, value)

    _get_use_annual_itu_1510_metadata = { "offset" : _get_use_annual_itu_1510_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_annual_itu_1510(self) -> bool:
        """Get or set the option to use the annual average surface temperature for ITU-R P.1510."""
        return self._intf.get_property(RainLossModelITURP618Version13._metadata, RainLossModelITURP618Version13._get_use_annual_itu_1510_metadata)

    _set_use_annual_itu_1510_metadata = { "offset" : _set_use_annual_itu_1510_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_annual_itu_1510.setter
    def use_annual_itu_1510(self, value:bool) -> None:
        return self._intf.set_property(RainLossModelITURP618Version13._metadata, RainLossModelITURP618Version13._set_use_annual_itu_1510_metadata, value)

    _get_itu_1510_month_metadata = { "offset" : _get_itu_1510_month_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def itu_1510_month(self) -> int:
        """Get or set the month for ITU-R P.1510 Surface Temperatures."""
        return self._intf.get_property(RainLossModelITURP618Version13._metadata, RainLossModelITURP618Version13._get_itu_1510_month_metadata)

    _set_itu_1510_month_metadata = { "offset" : _set_itu_1510_month_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @itu_1510_month.setter
    def itu_1510_month(self, value:int) -> None:
        return self._intf.set_property(RainLossModelITURP618Version13._metadata, RainLossModelITURP618Version13._set_itu_1510_month_metadata, value)

    _property_names[surface_temperature] = "surface_temperature"
    _property_names[enable_depolarization_loss] = "enable_depolarization_loss"
    _property_names[enable_itu_1510] = "enable_itu_1510"
    _property_names[use_annual_itu_1510] = "use_annual_itu_1510"
    _property_names[itu_1510_month] = "itu_1510_month"

    def __init__(self, source_object=None):
        """Construct an object of type RainLossModelITURP618Version13."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RainLossModelITURP618Version13)
        IRainLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRainLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RainLossModelITURP618Version13, [RainLossModelITURP618Version13, IRainLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5162705784353325473, 8575913456448891808), RainLossModelITURP618Version13)
agcls.AgTypeNameMap["RainLossModelITURP618Version13"] = RainLossModelITURP618Version13

class RainLossModelITURP618Version10(IRainLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for a ITU-R P618-10 rain loss model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_surface_temperature_method_offset = 1
    _set_surface_temperature_method_offset = 2
    _get_enable_depolarization_loss_method_offset = 3
    _set_enable_depolarization_loss_method_offset = 4
    _metadata = {
        "iid_data" : (5649637140498136496, 15908688810531189665),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RainLossModelITURP618Version10)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(RainLossModelITURP618Version10._metadata, RainLossModelITURP618Version10._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(RainLossModelITURP618Version10._metadata, RainLossModelITURP618Version10._set_surface_temperature_metadata, value)

    _get_enable_depolarization_loss_metadata = { "offset" : _get_enable_depolarization_loss_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_depolarization_loss(self) -> bool:
        """Get or set the option to user de-polarization loss."""
        return self._intf.get_property(RainLossModelITURP618Version10._metadata, RainLossModelITURP618Version10._get_enable_depolarization_loss_metadata)

    _set_enable_depolarization_loss_metadata = { "offset" : _set_enable_depolarization_loss_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_depolarization_loss.setter
    def enable_depolarization_loss(self, value:bool) -> None:
        return self._intf.set_property(RainLossModelITURP618Version10._metadata, RainLossModelITURP618Version10._set_enable_depolarization_loss_metadata, value)

    _property_names[surface_temperature] = "surface_temperature"
    _property_names[enable_depolarization_loss] = "enable_depolarization_loss"

    def __init__(self, source_object=None):
        """Construct an object of type RainLossModelITURP618Version10."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RainLossModelITURP618Version10)
        IRainLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRainLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RainLossModelITURP618Version10, [RainLossModelITURP618Version10, IRainLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4916932578843076303, 8038612887636546945), RainLossModelITURP618Version10)
agcls.AgTypeNameMap["RainLossModelITURP618Version10"] = RainLossModelITURP618Version10

class RainLossModelCrane1985(IRainLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for a Crane 1985 rain loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_surface_temperature_method_offset = 1
    _set_surface_temperature_method_offset = 2
    _metadata = {
        "iid_data" : (5578374180484484373, 4846258656783742860),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RainLossModelCrane1985)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(RainLossModelCrane1985._metadata, RainLossModelCrane1985._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(RainLossModelCrane1985._metadata, RainLossModelCrane1985._set_surface_temperature_metadata, value)

    _property_names[surface_temperature] = "surface_temperature"

    def __init__(self, source_object=None):
        """Construct an object of type RainLossModelCrane1985."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RainLossModelCrane1985)
        IRainLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRainLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RainLossModelCrane1985, [RainLossModelCrane1985, IRainLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5342348263893049453, 2060098253264774309), RainLossModelCrane1985)
agcls.AgTypeNameMap["RainLossModelCrane1985"] = RainLossModelCrane1985

class RainLossModelCrane1982(IRainLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for a Crane 1982 rain loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_surface_temperature_method_offset = 1
    _set_surface_temperature_method_offset = 2
    _metadata = {
        "iid_data" : (4796913288936304352, 16687976122988457370),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RainLossModelCrane1982)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(RainLossModelCrane1982._metadata, RainLossModelCrane1982._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(RainLossModelCrane1982._metadata, RainLossModelCrane1982._set_surface_temperature_metadata, value)

    _property_names[surface_temperature] = "surface_temperature"

    def __init__(self, source_object=None):
        """Construct an object of type RainLossModelCrane1982."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RainLossModelCrane1982)
        IRainLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRainLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RainLossModelCrane1982, [RainLossModelCrane1982, IRainLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5758787100971960396, 17788316464344321960), RainLossModelCrane1982)
agcls.AgTypeNameMap["RainLossModelCrane1982"] = RainLossModelCrane1982

class RainLossModelCCIR1983(IRainLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for a CCIR 1983 rain loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_surface_temperature_method_offset = 1
    _set_surface_temperature_method_offset = 2
    _metadata = {
        "iid_data" : (4789861880342435275, 10503314358546187430),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RainLossModelCCIR1983)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(RainLossModelCCIR1983._metadata, RainLossModelCCIR1983._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(RainLossModelCCIR1983._metadata, RainLossModelCCIR1983._set_surface_temperature_metadata, value)

    _property_names[surface_temperature] = "surface_temperature"

    def __init__(self, source_object=None):
        """Construct an object of type RainLossModelCCIR1983."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RainLossModelCCIR1983)
        IRainLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRainLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RainLossModelCCIR1983, [RainLossModelCCIR1983, IRainLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5425907125291224879, 12598144657493196986), RainLossModelCCIR1983)
agcls.AgTypeNameMap["RainLossModelCCIR1983"] = RainLossModelCCIR1983

class RainLossModelScriptPlugin(IRainLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods of a script plugin rain loss model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5240418004694594896, 9881583123978526868),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RainLossModelScriptPlugin)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the script filename."""
        return self._intf.get_property(RainLossModelScriptPlugin._metadata, RainLossModelScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(RainLossModelScriptPlugin._metadata, RainLossModelScriptPlugin._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type RainLossModelScriptPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RainLossModelScriptPlugin)
        IRainLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRainLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RainLossModelScriptPlugin, [RainLossModelScriptPlugin, IRainLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4717185492215485228, 4443736797173875114), RainLossModelScriptPlugin)
agcls.AgTypeNameMap["RainLossModelScriptPlugin"] = RainLossModelScriptPlugin

class CloudsAndFogFadingLossModel(ICloudsAndFogFadingLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a clouds and fog fading loss model."""
    def __init__(self, source_object=None):
        """Construct an object of type CloudsAndFogFadingLossModel."""
        SupportsDeleteCallback.__init__(self)
        ICloudsAndFogFadingLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICloudsAndFogFadingLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CloudsAndFogFadingLossModel, [ICloudsAndFogFadingLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5044133425980767822, 9942556529356878752), CloudsAndFogFadingLossModel)
agcls.AgTypeNameMap["CloudsAndFogFadingLossModel"] = CloudsAndFogFadingLossModel

class CloudsAndFogFadingLossModelP840Version6(ICloudsAndFogFadingLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for clouds and fog loss model ITU-R P.840-6."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_cloud_ceiling_method_offset = 1
    _set_cloud_ceiling_method_offset = 2
    _get_cloud_layer_thickness_method_offset = 3
    _set_cloud_layer_thickness_method_offset = 4
    _get_cloud_temperature_method_offset = 5
    _set_cloud_temperature_method_offset = 6
    _get_cloud_liquid_water_density_method_offset = 7
    _set_cloud_liquid_water_density_method_offset = 8
    _get_liquid_water_density_choice_method_offset = 9
    _set_liquid_water_density_choice_method_offset = 10
    _get_liquid_water_percent_annual_exceeded_method_offset = 11
    _set_liquid_water_percent_annual_exceeded_method_offset = 12
    _get_liquid_water_percent_monthly_exceeded_method_offset = 13
    _set_liquid_water_percent_monthly_exceeded_method_offset = 14
    _get_average_data_month_method_offset = 15
    _set_average_data_month_method_offset = 16
    _metadata = {
        "iid_data" : (5465415306229479999, 18384769652973814425),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CloudsAndFogFadingLossModelP840Version6)

    _get_cloud_ceiling_metadata = { "offset" : _get_cloud_ceiling_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cloud_ceiling(self) -> float:
        """Get or set the cloud ceiling."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._get_cloud_ceiling_metadata)

    _set_cloud_ceiling_metadata = { "offset" : _set_cloud_ceiling_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cloud_ceiling.setter
    def cloud_ceiling(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._set_cloud_ceiling_metadata, value)

    _get_cloud_layer_thickness_metadata = { "offset" : _get_cloud_layer_thickness_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cloud_layer_thickness(self) -> float:
        """Get or set the cloud layer thickness."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._get_cloud_layer_thickness_metadata)

    _set_cloud_layer_thickness_metadata = { "offset" : _set_cloud_layer_thickness_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cloud_layer_thickness.setter
    def cloud_layer_thickness(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._set_cloud_layer_thickness_metadata, value)

    _get_cloud_temperature_metadata = { "offset" : _get_cloud_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cloud_temperature(self) -> float:
        """Get or set the cloud temperature."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._get_cloud_temperature_metadata)

    _set_cloud_temperature_metadata = { "offset" : _set_cloud_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cloud_temperature.setter
    def cloud_temperature(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._set_cloud_temperature_metadata, value)

    _get_cloud_liquid_water_density_metadata = { "offset" : _get_cloud_liquid_water_density_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cloud_liquid_water_density(self) -> float:
        """Get or set the cloud liquid water density."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._get_cloud_liquid_water_density_metadata)

    _set_cloud_liquid_water_density_metadata = { "offset" : _set_cloud_liquid_water_density_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cloud_liquid_water_density.setter
    def cloud_liquid_water_density(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._set_cloud_liquid_water_density_metadata, value)

    _get_liquid_water_density_choice_metadata = { "offset" : _get_liquid_water_density_choice_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CloudsAndFogLiquidWaterChoiceType),) }
    @property
    def liquid_water_density_choice(self) -> "CloudsAndFogLiquidWaterChoiceType":
        """Get or set the cloud liquid water density Choice."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._get_liquid_water_density_choice_metadata)

    _set_liquid_water_density_choice_metadata = { "offset" : _set_liquid_water_density_choice_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CloudsAndFogLiquidWaterChoiceType),) }
    @liquid_water_density_choice.setter
    def liquid_water_density_choice(self, value:"CloudsAndFogLiquidWaterChoiceType") -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._set_liquid_water_density_choice_metadata, value)

    _get_liquid_water_percent_annual_exceeded_metadata = { "offset" : _get_liquid_water_percent_annual_exceeded_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def liquid_water_percent_annual_exceeded(self) -> float:
        """Get or set the Liquid water % Annual Exceeded."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._get_liquid_water_percent_annual_exceeded_metadata)

    _set_liquid_water_percent_annual_exceeded_metadata = { "offset" : _set_liquid_water_percent_annual_exceeded_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @liquid_water_percent_annual_exceeded.setter
    def liquid_water_percent_annual_exceeded(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._set_liquid_water_percent_annual_exceeded_metadata, value)

    _get_liquid_water_percent_monthly_exceeded_metadata = { "offset" : _get_liquid_water_percent_monthly_exceeded_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def liquid_water_percent_monthly_exceeded(self) -> float:
        """Get or set the Liquid water % Monthly Exceeded."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._get_liquid_water_percent_monthly_exceeded_metadata)

    _set_liquid_water_percent_monthly_exceeded_metadata = { "offset" : _set_liquid_water_percent_monthly_exceeded_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @liquid_water_percent_monthly_exceeded.setter
    def liquid_water_percent_monthly_exceeded(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._set_liquid_water_percent_monthly_exceeded_metadata, value)

    _get_average_data_month_metadata = { "offset" : _get_average_data_month_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def average_data_month(self) -> int:
        """Get or set the month, (1 - 12) of the year, used to get average liquid water data."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._get_average_data_month_metadata)

    _set_average_data_month_metadata = { "offset" : _set_average_data_month_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @average_data_month.setter
    def average_data_month(self, value:int) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version6._metadata, CloudsAndFogFadingLossModelP840Version6._set_average_data_month_metadata, value)

    _property_names[cloud_ceiling] = "cloud_ceiling"
    _property_names[cloud_layer_thickness] = "cloud_layer_thickness"
    _property_names[cloud_temperature] = "cloud_temperature"
    _property_names[cloud_liquid_water_density] = "cloud_liquid_water_density"
    _property_names[liquid_water_density_choice] = "liquid_water_density_choice"
    _property_names[liquid_water_percent_annual_exceeded] = "liquid_water_percent_annual_exceeded"
    _property_names[liquid_water_percent_monthly_exceeded] = "liquid_water_percent_monthly_exceeded"
    _property_names[average_data_month] = "average_data_month"

    def __init__(self, source_object=None):
        """Construct an object of type CloudsAndFogFadingLossModelP840Version6."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CloudsAndFogFadingLossModelP840Version6)
        ICloudsAndFogFadingLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICloudsAndFogFadingLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CloudsAndFogFadingLossModelP840Version6, [CloudsAndFogFadingLossModelP840Version6, ICloudsAndFogFadingLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4966614814226049461, 8255856367017850541), CloudsAndFogFadingLossModelP840Version6)
agcls.AgTypeNameMap["CloudsAndFogFadingLossModelP840Version6"] = CloudsAndFogFadingLossModelP840Version6

class CloudsAndFogFadingLossModelP840Version7(ICloudsAndFogFadingLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for clouds and fog loss model ITU-R P.840-7."""

    _num_methods = 18
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_cloud_ceiling_method_offset = 1
    _set_cloud_ceiling_method_offset = 2
    _get_cloud_layer_thickness_method_offset = 3
    _set_cloud_layer_thickness_method_offset = 4
    _get_cloud_temperature_method_offset = 5
    _set_cloud_temperature_method_offset = 6
    _get_cloud_liquid_water_density_method_offset = 7
    _set_cloud_liquid_water_density_method_offset = 8
    _get_liquid_water_density_choice_method_offset = 9
    _set_liquid_water_density_choice_method_offset = 10
    _get_liquid_water_percent_annual_exceeded_method_offset = 11
    _set_liquid_water_percent_annual_exceeded_method_offset = 12
    _get_liquid_water_percent_monthly_exceeded_method_offset = 13
    _set_liquid_water_percent_monthly_exceeded_method_offset = 14
    _get_average_data_month_method_offset = 15
    _set_average_data_month_method_offset = 16
    _get_use_rain_height_as_cloud_layer_thickness_method_offset = 17
    _set_use_rain_height_as_cloud_layer_thickness_method_offset = 18
    _metadata = {
        "iid_data" : (4678855205511964961, 15531000156022459560),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CloudsAndFogFadingLossModelP840Version7)

    _get_cloud_ceiling_metadata = { "offset" : _get_cloud_ceiling_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cloud_ceiling(self) -> float:
        """Get or set the cloud ceiling."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._get_cloud_ceiling_metadata)

    _set_cloud_ceiling_metadata = { "offset" : _set_cloud_ceiling_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cloud_ceiling.setter
    def cloud_ceiling(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._set_cloud_ceiling_metadata, value)

    _get_cloud_layer_thickness_metadata = { "offset" : _get_cloud_layer_thickness_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cloud_layer_thickness(self) -> float:
        """Get or set the cloud layer thickness."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._get_cloud_layer_thickness_metadata)

    _set_cloud_layer_thickness_metadata = { "offset" : _set_cloud_layer_thickness_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cloud_layer_thickness.setter
    def cloud_layer_thickness(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._set_cloud_layer_thickness_metadata, value)

    _get_cloud_temperature_metadata = { "offset" : _get_cloud_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cloud_temperature(self) -> float:
        """Get or set the cloud temperature."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._get_cloud_temperature_metadata)

    _set_cloud_temperature_metadata = { "offset" : _set_cloud_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cloud_temperature.setter
    def cloud_temperature(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._set_cloud_temperature_metadata, value)

    _get_cloud_liquid_water_density_metadata = { "offset" : _get_cloud_liquid_water_density_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cloud_liquid_water_density(self) -> float:
        """Get or set the cloud liquid water density."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._get_cloud_liquid_water_density_metadata)

    _set_cloud_liquid_water_density_metadata = { "offset" : _set_cloud_liquid_water_density_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cloud_liquid_water_density.setter
    def cloud_liquid_water_density(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._set_cloud_liquid_water_density_metadata, value)

    _get_liquid_water_density_choice_metadata = { "offset" : _get_liquid_water_density_choice_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CloudsAndFogLiquidWaterChoiceType),) }
    @property
    def liquid_water_density_choice(self) -> "CloudsAndFogLiquidWaterChoiceType":
        """Get or set the cloud liquid water density Choice."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._get_liquid_water_density_choice_metadata)

    _set_liquid_water_density_choice_metadata = { "offset" : _set_liquid_water_density_choice_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CloudsAndFogLiquidWaterChoiceType),) }
    @liquid_water_density_choice.setter
    def liquid_water_density_choice(self, value:"CloudsAndFogLiquidWaterChoiceType") -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._set_liquid_water_density_choice_metadata, value)

    _get_liquid_water_percent_annual_exceeded_metadata = { "offset" : _get_liquid_water_percent_annual_exceeded_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def liquid_water_percent_annual_exceeded(self) -> float:
        """Get or set the Liquid water % Annual Exceeded."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._get_liquid_water_percent_annual_exceeded_metadata)

    _set_liquid_water_percent_annual_exceeded_metadata = { "offset" : _set_liquid_water_percent_annual_exceeded_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @liquid_water_percent_annual_exceeded.setter
    def liquid_water_percent_annual_exceeded(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._set_liquid_water_percent_annual_exceeded_metadata, value)

    _get_liquid_water_percent_monthly_exceeded_metadata = { "offset" : _get_liquid_water_percent_monthly_exceeded_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def liquid_water_percent_monthly_exceeded(self) -> float:
        """Get or set the Liquid water % Monthly Exceeded."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._get_liquid_water_percent_monthly_exceeded_metadata)

    _set_liquid_water_percent_monthly_exceeded_metadata = { "offset" : _set_liquid_water_percent_monthly_exceeded_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @liquid_water_percent_monthly_exceeded.setter
    def liquid_water_percent_monthly_exceeded(self, value:float) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._set_liquid_water_percent_monthly_exceeded_metadata, value)

    _get_average_data_month_metadata = { "offset" : _get_average_data_month_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def average_data_month(self) -> int:
        """Get or set the month, (1 - 12) of the year, used to get average liquid water data."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._get_average_data_month_metadata)

    _set_average_data_month_metadata = { "offset" : _set_average_data_month_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @average_data_month.setter
    def average_data_month(self, value:int) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._set_average_data_month_metadata, value)

    _get_use_rain_height_as_cloud_layer_thickness_metadata = { "offset" : _get_use_rain_height_as_cloud_layer_thickness_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_rain_height_as_cloud_layer_thickness(self) -> bool:
        """Get or set the use rain height as cloud layer thickness."""
        return self._intf.get_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._get_use_rain_height_as_cloud_layer_thickness_metadata)

    _set_use_rain_height_as_cloud_layer_thickness_metadata = { "offset" : _set_use_rain_height_as_cloud_layer_thickness_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_rain_height_as_cloud_layer_thickness.setter
    def use_rain_height_as_cloud_layer_thickness(self, value:bool) -> None:
        return self._intf.set_property(CloudsAndFogFadingLossModelP840Version7._metadata, CloudsAndFogFadingLossModelP840Version7._set_use_rain_height_as_cloud_layer_thickness_metadata, value)

    _property_names[cloud_ceiling] = "cloud_ceiling"
    _property_names[cloud_layer_thickness] = "cloud_layer_thickness"
    _property_names[cloud_temperature] = "cloud_temperature"
    _property_names[cloud_liquid_water_density] = "cloud_liquid_water_density"
    _property_names[liquid_water_density_choice] = "liquid_water_density_choice"
    _property_names[liquid_water_percent_annual_exceeded] = "liquid_water_percent_annual_exceeded"
    _property_names[liquid_water_percent_monthly_exceeded] = "liquid_water_percent_monthly_exceeded"
    _property_names[average_data_month] = "average_data_month"
    _property_names[use_rain_height_as_cloud_layer_thickness] = "use_rain_height_as_cloud_layer_thickness"

    def __init__(self, source_object=None):
        """Construct an object of type CloudsAndFogFadingLossModelP840Version7."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CloudsAndFogFadingLossModelP840Version7)
        ICloudsAndFogFadingLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICloudsAndFogFadingLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CloudsAndFogFadingLossModelP840Version7, [CloudsAndFogFadingLossModelP840Version7, ICloudsAndFogFadingLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5317005574859182124, 17775714934047538847), CloudsAndFogFadingLossModelP840Version7)
agcls.AgTypeNameMap["CloudsAndFogFadingLossModelP840Version7"] = CloudsAndFogFadingLossModelP840Version7

class TroposphericScintillationFadingLossModel(ITroposphericScintillationFadingLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a tropospheric scintillation fading loss model."""
    def __init__(self, source_object=None):
        """Construct an object of type TroposphericScintillationFadingLossModel."""
        SupportsDeleteCallback.__init__(self)
        ITroposphericScintillationFadingLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITroposphericScintillationFadingLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TroposphericScintillationFadingLossModel, [ITroposphericScintillationFadingLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4889842033136053301, 7691084881284297148), TroposphericScintillationFadingLossModel)
agcls.AgTypeNameMap["TroposphericScintillationFadingLossModel"] = TroposphericScintillationFadingLossModel

class TroposphericScintillationFadingLossModelP618Version8(ITroposphericScintillationFadingLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods a Tropospheric Scintillation loss model ITU-R P.618_8."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_compute_deep_fade_method_offset = 1
    _set_compute_deep_fade_method_offset = 2
    _get_fade_outage_method_offset = 3
    _set_fade_outage_method_offset = 4
    _get_percent_time_refractivity_gradient_method_offset = 5
    _set_percent_time_refractivity_gradient_method_offset = 6
    _get_surface_temperature_method_offset = 7
    _set_surface_temperature_method_offset = 8
    _metadata = {
        "iid_data" : (5005154146346435507, 12641754576829291919),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TroposphericScintillationFadingLossModelP618Version8)

    _get_compute_deep_fade_metadata = { "offset" : _get_compute_deep_fade_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_deep_fade(self) -> bool:
        """Get or set the option for computing deep fade."""
        return self._intf.get_property(TroposphericScintillationFadingLossModelP618Version8._metadata, TroposphericScintillationFadingLossModelP618Version8._get_compute_deep_fade_metadata)

    _set_compute_deep_fade_metadata = { "offset" : _set_compute_deep_fade_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_deep_fade.setter
    def compute_deep_fade(self, value:bool) -> None:
        return self._intf.set_property(TroposphericScintillationFadingLossModelP618Version8._metadata, TroposphericScintillationFadingLossModelP618Version8._set_compute_deep_fade_metadata, value)

    _get_fade_outage_metadata = { "offset" : _get_fade_outage_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fade_outage(self) -> float:
        """Get or set the fade outage percent."""
        return self._intf.get_property(TroposphericScintillationFadingLossModelP618Version8._metadata, TroposphericScintillationFadingLossModelP618Version8._get_fade_outage_metadata)

    _set_fade_outage_metadata = { "offset" : _set_fade_outage_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fade_outage.setter
    def fade_outage(self, value:float) -> None:
        return self._intf.set_property(TroposphericScintillationFadingLossModelP618Version8._metadata, TroposphericScintillationFadingLossModelP618Version8._set_fade_outage_metadata, value)

    _get_percent_time_refractivity_gradient_metadata = { "offset" : _get_percent_time_refractivity_gradient_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def percent_time_refractivity_gradient(self) -> float:
        """Get or set the percentage of time the refractivity is gradient is less than -100 N units / km."""
        return self._intf.get_property(TroposphericScintillationFadingLossModelP618Version8._metadata, TroposphericScintillationFadingLossModelP618Version8._get_percent_time_refractivity_gradient_metadata)

    _set_percent_time_refractivity_gradient_metadata = { "offset" : _set_percent_time_refractivity_gradient_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @percent_time_refractivity_gradient.setter
    def percent_time_refractivity_gradient(self, value:float) -> None:
        return self._intf.set_property(TroposphericScintillationFadingLossModelP618Version8._metadata, TroposphericScintillationFadingLossModelP618Version8._set_percent_time_refractivity_gradient_metadata, value)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(TroposphericScintillationFadingLossModelP618Version8._metadata, TroposphericScintillationFadingLossModelP618Version8._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(TroposphericScintillationFadingLossModelP618Version8._metadata, TroposphericScintillationFadingLossModelP618Version8._set_surface_temperature_metadata, value)

    _property_names[compute_deep_fade] = "compute_deep_fade"
    _property_names[fade_outage] = "fade_outage"
    _property_names[percent_time_refractivity_gradient] = "percent_time_refractivity_gradient"
    _property_names[surface_temperature] = "surface_temperature"

    def __init__(self, source_object=None):
        """Construct an object of type TroposphericScintillationFadingLossModelP618Version8."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TroposphericScintillationFadingLossModelP618Version8)
        ITroposphericScintillationFadingLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITroposphericScintillationFadingLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TroposphericScintillationFadingLossModelP618Version8, [TroposphericScintillationFadingLossModelP618Version8, ITroposphericScintillationFadingLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5329175446687270797, 3848981333931552141), TroposphericScintillationFadingLossModelP618Version8)
agcls.AgTypeNameMap["TroposphericScintillationFadingLossModelP618Version8"] = TroposphericScintillationFadingLossModelP618Version8

class TroposphericScintillationFadingLossModelP618Version12(ITroposphericScintillationFadingLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods of a Tropospheric Scintillation loss model ITU-R P.618_12."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_average_time_choice_method_offset = 1
    _set_average_time_choice_method_offset = 2
    _get_compute_deep_fade_method_offset = 3
    _set_compute_deep_fade_method_offset = 4
    _get_fade_outage_method_offset = 5
    _set_fade_outage_method_offset = 6
    _get_percent_time_refractivity_gradient_method_offset = 7
    _set_percent_time_refractivity_gradient_method_offset = 8
    _get_surface_temperature_method_offset = 9
    _set_surface_temperature_method_offset = 10
    _get_fade_exceeded_method_offset = 11
    _set_fade_exceeded_method_offset = 12
    _metadata = {
        "iid_data" : (5751095875894947466, 10119794521900686470),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TroposphericScintillationFadingLossModelP618Version12)

    _get_average_time_choice_metadata = { "offset" : _get_average_time_choice_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TroposphericScintillationAverageTimeChoiceType),) }
    @property
    def average_time_choice(self) -> "TroposphericScintillationAverageTimeChoiceType":
        """Get or set the TropoScintillation average fade time choice."""
        return self._intf.get_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._get_average_time_choice_metadata)

    _set_average_time_choice_metadata = { "offset" : _set_average_time_choice_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TroposphericScintillationAverageTimeChoiceType),) }
    @average_time_choice.setter
    def average_time_choice(self, value:"TroposphericScintillationAverageTimeChoiceType") -> None:
        return self._intf.set_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._set_average_time_choice_metadata, value)

    _get_compute_deep_fade_metadata = { "offset" : _get_compute_deep_fade_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_deep_fade(self) -> bool:
        """Do not use this property, as it is deprecated. The ComputeDeepFade property should not be used."""
        return self._intf.get_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._get_compute_deep_fade_metadata)

    _set_compute_deep_fade_metadata = { "offset" : _set_compute_deep_fade_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_deep_fade.setter
    def compute_deep_fade(self, value:bool) -> None:
        return self._intf.set_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._set_compute_deep_fade_metadata, value)

    _get_fade_outage_metadata = { "offset" : _get_fade_outage_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fade_outage(self) -> float:
        """Do not use this property, as it is deprecated. Use the FadeExceeded property."""
        return self._intf.get_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._get_fade_outage_metadata)

    _set_fade_outage_metadata = { "offset" : _set_fade_outage_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fade_outage.setter
    def fade_outage(self, value:float) -> None:
        return self._intf.set_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._set_fade_outage_metadata, value)

    _get_percent_time_refractivity_gradient_metadata = { "offset" : _get_percent_time_refractivity_gradient_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def percent_time_refractivity_gradient(self) -> float:
        """Get or set the percentage of time that the refractivity gradient is less than -100 N units / km."""
        return self._intf.get_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._get_percent_time_refractivity_gradient_metadata)

    _set_percent_time_refractivity_gradient_metadata = { "offset" : _set_percent_time_refractivity_gradient_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @percent_time_refractivity_gradient.setter
    def percent_time_refractivity_gradient(self, value:float) -> None:
        return self._intf.set_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._set_percent_time_refractivity_gradient_metadata, value)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._set_surface_temperature_metadata, value)

    _get_fade_exceeded_metadata = { "offset" : _get_fade_exceeded_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fade_exceeded(self) -> float:
        """Get or set the fade exceeded percent."""
        return self._intf.get_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._get_fade_exceeded_metadata)

    _set_fade_exceeded_metadata = { "offset" : _set_fade_exceeded_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fade_exceeded.setter
    def fade_exceeded(self, value:float) -> None:
        return self._intf.set_property(TroposphericScintillationFadingLossModelP618Version12._metadata, TroposphericScintillationFadingLossModelP618Version12._set_fade_exceeded_metadata, value)

    _property_names[average_time_choice] = "average_time_choice"
    _property_names[compute_deep_fade] = "compute_deep_fade"
    _property_names[fade_outage] = "fade_outage"
    _property_names[percent_time_refractivity_gradient] = "percent_time_refractivity_gradient"
    _property_names[surface_temperature] = "surface_temperature"
    _property_names[fade_exceeded] = "fade_exceeded"

    def __init__(self, source_object=None):
        """Construct an object of type TroposphericScintillationFadingLossModelP618Version12."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TroposphericScintillationFadingLossModelP618Version12)
        ITroposphericScintillationFadingLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITroposphericScintillationFadingLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TroposphericScintillationFadingLossModelP618Version12, [TroposphericScintillationFadingLossModelP618Version12, ITroposphericScintillationFadingLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5160595480027271022, 17594581847854480009), TroposphericScintillationFadingLossModelP618Version12)
agcls.AgTypeNameMap["TroposphericScintillationFadingLossModelP618Version12"] = TroposphericScintillationFadingLossModelP618Version12

class IonosphericFadingLossModel(IIonosphericFadingLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a Ionospheric fading loss model."""
    def __init__(self, source_object=None):
        """Construct an object of type IonosphericFadingLossModel."""
        SupportsDeleteCallback.__init__(self)
        IIonosphericFadingLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IIonosphericFadingLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, IonosphericFadingLossModel, [IIonosphericFadingLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5344562094296775254, 2201527540336788150), IonosphericFadingLossModel)
agcls.AgTypeNameMap["IonosphericFadingLossModel"] = IonosphericFadingLossModel

class IonosphericFadingLossModelP531Version13(IIonosphericFadingLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for the Ionospheric Fading loss model ITU-R P.531_13."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_alternate_ap_file_method_offset = 1
    _set_use_alternate_ap_file_method_offset = 2
    _get_filename_method_offset = 3
    _set_filename_method_offset = 4
    _metadata = {
        "iid_data" : (5457281754600465899, 17751366542762448023),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, IonosphericFadingLossModelP531Version13)

    _get_use_alternate_ap_file_metadata = { "offset" : _get_use_alternate_ap_file_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_alternate_ap_file(self) -> bool:
        """Get or set the option for alternate AP data file."""
        return self._intf.get_property(IonosphericFadingLossModelP531Version13._metadata, IonosphericFadingLossModelP531Version13._get_use_alternate_ap_file_metadata)

    _set_use_alternate_ap_file_metadata = { "offset" : _set_use_alternate_ap_file_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_alternate_ap_file.setter
    def use_alternate_ap_file(self, value:bool) -> None:
        return self._intf.set_property(IonosphericFadingLossModelP531Version13._metadata, IonosphericFadingLossModelP531Version13._set_use_alternate_ap_file_metadata, value)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the alternate AP filename."""
        return self._intf.get_property(IonosphericFadingLossModelP531Version13._metadata, IonosphericFadingLossModelP531Version13._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(IonosphericFadingLossModelP531Version13._metadata, IonosphericFadingLossModelP531Version13._set_filename_metadata, value)

    _property_names[use_alternate_ap_file] = "use_alternate_ap_file"
    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type IonosphericFadingLossModelP531Version13."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, IonosphericFadingLossModelP531Version13)
        IIonosphericFadingLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IIonosphericFadingLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, IonosphericFadingLossModelP531Version13, [IonosphericFadingLossModelP531Version13, IIonosphericFadingLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4911662398619169563, 682050675899626898), IonosphericFadingLossModelP531Version13)
agcls.AgTypeNameMap["IonosphericFadingLossModelP531Version13"] = IonosphericFadingLossModelP531Version13

class UrbanTerrestrialLossModel(IUrbanTerrestrialLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining an urban/terrestrial loss model."""
    def __init__(self, source_object=None):
        """Construct an object of type UrbanTerrestrialLossModel."""
        SupportsDeleteCallback.__init__(self)
        IUrbanTerrestrialLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IUrbanTerrestrialLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, UrbanTerrestrialLossModel, [IUrbanTerrestrialLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4930214691780831658, 17616866300815689910), UrbanTerrestrialLossModel)
agcls.AgTypeNameMap["UrbanTerrestrialLossModel"] = UrbanTerrestrialLossModel

class UrbanTerrestrialLossModelTwoRay(IUrbanTerrestrialLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for an urban/terrestrial loss two ray model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_surface_temperature_method_offset = 1
    _set_surface_temperature_method_offset = 2
    _get_loss_factor_method_offset = 3
    _set_loss_factor_method_offset = 4
    _metadata = {
        "iid_data" : (5370054941860866134, 17682616601968576686),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, UrbanTerrestrialLossModelTwoRay)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(UrbanTerrestrialLossModelTwoRay._metadata, UrbanTerrestrialLossModelTwoRay._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(UrbanTerrestrialLossModelTwoRay._metadata, UrbanTerrestrialLossModelTwoRay._set_surface_temperature_metadata, value)

    _get_loss_factor_metadata = { "offset" : _get_loss_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def loss_factor(self) -> float:
        """Get or set the loss factor."""
        return self._intf.get_property(UrbanTerrestrialLossModelTwoRay._metadata, UrbanTerrestrialLossModelTwoRay._get_loss_factor_metadata)

    _set_loss_factor_metadata = { "offset" : _set_loss_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @loss_factor.setter
    def loss_factor(self, value:float) -> None:
        return self._intf.set_property(UrbanTerrestrialLossModelTwoRay._metadata, UrbanTerrestrialLossModelTwoRay._set_loss_factor_metadata, value)

    _property_names[surface_temperature] = "surface_temperature"
    _property_names[loss_factor] = "loss_factor"

    def __init__(self, source_object=None):
        """Construct an object of type UrbanTerrestrialLossModelTwoRay."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, UrbanTerrestrialLossModelTwoRay)
        IUrbanTerrestrialLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IUrbanTerrestrialLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, UrbanTerrestrialLossModelTwoRay, [UrbanTerrestrialLossModelTwoRay, IUrbanTerrestrialLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5600726878321752187, 8085216357622711942), UrbanTerrestrialLossModelTwoRay)
agcls.AgTypeNameMap["UrbanTerrestrialLossModelTwoRay"] = UrbanTerrestrialLossModelTwoRay

class UrbanTerrestrialLossModelWirelessInSite64(IUrbanTerrestrialLossModel, IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Provide access to the properties and methods for an urban/terrestrial loss Wireless InSite 64 model."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_surface_temperature_method_offset = 1
    _set_surface_temperature_method_offset = 2
    _get_supported_calculation_methods_method_offset = 3
    _get_calculation_method_method_offset = 4
    _set_calculation_method_method_offset = 5
    _get_enable_ground_reflection_method_offset = 6
    _set_enable_ground_reflection_method_offset = 7
    _get_geometry_data_method_offset = 8
    _metadata = {
        "iid_data" : (5212090731512428224, 13515173651560257465),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, UrbanTerrestrialLossModelWirelessInSite64)

    _get_surface_temperature_metadata = { "offset" : _get_surface_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def surface_temperature(self) -> float:
        """Get or set the surface temperature."""
        return self._intf.get_property(UrbanTerrestrialLossModelWirelessInSite64._metadata, UrbanTerrestrialLossModelWirelessInSite64._get_surface_temperature_metadata)

    _set_surface_temperature_metadata = { "offset" : _set_surface_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @surface_temperature.setter
    def surface_temperature(self, value:float) -> None:
        return self._intf.set_property(UrbanTerrestrialLossModelWirelessInSite64._metadata, UrbanTerrestrialLossModelWirelessInSite64._set_surface_temperature_metadata, value)

    _get_supported_calculation_methods_metadata = { "offset" : _get_supported_calculation_methods_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_calculation_methods(self) -> list:
        """Get an array of supported calculation methods."""
        return self._intf.get_property(UrbanTerrestrialLossModelWirelessInSite64._metadata, UrbanTerrestrialLossModelWirelessInSite64._get_supported_calculation_methods_metadata)

    _get_calculation_method_metadata = { "offset" : _get_calculation_method_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def calculation_method(self) -> str:
        """Get or set the calculation method."""
        return self._intf.get_property(UrbanTerrestrialLossModelWirelessInSite64._metadata, UrbanTerrestrialLossModelWirelessInSite64._get_calculation_method_metadata)

    _set_calculation_method_metadata = { "offset" : _set_calculation_method_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @calculation_method.setter
    def calculation_method(self, value:str) -> None:
        return self._intf.set_property(UrbanTerrestrialLossModelWirelessInSite64._metadata, UrbanTerrestrialLossModelWirelessInSite64._set_calculation_method_metadata, value)

    _get_enable_ground_reflection_metadata = { "offset" : _get_enable_ground_reflection_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_ground_reflection(self) -> bool:
        """Get or set the option enabling the ground reflection."""
        return self._intf.get_property(UrbanTerrestrialLossModelWirelessInSite64._metadata, UrbanTerrestrialLossModelWirelessInSite64._get_enable_ground_reflection_metadata)

    _set_enable_ground_reflection_metadata = { "offset" : _set_enable_ground_reflection_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_ground_reflection.setter
    def enable_ground_reflection(self, value:bool) -> None:
        return self._intf.set_property(UrbanTerrestrialLossModelWirelessInSite64._metadata, UrbanTerrestrialLossModelWirelessInSite64._set_enable_ground_reflection_metadata, value)

    _get_geometry_data_metadata = { "offset" : _get_geometry_data_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def geometry_data(self) -> "WirelessInSite64GeometryData":
        """Get the geometry data."""
        return self._intf.get_property(UrbanTerrestrialLossModelWirelessInSite64._metadata, UrbanTerrestrialLossModelWirelessInSite64._get_geometry_data_metadata)

    _property_names[surface_temperature] = "surface_temperature"
    _property_names[supported_calculation_methods] = "supported_calculation_methods"
    _property_names[calculation_method] = "calculation_method"
    _property_names[enable_ground_reflection] = "enable_ground_reflection"
    _property_names[geometry_data] = "geometry_data"

    def __init__(self, source_object=None):
        """Construct an object of type UrbanTerrestrialLossModelWirelessInSite64."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, UrbanTerrestrialLossModelWirelessInSite64)
        IUrbanTerrestrialLossModel.__init__(self, source_object)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IUrbanTerrestrialLossModel._private_init(self, intf)
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, UrbanTerrestrialLossModelWirelessInSite64, [UrbanTerrestrialLossModelWirelessInSite64, IUrbanTerrestrialLossModel, IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((4637027066452941956, 7827343684381541547), UrbanTerrestrialLossModelWirelessInSite64)
agcls.AgTypeNameMap["UrbanTerrestrialLossModelWirelessInSite64"] = UrbanTerrestrialLossModelWirelessInSite64

class WirelessInSite64GeometryData(SupportsDeleteCallback):
    """Provide access to the properties and methods for geometry data for the Wireless InSite RT model."""

    _num_methods = 23
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_projection_horizontal_datum_method_offset = 3
    _set_projection_horizontal_datum_method_offset = 4
    _get_supported_building_height_data_attributes_method_offset = 5
    _get_building_height_data_attribute_method_offset = 6
    _set_building_height_data_attribute_method_offset = 7
    _get_building_height_reference_method_method_offset = 8
    _set_building_height_reference_method_method_offset = 9
    _get_building_height_units_method_offset = 10
    _set_building_height_units_method_offset = 11
    _get_override_geometry_tile_origin_method_offset = 12
    _set_override_geometry_tile_origin_method_offset = 13
    _get_geometry_tile_origin_latitude_method_offset = 14
    _set_geometry_tile_origin_latitude_method_offset = 15
    _get_geometry_tile_origin_longitude_method_offset = 16
    _set_geometry_tile_origin_longitude_method_offset = 17
    _get_use_terrain_data_method_offset = 18
    _set_use_terrain_data_method_offset = 19
    _get_terrain_extent_minimum_latitude_method_offset = 20
    _get_terrain_extent_maximum_latitude_method_offset = 21
    _get_terrain_extent_minimum_longitude_method_offset = 22
    _get_terrain_extent_maximum_longitude_method_offset = 23
    _metadata = {
        "iid_data" : (5737412390068784330, 14111718907456556479),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, WirelessInSite64GeometryData)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the geometry data filename."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._set_filename_metadata, value)

    _get_projection_horizontal_datum_metadata = { "offset" : _get_projection_horizontal_datum_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(ProjectionHorizontalDatumType),) }
    @property
    def projection_horizontal_datum(self) -> "ProjectionHorizontalDatumType":
        """Get or set the projection / horizontal datum."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_projection_horizontal_datum_metadata)

    _set_projection_horizontal_datum_metadata = { "offset" : _set_projection_horizontal_datum_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(ProjectionHorizontalDatumType),) }
    @projection_horizontal_datum.setter
    def projection_horizontal_datum(self, value:"ProjectionHorizontalDatumType") -> None:
        return self._intf.set_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._set_projection_horizontal_datum_metadata, value)

    _get_supported_building_height_data_attributes_metadata = { "offset" : _get_supported_building_height_data_attributes_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def supported_building_height_data_attributes(self) -> list:
        """Get an array of supported building height data attributes."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_supported_building_height_data_attributes_metadata)

    _get_building_height_data_attribute_metadata = { "offset" : _get_building_height_data_attribute_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def building_height_data_attribute(self) -> str:
        """Get or sets the building height data attribute."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_building_height_data_attribute_metadata)

    _set_building_height_data_attribute_metadata = { "offset" : _set_building_height_data_attribute_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @building_height_data_attribute.setter
    def building_height_data_attribute(self, value:str) -> None:
        return self._intf.set_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._set_building_height_data_attribute_metadata, value)

    _get_building_height_reference_method_metadata = { "offset" : _get_building_height_reference_method_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(BuildHeightReferenceMethod),) }
    @property
    def building_height_reference_method(self) -> "BuildHeightReferenceMethod":
        """Get or set the building height reference method."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_building_height_reference_method_metadata)

    _set_building_height_reference_method_metadata = { "offset" : _set_building_height_reference_method_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(BuildHeightReferenceMethod),) }
    @building_height_reference_method.setter
    def building_height_reference_method(self, value:"BuildHeightReferenceMethod") -> None:
        return self._intf.set_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._set_building_height_reference_method_metadata, value)

    _get_building_height_units_metadata = { "offset" : _get_building_height_units_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(BuildingHeightUnit),) }
    @property
    def building_height_units(self) -> "BuildingHeightUnit":
        """Get or set the building height unit."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_building_height_units_metadata)

    _set_building_height_units_metadata = { "offset" : _set_building_height_units_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(BuildingHeightUnit),) }
    @building_height_units.setter
    def building_height_units(self, value:"BuildingHeightUnit") -> None:
        return self._intf.set_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._set_building_height_units_metadata, value)

    _get_override_geometry_tile_origin_metadata = { "offset" : _get_override_geometry_tile_origin_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def override_geometry_tile_origin(self) -> bool:
        """Get or set the option for overriding the geometry tile origin."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_override_geometry_tile_origin_metadata)

    _set_override_geometry_tile_origin_metadata = { "offset" : _set_override_geometry_tile_origin_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @override_geometry_tile_origin.setter
    def override_geometry_tile_origin(self, value:bool) -> None:
        return self._intf.set_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._set_override_geometry_tile_origin_metadata, value)

    _get_geometry_tile_origin_latitude_metadata = { "offset" : _get_geometry_tile_origin_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def geometry_tile_origin_latitude(self) -> typing.Any:
        """Get or set the geometry tile origin latitude."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_geometry_tile_origin_latitude_metadata)

    _set_geometry_tile_origin_latitude_metadata = { "offset" : _set_geometry_tile_origin_latitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @geometry_tile_origin_latitude.setter
    def geometry_tile_origin_latitude(self, value:typing.Any) -> None:
        return self._intf.set_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._set_geometry_tile_origin_latitude_metadata, value)

    _get_geometry_tile_origin_longitude_metadata = { "offset" : _get_geometry_tile_origin_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def geometry_tile_origin_longitude(self) -> typing.Any:
        """Get or set the geometry tile origin longitude."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_geometry_tile_origin_longitude_metadata)

    _set_geometry_tile_origin_longitude_metadata = { "offset" : _set_geometry_tile_origin_longitude_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @geometry_tile_origin_longitude.setter
    def geometry_tile_origin_longitude(self, value:typing.Any) -> None:
        return self._intf.set_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._set_geometry_tile_origin_longitude_metadata, value)

    _get_use_terrain_data_metadata = { "offset" : _get_use_terrain_data_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_terrain_data(self) -> bool:
        """Get or set the option for using terrain data."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_use_terrain_data_metadata)

    _set_use_terrain_data_metadata = { "offset" : _set_use_terrain_data_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_terrain_data.setter
    def use_terrain_data(self, value:bool) -> None:
        return self._intf.set_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._set_use_terrain_data_metadata, value)

    _get_terrain_extent_minimum_latitude_metadata = { "offset" : _get_terrain_extent_minimum_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def terrain_extent_minimum_latitude(self) -> typing.Any:
        """Get the terrain extent min latitude."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_terrain_extent_minimum_latitude_metadata)

    _get_terrain_extent_maximum_latitude_metadata = { "offset" : _get_terrain_extent_maximum_latitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def terrain_extent_maximum_latitude(self) -> typing.Any:
        """Get the terrain extent max latitude."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_terrain_extent_maximum_latitude_metadata)

    _get_terrain_extent_minimum_longitude_metadata = { "offset" : _get_terrain_extent_minimum_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def terrain_extent_minimum_longitude(self) -> typing.Any:
        """Get the terrain extent min longitude."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_terrain_extent_minimum_longitude_metadata)

    _get_terrain_extent_maximum_longitude_metadata = { "offset" : _get_terrain_extent_maximum_longitude_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def terrain_extent_maximum_longitude(self) -> typing.Any:
        """Get the terrain extent max longitude."""
        return self._intf.get_property(WirelessInSite64GeometryData._metadata, WirelessInSite64GeometryData._get_terrain_extent_maximum_longitude_metadata)

    _property_names[filename] = "filename"
    _property_names[projection_horizontal_datum] = "projection_horizontal_datum"
    _property_names[supported_building_height_data_attributes] = "supported_building_height_data_attributes"
    _property_names[building_height_data_attribute] = "building_height_data_attribute"
    _property_names[building_height_reference_method] = "building_height_reference_method"
    _property_names[building_height_units] = "building_height_units"
    _property_names[override_geometry_tile_origin] = "override_geometry_tile_origin"
    _property_names[geometry_tile_origin_latitude] = "geometry_tile_origin_latitude"
    _property_names[geometry_tile_origin_longitude] = "geometry_tile_origin_longitude"
    _property_names[use_terrain_data] = "use_terrain_data"
    _property_names[terrain_extent_minimum_latitude] = "terrain_extent_minimum_latitude"
    _property_names[terrain_extent_maximum_latitude] = "terrain_extent_maximum_latitude"
    _property_names[terrain_extent_minimum_longitude] = "terrain_extent_minimum_longitude"
    _property_names[terrain_extent_maximum_longitude] = "terrain_extent_maximum_longitude"

    def __init__(self, source_object=None):
        """Construct an object of type WirelessInSite64GeometryData."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, WirelessInSite64GeometryData)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, WirelessInSite64GeometryData, [WirelessInSite64GeometryData, ])

agcls.AgClassCatalog.add_catalog_entry((4780219697209755020, 3823578527775662734), WirelessInSite64GeometryData)
agcls.AgTypeNameMap["WirelessInSite64GeometryData"] = WirelessInSite64GeometryData

class PointingStrategy(IPointingStrategy, SupportsDeleteCallback):
    """Class defining a pointing strategy."""
    def __init__(self, source_object=None):
        """Construct an object of type PointingStrategy."""
        SupportsDeleteCallback.__init__(self)
        IPointingStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPointingStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PointingStrategy, [IPointingStrategy])

agcls.AgClassCatalog.add_catalog_entry((5573283959319101357, 17623238574593266879), PointingStrategy)
agcls.AgTypeNameMap["PointingStrategy"] = PointingStrategy

class PointingStrategyFixed(IPointingStrategy, SupportsDeleteCallback):
    """Provide the interface for a fixed pointing strategy."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_orientation_method_offset = 1
    _set_orientation_method_offset = 2
    _metadata = {
        "iid_data" : (5015537715930752396, 2861876085815760302),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PointingStrategyFixed)

    _get_orientation_metadata = { "offset" : _get_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def orientation(self) -> "IOrientation":
        """Get the fixed orientation."""
        return self._intf.get_property(PointingStrategyFixed._metadata, PointingStrategyFixed._get_orientation_metadata)

    _set_orientation_metadata = { "offset" : _set_orientation_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("IOrientation"),) }
    @orientation.setter
    def orientation(self, orientation:"IOrientation") -> None:
        """Set the fixed orientation."""
        return self._intf.set_property(PointingStrategyFixed._metadata, PointingStrategyFixed._set_orientation_metadata, orientation)

    _property_names[orientation] = "orientation"

    def __init__(self, source_object=None):
        """Construct an object of type PointingStrategyFixed."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PointingStrategyFixed)
        IPointingStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPointingStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PointingStrategyFixed, [PointingStrategyFixed, IPointingStrategy])

agcls.AgClassCatalog.add_catalog_entry((4991110001121110571, 17495342148117399957), PointingStrategyFixed)
agcls.AgTypeNameMap["PointingStrategyFixed"] = PointingStrategyFixed

class PointingStrategySpinning(IPointingStrategy, SupportsDeleteCallback):
    """Provide the interface for a spinning pointing strategy."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_spin_axes_orientation_method_offset = 1
    _set_spin_axes_orientation_method_offset = 2
    _get_cone_angle_method_offset = 3
    _set_cone_angle_method_offset = 4
    _get_spin_rate_method_offset = 5
    _set_spin_rate_method_offset = 6
    _get_initial_offset_angle_method_offset = 7
    _set_initial_offset_angle_method_offset = 8
    _metadata = {
        "iid_data" : (5566715372704910491, 8859918374712056210),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PointingStrategySpinning)

    _get_spin_axes_orientation_metadata = { "offset" : _get_spin_axes_orientation_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def spin_axes_orientation(self) -> "IOrientation":
        """Get the spin axes orientation."""
        return self._intf.get_property(PointingStrategySpinning._metadata, PointingStrategySpinning._get_spin_axes_orientation_metadata)

    _set_spin_axes_orientation_metadata = { "offset" : _set_spin_axes_orientation_method_offset,
            "arg_types" : (agcom.PVOID,),
            "marshallers" : (agmarshall.InterfaceInArg("IOrientation"),) }
    @spin_axes_orientation.setter
    def spin_axes_orientation(self, orientation:"IOrientation") -> None:
        """Set the spin axes orientation."""
        return self._intf.set_property(PointingStrategySpinning._metadata, PointingStrategySpinning._set_spin_axes_orientation_metadata, orientation)

    _get_cone_angle_metadata = { "offset" : _get_cone_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cone_angle(self) -> float:
        """Get the cone angle."""
        return self._intf.get_property(PointingStrategySpinning._metadata, PointingStrategySpinning._get_cone_angle_metadata)

    _set_cone_angle_metadata = { "offset" : _set_cone_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cone_angle.setter
    def cone_angle(self, cone_angle:float) -> None:
        """Set the cone angle."""
        return self._intf.set_property(PointingStrategySpinning._metadata, PointingStrategySpinning._set_cone_angle_metadata, cone_angle)

    _get_spin_rate_metadata = { "offset" : _get_spin_rate_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def spin_rate(self) -> float:
        """Get the spin rate."""
        return self._intf.get_property(PointingStrategySpinning._metadata, PointingStrategySpinning._get_spin_rate_metadata)

    _set_spin_rate_metadata = { "offset" : _set_spin_rate_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @spin_rate.setter
    def spin_rate(self, spin_rate:float) -> None:
        """Set the spin rate."""
        return self._intf.set_property(PointingStrategySpinning._metadata, PointingStrategySpinning._set_spin_rate_metadata, spin_rate)

    _get_initial_offset_angle_metadata = { "offset" : _get_initial_offset_angle_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def initial_offset_angle(self) -> float:
        """Get the initial offset angle."""
        return self._intf.get_property(PointingStrategySpinning._metadata, PointingStrategySpinning._get_initial_offset_angle_metadata)

    _set_initial_offset_angle_metadata = { "offset" : _set_initial_offset_angle_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @initial_offset_angle.setter
    def initial_offset_angle(self, initial_offset_angle:float) -> None:
        """Set the initial offset angle."""
        return self._intf.set_property(PointingStrategySpinning._metadata, PointingStrategySpinning._set_initial_offset_angle_metadata, initial_offset_angle)

    _property_names[spin_axes_orientation] = "spin_axes_orientation"
    _property_names[cone_angle] = "cone_angle"
    _property_names[spin_rate] = "spin_rate"
    _property_names[initial_offset_angle] = "initial_offset_angle"

    def __init__(self, source_object=None):
        """Construct an object of type PointingStrategySpinning."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PointingStrategySpinning)
        IPointingStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPointingStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PointingStrategySpinning, [PointingStrategySpinning, IPointingStrategy])

agcls.AgClassCatalog.add_catalog_entry((4946650403424024536, 4085744300196267450), PointingStrategySpinning)
agcls.AgTypeNameMap["PointingStrategySpinning"] = PointingStrategySpinning

class PointingStrategyTargeted(IPointingStrategy, SupportsDeleteCallback):
    """Provide the interface for a targeted pointing strategy."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _set_target_object_method_offset = 1
    _get_target_object_method_offset = 2
    _get_available_target_objects_method_offset = 3
    _metadata = {
        "iid_data" : (4757013141215562410, 16554863204155389116),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PointingStrategyTargeted)

    _get_target_object_metadata = { "offset" : _get_target_object_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def target_object(self) -> str:
        """Get or set the pointing target."""
        return self._intf.get_property(PointingStrategyTargeted._metadata, PointingStrategyTargeted._get_target_object_metadata)

    _set_target_object_metadata = { "offset" : _set_target_object_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @target_object.setter
    def target_object(self, path:str) -> None:
        """Get or set the pointing target."""
        return self._intf.set_property(PointingStrategyTargeted._metadata, PointingStrategyTargeted._set_target_object_metadata, path)

    _get_available_target_objects_metadata = { "offset" : _get_available_target_objects_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_target_objects(self) -> list:
        """Get or the available pointing targets."""
        return self._intf.get_property(PointingStrategyTargeted._metadata, PointingStrategyTargeted._get_available_target_objects_metadata)

    _property_names[target_object] = "target_object"
    _property_names[available_target_objects] = "available_target_objects"

    def __init__(self, source_object=None):
        """Construct an object of type PointingStrategyTargeted."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PointingStrategyTargeted)
        IPointingStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IPointingStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PointingStrategyTargeted, [PointingStrategyTargeted, IPointingStrategy])

agcls.AgClassCatalog.add_catalog_entry((4856589209105302942, 16224294117651057336), PointingStrategyTargeted)
agcls.AgTypeNameMap["PointingStrategyTargeted"] = PointingStrategyTargeted

class CommRadCartesianLocation(SupportsDeleteCallback):
    """Provide the interface for a location."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _set_x_method_offset = 1
    _get_x_method_offset = 2
    _set_y_method_offset = 3
    _get_y_method_offset = 4
    _set_z_method_offset = 5
    _get_z_method_offset = 6
    _metadata = {
        "iid_data" : (5628588175033558265, 1608142577550937757),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommRadCartesianLocation)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x(self) -> float:
        """Get or set the X value."""
        return self._intf.get_property(CommRadCartesianLocation._metadata, CommRadCartesianLocation._get_x_metadata)

    _set_x_metadata = { "offset" : _set_x_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x.setter
    def x(self, x:float) -> None:
        """Get or set the X value."""
        return self._intf.set_property(CommRadCartesianLocation._metadata, CommRadCartesianLocation._set_x_metadata, x)

    _get_y_metadata = { "offset" : _get_y_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y(self) -> float:
        """Get or set the Y value."""
        return self._intf.get_property(CommRadCartesianLocation._metadata, CommRadCartesianLocation._get_y_metadata)

    _set_y_metadata = { "offset" : _set_y_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @y.setter
    def y(self, y:float) -> None:
        """Get or set the Y value."""
        return self._intf.set_property(CommRadCartesianLocation._metadata, CommRadCartesianLocation._set_y_metadata, y)

    _get_z_metadata = { "offset" : _get_z_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def z(self) -> float:
        """Get or set the Z value."""
        return self._intf.get_property(CommRadCartesianLocation._metadata, CommRadCartesianLocation._get_z_metadata)

    _set_z_metadata = { "offset" : _set_z_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @z.setter
    def z(self, z:float) -> None:
        """Get or set the Z value."""
        return self._intf.set_property(CommRadCartesianLocation._metadata, CommRadCartesianLocation._set_z_metadata, z)

    _property_names[x] = "x"
    _property_names[y] = "y"
    _property_names[z] = "z"

    def __init__(self, source_object=None):
        """Construct an object of type CommRadCartesianLocation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommRadCartesianLocation)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommRadCartesianLocation, [CommRadCartesianLocation, ])

agcls.AgClassCatalog.add_catalog_entry((4697861908350703787, 16410597846654869935), CommRadCartesianLocation)
agcls.AgTypeNameMap["CommRadCartesianLocation"] = CommRadCartesianLocation

class CommRadComplexNumber(SupportsDeleteCallback):
    """Provide access to the real and imaginary parts of a complex number."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_real_method_offset = 1
    _set_real_method_offset = 2
    _get_imaginary_method_offset = 3
    _set_imaginary_method_offset = 4
    _metadata = {
        "iid_data" : (5334246577850596932, 1866381605948898215),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommRadComplexNumber)

    _get_real_metadata = { "offset" : _get_real_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def real(self) -> float:
        """Get or set the real part of the complex number."""
        return self._intf.get_property(CommRadComplexNumber._metadata, CommRadComplexNumber._get_real_metadata)

    _set_real_metadata = { "offset" : _set_real_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @real.setter
    def real(self, value:float) -> None:
        return self._intf.set_property(CommRadComplexNumber._metadata, CommRadComplexNumber._set_real_metadata, value)

    _get_imaginary_metadata = { "offset" : _get_imaginary_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def imaginary(self) -> float:
        """Get or set the imaginary part of the complex number."""
        return self._intf.get_property(CommRadComplexNumber._metadata, CommRadComplexNumber._get_imaginary_metadata)

    _set_imaginary_metadata = { "offset" : _set_imaginary_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @imaginary.setter
    def imaginary(self, value:float) -> None:
        return self._intf.set_property(CommRadComplexNumber._metadata, CommRadComplexNumber._set_imaginary_metadata, value)

    _property_names[real] = "real"
    _property_names[imaginary] = "imaginary"

    def __init__(self, source_object=None):
        """Construct an object of type CommRadComplexNumber."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommRadComplexNumber)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommRadComplexNumber, [CommRadComplexNumber, ])

agcls.AgClassCatalog.add_catalog_entry((5282044367210604372, 16912840498415164602), CommRadComplexNumber)
agcls.AgTypeNameMap["CommRadComplexNumber"] = CommRadComplexNumber

class CommRadComplexNumberCollection(SupportsDeleteCallback):
    """Represents a collection of complex numbers."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _add_method_offset = 5
    _insert_at_method_offset = 6
    _clear_method_offset = 7
    _metadata = {
        "iid_data" : (4623371550684505573, 11592424400271093676),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommRadComplexNumberCollection)
    def __iter__(self):
        """Create an iterator for the CommRadComplexNumberCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "CommRadComplexNumber":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(CommRadComplexNumberCollection._metadata, CommRadComplexNumberCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "CommRadComplexNumber":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(CommRadComplexNumberCollection._metadata, CommRadComplexNumberCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(CommRadComplexNumberCollection._metadata, CommRadComplexNumberCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the complex value with the supplied index."""
        return self._intf.invoke(CommRadComplexNumberCollection._metadata, CommRadComplexNumberCollection._remove_at_metadata, index)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add(self, real:float, imaginary:float) -> "CommRadComplexNumber":
        """Add and returns a new complex value."""
        return self._intf.invoke(CommRadComplexNumberCollection._metadata, CommRadComplexNumberCollection._add_metadata, real, imaginary, OutArg())

    _insert_at_metadata = { "offset" : _insert_at_method_offset,
            "arg_types" : (agcom.INT, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def insert_at(self, index:int, real:float, imaginary:float) -> "CommRadComplexNumber":
        """Insert and returns a new complex value at the supplied index."""
        return self._intf.invoke(CommRadComplexNumberCollection._metadata, CommRadComplexNumberCollection._insert_at_metadata, index, real, imaginary, OutArg())

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear all complex values from the collection."""
        return self._intf.invoke(CommRadComplexNumberCollection._metadata, CommRadComplexNumberCollection._clear_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type CommRadComplexNumberCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommRadComplexNumberCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommRadComplexNumberCollection, [CommRadComplexNumberCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5010843519329780407, 3960006241224352174), CommRadComplexNumberCollection)
agcls.AgTypeNameMap["CommRadComplexNumberCollection"] = CommRadComplexNumberCollection

class ModulatorModel(IModulatorModel, SupportsDeleteCallback):
    """Class defining a modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModel."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModel, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5454628723884655348, 8593529109856406684), ModulatorModel)
agcls.AgTypeNameMap["ModulatorModel"] = ModulatorModel

class ModulatorModelBPSK(IModulatorModel, SupportsDeleteCallback):
    """Class defining a BPSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelBPSK."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelBPSK, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5077263798773563129, 18027256320827618751), ModulatorModelBPSK)
agcls.AgTypeNameMap["ModulatorModelBPSK"] = ModulatorModelBPSK

class ModulatorModelQPSK(IModulatorModel, SupportsDeleteCallback):
    """Class defining a QPSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelQPSK."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelQPSK, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5695289730064461219, 17302175165494039179), ModulatorModelQPSK)
agcls.AgTypeNameMap["ModulatorModelQPSK"] = ModulatorModelQPSK

class ModulatorModelExternalSource(IModulatorModel, SupportsDeleteCallback):
    """Class defining a external source modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelExternalSource."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelExternalSource, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4677924124340233794, 14466510520437495972), ModulatorModelExternalSource)
agcls.AgTypeNameMap["ModulatorModelExternalSource"] = ModulatorModelExternalSource

class ModulatorModelExternal(IModulatorModel, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an external file modulator model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (4783506625665139054, 10917420778550301626),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ModulatorModelExternal)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the external filename."""
        return self._intf.get_property(ModulatorModelExternal._metadata, ModulatorModelExternal._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(ModulatorModelExternal._metadata, ModulatorModelExternal._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelExternal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ModulatorModelExternal)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelExternal, [ModulatorModelExternal, IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5223695284649498570, 3793257407201851060), ModulatorModelExternal)
agcls.AgTypeNameMap["ModulatorModelExternal"] = ModulatorModelExternal

class ModulatorModelQAM16(IModulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 16 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelQAM16."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelQAM16, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5082221319514233951, 1418674059579041954), ModulatorModelQAM16)
agcls.AgTypeNameMap["ModulatorModelQAM16"] = ModulatorModelQAM16

class ModulatorModelQAM32(IModulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 32 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelQAM32."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelQAM32, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5048786346148182618, 10249906339440135591), ModulatorModelQAM32)
agcls.AgTypeNameMap["ModulatorModelQAM32"] = ModulatorModelQAM32

class ModulatorModelQAM64(IModulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 64 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelQAM64."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelQAM64, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4680702067638746571, 3852134876624997521), ModulatorModelQAM64)
agcls.AgTypeNameMap["ModulatorModelQAM64"] = ModulatorModelQAM64

class ModulatorModelQAM128(IModulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 128 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelQAM128."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelQAM128, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5147948517114198375, 12964476704909200043), ModulatorModelQAM128)
agcls.AgTypeNameMap["ModulatorModelQAM128"] = ModulatorModelQAM128

class ModulatorModelQAM256(IModulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 256 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelQAM256."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelQAM256, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5222007147000142526, 3447542763122270391), ModulatorModelQAM256)
agcls.AgTypeNameMap["ModulatorModelQAM256"] = ModulatorModelQAM256

class ModulatorModelQAM1024(IModulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 1024 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelQAM1024."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelQAM1024, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4928586883596129484, 5605774567478883466), ModulatorModelQAM1024)
agcls.AgTypeNameMap["ModulatorModelQAM1024"] = ModulatorModelQAM1024

class ModulatorModel8PSK(IModulatorModel, SupportsDeleteCallback):
    """Class defining a 8PSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModel8PSK."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModel8PSK, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5747062596519578546, 2667244305753195169), ModulatorModel8PSK)
agcls.AgTypeNameMap["ModulatorModel8PSK"] = ModulatorModel8PSK

class ModulatorModel16PSK(IModulatorModel, SupportsDeleteCallback):
    """Class defining a 16PSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModel16PSK."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModel16PSK, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5756202968902077016, 6868022106246997388), ModulatorModel16PSK)
agcls.AgTypeNameMap["ModulatorModel16PSK"] = ModulatorModel16PSK

class ModulatorModelMSK(IModulatorModel, SupportsDeleteCallback):
    """Class defining a MSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelMSK."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelMSK, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5236564292516965991, 139036482243839923), ModulatorModelMSK)
agcls.AgTypeNameMap["ModulatorModelMSK"] = ModulatorModelMSK

class ModulatorModelBOC(IModulatorModel, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a BOC modulator model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_subcarrier_frequency_method_offset = 1
    _set_subcarrier_frequency_method_offset = 2
    _metadata = {
        "iid_data" : (4854356801427319661, 12130730232675155096),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ModulatorModelBOC)

    _get_subcarrier_frequency_metadata = { "offset" : _get_subcarrier_frequency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def subcarrier_frequency(self) -> float:
        """Get or set the subcarrier frequency."""
        return self._intf.get_property(ModulatorModelBOC._metadata, ModulatorModelBOC._get_subcarrier_frequency_metadata)

    _set_subcarrier_frequency_metadata = { "offset" : _set_subcarrier_frequency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @subcarrier_frequency.setter
    def subcarrier_frequency(self, value:float) -> None:
        return self._intf.set_property(ModulatorModelBOC._metadata, ModulatorModelBOC._set_subcarrier_frequency_metadata, value)

    _property_names[subcarrier_frequency] = "subcarrier_frequency"

    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelBOC."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ModulatorModelBOC)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelBOC, [ModulatorModelBOC, IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4793627326294204132, 4427269386371090819), ModulatorModelBOC)
agcls.AgTypeNameMap["ModulatorModelBOC"] = ModulatorModelBOC

class ModulatorModelDPSK(IModulatorModel, SupportsDeleteCallback):
    """Class defining a DPSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelDPSK."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelDPSK, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5001437284680181371, 13133362759982758573), ModulatorModelDPSK)
agcls.AgTypeNameMap["ModulatorModelDPSK"] = ModulatorModelDPSK

class ModulatorModelFSK(IModulatorModel, SupportsDeleteCallback):
    """Class defining a FSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelFSK."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelFSK, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5617035843736084193, 15873522008376813469), ModulatorModelFSK)
agcls.AgTypeNameMap["ModulatorModelFSK"] = ModulatorModelFSK

class ModulatorModelNFSK(IModulatorModel, SupportsDeleteCallback):
    """Class defining a NFSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelNFSK."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelNFSK, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4941766076346880222, 12750537223506445740), ModulatorModelNFSK)
agcls.AgTypeNameMap["ModulatorModelNFSK"] = ModulatorModelNFSK

class ModulatorModelOQPSK(IModulatorModel, SupportsDeleteCallback):
    """Class defining a OQPSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelOQPSK."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelOQPSK, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5679986466203501915, 6714915909170028161), ModulatorModelOQPSK)
agcls.AgTypeNameMap["ModulatorModelOQPSK"] = ModulatorModelOQPSK

class ModulatorModelNarrowbandUniform(IModulatorModel, SupportsDeleteCallback):
    """Class defining a narrowband uniform modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelNarrowbandUniform."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelNarrowbandUniform, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5736511169088546730, 14196390536265105806), ModulatorModelNarrowbandUniform)
agcls.AgTypeNameMap["ModulatorModelNarrowbandUniform"] = ModulatorModelNarrowbandUniform

class ModulatorModelWidebandUniform(IModulatorModel, SupportsDeleteCallback):
    """Class defining a wideband uniform modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelWidebandUniform."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelWidebandUniform, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4974713922660506656, 11191660908458018178), ModulatorModelWidebandUniform)
agcls.AgTypeNameMap["ModulatorModelWidebandUniform"] = ModulatorModelWidebandUniform

class ModulatorModelWidebandGaussian(IModulatorModel, SupportsDeleteCallback):
    """Class defining a wideband gaussian modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelWidebandGaussian."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelWidebandGaussian, [IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5744342081454633142, 8109900716852088238), ModulatorModelWidebandGaussian)
agcls.AgTypeNameMap["ModulatorModelWidebandGaussian"] = ModulatorModelWidebandGaussian

class ModulatorModelPulsedSignal(IModulatorModel, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a pulsed signal modulator model."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_pulse_width_method_offset = 1
    _set_pulse_width_method_offset = 2
    _get_pulse_period_method_offset = 3
    _set_pulse_period_method_offset = 4
    _get_number_of_pulses_method_offset = 5
    _set_number_of_pulses_method_offset = 6
    _metadata = {
        "iid_data" : (5505259462089049117, 7293235845992798911),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ModulatorModelPulsedSignal)

    _get_pulse_width_metadata = { "offset" : _get_pulse_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pulse_width(self) -> float:
        """Get or set the pulse width."""
        return self._intf.get_property(ModulatorModelPulsedSignal._metadata, ModulatorModelPulsedSignal._get_pulse_width_metadata)

    _set_pulse_width_metadata = { "offset" : _set_pulse_width_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pulse_width.setter
    def pulse_width(self, value:float) -> None:
        return self._intf.set_property(ModulatorModelPulsedSignal._metadata, ModulatorModelPulsedSignal._set_pulse_width_metadata, value)

    _get_pulse_period_metadata = { "offset" : _get_pulse_period_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def pulse_period(self) -> float:
        """Get or set the pulse period."""
        return self._intf.get_property(ModulatorModelPulsedSignal._metadata, ModulatorModelPulsedSignal._get_pulse_period_metadata)

    _set_pulse_period_metadata = { "offset" : _set_pulse_period_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @pulse_period.setter
    def pulse_period(self, value:float) -> None:
        return self._intf.set_property(ModulatorModelPulsedSignal._metadata, ModulatorModelPulsedSignal._set_pulse_period_metadata, value)

    _get_number_of_pulses_metadata = { "offset" : _get_number_of_pulses_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_pulses(self) -> int:
        """Get or set the number of pulses."""
        return self._intf.get_property(ModulatorModelPulsedSignal._metadata, ModulatorModelPulsedSignal._get_number_of_pulses_metadata)

    _set_number_of_pulses_metadata = { "offset" : _set_number_of_pulses_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_pulses.setter
    def number_of_pulses(self, value:int) -> None:
        return self._intf.set_property(ModulatorModelPulsedSignal._metadata, ModulatorModelPulsedSignal._set_number_of_pulses_metadata, value)

    _property_names[pulse_width] = "pulse_width"
    _property_names[pulse_period] = "pulse_period"
    _property_names[number_of_pulses] = "number_of_pulses"

    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelPulsedSignal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ModulatorModelPulsedSignal)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelPulsedSignal, [ModulatorModelPulsedSignal, IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5321049878696791442, 15868492957927843202), ModulatorModelPulsedSignal)
agcls.AgTypeNameMap["ModulatorModelPulsedSignal"] = ModulatorModelPulsedSignal

class ModulatorModelScriptPluginCustomPSD(IModulatorModelScriptPlugin, IModulatorModel, SupportsDeleteCallback):
    """Class defining a custom PSD script plugin modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelScriptPluginCustomPSD."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModelScriptPlugin.__init__(self, source_object)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModelScriptPlugin._private_init(self, intf)
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelScriptPluginCustomPSD, [IModulatorModelScriptPlugin, IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5326856415003529920, 1775871104212659365), ModulatorModelScriptPluginCustomPSD)
agcls.AgTypeNameMap["ModulatorModelScriptPluginCustomPSD"] = ModulatorModelScriptPluginCustomPSD

class ModulatorModelScriptPluginIdealPSD(IModulatorModelScriptPlugin, IModulatorModel, SupportsDeleteCallback):
    """Class defining a ideal PSD script plugin modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type ModulatorModelScriptPluginIdealPSD."""
        SupportsDeleteCallback.__init__(self)
        IModulatorModelScriptPlugin.__init__(self, source_object)
        IModulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IModulatorModelScriptPlugin._private_init(self, intf)
        IModulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ModulatorModelScriptPluginIdealPSD, [IModulatorModelScriptPlugin, IModulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4713864451171503306, 8210854740345985458), ModulatorModelScriptPluginIdealPSD)
agcls.AgTypeNameMap["ModulatorModelScriptPluginIdealPSD"] = ModulatorModelScriptPluginIdealPSD

class LinkMargin(SupportsDeleteCallback):
    """Provide access to the properties for configuring the link margin computation."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_method_offset = 1
    _set_enable_method_offset = 2
    _get_type_method_offset = 3
    _set_type_method_offset = 4
    _get_threshold_method_offset = 5
    _set_threshold_method_offset = 6
    _metadata = {
        "iid_data" : (4906100704054678549, 5577643894164528518),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, LinkMargin)

    _get_enable_metadata = { "offset" : _get_enable_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable(self) -> bool:
        """Get or set the option for computing link margin."""
        return self._intf.get_property(LinkMargin._metadata, LinkMargin._get_enable_metadata)

    _set_enable_metadata = { "offset" : _set_enable_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable.setter
    def enable(self, value:bool) -> None:
        return self._intf.set_property(LinkMargin._metadata, LinkMargin._set_enable_metadata, value)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LinkMarginType),) }
    @property
    def type(self) -> "LinkMarginType":
        """Get or set the link margin type."""
        return self._intf.get_property(LinkMargin._metadata, LinkMargin._get_type_metadata)

    _set_type_metadata = { "offset" : _set_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LinkMarginType),) }
    @type.setter
    def type(self, value:"LinkMarginType") -> None:
        return self._intf.set_property(LinkMargin._metadata, LinkMargin._set_type_metadata, value)

    _get_threshold_metadata = { "offset" : _get_threshold_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def threshold(self) -> float:
        """Get or set the link margin threshold."""
        return self._intf.get_property(LinkMargin._metadata, LinkMargin._get_threshold_metadata)

    _set_threshold_metadata = { "offset" : _set_threshold_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @threshold.setter
    def threshold(self, value:float) -> None:
        return self._intf.set_property(LinkMargin._metadata, LinkMargin._set_threshold_metadata, value)

    _property_names[enable] = "enable"
    _property_names[type] = "type"
    _property_names[threshold] = "threshold"

    def __init__(self, source_object=None):
        """Construct an object of type LinkMargin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, LinkMargin)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, LinkMargin, [LinkMargin, ])

agcls.AgClassCatalog.add_catalog_entry((5713247626234894800, 8924062775541982880), LinkMargin)
agcls.AgTypeNameMap["LinkMargin"] = LinkMargin

class DemodulatorModel(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a demodulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModel."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModel, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4881648113361006179, 9970333136082200452), DemodulatorModel)
agcls.AgTypeNameMap["DemodulatorModel"] = DemodulatorModel

class DemodulatorModelBPSK(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a BPSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelBPSK."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelBPSK, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5298206038906590955, 16998832983018798481), DemodulatorModelBPSK)
agcls.AgTypeNameMap["DemodulatorModelBPSK"] = DemodulatorModelBPSK

class DemodulatorModelQPSK(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a QPSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelQPSK."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelQPSK, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4840706509867360345, 11057618925202083757), DemodulatorModelQPSK)
agcls.AgTypeNameMap["DemodulatorModelQPSK"] = DemodulatorModelQPSK

class DemodulatorModelExternalSource(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a external source modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelExternalSource."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelExternalSource, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5646695097013855246, 6236959185896456860), DemodulatorModelExternalSource)
agcls.AgTypeNameMap["DemodulatorModelExternalSource"] = DemodulatorModelExternalSource

class DemodulatorModelExternal(IDemodulatorModel, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an external file demodulator model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5535885479775833667, 5865553161663090323),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DemodulatorModelExternal)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the external filename."""
        return self._intf.get_property(DemodulatorModelExternal._metadata, DemodulatorModelExternal._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(DemodulatorModelExternal._metadata, DemodulatorModelExternal._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelExternal."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DemodulatorModelExternal)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelExternal, [DemodulatorModelExternal, IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5424465378200651098, 11111213624291109277), DemodulatorModelExternal)
agcls.AgTypeNameMap["DemodulatorModelExternal"] = DemodulatorModelExternal

class DemodulatorModelQAM16(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 16 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelQAM16."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelQAM16, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5627311385896242208, 7974119237911985320), DemodulatorModelQAM16)
agcls.AgTypeNameMap["DemodulatorModelQAM16"] = DemodulatorModelQAM16

class DemodulatorModelQAM32(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 32 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelQAM32."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelQAM32, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5723010643391697629, 15228182843667216554), DemodulatorModelQAM32)
agcls.AgTypeNameMap["DemodulatorModelQAM32"] = DemodulatorModelQAM32

class DemodulatorModelQAM64(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 64 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelQAM64."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelQAM64, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5484102722801138529, 10009343035360615812), DemodulatorModelQAM64)
agcls.AgTypeNameMap["DemodulatorModelQAM64"] = DemodulatorModelQAM64

class DemodulatorModelQAM128(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 128 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelQAM128."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelQAM128, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5452442542483263621, 10768450163454800565), DemodulatorModelQAM128)
agcls.AgTypeNameMap["DemodulatorModelQAM128"] = DemodulatorModelQAM128

class DemodulatorModelQAM256(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 256 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelQAM256."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelQAM256, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5618220399587622497, 2233224316755284363), DemodulatorModelQAM256)
agcls.AgTypeNameMap["DemodulatorModelQAM256"] = DemodulatorModelQAM256

class DemodulatorModelQAM1024(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a QAM 1024 modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelQAM1024."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelQAM1024, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5722674540274677892, 573284275065267870), DemodulatorModelQAM1024)
agcls.AgTypeNameMap["DemodulatorModelQAM1024"] = DemodulatorModelQAM1024

class DemodulatorModel8PSK(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a 8PSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModel8PSK."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModel8PSK, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4959874715031618361, 8439716115486338189), DemodulatorModel8PSK)
agcls.AgTypeNameMap["DemodulatorModel8PSK"] = DemodulatorModel8PSK

class DemodulatorModel16PSK(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a 16PSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModel16PSK."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModel16PSK, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5586734834232247030, 10389929513704416429), DemodulatorModel16PSK)
agcls.AgTypeNameMap["DemodulatorModel16PSK"] = DemodulatorModel16PSK

class DemodulatorModelMSK(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a MSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelMSK."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelMSK, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5171734286047719729, 945613139774024887), DemodulatorModelMSK)
agcls.AgTypeNameMap["DemodulatorModelMSK"] = DemodulatorModelMSK

class DemodulatorModelBOC(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a BOC modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelBOC."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelBOC, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5686963190962116571, 10796713237007469456), DemodulatorModelBOC)
agcls.AgTypeNameMap["DemodulatorModelBOC"] = DemodulatorModelBOC

class DemodulatorModelDPSK(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a DPSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelDPSK."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelDPSK, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4897264827375655762, 14164227099073723023), DemodulatorModelDPSK)
agcls.AgTypeNameMap["DemodulatorModelDPSK"] = DemodulatorModelDPSK

class DemodulatorModelFSK(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a FSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelFSK."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelFSK, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5318612465914356887, 8071891533553114256), DemodulatorModelFSK)
agcls.AgTypeNameMap["DemodulatorModelFSK"] = DemodulatorModelFSK

class DemodulatorModelNFSK(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a NFSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelNFSK."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelNFSK, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4960710402072128006, 13547148977536261555), DemodulatorModelNFSK)
agcls.AgTypeNameMap["DemodulatorModelNFSK"] = DemodulatorModelNFSK

class DemodulatorModelOQPSK(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a OQPSK modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelOQPSK."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelOQPSK, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((4972524856173058044, 11233970202059460499), DemodulatorModelOQPSK)
agcls.AgTypeNameMap["DemodulatorModelOQPSK"] = DemodulatorModelOQPSK

class DemodulatorModelNarrowbandUniform(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a narrowband uniform modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelNarrowbandUniform."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelNarrowbandUniform, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5187106450885050148, 6321697560740518318), DemodulatorModelNarrowbandUniform)
agcls.AgTypeNameMap["DemodulatorModelNarrowbandUniform"] = DemodulatorModelNarrowbandUniform

class DemodulatorModelWidebandUniform(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a wideband uniform modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelWidebandUniform."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelWidebandUniform, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5039015717964601035, 13673313089563514031), DemodulatorModelWidebandUniform)
agcls.AgTypeNameMap["DemodulatorModelWidebandUniform"] = DemodulatorModelWidebandUniform

class DemodulatorModelWidebandGaussian(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a wideband gaussian modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelWidebandGaussian."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelWidebandGaussian, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5178632840506883359, 8549848428598537361), DemodulatorModelWidebandGaussian)
agcls.AgTypeNameMap["DemodulatorModelWidebandGaussian"] = DemodulatorModelWidebandGaussian

class DemodulatorModelPulsedSignal(IDemodulatorModel, SupportsDeleteCallback):
    """Class defining a pulsed signal modulator model."""
    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelPulsedSignal."""
        SupportsDeleteCallback.__init__(self)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelPulsedSignal, [IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5483342576613830811, 10357643366851772593), DemodulatorModelPulsedSignal)
agcls.AgTypeNameMap["DemodulatorModelPulsedSignal"] = DemodulatorModelPulsedSignal

class DemodulatorModelScriptPlugin(IDemodulatorModel, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an script plugin demodulator model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (4870977829474560118, 7832797757843018906),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DemodulatorModelScriptPlugin)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the external filename."""
        return self._intf.get_property(DemodulatorModelScriptPlugin._metadata, DemodulatorModelScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(DemodulatorModelScriptPlugin._metadata, DemodulatorModelScriptPlugin._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type DemodulatorModelScriptPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DemodulatorModelScriptPlugin)
        IDemodulatorModel.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDemodulatorModel._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DemodulatorModelScriptPlugin, [DemodulatorModelScriptPlugin, IDemodulatorModel])

agcls.AgClassCatalog.add_catalog_entry((5338411422650358936, 7459044462226609074), DemodulatorModelScriptPlugin)
agcls.AgTypeNameMap["DemodulatorModelScriptPlugin"] = DemodulatorModelScriptPlugin

class TransferFunctionPolynomialCollection(SupportsDeleteCallback):
    """Represents a transfer function polynomial collection."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _add_method_offset = 5
    _insert_at_method_offset = 6
    _metadata = {
        "iid_data" : (5166145094265340857, 305199927617624707),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransferFunctionPolynomialCollection)
    def __iter__(self):
        """Create an iterator for the TransferFunctionPolynomialCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> float:
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(TransferFunctionPolynomialCollection._metadata, TransferFunctionPolynomialCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.IntArg, agmarshall.DoubleArg,) }
    def item(self, index:int) -> float:
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(TransferFunctionPolynomialCollection._metadata, TransferFunctionPolynomialCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(TransferFunctionPolynomialCollection._metadata, TransferFunctionPolynomialCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the complex value with the supplied index."""
        return self._intf.invoke(TransferFunctionPolynomialCollection._metadata, TransferFunctionPolynomialCollection._remove_at_metadata, index)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    def add(self, coefficient:float) -> None:
        """Add a new coefficient."""
        return self._intf.invoke(TransferFunctionPolynomialCollection._metadata, TransferFunctionPolynomialCollection._add_metadata, coefficient)

    _insert_at_metadata = { "offset" : _insert_at_method_offset,
            "arg_types" : (agcom.INT, agcom.DOUBLE,),
            "marshallers" : (agmarshall.IntArg, agmarshall.DoubleArg,) }
    def insert_at(self, index:int, coefficient:float) -> None:
        """Insert a new coefficient at the supplied index."""
        return self._intf.invoke(TransferFunctionPolynomialCollection._metadata, TransferFunctionPolynomialCollection._insert_at_metadata, index, coefficient)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type TransferFunctionPolynomialCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransferFunctionPolynomialCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransferFunctionPolynomialCollection, [TransferFunctionPolynomialCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4656262903551726625, 13153525132214683069), TransferFunctionPolynomialCollection)
agcls.AgTypeNameMap["TransferFunctionPolynomialCollection"] = TransferFunctionPolynomialCollection

class TransferFunctionInputBackOffVsCOverImTableRow(SupportsDeleteCallback):
    """Provide access to the row of an input back off vs C/Im table."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_input_back_off_method_offset = 1
    _set_input_back_off_method_offset = 2
    _get_c_over_im_method_offset = 3
    _set_c_over_im_method_offset = 4
    _metadata = {
        "iid_data" : (5324085766908112836, 6194428766085970356),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransferFunctionInputBackOffVsCOverImTableRow)

    _get_input_back_off_metadata = { "offset" : _get_input_back_off_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def input_back_off(self) -> float:
        """Get or set the input back off."""
        return self._intf.get_property(TransferFunctionInputBackOffVsCOverImTableRow._metadata, TransferFunctionInputBackOffVsCOverImTableRow._get_input_back_off_metadata)

    _set_input_back_off_metadata = { "offset" : _set_input_back_off_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @input_back_off.setter
    def input_back_off(self, value:float) -> None:
        return self._intf.set_property(TransferFunctionInputBackOffVsCOverImTableRow._metadata, TransferFunctionInputBackOffVsCOverImTableRow._set_input_back_off_metadata, value)

    _get_c_over_im_metadata = { "offset" : _get_c_over_im_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def c_over_im(self) -> float:
        """Get or set the C/Im value."""
        return self._intf.get_property(TransferFunctionInputBackOffVsCOverImTableRow._metadata, TransferFunctionInputBackOffVsCOverImTableRow._get_c_over_im_metadata)

    _set_c_over_im_metadata = { "offset" : _set_c_over_im_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @c_over_im.setter
    def c_over_im(self, value:float) -> None:
        return self._intf.set_property(TransferFunctionInputBackOffVsCOverImTableRow._metadata, TransferFunctionInputBackOffVsCOverImTableRow._set_c_over_im_metadata, value)

    _property_names[input_back_off] = "input_back_off"
    _property_names[c_over_im] = "c_over_im"

    def __init__(self, source_object=None):
        """Construct an object of type TransferFunctionInputBackOffVsCOverImTableRow."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransferFunctionInputBackOffVsCOverImTableRow)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransferFunctionInputBackOffVsCOverImTableRow, [TransferFunctionInputBackOffVsCOverImTableRow, ])

agcls.AgClassCatalog.add_catalog_entry((5735153897173459757, 11776422122293796764), TransferFunctionInputBackOffVsCOverImTableRow)
agcls.AgTypeNameMap["TransferFunctionInputBackOffVsCOverImTableRow"] = TransferFunctionInputBackOffVsCOverImTableRow

class TransferFunctionInputBackOffVsCOverImTable(SupportsDeleteCallback):
    """Represents a collection of input back off vs C/Im values."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _add_method_offset = 5
    _insert_at_method_offset = 6
    _metadata = {
        "iid_data" : (5687033913734664769, 1343931263832668053),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransferFunctionInputBackOffVsCOverImTable)
    def __iter__(self):
        """Create an iterator for the TransferFunctionInputBackOffVsCOverImTable object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "TransferFunctionInputBackOffVsCOverImTableRow":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(TransferFunctionInputBackOffVsCOverImTable._metadata, TransferFunctionInputBackOffVsCOverImTable._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "TransferFunctionInputBackOffVsCOverImTableRow":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(TransferFunctionInputBackOffVsCOverImTable._metadata, TransferFunctionInputBackOffVsCOverImTable._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(TransferFunctionInputBackOffVsCOverImTable._metadata, TransferFunctionInputBackOffVsCOverImTable._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the row with the supplied index."""
        return self._intf.invoke(TransferFunctionInputBackOffVsCOverImTable._metadata, TransferFunctionInputBackOffVsCOverImTable._remove_at_metadata, index)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add(self, input_back_off:float, c_over_im:float) -> "TransferFunctionInputBackOffVsCOverImTableRow":
        """Add and returns a new row."""
        return self._intf.invoke(TransferFunctionInputBackOffVsCOverImTable._metadata, TransferFunctionInputBackOffVsCOverImTable._add_metadata, input_back_off, c_over_im, OutArg())

    _insert_at_metadata = { "offset" : _insert_at_method_offset,
            "arg_types" : (agcom.INT, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def insert_at(self, index:int, input_back_off:float, c_over_im:float) -> "TransferFunctionInputBackOffVsCOverImTableRow":
        """Insert and returns a new row at the supplied index."""
        return self._intf.invoke(TransferFunctionInputBackOffVsCOverImTable._metadata, TransferFunctionInputBackOffVsCOverImTable._insert_at_metadata, index, input_back_off, c_over_im, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type TransferFunctionInputBackOffVsCOverImTable."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransferFunctionInputBackOffVsCOverImTable)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransferFunctionInputBackOffVsCOverImTable, [TransferFunctionInputBackOffVsCOverImTable, ])

agcls.AgClassCatalog.add_catalog_entry((5403066222980218646, 119915087640105394), TransferFunctionInputBackOffVsCOverImTable)
agcls.AgTypeNameMap["TransferFunctionInputBackOffVsCOverImTable"] = TransferFunctionInputBackOffVsCOverImTable

class TransferFunctionInputBackOffOutputBackOffTableRow(SupportsDeleteCallback):
    """Provide access to the row of an input back off vs output back off table."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_input_back_off_method_offset = 1
    _set_input_back_off_method_offset = 2
    _get_output_back_off_method_offset = 3
    _set_output_back_off_method_offset = 4
    _metadata = {
        "iid_data" : (5211068509343301792, 11474819132925281943),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransferFunctionInputBackOffOutputBackOffTableRow)

    _get_input_back_off_metadata = { "offset" : _get_input_back_off_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def input_back_off(self) -> float:
        """Get or set the input back off."""
        return self._intf.get_property(TransferFunctionInputBackOffOutputBackOffTableRow._metadata, TransferFunctionInputBackOffOutputBackOffTableRow._get_input_back_off_metadata)

    _set_input_back_off_metadata = { "offset" : _set_input_back_off_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @input_back_off.setter
    def input_back_off(self, value:float) -> None:
        return self._intf.set_property(TransferFunctionInputBackOffOutputBackOffTableRow._metadata, TransferFunctionInputBackOffOutputBackOffTableRow._set_input_back_off_metadata, value)

    _get_output_back_off_metadata = { "offset" : _get_output_back_off_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def output_back_off(self) -> float:
        """Get or set the output back off."""
        return self._intf.get_property(TransferFunctionInputBackOffOutputBackOffTableRow._metadata, TransferFunctionInputBackOffOutputBackOffTableRow._get_output_back_off_metadata)

    _set_output_back_off_metadata = { "offset" : _set_output_back_off_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @output_back_off.setter
    def output_back_off(self, value:float) -> None:
        return self._intf.set_property(TransferFunctionInputBackOffOutputBackOffTableRow._metadata, TransferFunctionInputBackOffOutputBackOffTableRow._set_output_back_off_metadata, value)

    _property_names[input_back_off] = "input_back_off"
    _property_names[output_back_off] = "output_back_off"

    def __init__(self, source_object=None):
        """Construct an object of type TransferFunctionInputBackOffOutputBackOffTableRow."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransferFunctionInputBackOffOutputBackOffTableRow)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransferFunctionInputBackOffOutputBackOffTableRow, [TransferFunctionInputBackOffOutputBackOffTableRow, ])

agcls.AgClassCatalog.add_catalog_entry((5294545904044342661, 1838248826035369639), TransferFunctionInputBackOffOutputBackOffTableRow)
agcls.AgTypeNameMap["TransferFunctionInputBackOffOutputBackOffTableRow"] = TransferFunctionInputBackOffOutputBackOffTableRow

class TransferFunctionInputBackOffOutputBackOffTable(SupportsDeleteCallback):
    """Represents a collection of input back off vs output back off values."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _add_method_offset = 5
    _insert_at_method_offset = 6
    _metadata = {
        "iid_data" : (5679118784608467832, 2137803193847378610),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TransferFunctionInputBackOffOutputBackOffTable)
    def __iter__(self):
        """Create an iterator for the TransferFunctionInputBackOffOutputBackOffTable object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "TransferFunctionInputBackOffOutputBackOffTableRow":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(TransferFunctionInputBackOffOutputBackOffTable._metadata, TransferFunctionInputBackOffOutputBackOffTable._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "TransferFunctionInputBackOffOutputBackOffTableRow":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(TransferFunctionInputBackOffOutputBackOffTable._metadata, TransferFunctionInputBackOffOutputBackOffTable._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(TransferFunctionInputBackOffOutputBackOffTable._metadata, TransferFunctionInputBackOffOutputBackOffTable._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the row with the supplied index."""
        return self._intf.invoke(TransferFunctionInputBackOffOutputBackOffTable._metadata, TransferFunctionInputBackOffOutputBackOffTable._remove_at_metadata, index)

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add(self, input_back_off:float, output_back_off:float) -> "TransferFunctionInputBackOffOutputBackOffTableRow":
        """Add and returns a new row."""
        return self._intf.invoke(TransferFunctionInputBackOffOutputBackOffTable._metadata, TransferFunctionInputBackOffOutputBackOffTable._add_metadata, input_back_off, output_back_off, OutArg())

    _insert_at_metadata = { "offset" : _insert_at_method_offset,
            "arg_types" : (agcom.INT, agcom.DOUBLE, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.DoubleArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def insert_at(self, index:int, input_back_off:float, output_back_off:float) -> "TransferFunctionInputBackOffOutputBackOffTableRow":
        """Insert and returns a new row at the supplied index."""
        return self._intf.invoke(TransferFunctionInputBackOffOutputBackOffTable._metadata, TransferFunctionInputBackOffOutputBackOffTable._insert_at_metadata, index, input_back_off, output_back_off, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type TransferFunctionInputBackOffOutputBackOffTable."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TransferFunctionInputBackOffOutputBackOffTable)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TransferFunctionInputBackOffOutputBackOffTable, [TransferFunctionInputBackOffOutputBackOffTable, ])

agcls.AgClassCatalog.add_catalog_entry((4887708289253110673, 7006784718900689555), TransferFunctionInputBackOffOutputBackOffTable)
agcls.AgTypeNameMap["TransferFunctionInputBackOffOutputBackOffTable"] = TransferFunctionInputBackOffOutputBackOffTable

class BeerBouguerLambertLawLayer(SupportsDeleteCallback):
    """Provide access to a atmosphere layer used in the Beer-Bouguer-Lambert law propagation loss model."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_top_height_method_offset = 1
    _set_top_height_method_offset = 2
    _get_extinction_coefficient_method_offset = 3
    _set_extinction_coefficient_method_offset = 4
    _metadata = {
        "iid_data" : (5694288606285908488, 14647284586105510057),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeerBouguerLambertLawLayer)

    _get_top_height_metadata = { "offset" : _get_top_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def top_height(self) -> float:
        """Get or set the height of the top of the layer."""
        return self._intf.get_property(BeerBouguerLambertLawLayer._metadata, BeerBouguerLambertLawLayer._get_top_height_metadata)

    _set_top_height_metadata = { "offset" : _set_top_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @top_height.setter
    def top_height(self, value:float) -> None:
        return self._intf.set_property(BeerBouguerLambertLawLayer._metadata, BeerBouguerLambertLawLayer._set_top_height_metadata, value)

    _get_extinction_coefficient_metadata = { "offset" : _get_extinction_coefficient_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def extinction_coefficient(self) -> float:
        """Get or set the extinction coefficient."""
        return self._intf.get_property(BeerBouguerLambertLawLayer._metadata, BeerBouguerLambertLawLayer._get_extinction_coefficient_metadata)

    _set_extinction_coefficient_metadata = { "offset" : _set_extinction_coefficient_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @extinction_coefficient.setter
    def extinction_coefficient(self, value:float) -> None:
        return self._intf.set_property(BeerBouguerLambertLawLayer._metadata, BeerBouguerLambertLawLayer._set_extinction_coefficient_metadata, value)

    _property_names[top_height] = "top_height"
    _property_names[extinction_coefficient] = "extinction_coefficient"

    def __init__(self, source_object=None):
        """Construct an object of type BeerBouguerLambertLawLayer."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeerBouguerLambertLawLayer)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeerBouguerLambertLawLayer, [BeerBouguerLambertLawLayer, ])

agcls.AgClassCatalog.add_catalog_entry((4807177396577236178, 6030329136728052661), BeerBouguerLambertLawLayer)
agcls.AgTypeNameMap["BeerBouguerLambertLawLayer"] = BeerBouguerLambertLawLayer

class BeerBouguerLambertLawLayerCollection(SupportsDeleteCallback):
    """Represents a collection of complex numbers."""

    _num_methods = 4
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _metadata = {
        "iid_data" : (5157077581688121413, 13214631113699050679),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeerBouguerLambertLawLayerCollection)
    def __iter__(self):
        """Create an iterator for the BeerBouguerLambertLawLayerCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "BeerBouguerLambertLawLayer":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(BeerBouguerLambertLawLayerCollection._metadata, BeerBouguerLambertLawLayerCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "BeerBouguerLambertLawLayer":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(BeerBouguerLambertLawLayerCollection._metadata, BeerBouguerLambertLawLayerCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(BeerBouguerLambertLawLayerCollection._metadata, BeerBouguerLambertLawLayerCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the layer with the specified index."""
        return self._intf.invoke(BeerBouguerLambertLawLayerCollection._metadata, BeerBouguerLambertLawLayerCollection._remove_at_metadata, index)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type BeerBouguerLambertLawLayerCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeerBouguerLambertLawLayerCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeerBouguerLambertLawLayerCollection, [BeerBouguerLambertLawLayerCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5709415493905586650, 9910465171912159122), BeerBouguerLambertLawLayerCollection)
agcls.AgTypeNameMap["BeerBouguerLambertLawLayerCollection"] = BeerBouguerLambertLawLayerCollection

class RadarActivity(IRadarActivity, SupportsDeleteCallback):
    """Class defining radar activity."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarActivity."""
        SupportsDeleteCallback.__init__(self)
        IRadarActivity.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarActivity._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarActivity, [IRadarActivity])

agcls.AgClassCatalog.add_catalog_entry((4765261912442792802, 11284919850429280936), RadarActivity)
agcls.AgTypeNameMap["RadarActivity"] = RadarActivity

class RadarActivityAlwaysActive(IRadarActivity, SupportsDeleteCallback):
    """Class defining radar always active activity."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarActivityAlwaysActive."""
        SupportsDeleteCallback.__init__(self)
        IRadarActivity.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarActivity._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarActivityAlwaysActive, [IRadarActivity])

agcls.AgClassCatalog.add_catalog_entry((4942488258581472173, 1355922067997403577), RadarActivityAlwaysActive)
agcls.AgTypeNameMap["RadarActivityAlwaysActive"] = RadarActivityAlwaysActive

class RadarActivityAlwaysInactive(IRadarActivity, SupportsDeleteCallback):
    """Class defining radar always active inactivity."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarActivityAlwaysInactive."""
        SupportsDeleteCallback.__init__(self)
        IRadarActivity.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarActivity._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarActivityAlwaysInactive, [IRadarActivity])

agcls.AgClassCatalog.add_catalog_entry((4876817530966464196, 14217642490068817056), RadarActivityAlwaysInactive)
agcls.AgTypeNameMap["RadarActivityAlwaysInactive"] = RadarActivityAlwaysInactive

class RadarActivityTimeComponentListElement(SupportsDeleteCallback):
    """Provide access to the properties and methods defining an entry in the time components activity list."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_is_active_method_offset = 1
    _set_is_active_method_offset = 2
    _get_component_method_offset = 3
    _set_component_method_offset = 4
    _metadata = {
        "iid_data" : (4774910636216979708, 15293643267919284354),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarActivityTimeComponentListElement)

    _get_is_active_metadata = { "offset" : _get_is_active_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_active(self) -> bool:
        """Get or set whether or not the time component is active."""
        return self._intf.get_property(RadarActivityTimeComponentListElement._metadata, RadarActivityTimeComponentListElement._get_is_active_metadata)

    _set_is_active_metadata = { "offset" : _set_is_active_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @is_active.setter
    def is_active(self, value:bool) -> None:
        """Get or set whether or not the time component is active."""
        return self._intf.set_property(RadarActivityTimeComponentListElement._metadata, RadarActivityTimeComponentListElement._set_is_active_metadata, value)

    _get_component_metadata = { "offset" : _get_component_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def component(self) -> str:
        """Get or set the desired time component."""
        return self._intf.get_property(RadarActivityTimeComponentListElement._metadata, RadarActivityTimeComponentListElement._get_component_metadata)

    _set_component_metadata = { "offset" : _set_component_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @component.setter
    def component(self, value:str) -> None:
        """Get or set the desired time component."""
        return self._intf.set_property(RadarActivityTimeComponentListElement._metadata, RadarActivityTimeComponentListElement._set_component_metadata, value)

    _property_names[is_active] = "is_active"
    _property_names[component] = "component"

    def __init__(self, source_object=None):
        """Construct an object of type RadarActivityTimeComponentListElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarActivityTimeComponentListElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarActivityTimeComponentListElement, [RadarActivityTimeComponentListElement, ])

agcls.AgClassCatalog.add_catalog_entry((5242523832445818183, 97397979861373599), RadarActivityTimeComponentListElement)
agcls.AgTypeNameMap["RadarActivityTimeComponentListElement"] = RadarActivityTimeComponentListElement

class RadarActivityTimeComponentListCollection(SupportsDeleteCallback):
    """Represents a collection of time component activity elements."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _insert_at_method_offset = 5
    _add_method_offset = 6
    _clear_method_offset = 7
    _metadata = {
        "iid_data" : (5282570125634720432, 2562971345742481073),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarActivityTimeComponentListCollection)
    def __iter__(self):
        """Create an iterator for the RadarActivityTimeComponentListCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "RadarActivityTimeComponentListElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of time component elements in the collection."""
        return self._intf.get_property(RadarActivityTimeComponentListCollection._metadata, RadarActivityTimeComponentListCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "RadarActivityTimeComponentListElement":
        """Given an index, returns the time component element in the collection."""
        return self._intf.invoke(RadarActivityTimeComponentListCollection._metadata, RadarActivityTimeComponentListCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(RadarActivityTimeComponentListCollection._metadata, RadarActivityTimeComponentListCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the time component element with the specified index."""
        return self._intf.invoke(RadarActivityTimeComponentListCollection._metadata, RadarActivityTimeComponentListCollection._remove_at_metadata, index)

    _insert_at_metadata = { "offset" : _insert_at_method_offset,
            "arg_types" : (agcom.INT, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def insert_at(self, index:int, component_identifier:str) -> "RadarActivityTimeComponentListElement":
        """Insert a new time component element at the supplied index, configured with a component with the supplied identifier.  An example of a valid component identifier would be ``Facility/MFR_Facility/Radar/MFR LightingIntervals.Umbra EventIntervalList``."""
        return self._intf.invoke(RadarActivityTimeComponentListCollection._metadata, RadarActivityTimeComponentListCollection._insert_at_metadata, index, component_identifier, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, component_identifier:str) -> "RadarActivityTimeComponentListElement":
        """Add a new time component element to the collection, configured with a component with the supplied identifier.  An example of a valid component identifier would be ``Facility/MFR_Facility/Radar/MFR LightingIntervals.Umbra EventIntervalList``."""
        return self._intf.invoke(RadarActivityTimeComponentListCollection._metadata, RadarActivityTimeComponentListCollection._add_metadata, component_identifier, OutArg())

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear all time component elements from the collection."""
        return self._intf.invoke(RadarActivityTimeComponentListCollection._metadata, RadarActivityTimeComponentListCollection._clear_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type RadarActivityTimeComponentListCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarActivityTimeComponentListCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarActivityTimeComponentListCollection, [RadarActivityTimeComponentListCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4976400600209441618, 8450233910007665585), RadarActivityTimeComponentListCollection)
agcls.AgTypeNameMap["RadarActivityTimeComponentListCollection"] = RadarActivityTimeComponentListCollection

class RadarActivityTimeComponentList(IRadarActivity, SupportsDeleteCallback):
    """Provide access to the properties and methods defining radar time components list activity."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_components_method_offset = 1
    _metadata = {
        "iid_data" : (5064267661761260616, 2341653806134323881),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarActivityTimeComponentList)

    _get_time_components_metadata = { "offset" : _get_time_components_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_components(self) -> "RadarActivityTimeComponentListCollection":
        """Get the time components collection."""
        return self._intf.get_property(RadarActivityTimeComponentList._metadata, RadarActivityTimeComponentList._get_time_components_metadata)

    _property_names[time_components] = "time_components"

    def __init__(self, source_object=None):
        """Construct an object of type RadarActivityTimeComponentList."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarActivityTimeComponentList)
        IRadarActivity.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarActivity._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarActivityTimeComponentList, [RadarActivityTimeComponentList, IRadarActivity])

agcls.AgClassCatalog.add_catalog_entry((5275829098753604262, 1932412200439918977), RadarActivityTimeComponentList)
agcls.AgTypeNameMap["RadarActivityTimeComponentList"] = RadarActivityTimeComponentList

class RadarActivityTimeIntervalListElement(SupportsDeleteCallback):
    """Provide access to the properties and methods defining an entry in the time interval activity list."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_is_active_method_offset = 1
    _set_is_active_method_offset = 2
    _get_start_method_offset = 3
    _set_start_method_offset = 4
    _get_stop_method_offset = 5
    _set_stop_method_offset = 6
    _metadata = {
        "iid_data" : (5084031226967518426, 5487845144356049340),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarActivityTimeIntervalListElement)

    _get_is_active_metadata = { "offset" : _get_is_active_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def is_active(self) -> bool:
        """Get or set whether or not the time component is active."""
        return self._intf.get_property(RadarActivityTimeIntervalListElement._metadata, RadarActivityTimeIntervalListElement._get_is_active_metadata)

    _set_is_active_metadata = { "offset" : _set_is_active_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @is_active.setter
    def is_active(self, value:bool) -> None:
        """Get or set whether or not the time component is active."""
        return self._intf.set_property(RadarActivityTimeIntervalListElement._metadata, RadarActivityTimeIntervalListElement._set_is_active_metadata, value)

    _get_start_metadata = { "offset" : _get_start_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def start(self) -> typing.Any:
        """Get or set the interval start time."""
        return self._intf.get_property(RadarActivityTimeIntervalListElement._metadata, RadarActivityTimeIntervalListElement._get_start_metadata)

    _set_start_metadata = { "offset" : _set_start_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @start.setter
    def start(self, return_value:typing.Any) -> None:
        """Get or set the interval start time."""
        return self._intf.set_property(RadarActivityTimeIntervalListElement._metadata, RadarActivityTimeIntervalListElement._set_start_metadata, return_value)

    _get_stop_metadata = { "offset" : _get_stop_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def stop(self) -> typing.Any:
        """Get or set the interval start time."""
        return self._intf.get_property(RadarActivityTimeIntervalListElement._metadata, RadarActivityTimeIntervalListElement._get_stop_metadata)

    _set_stop_metadata = { "offset" : _set_stop_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @stop.setter
    def stop(self, return_value:typing.Any) -> None:
        """Get or set the interval start time."""
        return self._intf.set_property(RadarActivityTimeIntervalListElement._metadata, RadarActivityTimeIntervalListElement._set_stop_metadata, return_value)

    _property_names[is_active] = "is_active"
    _property_names[start] = "start"
    _property_names[stop] = "stop"

    def __init__(self, source_object=None):
        """Construct an object of type RadarActivityTimeIntervalListElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarActivityTimeIntervalListElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarActivityTimeIntervalListElement, [RadarActivityTimeIntervalListElement, ])

agcls.AgClassCatalog.add_catalog_entry((4636987641017909917, 17537973340889020059), RadarActivityTimeIntervalListElement)
agcls.AgTypeNameMap["RadarActivityTimeIntervalListElement"] = RadarActivityTimeIntervalListElement

class RadarActivityTimeIntervalListCollection(SupportsDeleteCallback):
    """Represents a collection of time interval activity elements."""

    _num_methods = 9
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _insert_at_method_offset = 5
    _add_method_offset = 6
    _import_from_component_method_offset = 7
    _load_from_file_method_offset = 8
    _clear_method_offset = 9
    _metadata = {
        "iid_data" : (4615619167972199822, 3212600543664296332),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarActivityTimeIntervalListCollection)
    def __iter__(self):
        """Create an iterator for the RadarActivityTimeIntervalListCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "RadarActivityTimeIntervalListElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(RadarActivityTimeIntervalListCollection._metadata, RadarActivityTimeIntervalListCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "RadarActivityTimeIntervalListElement":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(RadarActivityTimeIntervalListCollection._metadata, RadarActivityTimeIntervalListCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(RadarActivityTimeIntervalListCollection._metadata, RadarActivityTimeIntervalListCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the element with the specified index."""
        return self._intf.invoke(RadarActivityTimeIntervalListCollection._metadata, RadarActivityTimeIntervalListCollection._remove_at_metadata, index)

    _insert_at_metadata = { "offset" : _insert_at_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def insert_at(self, index:int) -> "RadarActivityTimeIntervalListElement":
        """Insert a new element at the supplied index."""
        return self._intf.invoke(RadarActivityTimeIntervalListCollection._metadata, RadarActivityTimeIntervalListCollection._insert_at_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "RadarActivityTimeIntervalListElement":
        """Add a new element to the collection."""
        return self._intf.invoke(RadarActivityTimeIntervalListCollection._metadata, RadarActivityTimeIntervalListCollection._add_metadata, OutArg())

    _import_from_component_metadata = { "offset" : _import_from_component_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def import_from_component(self, identifier:str) -> None:
        """Import time intervals from specified time component."""
        return self._intf.invoke(RadarActivityTimeIntervalListCollection._metadata, RadarActivityTimeIntervalListCollection._import_from_component_metadata, identifier)

    _load_from_file_metadata = { "offset" : _load_from_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def load_from_file(self, path:str) -> None:
        """Load time intervals from file."""
        return self._intf.invoke(RadarActivityTimeIntervalListCollection._metadata, RadarActivityTimeIntervalListCollection._load_from_file_metadata, path)

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear all elements from the collection."""
        return self._intf.invoke(RadarActivityTimeIntervalListCollection._metadata, RadarActivityTimeIntervalListCollection._clear_metadata, )

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type RadarActivityTimeIntervalListCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarActivityTimeIntervalListCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarActivityTimeIntervalListCollection, [RadarActivityTimeIntervalListCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5445869518228026332, 13834745861933136027), RadarActivityTimeIntervalListCollection)
agcls.AgTypeNameMap["RadarActivityTimeIntervalListCollection"] = RadarActivityTimeIntervalListCollection

class RadarActivityTimeIntervalList(IRadarActivity, SupportsDeleteCallback):
    """Provide access to the properties and methods defining radar time interval list activity."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_intervals_method_offset = 1
    _metadata = {
        "iid_data" : (5425905143501198693, 12717051940703086256),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarActivityTimeIntervalList)

    _get_time_intervals_metadata = { "offset" : _get_time_intervals_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_intervals(self) -> "RadarActivityTimeIntervalListCollection":
        """Get the time components collection."""
        return self._intf.get_property(RadarActivityTimeIntervalList._metadata, RadarActivityTimeIntervalList._get_time_intervals_metadata)

    _property_names[time_intervals] = "time_intervals"

    def __init__(self, source_object=None):
        """Construct an object of type RadarActivityTimeIntervalList."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarActivityTimeIntervalList)
        IRadarActivity.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarActivity._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarActivityTimeIntervalList, [RadarActivityTimeIntervalList, IRadarActivity])

agcls.AgClassCatalog.add_catalog_entry((5539305436078341344, 10747398150265659012), RadarActivityTimeIntervalList)
agcls.AgTypeNameMap["RadarActivityTimeIntervalList"] = RadarActivityTimeIntervalList

class RadarAntennaBeam(SupportsDeleteCallback):
    """Provide access to a radar antenna beam."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_identifier_method_offset = 1
    _set_identifier_method_offset = 2
    _set_pointing_strategy_type_method_offset = 3
    _get_pointing_strategy_method_offset = 4
    _get_gain_method_offset = 5
    _set_gain_method_offset = 6
    _get_beam_width_method_offset = 7
    _set_beam_width_method_offset = 8
    _set_activity_type_method_offset = 9
    _get_activity_method_offset = 10
    _set_waveform_selection_strategy_method_offset = 11
    _get_waveform_selection_strategy_method_offset = 12
    _metadata = {
        "iid_data" : (5446334979453801164, 1043356677646649273),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarAntennaBeam)

    _get_identifier_metadata = { "offset" : _get_identifier_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def identifier(self) -> str:
        """Get or set the antenna beam identifier."""
        return self._intf.get_property(RadarAntennaBeam._metadata, RadarAntennaBeam._get_identifier_metadata)

    _set_identifier_metadata = { "offset" : _set_identifier_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @identifier.setter
    def identifier(self, value:str) -> None:
        return self._intf.set_property(RadarAntennaBeam._metadata, RadarAntennaBeam._set_identifier_metadata, value)

    _set_pointing_strategy_type_metadata = { "offset" : _set_pointing_strategy_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(PointingStrategyType),) }
    def set_pointing_strategy_type(self, value:"PointingStrategyType") -> None:
        """Set the current pointing strategy type."""
        return self._intf.invoke(RadarAntennaBeam._metadata, RadarAntennaBeam._set_pointing_strategy_type_metadata, value)

    _get_pointing_strategy_metadata = { "offset" : _get_pointing_strategy_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pointing_strategy(self) -> "IPointingStrategy":
        """Get the pointing strategy."""
        return self._intf.get_property(RadarAntennaBeam._metadata, RadarAntennaBeam._get_pointing_strategy_metadata)

    _get_gain_metadata = { "offset" : _get_gain_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def gain(self) -> float:
        """Get or set the antenna mainlobe gain."""
        return self._intf.get_property(RadarAntennaBeam._metadata, RadarAntennaBeam._get_gain_metadata)

    _set_gain_metadata = { "offset" : _set_gain_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @gain.setter
    def gain(self, value:float) -> None:
        return self._intf.set_property(RadarAntennaBeam._metadata, RadarAntennaBeam._set_gain_metadata, value)

    _get_beam_width_metadata = { "offset" : _get_beam_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def beam_width(self) -> float:
        """Get or set the antenna beamwidth."""
        return self._intf.get_property(RadarAntennaBeam._metadata, RadarAntennaBeam._get_beam_width_metadata)

    _set_beam_width_metadata = { "offset" : _set_beam_width_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @beam_width.setter
    def beam_width(self, value:float) -> None:
        return self._intf.set_property(RadarAntennaBeam._metadata, RadarAntennaBeam._set_beam_width_metadata, value)

    _set_activity_type_metadata = { "offset" : _set_activity_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(RadarActivityType),) }
    def set_activity_type(self, activity_type:"RadarActivityType") -> None:
        """Set the activity type."""
        return self._intf.invoke(RadarAntennaBeam._metadata, RadarAntennaBeam._set_activity_type_metadata, activity_type)

    _get_activity_metadata = { "offset" : _get_activity_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def activity(self) -> "IRadarActivity":
        """Get the activity."""
        return self._intf.get_property(RadarAntennaBeam._metadata, RadarAntennaBeam._get_activity_metadata)

    _set_waveform_selection_strategy_metadata = { "offset" : _set_waveform_selection_strategy_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(WaveformSelectionStrategyType),) }
    def set_waveform_selection_strategy(self, value:"WaveformSelectionStrategyType") -> None:
        """Set the current waveform selection strategy."""
        return self._intf.invoke(RadarAntennaBeam._metadata, RadarAntennaBeam._set_waveform_selection_strategy_metadata, value)

    _get_waveform_selection_strategy_metadata = { "offset" : _get_waveform_selection_strategy_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def waveform_selection_strategy(self) -> "IWaveformSelectionStrategy":
        """Get the waveform selection strategy."""
        return self._intf.get_property(RadarAntennaBeam._metadata, RadarAntennaBeam._get_waveform_selection_strategy_metadata)

    _property_names[identifier] = "identifier"
    _property_names[pointing_strategy] = "pointing_strategy"
    _property_names[gain] = "gain"
    _property_names[beam_width] = "beam_width"
    _property_names[activity] = "activity"
    _property_names[waveform_selection_strategy] = "waveform_selection_strategy"

    def __init__(self, source_object=None):
        """Construct an object of type RadarAntennaBeam."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarAntennaBeam)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarAntennaBeam, [RadarAntennaBeam, ])

agcls.AgClassCatalog.add_catalog_entry((4697400013277890367, 13181696105883858581), RadarAntennaBeam)
agcls.AgTypeNameMap["RadarAntennaBeam"] = RadarAntennaBeam

class RadarAntennaBeamCollection(SupportsDeleteCallback):
    """Represents a collection of antenna beams."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _insert_at_method_offset = 5
    _add_method_offset = 6
    _duplicate_beam_method_offset = 7
    _metadata = {
        "iid_data" : (5428808121994393180, 10792576647552632757),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarAntennaBeamCollection)
    def __iter__(self):
        """Create an iterator for the RadarAntennaBeamCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "RadarAntennaBeam":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(RadarAntennaBeamCollection._metadata, RadarAntennaBeamCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "RadarAntennaBeam":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(RadarAntennaBeamCollection._metadata, RadarAntennaBeamCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(RadarAntennaBeamCollection._metadata, RadarAntennaBeamCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the layer with the specified index."""
        return self._intf.invoke(RadarAntennaBeamCollection._metadata, RadarAntennaBeamCollection._remove_at_metadata, index)

    _insert_at_metadata = { "offset" : _insert_at_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def insert_at(self, index:int) -> "RadarAntennaBeam":
        """Insert a new beam at the supplied index."""
        return self._intf.invoke(RadarAntennaBeamCollection._metadata, RadarAntennaBeamCollection._insert_at_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "RadarAntennaBeam":
        """Add a new beam to the collection."""
        return self._intf.invoke(RadarAntennaBeamCollection._metadata, RadarAntennaBeamCollection._add_metadata, OutArg())

    _duplicate_beam_metadata = { "offset" : _duplicate_beam_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def duplicate_beam(self, index:int) -> "RadarAntennaBeam":
        """Duplicates the beam at the specified index."""
        return self._intf.invoke(RadarAntennaBeamCollection._metadata, RadarAntennaBeamCollection._duplicate_beam_metadata, index, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type RadarAntennaBeamCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarAntennaBeamCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarAntennaBeamCollection, [RadarAntennaBeamCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5466758104807416207, 5504131188765858188), RadarAntennaBeamCollection)
agcls.AgTypeNameMap["RadarAntennaBeamCollection"] = RadarAntennaBeamCollection

class AntennaSystem(SupportsDeleteCallback):
    """Provide access to the properties for a antenna system."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_antenna_beams_method_offset = 1
    _set_beam_selection_strategy_type_method_offset = 2
    _get_beam_selection_strategy_method_offset = 3
    _metadata = {
        "iid_data" : (4960279960940646539, 4695606188085525133),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaSystem)

    _get_antenna_beams_metadata = { "offset" : _get_antenna_beams_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def antenna_beams(self) -> "AntennaBeamCollection":
        """Get the antenna beam collection."""
        return self._intf.get_property(AntennaSystem._metadata, AntennaSystem._get_antenna_beams_metadata)

    _set_beam_selection_strategy_type_metadata = { "offset" : _set_beam_selection_strategy_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(BeamSelectionStrategyType),) }
    def set_beam_selection_strategy_type(self, value:"BeamSelectionStrategyType") -> None:
        """Set the beam selection strategy type."""
        return self._intf.invoke(AntennaSystem._metadata, AntennaSystem._set_beam_selection_strategy_type_metadata, value)

    _get_beam_selection_strategy_metadata = { "offset" : _get_beam_selection_strategy_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def beam_selection_strategy(self) -> "IAntennaBeamSelectionStrategy":
        """Get the beam selection strategy."""
        return self._intf.get_property(AntennaSystem._metadata, AntennaSystem._get_beam_selection_strategy_metadata)

    _property_names[antenna_beams] = "antenna_beams"
    _property_names[beam_selection_strategy] = "beam_selection_strategy"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaSystem."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaSystem)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaSystem, [AntennaSystem, ])

agcls.AgClassCatalog.add_catalog_entry((4889610816906970303, 7197731385059210133), AntennaSystem)
agcls.AgTypeNameMap["AntennaSystem"] = AntennaSystem

class AntennaBeam(IAntennaBeam, SupportsDeleteCallback):
    """Class defining an antenna beam."""
    def __init__(self, source_object=None):
        """Construct an object of type AntennaBeam."""
        SupportsDeleteCallback.__init__(self)
        IAntennaBeam.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaBeam._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaBeam, [IAntennaBeam])

agcls.AgClassCatalog.add_catalog_entry((5637777688921681652, 11802034063735059340), AntennaBeam)
agcls.AgTypeNameMap["AntennaBeam"] = AntennaBeam

class AntennaBeamTransmit(IAntennaBeam, SupportsDeleteCallback):
    """Provide access to an transmit antenna beam."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_power_method_offset = 1
    _set_power_method_offset = 2
    _metadata = {
        "iid_data" : (5059716715750546400, 5670227301849619351),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaBeamTransmit)

    _get_power_metadata = { "offset" : _get_power_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def power(self) -> float:
        """Get or set the beam power."""
        return self._intf.get_property(AntennaBeamTransmit._metadata, AntennaBeamTransmit._get_power_metadata)

    _set_power_metadata = { "offset" : _set_power_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @power.setter
    def power(self, value:float) -> None:
        return self._intf.set_property(AntennaBeamTransmit._metadata, AntennaBeamTransmit._set_power_metadata, value)

    _property_names[power] = "power"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaBeamTransmit."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaBeamTransmit)
        IAntennaBeam.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaBeam._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaBeamTransmit, [AntennaBeamTransmit, IAntennaBeam])

agcls.AgClassCatalog.add_catalog_entry((5513531058909895695, 6694401392782409144), AntennaBeamTransmit)
agcls.AgTypeNameMap["AntennaBeamTransmit"] = AntennaBeamTransmit

class AntennaBeamCollection(SupportsDeleteCallback):
    """Represents a collection of antenna beams."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _insert_at_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5353642116241380553, 12133695776714040231),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaBeamCollection)
    def __iter__(self):
        """Create an iterator for the AntennaBeamCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "IAntennaBeam":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(AntennaBeamCollection._metadata, AntennaBeamCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "IAntennaBeam":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(AntennaBeamCollection._metadata, AntennaBeamCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(AntennaBeamCollection._metadata, AntennaBeamCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    def remove_at(self, index:int) -> None:
        """Remove the layer with the specified index."""
        return self._intf.invoke(AntennaBeamCollection._metadata, AntennaBeamCollection._remove_at_metadata, index)

    _insert_at_metadata = { "offset" : _insert_at_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def insert_at(self, index:int) -> "IAntennaBeam":
        """Insert a new beam at the supplied index."""
        return self._intf.invoke(AntennaBeamCollection._metadata, AntennaBeamCollection._insert_at_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "IAntennaBeam":
        """Add a new beam to the collection."""
        return self._intf.invoke(AntennaBeamCollection._metadata, AntennaBeamCollection._add_metadata, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaBeamCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaBeamCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaBeamCollection, [AntennaBeamCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5334664285706777267, 4557967195616705939), AntennaBeamCollection)
agcls.AgTypeNameMap["AntennaBeamCollection"] = AntennaBeamCollection

class AntennaBeamSelectionStrategy(IAntennaBeamSelectionStrategy, SupportsDeleteCallback):
    """Class defining a beam selection strategy."""
    def __init__(self, source_object=None):
        """Construct an object of type AntennaBeamSelectionStrategy."""
        SupportsDeleteCallback.__init__(self)
        IAntennaBeamSelectionStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaBeamSelectionStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaBeamSelectionStrategy, [IAntennaBeamSelectionStrategy])

agcls.AgClassCatalog.add_catalog_entry((5625235233229446640, 15286570254765221265), AntennaBeamSelectionStrategy)
agcls.AgTypeNameMap["AntennaBeamSelectionStrategy"] = AntennaBeamSelectionStrategy

class AntennaBeamSelectionStrategyAggregate(IAntennaBeamSelectionStrategy, SupportsDeleteCallback):
    """Class defining a aggregated beam selection strategy."""
    def __init__(self, source_object=None):
        """Construct an object of type AntennaBeamSelectionStrategyAggregate."""
        SupportsDeleteCallback.__init__(self)
        IAntennaBeamSelectionStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaBeamSelectionStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaBeamSelectionStrategyAggregate, [IAntennaBeamSelectionStrategy])

agcls.AgClassCatalog.add_catalog_entry((5124931158529452329, 12664469795048211116), AntennaBeamSelectionStrategyAggregate)
agcls.AgTypeNameMap["AntennaBeamSelectionStrategyAggregate"] = AntennaBeamSelectionStrategyAggregate

class AntennaBeamSelectionStrategyMaximumGain(IAntennaBeamSelectionStrategy, SupportsDeleteCallback):
    """Class defining a maximum gain beam selection strategy."""
    def __init__(self, source_object=None):
        """Construct an object of type AntennaBeamSelectionStrategyMaximumGain."""
        SupportsDeleteCallback.__init__(self)
        IAntennaBeamSelectionStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaBeamSelectionStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaBeamSelectionStrategyMaximumGain, [IAntennaBeamSelectionStrategy])

agcls.AgClassCatalog.add_catalog_entry((4932349555976944931, 12782842748568690332), AntennaBeamSelectionStrategyMaximumGain)
agcls.AgTypeNameMap["AntennaBeamSelectionStrategyMaximumGain"] = AntennaBeamSelectionStrategyMaximumGain

class AntennaBeamSelectionStrategyMinimumBoresightAngle(IAntennaBeamSelectionStrategy, SupportsDeleteCallback):
    """Class defining a minimum boresight angle beam selection strategy."""
    def __init__(self, source_object=None):
        """Construct an object of type AntennaBeamSelectionStrategyMinimumBoresightAngle."""
        SupportsDeleteCallback.__init__(self)
        IAntennaBeamSelectionStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaBeamSelectionStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaBeamSelectionStrategyMinimumBoresightAngle, [IAntennaBeamSelectionStrategy])

agcls.AgClassCatalog.add_catalog_entry((5072700393399249900, 16431453141093090474), AntennaBeamSelectionStrategyMinimumBoresightAngle)
agcls.AgTypeNameMap["AntennaBeamSelectionStrategyMinimumBoresightAngle"] = AntennaBeamSelectionStrategyMinimumBoresightAngle

class AntennaBeamSelectionStrategyScriptPlugin(IAntennaBeamSelectionStrategy, SupportsDeleteCallback):
    """Provide access to a script plugin beam selection strategy."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5762080127350336417, 17612921355173805440),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AntennaBeamSelectionStrategyScriptPlugin)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the script filename."""
        return self._intf.get_property(AntennaBeamSelectionStrategyScriptPlugin._metadata, AntennaBeamSelectionStrategyScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(AntennaBeamSelectionStrategyScriptPlugin._metadata, AntennaBeamSelectionStrategyScriptPlugin._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type AntennaBeamSelectionStrategyScriptPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AntennaBeamSelectionStrategyScriptPlugin)
        IAntennaBeamSelectionStrategy.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAntennaBeamSelectionStrategy._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AntennaBeamSelectionStrategyScriptPlugin, [AntennaBeamSelectionStrategyScriptPlugin, IAntennaBeamSelectionStrategy])

agcls.AgClassCatalog.add_catalog_entry((5163716519952654814, 2477260774832828863), AntennaBeamSelectionStrategyScriptPlugin)
agcls.AgTypeNameMap["AntennaBeamSelectionStrategyScriptPlugin"] = AntennaBeamSelectionStrategyScriptPlugin

class CommSystem(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an CommSystem object."""

    _num_methods = 23
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_transmitters_method_offset = 1
    _get_receivers_method_offset = 2
    _get_interference_sources_method_offset = 3
    _get_calculate_interference_method_offset = 4
    _set_calculate_interference_method_offset = 5
    _get_reference_bandwidth_method_offset = 6
    _set_reference_bandwidth_method_offset = 7
    _get_constraining_role_method_offset = 8
    _set_constraining_role_method_offset = 9
    _get_time_period_method_offset = 10
    _get_step_size_method_offset = 11
    _set_step_size_method_offset = 12
    _get_save_mode_method_offset = 13
    _set_save_mode_method_offset = 14
    _get_access_options_method_offset = 15
    _set_link_selection_criteria_type_method_offset = 16
    _get_link_selection_criteria_method_offset = 17
    _get_graphics_method_offset = 18
    _get_graphics_3d_method_offset = 19
    _get_include_receiver_interference_emitters_method_offset = 20
    _set_include_receiver_interference_emitters_method_offset = 21
    _compute_method_offset = 22
    _clear_method_offset = 23
    _metadata = {
        "iid_data" : (5611461213698472912, 17651265900364289681),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommSystem)

    _get_transmitters_metadata = { "offset" : _get_transmitters_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def transmitters(self) -> "ObjectLinkCollection":
        """Get the transmitter collection."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_transmitters_metadata)

    _get_receivers_metadata = { "offset" : _get_receivers_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def receivers(self) -> "ObjectLinkCollection":
        """Get the receiver collection."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_receivers_metadata)

    _get_interference_sources_metadata = { "offset" : _get_interference_sources_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def interference_sources(self) -> "ObjectLinkCollection":
        """Get the interference source collection."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_interference_sources_metadata)

    _get_calculate_interference_metadata = { "offset" : _get_calculate_interference_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def calculate_interference(self) -> bool:
        """Get or set the option for calculating interference."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_calculate_interference_metadata)

    _set_calculate_interference_metadata = { "offset" : _set_calculate_interference_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @calculate_interference.setter
    def calculate_interference(self, value:bool) -> None:
        return self._intf.set_property(CommSystem._metadata, CommSystem._set_calculate_interference_metadata, value)

    _get_reference_bandwidth_metadata = { "offset" : _get_reference_bandwidth_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CommSystemReferenceBandwidth),) }
    @property
    def reference_bandwidth(self) -> "CommSystemReferenceBandwidth":
        """Get or set the reference bandwidth."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_reference_bandwidth_metadata)

    _set_reference_bandwidth_metadata = { "offset" : _set_reference_bandwidth_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CommSystemReferenceBandwidth),) }
    @reference_bandwidth.setter
    def reference_bandwidth(self, value:"CommSystemReferenceBandwidth") -> None:
        return self._intf.set_property(CommSystem._metadata, CommSystem._set_reference_bandwidth_metadata, value)

    _get_constraining_role_metadata = { "offset" : _get_constraining_role_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CommSystemConstrainingRole),) }
    @property
    def constraining_role(self) -> "CommSystemConstrainingRole":
        """Get or set the constraining role."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_constraining_role_metadata)

    _set_constraining_role_metadata = { "offset" : _set_constraining_role_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CommSystemConstrainingRole),) }
    @constraining_role.setter
    def constraining_role(self, value:"CommSystemConstrainingRole") -> None:
        return self._intf.set_property(CommSystem._metadata, CommSystem._set_constraining_role_metadata, value)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Allow configuring the time period."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_time_period_metadata)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step_size(self) -> float:
        """Get or set the step size."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_step_size_metadata)

    _set_step_size_metadata = { "offset" : _set_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step_size.setter
    def step_size(self, value:float) -> None:
        return self._intf.set_property(CommSystem._metadata, CommSystem._set_step_size_metadata, value)

    _get_save_mode_metadata = { "offset" : _get_save_mode_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CommSystemSaveMode),) }
    @property
    def save_mode(self) -> "CommSystemSaveMode":
        """Get or set the save mode."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_save_mode_metadata)

    _set_save_mode_metadata = { "offset" : _set_save_mode_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CommSystemSaveMode),) }
    @save_mode.setter
    def save_mode(self, value:"CommSystemSaveMode") -> None:
        return self._intf.set_property(CommSystem._metadata, CommSystem._set_save_mode_metadata, value)

    _get_access_options_metadata = { "offset" : _get_access_options_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_options(self) -> "CommSystemAccessOptions":
        """Get the access options."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_access_options_metadata)

    _set_link_selection_criteria_type_metadata = { "offset" : _set_link_selection_criteria_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CommSystemLinkSelectionCriteriaType),) }
    def set_link_selection_criteria_type(self, value:"CommSystemLinkSelectionCriteriaType") -> None:
        """Set the link selection criteria by name."""
        return self._intf.invoke(CommSystem._metadata, CommSystem._set_link_selection_criteria_type_metadata, value)

    _get_link_selection_criteria_metadata = { "offset" : _get_link_selection_criteria_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def link_selection_criteria(self) -> "ICommSystemLinkSelectionCriteria":
        """Get the link selection criteria."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_link_selection_criteria_metadata)

    _get_graphics_metadata = { "offset" : _get_graphics_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics(self) -> "CommSystemGraphics":
        """Get the 2D Graphics properties for the CommSystem."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_graphics_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "CommSystemGraphics3D":
        """Get the 3D Graphics properties for the CommSystem."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_graphics_3d_metadata)

    _get_include_receiver_interference_emitters_metadata = { "offset" : _get_include_receiver_interference_emitters_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_receiver_interference_emitters(self) -> bool:
        """Get or set whether the emitters from each receiver is included in their interference computation."""
        return self._intf.get_property(CommSystem._metadata, CommSystem._get_include_receiver_interference_emitters_metadata)

    _set_include_receiver_interference_emitters_metadata = { "offset" : _set_include_receiver_interference_emitters_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_receiver_interference_emitters.setter
    def include_receiver_interference_emitters(self, value:bool) -> None:
        return self._intf.set_property(CommSystem._metadata, CommSystem._set_include_receiver_interference_emitters_metadata, value)

    _compute_metadata = { "offset" : _compute_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def compute(self) -> None:
        """Unconditionally computes the CommSystem."""
        return self._intf.invoke(CommSystem._metadata, CommSystem._compute_metadata, )

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Unconditionally clears any computed values of the CommSystem."""
        return self._intf.invoke(CommSystem._metadata, CommSystem._clear_metadata, )

    _property_names[transmitters] = "transmitters"
    _property_names[receivers] = "receivers"
    _property_names[interference_sources] = "interference_sources"
    _property_names[calculate_interference] = "calculate_interference"
    _property_names[reference_bandwidth] = "reference_bandwidth"
    _property_names[constraining_role] = "constraining_role"
    _property_names[time_period] = "time_period"
    _property_names[step_size] = "step_size"
    _property_names[save_mode] = "save_mode"
    _property_names[access_options] = "access_options"
    _property_names[link_selection_criteria] = "link_selection_criteria"
    _property_names[graphics] = "graphics"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[include_receiver_interference_emitters] = "include_receiver_interference_emitters"

    def __init__(self, source_object=None):
        """Construct an object of type CommSystem."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommSystem)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystem, [CommSystem, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((4805665330422676279, 8097241134957647537), CommSystem)
agcls.AgTypeNameMap["CommSystem"] = CommSystem

class CommSystemGraphics(SupportsDeleteCallback):
    """CommSystemGraphics Interface for a CommSystem's 2D Graphics properties."""

    _num_methods = 26
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _get_show_desired_links_method_offset = 3
    _set_show_desired_links_method_offset = 4
    _get_desired_links_color_method_offset = 5
    _set_desired_links_color_method_offset = 6
    _get_desired_links_line_style_method_offset = 7
    _set_desired_links_line_style_method_offset = 8
    _get_desired_links_line_width_method_offset = 9
    _set_desired_links_line_width_method_offset = 10
    _get_show_interference_links_method_offset = 11
    _set_show_interference_links_method_offset = 12
    _get_interference_links_color_method_offset = 13
    _set_interference_links_color_method_offset = 14
    _get_interference_links_line_style_method_offset = 15
    _set_interference_links_line_style_method_offset = 16
    _get_interference_links_line_width_method_offset = 17
    _set_interference_links_line_width_method_offset = 18
    _get_show_primary_interferer_link_method_offset = 19
    _set_show_primary_interferer_link_method_offset = 20
    _get_primary_interferer_link_color_method_offset = 21
    _set_primary_interferer_link_color_method_offset = 22
    _get_primary_interferer_link_line_style_method_offset = 23
    _set_primary_interferer_link_line_style_method_offset = 24
    _get_primary_interferer_link_line_width_method_offset = 25
    _set_primary_interferer_link_line_width_method_offset = 26
    _metadata = {
        "iid_data" : (5128681498876461151, 6789610539667125120),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommSystemGraphics)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Opt whether to display graphics for the commsystem object."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, value:bool) -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_show_metadata, value)

    _get_show_desired_links_metadata = { "offset" : _get_show_desired_links_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_desired_links(self) -> bool:
        """Enable the desired links line graphics."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_show_desired_links_metadata)

    _set_show_desired_links_metadata = { "offset" : _set_show_desired_links_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_desired_links.setter
    def show_desired_links(self, value:bool) -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_show_desired_links_metadata, value)

    _get_desired_links_color_metadata = { "offset" : _get_desired_links_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def desired_links_color(self) -> agcolor.Color:
        """The desired links line color."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_desired_links_color_metadata)

    _set_desired_links_color_metadata = { "offset" : _set_desired_links_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @desired_links_color.setter
    def desired_links_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_desired_links_color_metadata, value)

    _get_desired_links_line_style_metadata = { "offset" : _get_desired_links_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def desired_links_line_style(self) -> "LineStyle":
        """Select the line style in which desired links line graphics display from the LineStyle enumeration."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_desired_links_line_style_metadata)

    _set_desired_links_line_style_metadata = { "offset" : _set_desired_links_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @desired_links_line_style.setter
    def desired_links_line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_desired_links_line_style_metadata, value)

    _get_desired_links_line_width_metadata = { "offset" : _get_desired_links_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def desired_links_line_width(self) -> "LineWidth":
        """Select the line width in which desired links line graphics display from the LineWidth enumeration."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_desired_links_line_width_metadata)

    _set_desired_links_line_width_metadata = { "offset" : _set_desired_links_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @desired_links_line_width.setter
    def desired_links_line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_desired_links_line_width_metadata, value)

    _get_show_interference_links_metadata = { "offset" : _get_show_interference_links_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_interference_links(self) -> bool:
        """Enable the interference links line graphics."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_show_interference_links_metadata)

    _set_show_interference_links_metadata = { "offset" : _set_show_interference_links_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_interference_links.setter
    def show_interference_links(self, value:bool) -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_show_interference_links_metadata, value)

    _get_interference_links_color_metadata = { "offset" : _get_interference_links_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def interference_links_color(self) -> agcolor.Color:
        """The interference links line color."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_interference_links_color_metadata)

    _set_interference_links_color_metadata = { "offset" : _set_interference_links_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @interference_links_color.setter
    def interference_links_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_interference_links_color_metadata, value)

    _get_interference_links_line_style_metadata = { "offset" : _get_interference_links_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def interference_links_line_style(self) -> "LineStyle":
        """Select the line style in which interference links line graphics display from the LineStyle enumeration."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_interference_links_line_style_metadata)

    _set_interference_links_line_style_metadata = { "offset" : _set_interference_links_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @interference_links_line_style.setter
    def interference_links_line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_interference_links_line_style_metadata, value)

    _get_interference_links_line_width_metadata = { "offset" : _get_interference_links_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def interference_links_line_width(self) -> "LineWidth":
        """Select the line width in which interference links line graphics display from the LineWidth enumeration."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_interference_links_line_width_metadata)

    _set_interference_links_line_width_metadata = { "offset" : _set_interference_links_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @interference_links_line_width.setter
    def interference_links_line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_interference_links_line_width_metadata, value)

    _get_show_primary_interferer_link_metadata = { "offset" : _get_show_primary_interferer_link_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_primary_interferer_link(self) -> bool:
        """Enable the primary interferer link line graphics."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_show_primary_interferer_link_metadata)

    _set_show_primary_interferer_link_metadata = { "offset" : _set_show_primary_interferer_link_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_primary_interferer_link.setter
    def show_primary_interferer_link(self, value:bool) -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_show_primary_interferer_link_metadata, value)

    _get_primary_interferer_link_color_metadata = { "offset" : _get_primary_interferer_link_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def primary_interferer_link_color(self) -> agcolor.Color:
        """The primary interferer link line color."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_primary_interferer_link_color_metadata)

    _set_primary_interferer_link_color_metadata = { "offset" : _set_primary_interferer_link_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @primary_interferer_link_color.setter
    def primary_interferer_link_color(self, value:agcolor.Color) -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_primary_interferer_link_color_metadata, value)

    _get_primary_interferer_link_line_style_metadata = { "offset" : _get_primary_interferer_link_line_style_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @property
    def primary_interferer_link_line_style(self) -> "LineStyle":
        """Select the line style in which the primary interferer link line graphics display from the LineStyle enumeration."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_primary_interferer_link_line_style_metadata)

    _set_primary_interferer_link_line_style_metadata = { "offset" : _set_primary_interferer_link_line_style_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineStyle),) }
    @primary_interferer_link_line_style.setter
    def primary_interferer_link_line_style(self, value:"LineStyle") -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_primary_interferer_link_line_style_metadata, value)

    _get_primary_interferer_link_line_width_metadata = { "offset" : _get_primary_interferer_link_line_width_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @property
    def primary_interferer_link_line_width(self) -> "LineWidth":
        """Select the line width in which the primary interferer link line graphics display from the LineWidth enumeration."""
        return self._intf.get_property(CommSystemGraphics._metadata, CommSystemGraphics._get_primary_interferer_link_line_width_metadata)

    _set_primary_interferer_link_line_width_metadata = { "offset" : _set_primary_interferer_link_line_width_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LineWidth),) }
    @primary_interferer_link_line_width.setter
    def primary_interferer_link_line_width(self, value:"LineWidth") -> None:
        return self._intf.set_property(CommSystemGraphics._metadata, CommSystemGraphics._set_primary_interferer_link_line_width_metadata, value)

    _property_names[show] = "show"
    _property_names[show_desired_links] = "show_desired_links"
    _property_names[desired_links_color] = "desired_links_color"
    _property_names[desired_links_line_style] = "desired_links_line_style"
    _property_names[desired_links_line_width] = "desired_links_line_width"
    _property_names[show_interference_links] = "show_interference_links"
    _property_names[interference_links_color] = "interference_links_color"
    _property_names[interference_links_line_style] = "interference_links_line_style"
    _property_names[interference_links_line_width] = "interference_links_line_width"
    _property_names[show_primary_interferer_link] = "show_primary_interferer_link"
    _property_names[primary_interferer_link_color] = "primary_interferer_link_color"
    _property_names[primary_interferer_link_line_style] = "primary_interferer_link_line_style"
    _property_names[primary_interferer_link_line_width] = "primary_interferer_link_line_width"

    def __init__(self, source_object=None):
        """Construct an object of type CommSystemGraphics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommSystemGraphics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemGraphics, [CommSystemGraphics, ])

agcls.AgClassCatalog.add_catalog_entry((5074366318390499996, 654734739522059453), CommSystemGraphics)
agcls.AgTypeNameMap["CommSystemGraphics"] = CommSystemGraphics

class CommSystemGraphics3D(SupportsDeleteCallback):
    """CommSystemGraphics3D Interface for a CommSystem's 3D Graphics properties."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_desired_links_method_offset = 1
    _set_show_desired_links_method_offset = 2
    _get_show_interference_links_method_offset = 3
    _set_show_interference_links_method_offset = 4
    _get_show_primary_interferer_link_method_offset = 5
    _set_show_primary_interferer_link_method_offset = 6
    _metadata = {
        "iid_data" : (5574530452786433011, 14840204792507069605),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommSystemGraphics3D)

    _get_show_desired_links_metadata = { "offset" : _get_show_desired_links_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_desired_links(self) -> bool:
        """Enable the desired links line graphics."""
        return self._intf.get_property(CommSystemGraphics3D._metadata, CommSystemGraphics3D._get_show_desired_links_metadata)

    _set_show_desired_links_metadata = { "offset" : _set_show_desired_links_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_desired_links.setter
    def show_desired_links(self, value:bool) -> None:
        return self._intf.set_property(CommSystemGraphics3D._metadata, CommSystemGraphics3D._set_show_desired_links_metadata, value)

    _get_show_interference_links_metadata = { "offset" : _get_show_interference_links_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_interference_links(self) -> bool:
        """Enable the interference links line graphics."""
        return self._intf.get_property(CommSystemGraphics3D._metadata, CommSystemGraphics3D._get_show_interference_links_metadata)

    _set_show_interference_links_metadata = { "offset" : _set_show_interference_links_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_interference_links.setter
    def show_interference_links(self, value:bool) -> None:
        return self._intf.set_property(CommSystemGraphics3D._metadata, CommSystemGraphics3D._set_show_interference_links_metadata, value)

    _get_show_primary_interferer_link_metadata = { "offset" : _get_show_primary_interferer_link_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_primary_interferer_link(self) -> bool:
        """Enable the primary interferer link line graphics."""
        return self._intf.get_property(CommSystemGraphics3D._metadata, CommSystemGraphics3D._get_show_primary_interferer_link_metadata)

    _set_show_primary_interferer_link_metadata = { "offset" : _set_show_primary_interferer_link_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_primary_interferer_link.setter
    def show_primary_interferer_link(self, value:bool) -> None:
        return self._intf.set_property(CommSystemGraphics3D._metadata, CommSystemGraphics3D._set_show_primary_interferer_link_metadata, value)

    _property_names[show_desired_links] = "show_desired_links"
    _property_names[show_interference_links] = "show_interference_links"
    _property_names[show_primary_interferer_link] = "show_primary_interferer_link"

    def __init__(self, source_object=None):
        """Construct an object of type CommSystemGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommSystemGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemGraphics3D, [CommSystemGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5275557832186266028, 17494632753254964391), CommSystemGraphics3D)
agcls.AgTypeNameMap["CommSystemGraphics3D"] = CommSystemGraphics3D

class CommSystemAccessOptions(SupportsDeleteCallback):
    """Provide access to the CommSystem object access options."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enable_light_time_delay_method_offset = 1
    _set_enable_light_time_delay_method_offset = 2
    _get_time_light_delay_convergence_method_offset = 3
    _set_time_light_delay_convergence_method_offset = 4
    _get_aberration_type_method_offset = 5
    _set_aberration_type_method_offset = 6
    _get_event_detection_type_method_offset = 7
    _set_event_detection_type_method_offset = 8
    _get_event_detection_method_offset = 9
    _get_sampling_method_type_method_offset = 10
    _set_sampling_method_type_method_offset = 11
    _get_sampling_method_method_offset = 12
    _metadata = {
        "iid_data" : (4624243920688288720, 10108160675749577869),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommSystemAccessOptions)

    _get_enable_light_time_delay_metadata = { "offset" : _get_enable_light_time_delay_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_light_time_delay(self) -> bool:
        """Specify whether to take light time delay into account in the computation."""
        return self._intf.get_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._get_enable_light_time_delay_metadata)

    _set_enable_light_time_delay_metadata = { "offset" : _set_enable_light_time_delay_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_light_time_delay.setter
    def enable_light_time_delay(self, value:bool) -> None:
        return self._intf.set_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._set_enable_light_time_delay_metadata, value)

    _get_time_light_delay_convergence_metadata = { "offset" : _get_time_light_delay_convergence_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_light_delay_convergence(self) -> float:
        """Get or set the tolerance used when iterating to determine the light time delay. Uses Time Dimension."""
        return self._intf.get_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._get_time_light_delay_convergence_metadata)

    _set_time_light_delay_convergence_metadata = { "offset" : _set_time_light_delay_convergence_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_light_delay_convergence.setter
    def time_light_delay_convergence(self, value:float) -> None:
        return self._intf.set_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._set_time_light_delay_convergence_metadata, value)

    _get_aberration_type_metadata = { "offset" : _get_aberration_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AberrationType),) }
    @property
    def aberration_type(self) -> "AberrationType":
        """Get or set the model of aberration to be used in access computations."""
        return self._intf.get_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._get_aberration_type_metadata)

    _set_aberration_type_metadata = { "offset" : _set_aberration_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AberrationType),) }
    @aberration_type.setter
    def aberration_type(self, value:"AberrationType") -> None:
        return self._intf.set_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._set_aberration_type_metadata, value)

    _get_event_detection_type_metadata = { "offset" : _get_event_detection_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CommSystemAccessEventDetectionType),) }
    @property
    def event_detection_type(self) -> "CommSystemAccessEventDetectionType":
        """Get or set the event detection type."""
        return self._intf.get_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._get_event_detection_type_metadata)

    _set_event_detection_type_metadata = { "offset" : _set_event_detection_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CommSystemAccessEventDetectionType),) }
    @event_detection_type.setter
    def event_detection_type(self, value:"CommSystemAccessEventDetectionType") -> None:
        return self._intf.set_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._set_event_detection_type_metadata, value)

    _get_event_detection_metadata = { "offset" : _get_event_detection_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def event_detection(self) -> "ICommSystemAccessEventDetection":
        """Get the event detection algorithm."""
        return self._intf.get_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._get_event_detection_metadata)

    _get_sampling_method_type_metadata = { "offset" : _get_sampling_method_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(CommSystemAccessSamplingMethodType),) }
    @property
    def sampling_method_type(self) -> "CommSystemAccessSamplingMethodType":
        """Get or set the sampling method type."""
        return self._intf.get_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._get_sampling_method_type_metadata)

    _set_sampling_method_type_metadata = { "offset" : _set_sampling_method_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(CommSystemAccessSamplingMethodType),) }
    @sampling_method_type.setter
    def sampling_method_type(self, value:"CommSystemAccessSamplingMethodType") -> None:
        return self._intf.set_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._set_sampling_method_type_metadata, value)

    _get_sampling_method_metadata = { "offset" : _get_sampling_method_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def sampling_method(self) -> "ICommSystemAccessSamplingMethod":
        """Get the sampling method."""
        return self._intf.get_property(CommSystemAccessOptions._metadata, CommSystemAccessOptions._get_sampling_method_metadata)

    _property_names[enable_light_time_delay] = "enable_light_time_delay"
    _property_names[time_light_delay_convergence] = "time_light_delay_convergence"
    _property_names[aberration_type] = "aberration_type"
    _property_names[event_detection_type] = "event_detection_type"
    _property_names[event_detection] = "event_detection"
    _property_names[sampling_method_type] = "sampling_method_type"
    _property_names[sampling_method] = "sampling_method"

    def __init__(self, source_object=None):
        """Construct an object of type CommSystemAccessOptions."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommSystemAccessOptions)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemAccessOptions, [CommSystemAccessOptions, ])

agcls.AgClassCatalog.add_catalog_entry((5116615669083030143, 4142610312323226272), CommSystemAccessOptions)
agcls.AgTypeNameMap["CommSystemAccessOptions"] = CommSystemAccessOptions

class CommSystemAccessEventDetection(ICommSystemAccessEventDetection, SupportsDeleteCallback):
    """Class defining a CommSystem access options."""
    def __init__(self, source_object=None):
        """Construct an object of type CommSystemAccessEventDetection."""
        SupportsDeleteCallback.__init__(self)
        ICommSystemAccessEventDetection.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICommSystemAccessEventDetection._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemAccessEventDetection, [ICommSystemAccessEventDetection])

agcls.AgClassCatalog.add_catalog_entry((4759992393777031309, 6955167032049910933), CommSystemAccessEventDetection)
agcls.AgTypeNameMap["CommSystemAccessEventDetection"] = CommSystemAccessEventDetection

class CommSystemAccessEventDetectionSubsample(ICommSystemAccessEventDetection, SupportsDeleteCallback):
    """Provide access to the properties an access sub-sample event detection algorithm."""

    _num_methods = 6
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_convergence_method_offset = 1
    _set_time_convergence_method_offset = 2
    _get_absolute_tolerance_method_offset = 3
    _set_absolute_tolerance_method_offset = 4
    _get_relative_tolerance_method_offset = 5
    _set_relative_tolerance_method_offset = 6
    _metadata = {
        "iid_data" : (5530176989516668105, 5361943531226420887),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommSystemAccessEventDetectionSubsample)

    _get_time_convergence_metadata = { "offset" : _get_time_convergence_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_convergence(self) -> float:
        """Get or set the time convergence value for Access. Uses Time Dimension."""
        return self._intf.get_property(CommSystemAccessEventDetectionSubsample._metadata, CommSystemAccessEventDetectionSubsample._get_time_convergence_metadata)

    _set_time_convergence_metadata = { "offset" : _set_time_convergence_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_convergence.setter
    def time_convergence(self, value:float) -> None:
        return self._intf.set_property(CommSystemAccessEventDetectionSubsample._metadata, CommSystemAccessEventDetectionSubsample._set_time_convergence_metadata, value)

    _get_absolute_tolerance_metadata = { "offset" : _get_absolute_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def absolute_tolerance(self) -> float:
        """Get or set the criterion used for convergence in value for values near 0. An event is said to be detected when a constraint value's difference compared to the previous sample is within this tolerance: (value - previousValue) < absoluteTolerance."""
        return self._intf.get_property(CommSystemAccessEventDetectionSubsample._metadata, CommSystemAccessEventDetectionSubsample._get_absolute_tolerance_metadata)

    _set_absolute_tolerance_metadata = { "offset" : _set_absolute_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @absolute_tolerance.setter
    def absolute_tolerance(self, value:float) -> None:
        return self._intf.set_property(CommSystemAccessEventDetectionSubsample._metadata, CommSystemAccessEventDetectionSubsample._set_absolute_tolerance_metadata, value)

    _get_relative_tolerance_metadata = { "offset" : _get_relative_tolerance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def relative_tolerance(self) -> float:
        """An event is said to be detected when a constraint value's relative difference compared to the previous sample is within this tolerance: (value - previousValue) / value < relativeTolerance."""
        return self._intf.get_property(CommSystemAccessEventDetectionSubsample._metadata, CommSystemAccessEventDetectionSubsample._get_relative_tolerance_metadata)

    _set_relative_tolerance_metadata = { "offset" : _set_relative_tolerance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @relative_tolerance.setter
    def relative_tolerance(self, value:float) -> None:
        return self._intf.set_property(CommSystemAccessEventDetectionSubsample._metadata, CommSystemAccessEventDetectionSubsample._set_relative_tolerance_metadata, value)

    _property_names[time_convergence] = "time_convergence"
    _property_names[absolute_tolerance] = "absolute_tolerance"
    _property_names[relative_tolerance] = "relative_tolerance"

    def __init__(self, source_object=None):
        """Construct an object of type CommSystemAccessEventDetectionSubsample."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommSystemAccessEventDetectionSubsample)
        ICommSystemAccessEventDetection.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICommSystemAccessEventDetection._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemAccessEventDetectionSubsample, [CommSystemAccessEventDetectionSubsample, ICommSystemAccessEventDetection])

agcls.AgClassCatalog.add_catalog_entry((5598552658592017287, 1731353286051453059), CommSystemAccessEventDetectionSubsample)
agcls.AgTypeNameMap["CommSystemAccessEventDetectionSubsample"] = CommSystemAccessEventDetectionSubsample

class CommSystemAccessEventDetectionSamplesOnly(ICommSystemAccessEventDetection, SupportsDeleteCallback):
    """Class defining a CommSystem access options."""
    def __init__(self, source_object=None):
        """Construct an object of type CommSystemAccessEventDetectionSamplesOnly."""
        SupportsDeleteCallback.__init__(self)
        ICommSystemAccessEventDetection.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICommSystemAccessEventDetection._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemAccessEventDetectionSamplesOnly, [ICommSystemAccessEventDetection])

agcls.AgClassCatalog.add_catalog_entry((5198305217309803650, 9942184003064073119), CommSystemAccessEventDetectionSamplesOnly)
agcls.AgTypeNameMap["CommSystemAccessEventDetectionSamplesOnly"] = CommSystemAccessEventDetectionSamplesOnly

class CommSystemAccessSamplingMethod(ICommSystemAccessSamplingMethod, SupportsDeleteCallback):
    """Class defining a CommSystem access options."""
    def __init__(self, source_object=None):
        """Construct an object of type CommSystemAccessSamplingMethod."""
        SupportsDeleteCallback.__init__(self)
        ICommSystemAccessSamplingMethod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICommSystemAccessSamplingMethod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemAccessSamplingMethod, [ICommSystemAccessSamplingMethod])

agcls.AgClassCatalog.add_catalog_entry((5759806901337206395, 2878222034974110139), CommSystemAccessSamplingMethod)
agcls.AgTypeNameMap["CommSystemAccessSamplingMethod"] = CommSystemAccessSamplingMethod

class CommSystemAccessSamplingMethodFixed(ICommSystemAccessSamplingMethod, SupportsDeleteCallback):
    """Provide access to the properties for a fixed sampling method."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_fixed_time_step_method_offset = 1
    _set_fixed_time_step_method_offset = 2
    _get_time_bound_method_offset = 3
    _set_time_bound_method_offset = 4
    _metadata = {
        "iid_data" : (5035080271701741074, 13922315063885836702),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommSystemAccessSamplingMethodFixed)

    _get_fixed_time_step_metadata = { "offset" : _get_fixed_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def fixed_time_step(self) -> float:
        """Specify the fixed step size for the fixed step control."""
        return self._intf.get_property(CommSystemAccessSamplingMethodFixed._metadata, CommSystemAccessSamplingMethodFixed._get_fixed_time_step_metadata)

    _set_fixed_time_step_metadata = { "offset" : _set_fixed_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @fixed_time_step.setter
    def fixed_time_step(self, value:float) -> None:
        return self._intf.set_property(CommSystemAccessSamplingMethodFixed._metadata, CommSystemAccessSamplingMethodFixed._set_fixed_time_step_metadata, value)

    _get_time_bound_metadata = { "offset" : _get_time_bound_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_bound(self) -> float:
        """Control alignment of samples with a UTC time grid. Using proper time bound can improve computational performance if the ephemeris lies on a fixed UTC time grid. The time bound determines the reference time for taking fixed step samples."""
        return self._intf.get_property(CommSystemAccessSamplingMethodFixed._metadata, CommSystemAccessSamplingMethodFixed._get_time_bound_metadata)

    _set_time_bound_metadata = { "offset" : _set_time_bound_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_bound.setter
    def time_bound(self, value:float) -> None:
        return self._intf.set_property(CommSystemAccessSamplingMethodFixed._metadata, CommSystemAccessSamplingMethodFixed._set_time_bound_metadata, value)

    _property_names[fixed_time_step] = "fixed_time_step"
    _property_names[time_bound] = "time_bound"

    def __init__(self, source_object=None):
        """Construct an object of type CommSystemAccessSamplingMethodFixed."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommSystemAccessSamplingMethodFixed)
        ICommSystemAccessSamplingMethod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICommSystemAccessSamplingMethod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemAccessSamplingMethodFixed, [CommSystemAccessSamplingMethodFixed, ICommSystemAccessSamplingMethod])

agcls.AgClassCatalog.add_catalog_entry((5363246309564719263, 15981063982365547416), CommSystemAccessSamplingMethodFixed)
agcls.AgTypeNameMap["CommSystemAccessSamplingMethodFixed"] = CommSystemAccessSamplingMethodFixed

class CommSystemAccessSamplingMethodAdaptive(ICommSystemAccessSamplingMethod, SupportsDeleteCallback):
    """Provide access to the properties for a adaptive sampling method."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_maximum_time_step_method_offset = 1
    _set_maximum_time_step_method_offset = 2
    _get_minimum_time_step_method_offset = 3
    _set_minimum_time_step_method_offset = 4
    _metadata = {
        "iid_data" : (5305402233688154265, 10405530945717524127),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommSystemAccessSamplingMethodAdaptive)

    _get_maximum_time_step_metadata = { "offset" : _get_maximum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_time_step(self) -> float:
        """Get or set the maximum step size to be used in new access computations. The maximum step size limits the amount of time that is allowed to elapse between sampling of the constraint functions during access computations. Uses Time Dimension."""
        return self._intf.get_property(CommSystemAccessSamplingMethodAdaptive._metadata, CommSystemAccessSamplingMethodAdaptive._get_maximum_time_step_metadata)

    _set_maximum_time_step_metadata = { "offset" : _set_maximum_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_time_step.setter
    def maximum_time_step(self, value:float) -> None:
        return self._intf.set_property(CommSystemAccessSamplingMethodAdaptive._metadata, CommSystemAccessSamplingMethodAdaptive._set_maximum_time_step_metadata, value)

    _get_minimum_time_step_metadata = { "offset" : _get_minimum_time_step_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_time_step(self) -> float:
        """Get or set the minimum step size that is allowed to be taken."""
        return self._intf.get_property(CommSystemAccessSamplingMethodAdaptive._metadata, CommSystemAccessSamplingMethodAdaptive._get_minimum_time_step_metadata)

    _set_minimum_time_step_metadata = { "offset" : _set_minimum_time_step_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_time_step.setter
    def minimum_time_step(self, value:float) -> None:
        return self._intf.set_property(CommSystemAccessSamplingMethodAdaptive._metadata, CommSystemAccessSamplingMethodAdaptive._set_minimum_time_step_metadata, value)

    _property_names[maximum_time_step] = "maximum_time_step"
    _property_names[minimum_time_step] = "minimum_time_step"

    def __init__(self, source_object=None):
        """Construct an object of type CommSystemAccessSamplingMethodAdaptive."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommSystemAccessSamplingMethodAdaptive)
        ICommSystemAccessSamplingMethod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICommSystemAccessSamplingMethod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemAccessSamplingMethodAdaptive, [CommSystemAccessSamplingMethodAdaptive, ICommSystemAccessSamplingMethod])

agcls.AgClassCatalog.add_catalog_entry((4792679513008002011, 15404287459056435879), CommSystemAccessSamplingMethodAdaptive)
agcls.AgTypeNameMap["CommSystemAccessSamplingMethodAdaptive"] = CommSystemAccessSamplingMethodAdaptive

class CommSystemLinkSelectionCriteria(ICommSystemLinkSelectionCriteria, SupportsDeleteCallback):
    """Class defining a CommSystem link selection criteria."""
    def __init__(self, source_object=None):
        """Construct an object of type CommSystemLinkSelectionCriteria."""
        SupportsDeleteCallback.__init__(self)
        ICommSystemLinkSelectionCriteria.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICommSystemLinkSelectionCriteria._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemLinkSelectionCriteria, [ICommSystemLinkSelectionCriteria])

agcls.AgClassCatalog.add_catalog_entry((4835002112882809817, 317451394702362281), CommSystemLinkSelectionCriteria)
agcls.AgTypeNameMap["CommSystemLinkSelectionCriteria"] = CommSystemLinkSelectionCriteria

class CommSystemLinkSelectionCriteriaMinimumRange(ICommSystemLinkSelectionCriteria, SupportsDeleteCallback):
    """Class defining a CommSystem link selection criteria."""
    def __init__(self, source_object=None):
        """Construct an object of type CommSystemLinkSelectionCriteriaMinimumRange."""
        SupportsDeleteCallback.__init__(self)
        ICommSystemLinkSelectionCriteria.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICommSystemLinkSelectionCriteria._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemLinkSelectionCriteriaMinimumRange, [ICommSystemLinkSelectionCriteria])

agcls.AgClassCatalog.add_catalog_entry((4973306956296839817, 16184484588080670345), CommSystemLinkSelectionCriteriaMinimumRange)
agcls.AgTypeNameMap["CommSystemLinkSelectionCriteriaMinimumRange"] = CommSystemLinkSelectionCriteriaMinimumRange

class CommSystemLinkSelectionCriteriaMaximumElevation(ICommSystemLinkSelectionCriteria, SupportsDeleteCallback):
    """Class defining a CommSystem link selection criteria."""
    def __init__(self, source_object=None):
        """Construct an object of type CommSystemLinkSelectionCriteriaMaximumElevation."""
        SupportsDeleteCallback.__init__(self)
        ICommSystemLinkSelectionCriteria.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICommSystemLinkSelectionCriteria._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemLinkSelectionCriteriaMaximumElevation, [ICommSystemLinkSelectionCriteria])

agcls.AgClassCatalog.add_catalog_entry((5487972158771777703, 5712854153584450697), CommSystemLinkSelectionCriteriaMaximumElevation)
agcls.AgTypeNameMap["CommSystemLinkSelectionCriteriaMaximumElevation"] = CommSystemLinkSelectionCriteriaMaximumElevation

class CommSystemLinkSelectionCriteriaScriptPlugin(ICommSystemLinkSelectionCriteria, SupportsDeleteCallback):
    """Provide access to a script plugin link selection criteria."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5374971345292198209, 15624363974367566524),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, CommSystemLinkSelectionCriteriaScriptPlugin)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the script filename."""
        return self._intf.get_property(CommSystemLinkSelectionCriteriaScriptPlugin._metadata, CommSystemLinkSelectionCriteriaScriptPlugin._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(CommSystemLinkSelectionCriteriaScriptPlugin._metadata, CommSystemLinkSelectionCriteriaScriptPlugin._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type CommSystemLinkSelectionCriteriaScriptPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, CommSystemLinkSelectionCriteriaScriptPlugin)
        ICommSystemLinkSelectionCriteria.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ICommSystemLinkSelectionCriteria._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, CommSystemLinkSelectionCriteriaScriptPlugin, [CommSystemLinkSelectionCriteriaScriptPlugin, ICommSystemLinkSelectionCriteria])

agcls.AgClassCatalog.add_catalog_entry((5541671207040082073, 17963111645505320842), CommSystemLinkSelectionCriteriaScriptPlugin)
agcls.AgTypeNameMap["CommSystemLinkSelectionCriteriaScriptPlugin"] = CommSystemLinkSelectionCriteriaScriptPlugin

class ComponentDirectory(SupportsDeleteCallback):
    """Manages all components."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_components_method_offset = 1
    _metadata = {
        "iid_data" : (4883541845703425646, 9406136618559153855),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ComponentDirectory)

    _get_components_metadata = { "offset" : _get_components_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(Component), agmarshall.InterfaceOutArg,) }
    def get_components(self, component:"Component") -> "ComponentInfoCollection":
        """Return the specified components."""
        return self._intf.invoke(ComponentDirectory._metadata, ComponentDirectory._get_components_metadata, component, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type ComponentDirectory."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ComponentDirectory)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ComponentDirectory, [ComponentDirectory, ])

agcls.AgClassCatalog.add_catalog_entry((5284400834331742740, 16568087758498644642), ComponentDirectory)
agcls.AgTypeNameMap["ComponentDirectory"] = ComponentDirectory

class ComponentInfo(IComponentInfo, ICloneable, SupportsDeleteCallback):
    """Class defining a component."""
    def __init__(self, source_object=None):
        """Construct an object of type ComponentInfo."""
        SupportsDeleteCallback.__init__(self)
        IComponentInfo.__init__(self, source_object)
        ICloneable.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IComponentInfo._private_init(self, intf)
        ICloneable._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ComponentInfo, [IComponentInfo, ICloneable])

agcls.AgClassCatalog.add_catalog_entry((5177293505019422875, 3465625930020145795), ComponentInfo)
agcls.AgTypeNameMap["ComponentInfo"] = ComponentInfo

class ComponentInfoCollection(SupportsDeleteCallback):
    """The collection of components and component folders."""

    _num_methods = 12
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _item_method_offset = 1
    _get__new_enum_method_offset = 2
    _get_count_method_offset = 3
    _get_folder_method_offset = 4
    _get_folder_count_method_offset = 5
    _get_available_folders_method_offset = 6
    _get_folder_name_method_offset = 7
    _remove_method_offset = 8
    _duplicate_component_method_offset = 9
    _load_component_method_offset = 10
    _get_item_by_index_method_offset = 11
    _get_item_by_name_method_offset = 12
    _metadata = {
        "iid_data" : (4726782521455395666, 2166268815185807289),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ComponentInfoCollection)
    def __iter__(self):
        """Create an iterator for the ComponentInfoCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "IComponentInfo":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def item(self, index_or_name:typing.Any) -> "IComponentInfo":
        """Allow the user to iterate through the components."""
        return self._intf.invoke(ComponentInfoCollection._metadata, ComponentInfoCollection._item_metadata, index_or_name, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerates through the components."""
        return self._intf.get_property(ComponentInfoCollection._metadata, ComponentInfoCollection._get__new_enum_metadata)

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Get the number of components available."""
        return self._intf.get_property(ComponentInfoCollection._metadata, ComponentInfoCollection._get_count_metadata)

    _get_folder_metadata = { "offset" : _get_folder_method_offset,
            "arg_types" : (agcom.Variant, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.InterfaceOutArg,) }
    def get_folder(self, index_or_name:typing.Any) -> "ComponentInfoCollection":
        """Return the specified folder."""
        return self._intf.invoke(ComponentInfoCollection._metadata, ComponentInfoCollection._get_folder_metadata, index_or_name, OutArg())

    _get_folder_count_metadata = { "offset" : _get_folder_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def folder_count(self) -> int:
        """Get the number of folders available."""
        return self._intf.get_property(ComponentInfoCollection._metadata, ComponentInfoCollection._get_folder_count_metadata)

    _get_available_folders_metadata = { "offset" : _get_available_folders_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_folders(self) -> list:
        """Return an array of Folder names."""
        return self._intf.get_property(ComponentInfoCollection._metadata, ComponentInfoCollection._get_available_folders_metadata)

    _get_folder_name_metadata = { "offset" : _get_folder_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def folder_name(self) -> str:
        """Get the current folder's name."""
        return self._intf.get_property(ComponentInfoCollection._metadata, ComponentInfoCollection._get_folder_name_metadata)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove(self, name:str) -> None:
        """Remove the named component from the collection."""
        return self._intf.invoke(ComponentInfoCollection._metadata, ComponentInfoCollection._remove_metadata, name)

    _duplicate_component_metadata = { "offset" : _duplicate_component_method_offset,
            "arg_types" : (agcom.Variant, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.VariantArg, agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def duplicate_component(self, index_or_component_name:typing.Any, new_component_name:str) -> "IComponentInfo":
        """Duplicates and adds the component, with the supplied name or index, to the collection and then returns the duplicated component."""
        return self._intf.invoke(ComponentInfoCollection._metadata, ComponentInfoCollection._duplicate_component_metadata, index_or_component_name, new_component_name, OutArg())

    _load_component_metadata = { "offset" : _load_component_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def load_component(self, file_name:str) -> "IComponentInfo":
        """Load a component from a specified file (full path) into the current folder and then returns the loaded component."""
        return self._intf.invoke(ComponentInfoCollection._metadata, ComponentInfoCollection._load_component_metadata, file_name, OutArg())

    _get_item_by_index_metadata = { "offset" : _get_item_by_index_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_index(self, index:int) -> "IComponentInfo":
        """Retrieve component info from the collection by index."""
        return self._intf.invoke(ComponentInfoCollection._metadata, ComponentInfoCollection._get_item_by_index_metadata, index, OutArg())

    _get_item_by_name_metadata = { "offset" : _get_item_by_name_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def get_item_by_name(self, name:str) -> "IComponentInfo":
        """Retrieve component info from the collection by name."""
        return self._intf.invoke(ComponentInfoCollection._metadata, ComponentInfoCollection._get_item_by_name_metadata, name, OutArg())

    __getitem__ = item


    _property_names[_new_enum] = "_new_enum"
    _property_names[count] = "count"
    _property_names[folder_count] = "folder_count"
    _property_names[available_folders] = "available_folders"
    _property_names[folder_name] = "folder_name"

    def __init__(self, source_object=None):
        """Construct an object of type ComponentInfoCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ComponentInfoCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ComponentInfoCollection, [ComponentInfoCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5287307432951503344, 8020059833301440688), ComponentInfoCollection)
agcls.AgTypeNameMap["ComponentInfoCollection"] = ComponentInfoCollection

class ComponentAttrLinkEmbedControl(IComponentLinkEmbedControl, SupportsDeleteCallback):
    """Attribute based component link/embed control."""
    def __init__(self, source_object=None):
        """Construct an object of type ComponentAttrLinkEmbedControl."""
        SupportsDeleteCallback.__init__(self)
        IComponentLinkEmbedControl.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IComponentLinkEmbedControl._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ComponentAttrLinkEmbedControl, [IComponentLinkEmbedControl])

agcls.AgClassCatalog.add_catalog_entry((5234767659008670170, 10483292385726866843), ComponentAttrLinkEmbedControl)
agcls.AgTypeNameMap["ComponentAttrLinkEmbedControl"] = ComponentAttrLinkEmbedControl

class Volumetric(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """Volumetric properties."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_volume_grid_definition_type_method_offset = 1
    _set_volume_grid_definition_type_method_offset = 2
    _get_volume_grid_definition_method_offset = 3
    _get_volume_analysis_interval_method_offset = 4
    _get_advanced_method_offset = 5
    _get_graphics_3d_method_offset = 6
    _compute_method_offset = 7
    _clear_method_offset = 8
    _get_volumetric_export_tool_method_offset = 9
    _compute_in_parallel_method_offset = 10
    _metadata = {
        "iid_data" : (5005102596467856358, 15990710678572017073),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Volumetric)

    _get_volume_grid_definition_type_metadata = { "offset" : _get_volume_grid_definition_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VolumetricDefinitionType),) }
    @property
    def volume_grid_definition_type(self) -> "VolumetricDefinitionType":
        """Get Volume Grid definition type. A member of the VolumetricDefinitionType enumeration."""
        return self._intf.get_property(Volumetric._metadata, Volumetric._get_volume_grid_definition_type_metadata)

    _set_volume_grid_definition_type_metadata = { "offset" : _set_volume_grid_definition_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VolumetricDefinitionType),) }
    def set_volume_grid_definition_type(self, vm_grid_calc_type:"VolumetricDefinitionType") -> None:
        """Set volume grid definition type, using the VolumetricDefinitionType enumeration."""
        return self._intf.invoke(Volumetric._metadata, Volumetric._set_volume_grid_definition_type_metadata, vm_grid_calc_type)

    _get_volume_grid_definition_metadata = { "offset" : _get_volume_grid_definition_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def volume_grid_definition(self) -> "IVolumetricGridDefinition":
        """Get Volume Grid definition."""
        return self._intf.get_property(Volumetric._metadata, Volumetric._get_volume_grid_definition_metadata)

    _get_volume_analysis_interval_metadata = { "offset" : _get_volume_analysis_interval_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def volume_analysis_interval(self) -> "VolumetricAnalysisInterval":
        """Get Volume Analysis Interval."""
        return self._intf.get_property(Volumetric._metadata, Volumetric._get_volume_analysis_interval_metadata)

    _get_advanced_metadata = { "offset" : _get_advanced_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def advanced(self) -> "VolumetricAdvancedSettings":
        """Get Advanced options."""
        return self._intf.get_property(Volumetric._metadata, Volumetric._get_advanced_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "VolumetricGraphics3D":
        """Get the 3D Graphics properties for the volumetric object."""
        return self._intf.get_property(Volumetric._metadata, Volumetric._get_graphics_3d_metadata)

    _compute_metadata = { "offset" : _compute_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def compute(self) -> None:
        """Compute computations for Volumetric."""
        return self._intf.invoke(Volumetric._metadata, Volumetric._compute_metadata, )

    _clear_metadata = { "offset" : _clear_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def clear(self) -> None:
        """Clear computations for Volumetric."""
        return self._intf.invoke(Volumetric._metadata, Volumetric._clear_metadata, )

    _get_volumetric_export_tool_metadata = { "offset" : _get_volumetric_export_tool_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_volumetric_export_tool(self) -> "VolumetricExportTool":
        """Volumetric export tool."""
        return self._intf.invoke(Volumetric._metadata, Volumetric._get_volumetric_export_tool_metadata, OutArg())

    _compute_in_parallel_metadata = { "offset" : _compute_in_parallel_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def compute_in_parallel(self) -> None:
        """Compute computations in parallel for Volumetric."""
        return self._intf.invoke(Volumetric._metadata, Volumetric._compute_in_parallel_metadata, )

    _property_names[volume_grid_definition_type] = "volume_grid_definition_type"
    _property_names[volume_grid_definition] = "volume_grid_definition"
    _property_names[volume_analysis_interval] = "volume_analysis_interval"
    _property_names[advanced] = "advanced"
    _property_names[graphics_3d] = "graphics_3d"

    def __init__(self, source_object=None):
        """Construct an object of type Volumetric."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Volumetric)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Volumetric, [Volumetric, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5118758700762695835, 14703343423010200503), Volumetric)
agcls.AgTypeNameMap["Volumetric"] = Volumetric

class VolumetricGridSpatialCalculation(IVolumetricGridDefinition, SupportsDeleteCallback):
    """VolumetricGridSpatialCalculation Interface volume grid spatial calculation."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_volume_grid_method_offset = 1
    _set_volume_grid_method_offset = 2
    _get_use_spatial_calculation_method_offset = 3
    _set_use_spatial_calculation_method_offset = 4
    _get_spatial_calculation_method_offset = 5
    _set_spatial_calculation_method_offset = 6
    _get_available_volume_grids_method_offset = 7
    _get_available_spatial_calculations_method_offset = 8
    _metadata = {
        "iid_data" : (5159275225224937624, 9565351028213962429),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGridSpatialCalculation)

    _get_volume_grid_metadata = { "offset" : _get_volume_grid_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def volume_grid(self) -> str:
        """The volume grid for spatial calculations."""
        return self._intf.get_property(VolumetricGridSpatialCalculation._metadata, VolumetricGridSpatialCalculation._get_volume_grid_metadata)

    _set_volume_grid_metadata = { "offset" : _set_volume_grid_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @volume_grid.setter
    def volume_grid(self, value:str) -> None:
        return self._intf.set_property(VolumetricGridSpatialCalculation._metadata, VolumetricGridSpatialCalculation._set_volume_grid_metadata, value)

    _get_use_spatial_calculation_metadata = { "offset" : _get_use_spatial_calculation_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_spatial_calculation(self) -> bool:
        """Flag controls whether spatial calculation is used."""
        return self._intf.get_property(VolumetricGridSpatialCalculation._metadata, VolumetricGridSpatialCalculation._get_use_spatial_calculation_metadata)

    _set_use_spatial_calculation_metadata = { "offset" : _set_use_spatial_calculation_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_spatial_calculation.setter
    def use_spatial_calculation(self, use_spatial_calculation:bool) -> None:
        return self._intf.set_property(VolumetricGridSpatialCalculation._metadata, VolumetricGridSpatialCalculation._set_use_spatial_calculation_metadata, use_spatial_calculation)

    _get_spatial_calculation_metadata = { "offset" : _get_spatial_calculation_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def spatial_calculation(self) -> str:
        """The volume grid for spatial calculations."""
        return self._intf.get_property(VolumetricGridSpatialCalculation._metadata, VolumetricGridSpatialCalculation._get_spatial_calculation_metadata)

    _set_spatial_calculation_metadata = { "offset" : _set_spatial_calculation_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @spatial_calculation.setter
    def spatial_calculation(self, value:str) -> None:
        return self._intf.set_property(VolumetricGridSpatialCalculation._metadata, VolumetricGridSpatialCalculation._set_spatial_calculation_metadata, value)

    _get_available_volume_grids_metadata = { "offset" : _get_available_volume_grids_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_volume_grids(self) -> list:
        """Get the available Volume Grids."""
        return self._intf.get_property(VolumetricGridSpatialCalculation._metadata, VolumetricGridSpatialCalculation._get_available_volume_grids_metadata)

    _get_available_spatial_calculations_metadata = { "offset" : _get_available_spatial_calculations_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_spatial_calculations(self) -> list:
        """Get the available Spatial Calculations."""
        return self._intf.get_property(VolumetricGridSpatialCalculation._metadata, VolumetricGridSpatialCalculation._get_available_spatial_calculations_metadata)

    _property_names[volume_grid] = "volume_grid"
    _property_names[use_spatial_calculation] = "use_spatial_calculation"
    _property_names[spatial_calculation] = "spatial_calculation"
    _property_names[available_volume_grids] = "available_volume_grids"
    _property_names[available_spatial_calculations] = "available_spatial_calculations"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGridSpatialCalculation."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGridSpatialCalculation)
        IVolumetricGridDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVolumetricGridDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGridSpatialCalculation, [VolumetricGridSpatialCalculation, IVolumetricGridDefinition])

agcls.AgClassCatalog.add_catalog_entry((4972973826171755017, 13220806325972499368), VolumetricGridSpatialCalculation)
agcls.AgTypeNameMap["VolumetricGridSpatialCalculation"] = VolumetricGridSpatialCalculation

class VolumetricExternalFile(IVolumetricGridDefinition, SupportsDeleteCallback):
    """VolumetricExternalFile Interface for volume external file."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _reload_method_offset = 3
    _metadata = {
        "iid_data" : (5687174753025032041, 3335149770568530082),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricExternalFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Path and file name of volume external file."""
        return self._intf.get_property(VolumetricExternalFile._metadata, VolumetricExternalFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(VolumetricExternalFile._metadata, VolumetricExternalFile._set_filename_metadata, value)

    _reload_metadata = { "offset" : _reload_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reload(self) -> None:
        """Reload volume external file."""
        return self._intf.invoke(VolumetricExternalFile._metadata, VolumetricExternalFile._reload_metadata, )

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricExternalFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricExternalFile)
        IVolumetricGridDefinition.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IVolumetricGridDefinition._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricExternalFile, [VolumetricExternalFile, IVolumetricGridDefinition])

agcls.AgClassCatalog.add_catalog_entry((5327095153095543479, 2307566365410191266), VolumetricExternalFile)
agcls.AgTypeNameMap["VolumetricExternalFile"] = VolumetricExternalFile

class VolumetricAnalysisInterval(SupportsDeleteCallback):
    """VolumetricAnalysisInterval Interface for volume analysis interval."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_analysis_interval_method_offset = 1
    _set_analysis_interval_method_offset = 2
    _get_evaluation_of_spatial_calculation_type_method_offset = 3
    _set_spatial_calcuation_evaluation_type_method_offset = 4
    _get_time_array_method_offset = 5
    _set_time_array_method_offset = 6
    _get_step_size_method_offset = 7
    _set_step_size_method_offset = 8
    _get_available_analysis_intervals_method_offset = 9
    _get_available_times_from_time_array_method_offset = 10
    _metadata = {
        "iid_data" : (4739998631155318004, 13889017043966835355),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricAnalysisInterval)

    _get_analysis_interval_metadata = { "offset" : _get_analysis_interval_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def analysis_interval(self) -> str:
        """The volume analysis interval or interval list."""
        return self._intf.get_property(VolumetricAnalysisInterval._metadata, VolumetricAnalysisInterval._get_analysis_interval_metadata)

    _set_analysis_interval_metadata = { "offset" : _set_analysis_interval_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @analysis_interval.setter
    def analysis_interval(self, value:str) -> None:
        return self._intf.set_property(VolumetricAnalysisInterval._metadata, VolumetricAnalysisInterval._set_analysis_interval_metadata, value)

    _get_evaluation_of_spatial_calculation_type_metadata = { "offset" : _get_evaluation_of_spatial_calculation_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VolumetricSpatialCalculationEvaluationType),) }
    @property
    def evaluation_of_spatial_calculation_type(self) -> "VolumetricSpatialCalculationEvaluationType":
        """Get evaluation of spatial calculation type. A member of the VolumetricSpatialCalculationEvaluationType enumeration."""
        return self._intf.get_property(VolumetricAnalysisInterval._metadata, VolumetricAnalysisInterval._get_evaluation_of_spatial_calculation_type_metadata)

    _set_spatial_calcuation_evaluation_type_metadata = { "offset" : _set_spatial_calcuation_evaluation_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VolumetricSpatialCalculationEvaluationType),) }
    def set_spatial_calcuation_evaluation_type(self, spatial_calc_eval_type:"VolumetricSpatialCalculationEvaluationType") -> None:
        """Evaluate spatial calculation type, using the VolumetricSpatialCalculationEvaluationType enumeration."""
        return self._intf.invoke(VolumetricAnalysisInterval._metadata, VolumetricAnalysisInterval._set_spatial_calcuation_evaluation_type_metadata, spatial_calc_eval_type)

    _get_time_array_metadata = { "offset" : _get_time_array_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def time_array(self) -> str:
        """The time array when Evaluation of spatial calculation at times from time array is used."""
        return self._intf.get_property(VolumetricAnalysisInterval._metadata, VolumetricAnalysisInterval._get_time_array_metadata)

    _set_time_array_metadata = { "offset" : _set_time_array_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @time_array.setter
    def time_array(self, value:str) -> None:
        return self._intf.set_property(VolumetricAnalysisInterval._metadata, VolumetricAnalysisInterval._set_time_array_metadata, value)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step_size(self) -> float:
        """Get or set the step size."""
        return self._intf.get_property(VolumetricAnalysisInterval._metadata, VolumetricAnalysisInterval._get_step_size_metadata)

    _set_step_size_metadata = { "offset" : _set_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step_size.setter
    def step_size(self, value:float) -> None:
        return self._intf.set_property(VolumetricAnalysisInterval._metadata, VolumetricAnalysisInterval._set_step_size_metadata, value)

    _get_available_analysis_intervals_metadata = { "offset" : _get_available_analysis_intervals_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_analysis_intervals(self) -> list:
        """Get the available analysis intervals."""
        return self._intf.get_property(VolumetricAnalysisInterval._metadata, VolumetricAnalysisInterval._get_available_analysis_intervals_metadata)

    _get_available_times_from_time_array_metadata = { "offset" : _get_available_times_from_time_array_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_times_from_time_array(self) -> list:
        """Get the available times from time array."""
        return self._intf.get_property(VolumetricAnalysisInterval._metadata, VolumetricAnalysisInterval._get_available_times_from_time_array_metadata)

    _property_names[analysis_interval] = "analysis_interval"
    _property_names[evaluation_of_spatial_calculation_type] = "evaluation_of_spatial_calculation_type"
    _property_names[time_array] = "time_array"
    _property_names[step_size] = "step_size"
    _property_names[available_analysis_intervals] = "available_analysis_intervals"
    _property_names[available_times_from_time_array] = "available_times_from_time_array"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricAnalysisInterval."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricAnalysisInterval)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricAnalysisInterval, [VolumetricAnalysisInterval, ])

agcls.AgClassCatalog.add_catalog_entry((5148553662903863234, 8053010619047865020), VolumetricAnalysisInterval)
agcls.AgTypeNameMap["VolumetricAnalysisInterval"] = VolumetricAnalysisInterval

class VolumetricAdvancedSettings(SupportsDeleteCallback):
    """VolumetricAdvancedSettings Interface for advanced volumetric options."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_recompute_automatically_method_offset = 1
    _set_recompute_automatically_method_offset = 2
    _get_save_computed_data_type_method_offset = 3
    _set_save_computed_data_type_method_offset = 4
    _metadata = {
        "iid_data" : (5222708653725895777, 11277349244574590599),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricAdvancedSettings)

    _get_recompute_automatically_metadata = { "offset" : _get_recompute_automatically_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def recompute_automatically(self) -> bool:
        """Automatically recompute data."""
        return self._intf.get_property(VolumetricAdvancedSettings._metadata, VolumetricAdvancedSettings._get_recompute_automatically_metadata)

    _set_recompute_automatically_metadata = { "offset" : _set_recompute_automatically_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @recompute_automatically.setter
    def recompute_automatically(self, automatic_recompute:bool) -> None:
        return self._intf.set_property(VolumetricAdvancedSettings._metadata, VolumetricAdvancedSettings._set_recompute_automatically_metadata, automatic_recompute)

    _get_save_computed_data_type_metadata = { "offset" : _get_save_computed_data_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VolumetricSaveComputedDataType),) }
    @property
    def save_computed_data_type(self) -> "VolumetricSaveComputedDataType":
        """Get save computed data type. A member of the VolumetricSaveComputedDataType enumeration."""
        return self._intf.get_property(VolumetricAdvancedSettings._metadata, VolumetricAdvancedSettings._get_save_computed_data_type_metadata)

    _set_save_computed_data_type_metadata = { "offset" : _set_save_computed_data_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VolumetricSaveComputedDataType),) }
    @save_computed_data_type.setter
    def save_computed_data_type(self, value:"VolumetricSaveComputedDataType") -> None:
        return self._intf.set_property(VolumetricAdvancedSettings._metadata, VolumetricAdvancedSettings._set_save_computed_data_type_metadata, value)

    _property_names[recompute_automatically] = "recompute_automatically"
    _property_names[save_computed_data_type] = "save_computed_data_type"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricAdvancedSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricAdvancedSettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricAdvancedSettings, [VolumetricAdvancedSettings, ])

agcls.AgClassCatalog.add_catalog_entry((4792544677807681591, 13617796966744710804), VolumetricAdvancedSettings)
agcls.AgTypeNameMap["VolumetricAdvancedSettings"] = VolumetricAdvancedSettings

class VolumetricGraphics3D(SupportsDeleteCallback):
    """VolumetricGraphics3D Interface for a volumetric object's 3D Graphics properties."""

    _num_methods = 19
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_visible_method_offset = 1
    _set_visible_method_offset = 2
    _get_smoothing_method_offset = 3
    _set_smoothing_method_offset = 4
    _get_shading_method_offset = 5
    _set_shading_method_offset = 6
    _get_quality_method_offset = 7
    _set_quality_method_offset = 8
    _get_grid_method_offset = 9
    _get_cross_section_method_offset = 10
    _get_volume_method_offset = 11
    _get_show_boundary_legend_method_offset = 12
    _set_show_boundary_legend_method_offset = 13
    _get_show_fill_legend_method_offset = 14
    _set_show_fill_legend_method_offset = 15
    _get_boundary_legend_method_offset = 16
    _get_fill_legend_method_offset = 17
    _get_volume_type_method_offset = 18
    _set_volume_type_method_offset = 19
    _metadata = {
        "iid_data" : (5505726714309474016, 15883597389325865369),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3D)

    _get_visible_metadata = { "offset" : _get_visible_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def visible(self) -> bool:
        """Display volumetric object including Grid, Volume, and Cross Sections in 3D Graphics window."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_visible_metadata)

    _set_visible_metadata = { "offset" : _set_visible_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @visible.setter
    def visible(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._set_visible_metadata, show)

    _get_smoothing_metadata = { "offset" : _get_smoothing_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def smoothing(self) -> bool:
        """Enable to smooth out the volume and surface boundaries using interpolation between grid points."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_smoothing_metadata)

    _set_smoothing_metadata = { "offset" : _set_smoothing_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @smoothing.setter
    def smoothing(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._set_smoothing_metadata, show)

    _get_shading_metadata = { "offset" : _get_shading_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def shading(self) -> bool:
        """Enable to add shading to the boundary surface. Shading slows down animation but generates helpful lighting effects based on surfaces."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_shading_metadata)

    _set_shading_metadata = { "offset" : _set_shading_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @shading.setter
    def shading(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._set_shading_metadata, show)

    _get_quality_metadata = { "offset" : _get_quality_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VolumetricDisplayQualityType),) }
    @property
    def quality(self) -> "VolumetricDisplayQualityType":
        """Get or set the quality of the graphics display."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_quality_metadata)

    _set_quality_metadata = { "offset" : _set_quality_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VolumetricDisplayQualityType),) }
    @quality.setter
    def quality(self, value:"VolumetricDisplayQualityType") -> None:
        return self._intf.set_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._set_quality_metadata, value)

    _get_grid_metadata = { "offset" : _get_grid_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def grid(self) -> "VolumetricGraphics3DGrid":
        """Get the Grid properties of 3D Graphics window for the volumetric object."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_grid_metadata)

    _get_cross_section_metadata = { "offset" : _get_cross_section_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def cross_section(self) -> "VolumetricGraphics3DCrossSection":
        """Get the 3D Graphics properties for planar cross-sections through the volumetric grid."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_cross_section_metadata)

    _get_volume_metadata = { "offset" : _get_volume_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def volume(self) -> "VolumetricGraphics3DVolume":
        """Get the 3D Graphics properties for Volume."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_volume_metadata)

    _get_show_boundary_legend_metadata = { "offset" : _get_show_boundary_legend_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boundary_legend(self) -> bool:
        """Enable/disable boundary legends in 3D Graphics window for Volumetric object."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_show_boundary_legend_metadata)

    _set_show_boundary_legend_metadata = { "offset" : _set_show_boundary_legend_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boundary_legend.setter
    def show_boundary_legend(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._set_show_boundary_legend_metadata, show)

    _get_show_fill_legend_metadata = { "offset" : _get_show_fill_legend_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_fill_legend(self) -> bool:
        """Enable/disable fill legends in 3D Graphics window for Volumetric object."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_show_fill_legend_metadata)

    _set_show_fill_legend_metadata = { "offset" : _set_show_fill_legend_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_fill_legend.setter
    def show_fill_legend(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._set_show_fill_legend_metadata, show)

    _get_boundary_legend_metadata = { "offset" : _get_boundary_legend_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def boundary_legend(self) -> "VolumetricGraphics3DLegend":
        """Get the 3D Graphics properties for Volumetric Boundary Legend."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_boundary_legend_metadata)

    _get_fill_legend_metadata = { "offset" : _get_fill_legend_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def fill_legend(self) -> "VolumetricGraphics3DLegend":
        """Get the 3D Graphics properties for Volumetric Fill Legend."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_fill_legend_metadata)

    _get_volume_type_metadata = { "offset" : _get_volume_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VolumetricDisplayVolumeType),) }
    @property
    def volume_type(self) -> "VolumetricDisplayVolumeType":
        """Get or set the graphics volume display type."""
        return self._intf.get_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._get_volume_type_metadata)

    _set_volume_type_metadata = { "offset" : _set_volume_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VolumetricDisplayVolumeType),) }
    @volume_type.setter
    def volume_type(self, value:"VolumetricDisplayVolumeType") -> None:
        return self._intf.set_property(VolumetricGraphics3D._metadata, VolumetricGraphics3D._set_volume_type_metadata, value)

    _property_names[visible] = "visible"
    _property_names[smoothing] = "smoothing"
    _property_names[shading] = "shading"
    _property_names[quality] = "quality"
    _property_names[grid] = "grid"
    _property_names[cross_section] = "cross_section"
    _property_names[volume] = "volume"
    _property_names[show_boundary_legend] = "show_boundary_legend"
    _property_names[show_fill_legend] = "show_fill_legend"
    _property_names[boundary_legend] = "boundary_legend"
    _property_names[fill_legend] = "fill_legend"
    _property_names[volume_type] = "volume_type"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3D, [VolumetricGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((5237643544923989694, 14910221357187095191), VolumetricGraphics3D)
agcls.AgTypeNameMap["VolumetricGraphics3D"] = VolumetricGraphics3D

class VolumetricGraphics3DGrid(SupportsDeleteCallback):
    """VolumetricGraphics3D Interface for a volumetric object's 3D Graphics properties."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_grid_method_offset = 1
    _set_show_grid_method_offset = 2
    _get_show_grid_points_method_offset = 3
    _set_show_grid_points_method_offset = 4
    _get_point_size_method_offset = 5
    _set_point_size_method_offset = 6
    _get_point_color_method_offset = 7
    _set_point_color_method_offset = 8
    _get_show_grid_lines_method_offset = 9
    _set_show_grid_lines_method_offset = 10
    _get_line_color_method_offset = 11
    _set_line_color_method_offset = 12
    _metadata = {
        "iid_data" : (5531978213493808150, 9218153864220138370),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3DGrid)

    _get_show_grid_metadata = { "offset" : _get_show_grid_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_grid(self) -> bool:
        """Show/hide grid in 3D Graphics window."""
        return self._intf.get_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._get_show_grid_metadata)

    _set_show_grid_metadata = { "offset" : _set_show_grid_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_grid.setter
    def show_grid(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._set_show_grid_metadata, show)

    _get_show_grid_points_metadata = { "offset" : _get_show_grid_points_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_grid_points(self) -> bool:
        """Show/hide grid points in 3D Graphics window."""
        return self._intf.get_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._get_show_grid_points_metadata)

    _set_show_grid_points_metadata = { "offset" : _set_show_grid_points_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_grid_points.setter
    def show_grid_points(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._set_show_grid_points_metadata, show)

    _get_point_size_metadata = { "offset" : _get_point_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def point_size(self) -> float:
        """Set the grid point size. Valid value is between 1 and 20."""
        return self._intf.get_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._get_point_size_metadata)

    _set_point_size_metadata = { "offset" : _set_point_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @point_size.setter
    def point_size(self, value:float) -> None:
        return self._intf.set_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._set_point_size_metadata, value)

    _get_point_color_metadata = { "offset" : _get_point_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def point_color(self) -> agcolor.Color:
        """Set the color of the grid points."""
        return self._intf.get_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._get_point_color_metadata)

    _set_point_color_metadata = { "offset" : _set_point_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @point_color.setter
    def point_color(self, point_color:agcolor.Color) -> None:
        return self._intf.set_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._set_point_color_metadata, point_color)

    _get_show_grid_lines_metadata = { "offset" : _get_show_grid_lines_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_grid_lines(self) -> bool:
        """Show/hide grid lines."""
        return self._intf.get_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._get_show_grid_lines_metadata)

    _set_show_grid_lines_metadata = { "offset" : _set_show_grid_lines_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_grid_lines.setter
    def show_grid_lines(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._set_show_grid_lines_metadata, show)

    _get_line_color_metadata = { "offset" : _get_line_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def line_color(self) -> agcolor.Color:
        """Set the color of the grid line."""
        return self._intf.get_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._get_line_color_metadata)

    _set_line_color_metadata = { "offset" : _set_line_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @line_color.setter
    def line_color(self, line_color:agcolor.Color) -> None:
        return self._intf.set_property(VolumetricGraphics3DGrid._metadata, VolumetricGraphics3DGrid._set_line_color_metadata, line_color)

    _property_names[show_grid] = "show_grid"
    _property_names[show_grid_points] = "show_grid_points"
    _property_names[point_size] = "point_size"
    _property_names[point_color] = "point_color"
    _property_names[show_grid_lines] = "show_grid_lines"
    _property_names[line_color] = "line_color"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3DGrid."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3DGrid)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3DGrid, [VolumetricGraphics3DGrid, ])

agcls.AgClassCatalog.add_catalog_entry((4709960278218963685, 96731824012599739), VolumetricGraphics3DGrid)
agcls.AgTypeNameMap["VolumetricGraphics3DGrid"] = VolumetricGraphics3DGrid

class VolumetricGraphics3DCrossSection(SupportsDeleteCallback):
    """VolumetricGraphics3DCrossSection Interface for defining planar cross-sections through the volumetric grid."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _get_opacity_method_offset = 3
    _set_opacity_method_offset = 4
    _get_planes_method_offset = 5
    _metadata = {
        "iid_data" : (4718618758934219008, 1645091576160761783),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3DCrossSection)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Show or hide the cross sections in 3D window."""
        return self._intf.get_property(VolumetricGraphics3DCrossSection._metadata, VolumetricGraphics3DCrossSection._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3DCrossSection._metadata, VolumetricGraphics3DCrossSection._set_show_metadata, show)

    _get_opacity_metadata = { "offset" : _get_opacity_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def opacity(self) -> float:
        """Set the opacity multiplier which is used to incrementally increase the opacity of the cross-sections. Valid value is greater or equal to 1."""
        return self._intf.get_property(VolumetricGraphics3DCrossSection._metadata, VolumetricGraphics3DCrossSection._get_opacity_metadata)

    _set_opacity_metadata = { "offset" : _set_opacity_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @opacity.setter
    def opacity(self, value:float) -> None:
        return self._intf.set_property(VolumetricGraphics3DCrossSection._metadata, VolumetricGraphics3DCrossSection._set_opacity_metadata, value)

    _get_planes_metadata = { "offset" : _get_planes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def planes(self) -> "VolumetricGraphics3DCrossSectionPlaneCollection":
        """Access and manipulate the collection of cross section planes for Volumetric object."""
        return self._intf.get_property(VolumetricGraphics3DCrossSection._metadata, VolumetricGraphics3DCrossSection._get_planes_metadata)

    _property_names[show] = "show"
    _property_names[opacity] = "opacity"
    _property_names[planes] = "planes"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3DCrossSection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3DCrossSection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3DCrossSection, [VolumetricGraphics3DCrossSection, ])

agcls.AgClassCatalog.add_catalog_entry((5736331694784477239, 11528798182480294067), VolumetricGraphics3DCrossSection)
agcls.AgTypeNameMap["VolumetricGraphics3DCrossSection"] = VolumetricGraphics3DCrossSection

class VolumetricGraphics3DCrossSectionPlane(SupportsDeleteCallback):
    """VolumetricGraphics3DCrossSectionPlane Interface for defining planar cross-sections through the volumetric grid."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_plane_method_offset = 1
    _metadata = {
        "iid_data" : (5066303353378543122, 5667163206327816873),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3DCrossSectionPlane)

    _get_plane_metadata = { "offset" : _get_plane_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def plane(self) -> str:
        """Get the cross section plane."""
        return self._intf.get_property(VolumetricGraphics3DCrossSectionPlane._metadata, VolumetricGraphics3DCrossSectionPlane._get_plane_metadata)

    _property_names[plane] = "plane"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3DCrossSectionPlane."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3DCrossSectionPlane)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3DCrossSectionPlane, [VolumetricGraphics3DCrossSectionPlane, ])

agcls.AgClassCatalog.add_catalog_entry((5322450038471181340, 10075685320621386161), VolumetricGraphics3DCrossSectionPlane)
agcls.AgTypeNameMap["VolumetricGraphics3DCrossSectionPlane"] = VolumetricGraphics3DCrossSectionPlane

class VolumetricGraphics3DCrossSectionPlaneCollection(SupportsDeleteCallback):
    """VolumetricGraphics3DCrossSectionPlaneCollection Interface for defining collections of planar cross-sections for the volumetric grid."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5697773717986734512, 3026394548498263727),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3DCrossSectionPlaneCollection)
    def __iter__(self):
        """Create an iterator for the VolumetricGraphics3DCrossSectionPlaneCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VolumetricGraphics3DCrossSectionPlane":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VolumetricGraphics3DCrossSectionPlaneCollection._metadata, VolumetricGraphics3DCrossSectionPlaneCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "VolumetricGraphics3DCrossSectionPlane":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VolumetricGraphics3DCrossSectionPlaneCollection._metadata, VolumetricGraphics3DCrossSectionPlaneCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VolumetricGraphics3DCrossSectionPlaneCollection._metadata, VolumetricGraphics3DCrossSectionPlaneCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VolumetricGraphics3DCrossSectionPlaneCollection._metadata, VolumetricGraphics3DCrossSectionPlaneCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VolumetricGraphics3DCrossSectionPlaneCollection._metadata, VolumetricGraphics3DCrossSectionPlaneCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, plane:str) -> "VolumetricGraphics3DCrossSectionPlane":
        """Add a new plane to the collection."""
        return self._intf.invoke(VolumetricGraphics3DCrossSectionPlaneCollection._metadata, VolumetricGraphics3DCrossSectionPlaneCollection._add_metadata, plane, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3DCrossSectionPlaneCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3DCrossSectionPlaneCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3DCrossSectionPlaneCollection, [VolumetricGraphics3DCrossSectionPlaneCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5165218408998142268, 2206901304826263190), VolumetricGraphics3DCrossSectionPlaneCollection)
agcls.AgTypeNameMap["VolumetricGraphics3DCrossSectionPlaneCollection"] = VolumetricGraphics3DCrossSectionPlaneCollection

class VolumetricGraphics3DVolume(SupportsDeleteCallback):
    """VolumetricGraphics3DVolume Interface for defining volume for volumetric object."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_active_grid_points_method_offset = 1
    _get_spatial_calculation_levels_method_offset = 2
    _metadata = {
        "iid_data" : (4874170263487453010, 16869104062825665957),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3DVolume)

    _get_active_grid_points_metadata = { "offset" : _get_active_grid_points_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def active_grid_points(self) -> "VolumetricGraphics3DActiveGridPoints":
        """Get Active Grid Points values for Volume property in the 3D Graphics properties for Volumetric object."""
        return self._intf.get_property(VolumetricGraphics3DVolume._metadata, VolumetricGraphics3DVolume._get_active_grid_points_metadata)

    _get_spatial_calculation_levels_metadata = { "offset" : _get_spatial_calculation_levels_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def spatial_calculation_levels(self) -> "VolumetricGraphics3DSpatialCalculationLevels":
        """Get Spatial Calculation Levels for Volume property in the 3D Graphics properties for Volumetric object."""
        return self._intf.get_property(VolumetricGraphics3DVolume._metadata, VolumetricGraphics3DVolume._get_spatial_calculation_levels_metadata)

    _property_names[active_grid_points] = "active_grid_points"
    _property_names[spatial_calculation_levels] = "spatial_calculation_levels"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3DVolume."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3DVolume)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3DVolume, [VolumetricGraphics3DVolume, ])

agcls.AgClassCatalog.add_catalog_entry((5624738253775864986, 11656248717965240221), VolumetricGraphics3DVolume)
agcls.AgTypeNameMap["VolumetricGraphics3DVolume"] = VolumetricGraphics3DVolume

class VolumetricGraphics3DActiveGridPoints(SupportsDeleteCallback):
    """VolumetricGraphics3DActiveGridPoints Interface for defining Active Grid Points for Volumetric Object."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_active_inactive_boundary_method_offset = 1
    _set_show_active_inactive_boundary_method_offset = 2
    _get_active_inactive_boundary_color_method_offset = 3
    _set_active_inactive_boundary_color_method_offset = 4
    _get_active_inactive_boundary_translucency_method_offset = 5
    _set_active_inactive_boundary_translucency_method_offset = 6
    _get_show_active_inactive_fill_method_offset = 7
    _set_show_active_inactive_fill_method_offset = 8
    _get_inactive_fill_color_method_offset = 9
    _set_inactive_fill_color_method_offset = 10
    _get_inactive_fill_translucency_method_offset = 11
    _set_inactive_fill_translucency_method_offset = 12
    _get_active_fill_color_method_offset = 13
    _set_active_fill_color_method_offset = 14
    _get_active_fill_translucency_method_offset = 15
    _set_active_fill_translucency_method_offset = 16
    _metadata = {
        "iid_data" : (4829860465101879766, 306584395309546149),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3DActiveGridPoints)

    _get_show_active_inactive_boundary_metadata = { "offset" : _get_show_active_inactive_boundary_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_active_inactive_boundary(self) -> bool:
        """Show or hide the Active/Inactive Boundary."""
        return self._intf.get_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._get_show_active_inactive_boundary_metadata)

    _set_show_active_inactive_boundary_metadata = { "offset" : _set_show_active_inactive_boundary_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_active_inactive_boundary.setter
    def show_active_inactive_boundary(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._set_show_active_inactive_boundary_metadata, show)

    _get_active_inactive_boundary_color_metadata = { "offset" : _get_active_inactive_boundary_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def active_inactive_boundary_color(self) -> agcolor.Color:
        """Set the color of the Active/Inactive Boundary."""
        return self._intf.get_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._get_active_inactive_boundary_color_metadata)

    _set_active_inactive_boundary_color_metadata = { "offset" : _set_active_inactive_boundary_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @active_inactive_boundary_color.setter
    def active_inactive_boundary_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._set_active_inactive_boundary_color_metadata, color)

    _get_active_inactive_boundary_translucency_metadata = { "offset" : _get_active_inactive_boundary_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def active_inactive_boundary_translucency(self) -> float:
        """Set the percent Translucency for Active/Inactive Boundary."""
        return self._intf.get_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._get_active_inactive_boundary_translucency_metadata)

    _set_active_inactive_boundary_translucency_metadata = { "offset" : _set_active_inactive_boundary_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @active_inactive_boundary_translucency.setter
    def active_inactive_boundary_translucency(self, value:float) -> None:
        return self._intf.set_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._set_active_inactive_boundary_translucency_metadata, value)

    _get_show_active_inactive_fill_metadata = { "offset" : _get_show_active_inactive_fill_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_active_inactive_fill(self) -> bool:
        """Show or hide the Active/Inactive Fill."""
        return self._intf.get_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._get_show_active_inactive_fill_metadata)

    _set_show_active_inactive_fill_metadata = { "offset" : _set_show_active_inactive_fill_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_active_inactive_fill.setter
    def show_active_inactive_fill(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._set_show_active_inactive_fill_metadata, show)

    _get_inactive_fill_color_metadata = { "offset" : _get_inactive_fill_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def inactive_fill_color(self) -> agcolor.Color:
        """Set the color of the Inactive Fill."""
        return self._intf.get_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._get_inactive_fill_color_metadata)

    _set_inactive_fill_color_metadata = { "offset" : _set_inactive_fill_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @inactive_fill_color.setter
    def inactive_fill_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._set_inactive_fill_color_metadata, color)

    _get_inactive_fill_translucency_metadata = { "offset" : _get_inactive_fill_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def inactive_fill_translucency(self) -> float:
        """Set the percent Translucency for Inactive Fill."""
        return self._intf.get_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._get_inactive_fill_translucency_metadata)

    _set_inactive_fill_translucency_metadata = { "offset" : _set_inactive_fill_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @inactive_fill_translucency.setter
    def inactive_fill_translucency(self, value:float) -> None:
        return self._intf.set_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._set_inactive_fill_translucency_metadata, value)

    _get_active_fill_color_metadata = { "offset" : _get_active_fill_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def active_fill_color(self) -> agcolor.Color:
        """Set the color of the Active Fill."""
        return self._intf.get_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._get_active_fill_color_metadata)

    _set_active_fill_color_metadata = { "offset" : _set_active_fill_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @active_fill_color.setter
    def active_fill_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._set_active_fill_color_metadata, color)

    _get_active_fill_translucency_metadata = { "offset" : _get_active_fill_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def active_fill_translucency(self) -> float:
        """Set the percent Translucency for Active Fill."""
        return self._intf.get_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._get_active_fill_translucency_metadata)

    _set_active_fill_translucency_metadata = { "offset" : _set_active_fill_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @active_fill_translucency.setter
    def active_fill_translucency(self, value:float) -> None:
        return self._intf.set_property(VolumetricGraphics3DActiveGridPoints._metadata, VolumetricGraphics3DActiveGridPoints._set_active_fill_translucency_metadata, value)

    _property_names[show_active_inactive_boundary] = "show_active_inactive_boundary"
    _property_names[active_inactive_boundary_color] = "active_inactive_boundary_color"
    _property_names[active_inactive_boundary_translucency] = "active_inactive_boundary_translucency"
    _property_names[show_active_inactive_fill] = "show_active_inactive_fill"
    _property_names[inactive_fill_color] = "inactive_fill_color"
    _property_names[inactive_fill_translucency] = "inactive_fill_translucency"
    _property_names[active_fill_color] = "active_fill_color"
    _property_names[active_fill_translucency] = "active_fill_translucency"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3DActiveGridPoints."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3DActiveGridPoints)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3DActiveGridPoints, [VolumetricGraphics3DActiveGridPoints, ])

agcls.AgClassCatalog.add_catalog_entry((5490044849906775341, 7420076862465031850), VolumetricGraphics3DActiveGridPoints)
agcls.AgTypeNameMap["VolumetricGraphics3DActiveGridPoints"] = VolumetricGraphics3DActiveGridPoints

class VolumetricGraphics3DSpatialCalculationLevels(SupportsDeleteCallback):
    """VolumetricGraphics3DSpatialCalculationLevels Interface for defining Spatial Calculation Levels for Volumetric Object."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_boundary_levels_method_offset = 1
    _set_show_boundary_levels_method_offset = 2
    _get_boundary_levels_method_offset = 3
    _get_show_fill_levels_method_offset = 4
    _set_show_fill_levels_method_offset = 5
    _get_display_colors_outside_minimum_maximum_method_offset = 6
    _set_display_colors_outside_minimum_maximum_method_offset = 7
    _get_fill_levels_method_offset = 8
    _metadata = {
        "iid_data" : (4991926805080253003, 2421617814955252401),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3DSpatialCalculationLevels)

    _get_show_boundary_levels_metadata = { "offset" : _get_show_boundary_levels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_boundary_levels(self) -> bool:
        """Show or hide Spatial Calculation Boundary Levels."""
        return self._intf.get_property(VolumetricGraphics3DSpatialCalculationLevels._metadata, VolumetricGraphics3DSpatialCalculationLevels._get_show_boundary_levels_metadata)

    _set_show_boundary_levels_metadata = { "offset" : _set_show_boundary_levels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_boundary_levels.setter
    def show_boundary_levels(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3DSpatialCalculationLevels._metadata, VolumetricGraphics3DSpatialCalculationLevels._set_show_boundary_levels_metadata, show)

    _get_boundary_levels_metadata = { "offset" : _get_boundary_levels_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def boundary_levels(self) -> "VolumetricGraphics3DSpatialCalculationLevelCollection":
        """Access and manipulate the collection of Spatial Calculation Boundary Levels for Volumetric object."""
        return self._intf.get_property(VolumetricGraphics3DSpatialCalculationLevels._metadata, VolumetricGraphics3DSpatialCalculationLevels._get_boundary_levels_metadata)

    _get_show_fill_levels_metadata = { "offset" : _get_show_fill_levels_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_fill_levels(self) -> bool:
        """Show or hide Fill Levels."""
        return self._intf.get_property(VolumetricGraphics3DSpatialCalculationLevels._metadata, VolumetricGraphics3DSpatialCalculationLevels._get_show_fill_levels_metadata)

    _set_show_fill_levels_metadata = { "offset" : _set_show_fill_levels_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_fill_levels.setter
    def show_fill_levels(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3DSpatialCalculationLevels._metadata, VolumetricGraphics3DSpatialCalculationLevels._set_show_fill_levels_metadata, show)

    _get_display_colors_outside_minimum_maximum_metadata = { "offset" : _get_display_colors_outside_minimum_maximum_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def display_colors_outside_minimum_maximum(self) -> bool:
        """Get or set Display Colors Outside MinMax."""
        return self._intf.get_property(VolumetricGraphics3DSpatialCalculationLevels._metadata, VolumetricGraphics3DSpatialCalculationLevels._get_display_colors_outside_minimum_maximum_metadata)

    _set_display_colors_outside_minimum_maximum_metadata = { "offset" : _set_display_colors_outside_minimum_maximum_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @display_colors_outside_minimum_maximum.setter
    def display_colors_outside_minimum_maximum(self, show:bool) -> None:
        return self._intf.set_property(VolumetricGraphics3DSpatialCalculationLevels._metadata, VolumetricGraphics3DSpatialCalculationLevels._set_display_colors_outside_minimum_maximum_metadata, show)

    _get_fill_levels_metadata = { "offset" : _get_fill_levels_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def fill_levels(self) -> "VolumetricGraphics3DSpatialCalculationLevelCollection":
        """Access and manipulate the collection of Spatial Calculation Fill Levels for Volumetric object."""
        return self._intf.get_property(VolumetricGraphics3DSpatialCalculationLevels._metadata, VolumetricGraphics3DSpatialCalculationLevels._get_fill_levels_metadata)

    _property_names[show_boundary_levels] = "show_boundary_levels"
    _property_names[boundary_levels] = "boundary_levels"
    _property_names[show_fill_levels] = "show_fill_levels"
    _property_names[display_colors_outside_minimum_maximum] = "display_colors_outside_minimum_maximum"
    _property_names[fill_levels] = "fill_levels"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3DSpatialCalculationLevels."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3DSpatialCalculationLevels)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3DSpatialCalculationLevels, [VolumetricGraphics3DSpatialCalculationLevels, ])

agcls.AgClassCatalog.add_catalog_entry((5002914439964580649, 17202841006748871862), VolumetricGraphics3DSpatialCalculationLevels)
agcls.AgTypeNameMap["VolumetricGraphics3DSpatialCalculationLevels"] = VolumetricGraphics3DSpatialCalculationLevels

class VolumetricGraphics3DSpatialCalculationLevel(SupportsDeleteCallback):
    """VolumetricGraphics3DSpatialCalculationLevel Interface for defining Spatial Calculation Boundary/Fill Levels for volumetric grid."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_value_method_offset = 1
    _get_color_method_offset = 2
    _get_translucency_method_offset = 3
    _metadata = {
        "iid_data" : (5061181415601867423, 17596970586086855601),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3DSpatialCalculationLevel)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Set the value for a Spatial Calculation Boundary/Fill Level."""
        return self._intf.get_property(VolumetricGraphics3DSpatialCalculationLevel._metadata, VolumetricGraphics3DSpatialCalculationLevel._get_value_metadata)

    _get_color_metadata = { "offset" : _get_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def color(self) -> agcolor.Color:
        """Set the color of a Spatial Calculation Boundary/Fill Level."""
        return self._intf.get_property(VolumetricGraphics3DSpatialCalculationLevel._metadata, VolumetricGraphics3DSpatialCalculationLevel._get_color_metadata)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Set the percent Translucency for a Spatial Calculation Boundary/Fill Level."""
        return self._intf.get_property(VolumetricGraphics3DSpatialCalculationLevel._metadata, VolumetricGraphics3DSpatialCalculationLevel._get_translucency_metadata)

    _property_names[value] = "value"
    _property_names[color] = "color"
    _property_names[translucency] = "translucency"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3DSpatialCalculationLevel."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3DSpatialCalculationLevel)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3DSpatialCalculationLevel, [VolumetricGraphics3DSpatialCalculationLevel, ])

agcls.AgClassCatalog.add_catalog_entry((5673019833010796653, 16130247014042664362), VolumetricGraphics3DSpatialCalculationLevel)
agcls.AgTypeNameMap["VolumetricGraphics3DSpatialCalculationLevel"] = VolumetricGraphics3DSpatialCalculationLevel

class VolumetricGraphics3DSpatialCalculationLevelCollection(SupportsDeleteCallback):
    """VolumetricGraphics3DSpatialCalculationLevelCollection Interface for defining collections of defining Spatial Calculation Boundary/Fill Levels for volumetric grid."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5285903085044829723, 5984069838552174241),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3DSpatialCalculationLevelCollection)
    def __iter__(self):
        """Create an iterator for the VolumetricGraphics3DSpatialCalculationLevelCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "VolumetricGraphics3DSpatialCalculationLevel":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(VolumetricGraphics3DSpatialCalculationLevelCollection._metadata, VolumetricGraphics3DSpatialCalculationLevelCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, level:int) -> "VolumetricGraphics3DSpatialCalculationLevel":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(VolumetricGraphics3DSpatialCalculationLevelCollection._metadata, VolumetricGraphics3DSpatialCalculationLevelCollection._item_metadata, level, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(VolumetricGraphics3DSpatialCalculationLevelCollection._metadata, VolumetricGraphics3DSpatialCalculationLevelCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, level:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(VolumetricGraphics3DSpatialCalculationLevelCollection._metadata, VolumetricGraphics3DSpatialCalculationLevelCollection._remove_at_metadata, level)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(VolumetricGraphics3DSpatialCalculationLevelCollection._metadata, VolumetricGraphics3DSpatialCalculationLevelCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.DOUBLE, agcom.OLE_COLOR, agcom.DOUBLE, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.DoubleArg, agmarshall.OLEColorArg, agmarshall.DoubleArg, agmarshall.InterfaceOutArg,) }
    def add(self, value:float, color:agcolor.Color, translucency:float) -> "VolumetricGraphics3DSpatialCalculationLevel":
        """Add a new level to the collection. When adding a level with duplicate 'Value', it will update 'Color' and 'Translucency' values of the existing level."""
        return self._intf.invoke(VolumetricGraphics3DSpatialCalculationLevelCollection._metadata, VolumetricGraphics3DSpatialCalculationLevelCollection._add_metadata, value, color, translucency, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3DSpatialCalculationLevelCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3DSpatialCalculationLevelCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3DSpatialCalculationLevelCollection, [VolumetricGraphics3DSpatialCalculationLevelCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5455201037233154349, 3518483092259060639), VolumetricGraphics3DSpatialCalculationLevelCollection)
agcls.AgTypeNameMap["VolumetricGraphics3DSpatialCalculationLevelCollection"] = VolumetricGraphics3DSpatialCalculationLevelCollection

class VolumetricGraphics3DLegend(SupportsDeleteCallback):
    """VolumetricGraphics3DLegend Interface for defining boundary/fill legend for volumetric object."""

    _num_methods = 24
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_position_x_method_offset = 1
    _set_position_x_method_offset = 2
    _get_position_y_method_offset = 3
    _set_position_y_method_offset = 4
    _get_translucency_method_offset = 5
    _set_translucency_method_offset = 6
    _get_background_color_method_offset = 7
    _set_background_color_method_offset = 8
    _get_title_method_offset = 9
    _set_title_method_offset = 10
    _get_decimal_digits_method_offset = 11
    _set_decimal_digits_method_offset = 12
    _get_notation_method_offset = 13
    _set_notation_method_offset = 14
    _get_text_color_method_offset = 15
    _set_text_color_method_offset = 16
    _get_level_order_method_offset = 17
    _set_level_order_method_offset = 18
    _get_maximum_color_squares_method_offset = 19
    _set_maximum_color_squares_method_offset = 20
    _get_color_square_width_method_offset = 21
    _set_color_square_width_method_offset = 22
    _get_color_square_height_method_offset = 23
    _set_color_square_height_method_offset = 24
    _metadata = {
        "iid_data" : (4635721639677403522, 8482056567260345778),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricGraphics3DLegend)

    _get_position_x_metadata = { "offset" : _get_position_x_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def position_x(self) -> int:
        """Set the x value for the pixel location for the upper left corner of the legend."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_position_x_metadata)

    _set_position_x_metadata = { "offset" : _set_position_x_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @position_x.setter
    def position_x(self, value:int) -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_position_x_metadata, value)

    _get_position_y_metadata = { "offset" : _get_position_y_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def position_y(self) -> int:
        """Set the y value for the pixel location for the upper left corner of the legend."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_position_y_metadata)

    _set_position_y_metadata = { "offset" : _set_position_y_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @position_y.setter
    def position_y(self, value:int) -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_position_y_metadata, value)

    _get_translucency_metadata = { "offset" : _get_translucency_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def translucency(self) -> float:
        """Set the percent Translucency for the legend."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_translucency_metadata)

    _set_translucency_metadata = { "offset" : _set_translucency_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @translucency.setter
    def translucency(self, value:float) -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_translucency_metadata, value)

    _get_background_color_metadata = { "offset" : _get_background_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def background_color(self) -> agcolor.Color:
        """Set the color of the legend background."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_background_color_metadata)

    _set_background_color_metadata = { "offset" : _set_background_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @background_color.setter
    def background_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_background_color_metadata, color)

    _get_title_metadata = { "offset" : _get_title_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def title(self) -> str:
        """Set the text to appear at the top of the legend."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_title_metadata)

    _set_title_metadata = { "offset" : _set_title_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @title.setter
    def title(self, value:str) -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_title_metadata, value)

    _get_decimal_digits_metadata = { "offset" : _get_decimal_digits_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def decimal_digits(self) -> int:
        """Set the precision, or number of digits that should display to the right of the decimal point, with which real numbers should display."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_decimal_digits_metadata)

    _set_decimal_digits_metadata = { "offset" : _set_decimal_digits_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @decimal_digits.setter
    def decimal_digits(self, value:int) -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_decimal_digits_metadata, value)

    _get_notation_metadata = { "offset" : _get_notation_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VolumetricLegendNumericNotationType),) }
    @property
    def notation(self) -> "VolumetricLegendNumericNotationType":
        """Set the legend numeric notation. A member of the VolumetricLegendNumericNotationType enumeration."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_notation_metadata)

    _set_notation_metadata = { "offset" : _set_notation_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VolumetricLegendNumericNotationType),) }
    @notation.setter
    def notation(self, value:"VolumetricLegendNumericNotationType") -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_notation_metadata, value)

    _get_text_color_metadata = { "offset" : _get_text_color_method_offset,
            "arg_types" : (POINTER(agcom.OLE_COLOR),),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @property
    def text_color(self) -> agcolor.Color:
        """Set the color of the legend text."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_text_color_metadata)

    _set_text_color_metadata = { "offset" : _set_text_color_method_offset,
            "arg_types" : (agcom.OLE_COLOR,),
            "marshallers" : (agmarshall.OLEColorArg,) }
    @text_color.setter
    def text_color(self, color:agcolor.Color) -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_text_color_metadata, color)

    _get_level_order_metadata = { "offset" : _get_level_order_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VolumetricLevelOrder),) }
    @property
    def level_order(self) -> "VolumetricLevelOrder":
        """Set the legend numeric notation. A member of the VolumetricLevelOrder enumeration."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_level_order_metadata)

    _set_level_order_metadata = { "offset" : _set_level_order_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VolumetricLevelOrder),) }
    @level_order.setter
    def level_order(self, value:"VolumetricLevelOrder") -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_level_order_metadata, value)

    _get_maximum_color_squares_metadata = { "offset" : _get_maximum_color_squares_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def maximum_color_squares(self) -> int:
        """Set the number of colors per row or column depending on the selected LevelOrder. Number between 1 and 1000."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_maximum_color_squares_metadata)

    _set_maximum_color_squares_metadata = { "offset" : _set_maximum_color_squares_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @maximum_color_squares.setter
    def maximum_color_squares(self, value:int) -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_maximum_color_squares_metadata, value)

    _get_color_square_width_metadata = { "offset" : _get_color_square_width_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def color_square_width(self) -> int:
        """Set the width of the individual color band. Number between 1 and 100."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_color_square_width_metadata)

    _set_color_square_width_metadata = { "offset" : _set_color_square_width_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @color_square_width.setter
    def color_square_width(self, value:int) -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_color_square_width_metadata, value)

    _get_color_square_height_metadata = { "offset" : _get_color_square_height_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def color_square_height(self) -> int:
        """Set the height of the individual color band. Number between 1 and 100."""
        return self._intf.get_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._get_color_square_height_metadata)

    _set_color_square_height_metadata = { "offset" : _set_color_square_height_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @color_square_height.setter
    def color_square_height(self, value:int) -> None:
        return self._intf.set_property(VolumetricGraphics3DLegend._metadata, VolumetricGraphics3DLegend._set_color_square_height_metadata, value)

    _property_names[position_x] = "position_x"
    _property_names[position_y] = "position_y"
    _property_names[translucency] = "translucency"
    _property_names[background_color] = "background_color"
    _property_names[title] = "title"
    _property_names[decimal_digits] = "decimal_digits"
    _property_names[notation] = "notation"
    _property_names[text_color] = "text_color"
    _property_names[level_order] = "level_order"
    _property_names[maximum_color_squares] = "maximum_color_squares"
    _property_names[color_square_width] = "color_square_width"
    _property_names[color_square_height] = "color_square_height"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricGraphics3DLegend."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricGraphics3DLegend)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricGraphics3DLegend, [VolumetricGraphics3DLegend, ])

agcls.AgClassCatalog.add_catalog_entry((5479175705565119092, 10009406464134061494), VolumetricGraphics3DLegend)
agcls.AgTypeNameMap["VolumetricGraphics3DLegend"] = VolumetricGraphics3DLegend

class VolumetricExportTool(SupportsDeleteCallback):
    """The Volumetric Export Tool."""

    _num_methods = 11
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_export_data_format_type_method_offset = 1
    _set_export_data_format_type_method_offset = 2
    _get_volume_grid_export_type_method_offset = 3
    _set_volume_grid_export_type_method_offset = 4
    _get_include_grid_point_cartesian_method_offset = 5
    _set_include_grid_point_cartesian_method_offset = 6
    _get_include_grid_point_native_method_offset = 7
    _set_include_grid_point_native_method_offset = 8
    _get_include_grid_reference_method_offset = 9
    _set_include_grid_reference_method_offset = 10
    _export_method_offset = 11
    _metadata = {
        "iid_data" : (5105922801526644155, 14946366171471346333),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VolumetricExportTool)

    _get_export_data_format_type_metadata = { "offset" : _get_export_data_format_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VolumetricDataExportFormatType),) }
    @property
    def export_data_format_type(self) -> "VolumetricDataExportFormatType":
        """Volumetric data export format type."""
        return self._intf.get_property(VolumetricExportTool._metadata, VolumetricExportTool._get_export_data_format_type_metadata)

    _set_export_data_format_type_metadata = { "offset" : _set_export_data_format_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VolumetricDataExportFormatType),) }
    @export_data_format_type.setter
    def export_data_format_type(self, value:"VolumetricDataExportFormatType") -> None:
        return self._intf.set_property(VolumetricExportTool._metadata, VolumetricExportTool._set_export_data_format_type_metadata, value)

    _get_volume_grid_export_type_metadata = { "offset" : _get_volume_grid_export_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(VolumetricVolumeGridExportType),) }
    @property
    def volume_grid_export_type(self) -> "VolumetricVolumeGridExportType":
        """Volumetric data export format type."""
        return self._intf.get_property(VolumetricExportTool._metadata, VolumetricExportTool._get_volume_grid_export_type_metadata)

    _set_volume_grid_export_type_metadata = { "offset" : _set_volume_grid_export_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(VolumetricVolumeGridExportType),) }
    @volume_grid_export_type.setter
    def volume_grid_export_type(self, value:"VolumetricVolumeGridExportType") -> None:
        return self._intf.set_property(VolumetricExportTool._metadata, VolumetricExportTool._set_volume_grid_export_type_metadata, value)

    _get_include_grid_point_cartesian_metadata = { "offset" : _get_include_grid_point_cartesian_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_grid_point_cartesian(self) -> bool:
        """Include grid point cartesian coordinates."""
        return self._intf.get_property(VolumetricExportTool._metadata, VolumetricExportTool._get_include_grid_point_cartesian_metadata)

    _set_include_grid_point_cartesian_metadata = { "offset" : _set_include_grid_point_cartesian_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_grid_point_cartesian.setter
    def include_grid_point_cartesian(self, include_grid_point_cartesian:bool) -> None:
        return self._intf.set_property(VolumetricExportTool._metadata, VolumetricExportTool._set_include_grid_point_cartesian_metadata, include_grid_point_cartesian)

    _get_include_grid_point_native_metadata = { "offset" : _get_include_grid_point_native_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_grid_point_native(self) -> bool:
        """Include grid point native coordinates."""
        return self._intf.get_property(VolumetricExportTool._metadata, VolumetricExportTool._get_include_grid_point_native_metadata)

    _set_include_grid_point_native_metadata = { "offset" : _set_include_grid_point_native_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_grid_point_native.setter
    def include_grid_point_native(self, include_grid_point_native:bool) -> None:
        return self._intf.set_property(VolumetricExportTool._metadata, VolumetricExportTool._set_include_grid_point_native_metadata, include_grid_point_native)

    _get_include_grid_reference_metadata = { "offset" : _get_include_grid_reference_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def include_grid_reference(self) -> bool:
        """Include grid point native coordinates."""
        return self._intf.get_property(VolumetricExportTool._metadata, VolumetricExportTool._get_include_grid_reference_metadata)

    _set_include_grid_reference_metadata = { "offset" : _set_include_grid_reference_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @include_grid_reference.setter
    def include_grid_reference(self, include_grid_reference:bool) -> None:
        return self._intf.set_property(VolumetricExportTool._metadata, VolumetricExportTool._set_include_grid_reference_metadata, include_grid_reference)

    _export_metadata = { "offset" : _export_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def export(self, file_name:str) -> None:
        """Export the Volumetric data file."""
        return self._intf.invoke(VolumetricExportTool._metadata, VolumetricExportTool._export_metadata, file_name)

    _property_names[export_data_format_type] = "export_data_format_type"
    _property_names[volume_grid_export_type] = "volume_grid_export_type"
    _property_names[include_grid_point_cartesian] = "include_grid_point_cartesian"
    _property_names[include_grid_point_native] = "include_grid_point_native"
    _property_names[include_grid_reference] = "include_grid_reference"

    def __init__(self, source_object=None):
        """Construct an object of type VolumetricExportTool."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VolumetricExportTool)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VolumetricExportTool, [VolumetricExportTool, ])

agcls.AgClassCatalog.add_catalog_entry((5127524723036995299, 395309663767936959), VolumetricExportTool)
agcls.AgTypeNameMap["VolumetricExportTool"] = VolumetricExportTool

class SatelliteCollection(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """SatelliteCollection properties."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _compute_method_offset = 1
    _metadata = {
        "iid_data" : (5496503482055301921, 5363487037652240011),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SatelliteCollection)

    _compute_metadata = { "offset" : _compute_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def compute(self) -> None:
        """Compute the satellite collection, updating its subgroups."""
        return self._intf.invoke(SatelliteCollection._metadata, SatelliteCollection._compute_metadata, )


    def __init__(self, source_object=None):
        """Construct an object of type SatelliteCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SatelliteCollection)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SatelliteCollection, [SatelliteCollection, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((4667632369911776493, 11823697244967376264), SatelliteCollection)
agcls.AgTypeNameMap["SatelliteCollection"] = SatelliteCollection

class Subset(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """Subset properties."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4621148280367145616, 8157897430220226991),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Subset)


    def __init__(self, source_object=None):
        """Construct an object of type Subset."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Subset)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Subset, [Subset, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5024985719200363134, 2470772045508780447), Subset)
agcls.AgTypeNameMap["Subset"] = Subset

class ElementConfiguration(IElementConfiguration, SupportsDeleteCallback):
    """Class defining an element configuration."""
    def __init__(self, source_object=None):
        """Construct an object of type ElementConfiguration."""
        SupportsDeleteCallback.__init__(self)
        IElementConfiguration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IElementConfiguration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ElementConfiguration, [IElementConfiguration])

agcls.AgClassCatalog.add_catalog_entry((5746185177973945762, 12071889516295868603), ElementConfiguration)
agcls.AgTypeNameMap["ElementConfiguration"] = ElementConfiguration

class ElementConfigurationCircular(IElementConfiguration, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a circular element configuration."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_number_of_elements_method_offset = 1
    _set_number_of_elements_method_offset = 2
    _get_spacing_method_offset = 3
    _set_spacing_method_offset = 4
    _metadata = {
        "iid_data" : (5664183077045483658, 16059011185397965955),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ElementConfigurationCircular)

    _get_number_of_elements_metadata = { "offset" : _get_number_of_elements_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_elements(self) -> int:
        """Get or set the number of elements on the perimiter of the circle."""
        return self._intf.get_property(ElementConfigurationCircular._metadata, ElementConfigurationCircular._get_number_of_elements_metadata)

    _set_number_of_elements_metadata = { "offset" : _set_number_of_elements_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_elements.setter
    def number_of_elements(self, value:int) -> None:
        return self._intf.set_property(ElementConfigurationCircular._metadata, ElementConfigurationCircular._set_number_of_elements_metadata, value)

    _get_spacing_metadata = { "offset" : _get_spacing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def spacing(self) -> float:
        """Get or set the spacing between adjacent elements in wavelengths."""
        return self._intf.get_property(ElementConfigurationCircular._metadata, ElementConfigurationCircular._get_spacing_metadata)

    _set_spacing_metadata = { "offset" : _set_spacing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @spacing.setter
    def spacing(self, value:float) -> None:
        return self._intf.set_property(ElementConfigurationCircular._metadata, ElementConfigurationCircular._set_spacing_metadata, value)

    _property_names[number_of_elements] = "number_of_elements"
    _property_names[spacing] = "spacing"

    def __init__(self, source_object=None):
        """Construct an object of type ElementConfigurationCircular."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ElementConfigurationCircular)
        IElementConfiguration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IElementConfiguration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ElementConfigurationCircular, [ElementConfigurationCircular, IElementConfiguration])

agcls.AgClassCatalog.add_catalog_entry((4770531808057975876, 9025916185273769604), ElementConfigurationCircular)
agcls.AgTypeNameMap["ElementConfigurationCircular"] = ElementConfigurationCircular

class ElementConfigurationLinear(IElementConfiguration, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a linear element configuration."""

    _num_methods = 7
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_number_of_elements_method_offset = 1
    _set_number_of_elements_method_offset = 2
    _get_spacing_method_offset = 3
    _set_spacing_method_offset = 4
    _get_tilt_angle_method_offset = 5
    _set_tilt_angle_method_offset = 6
    _get_maximum_look_angle_method_offset = 7
    _metadata = {
        "iid_data" : (5552235912689597936, 18155441567718507923),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ElementConfigurationLinear)

    _get_number_of_elements_metadata = { "offset" : _get_number_of_elements_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def number_of_elements(self) -> int:
        """Get or set the number of elements on the perimiter of the circle."""
        return self._intf.get_property(ElementConfigurationLinear._metadata, ElementConfigurationLinear._get_number_of_elements_metadata)

    _set_number_of_elements_metadata = { "offset" : _set_number_of_elements_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @number_of_elements.setter
    def number_of_elements(self, value:int) -> None:
        return self._intf.set_property(ElementConfigurationLinear._metadata, ElementConfigurationLinear._set_number_of_elements_metadata, value)

    _get_spacing_metadata = { "offset" : _get_spacing_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def spacing(self) -> float:
        """Get or set the spacing between adjacent elements in wavelengths."""
        return self._intf.get_property(ElementConfigurationLinear._metadata, ElementConfigurationLinear._get_spacing_metadata)

    _set_spacing_metadata = { "offset" : _set_spacing_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @spacing.setter
    def spacing(self, value:float) -> None:
        return self._intf.set_property(ElementConfigurationLinear._metadata, ElementConfigurationLinear._set_spacing_metadata, value)

    _get_tilt_angle_metadata = { "offset" : _get_tilt_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def tilt_angle(self) -> typing.Any:
        """Get or set the tilt angle."""
        return self._intf.get_property(ElementConfigurationLinear._metadata, ElementConfigurationLinear._get_tilt_angle_metadata)

    _set_tilt_angle_metadata = { "offset" : _set_tilt_angle_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @tilt_angle.setter
    def tilt_angle(self, value:typing.Any) -> None:
        return self._intf.set_property(ElementConfigurationLinear._metadata, ElementConfigurationLinear._set_tilt_angle_metadata, value)

    _get_maximum_look_angle_metadata = { "offset" : _get_maximum_look_angle_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum_look_angle(self) -> typing.Any:
        """Get the maximum look angle."""
        return self._intf.get_property(ElementConfigurationLinear._metadata, ElementConfigurationLinear._get_maximum_look_angle_metadata)

    _property_names[number_of_elements] = "number_of_elements"
    _property_names[spacing] = "spacing"
    _property_names[tilt_angle] = "tilt_angle"
    _property_names[maximum_look_angle] = "maximum_look_angle"

    def __init__(self, source_object=None):
        """Construct an object of type ElementConfigurationLinear."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ElementConfigurationLinear)
        IElementConfiguration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IElementConfiguration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ElementConfigurationLinear, [ElementConfigurationLinear, IElementConfiguration])

agcls.AgClassCatalog.add_catalog_entry((5759374408714296024, 13126358895179775376), ElementConfigurationLinear)
agcls.AgTypeNameMap["ElementConfigurationLinear"] = ElementConfigurationLinear

class ElementConfigurationASCIIFile(IElementConfiguration, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a ascii file element configuration."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (4750431577642414423, 15622879731537617819),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ElementConfigurationASCIIFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the file."""
        return self._intf.get_property(ElementConfigurationASCIIFile._metadata, ElementConfigurationASCIIFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(ElementConfigurationASCIIFile._metadata, ElementConfigurationASCIIFile._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type ElementConfigurationASCIIFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ElementConfigurationASCIIFile)
        IElementConfiguration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IElementConfiguration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ElementConfigurationASCIIFile, [ElementConfigurationASCIIFile, IElementConfiguration])

agcls.AgClassCatalog.add_catalog_entry((5261759068886428780, 5525011994409593754), ElementConfigurationASCIIFile)
agcls.AgTypeNameMap["ElementConfigurationASCIIFile"] = ElementConfigurationASCIIFile

class ElementConfigurationHfssEepFile(SupportsDeleteCallback):
    """Provide access to the properties and methods defining an HFSS EEP file element configuration."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_defined_frequencies_method_offset = 3
    _get_gain_type_method_offset = 4
    _set_gain_type_method_offset = 5
    _get_defined_power_value_method_offset = 6
    _get_user_gain_factor_method_offset = 7
    _set_user_gain_factor_method_offset = 8
    _metadata = {
        "iid_data" : (4627228452118201504, 6937927197138652566),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ElementConfigurationHfssEepFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the file."""
        return self._intf.get_property(ElementConfigurationHfssEepFile._metadata, ElementConfigurationHfssEepFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(ElementConfigurationHfssEepFile._metadata, ElementConfigurationHfssEepFile._set_filename_metadata, value)

    _get_defined_frequencies_metadata = { "offset" : _get_defined_frequencies_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def defined_frequencies(self) -> str:
        """Get the frequencies defined in the file."""
        return self._intf.get_property(ElementConfigurationHfssEepFile._metadata, ElementConfigurationHfssEepFile._get_defined_frequencies_metadata)

    _get_gain_type_metadata = { "offset" : _get_gain_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(HFSSFarFieldDataGainType),) }
    @property
    def gain_type(self) -> "HFSSFarFieldDataGainType":
        """Get or set the gain type."""
        return self._intf.get_property(ElementConfigurationHfssEepFile._metadata, ElementConfigurationHfssEepFile._get_gain_type_metadata)

    _set_gain_type_metadata = { "offset" : _set_gain_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(HFSSFarFieldDataGainType),) }
    @gain_type.setter
    def gain_type(self, value:"HFSSFarFieldDataGainType") -> None:
        return self._intf.set_property(ElementConfigurationHfssEepFile._metadata, ElementConfigurationHfssEepFile._set_gain_type_metadata, value)

    _get_defined_power_value_metadata = { "offset" : _get_defined_power_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def defined_power_value(self) -> float:
        """Get the Defined Power Value for the selected GainType."""
        return self._intf.get_property(ElementConfigurationHfssEepFile._metadata, ElementConfigurationHfssEepFile._get_defined_power_value_metadata)

    _get_user_gain_factor_metadata = { "offset" : _get_user_gain_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def user_gain_factor(self) -> float:
        """Get or set the User Gain Factor."""
        return self._intf.get_property(ElementConfigurationHfssEepFile._metadata, ElementConfigurationHfssEepFile._get_user_gain_factor_metadata)

    _set_user_gain_factor_metadata = { "offset" : _set_user_gain_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @user_gain_factor.setter
    def user_gain_factor(self, value:float) -> None:
        return self._intf.set_property(ElementConfigurationHfssEepFile._metadata, ElementConfigurationHfssEepFile._set_user_gain_factor_metadata, value)

    _property_names[filename] = "filename"
    _property_names[defined_frequencies] = "defined_frequencies"
    _property_names[gain_type] = "gain_type"
    _property_names[defined_power_value] = "defined_power_value"
    _property_names[user_gain_factor] = "user_gain_factor"

    def __init__(self, source_object=None):
        """Construct an object of type ElementConfigurationHfssEepFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ElementConfigurationHfssEepFile)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ElementConfigurationHfssEepFile, [ElementConfigurationHfssEepFile, ])

agcls.AgClassCatalog.add_catalog_entry((4631819941054404356, 9982437877288148927), ElementConfigurationHfssEepFile)
agcls.AgTypeNameMap["ElementConfigurationHfssEepFile"] = ElementConfigurationHfssEepFile

class ElementConfigurationPolygon(IElementConfigurationPolygon, IElementConfiguration, SupportsDeleteCallback):
    """Class defining a polygon element configuration."""
    def __init__(self, source_object=None):
        """Construct an object of type ElementConfigurationPolygon."""
        SupportsDeleteCallback.__init__(self)
        IElementConfigurationPolygon.__init__(self, source_object)
        IElementConfiguration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IElementConfigurationPolygon._private_init(self, intf)
        IElementConfiguration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ElementConfigurationPolygon, [IElementConfigurationPolygon, IElementConfiguration])

agcls.AgClassCatalog.add_catalog_entry((5079165923404536532, 5091750861997614228), ElementConfigurationPolygon)
agcls.AgTypeNameMap["ElementConfigurationPolygon"] = ElementConfigurationPolygon

class ElementConfigurationHexagon(IElementConfigurationPolygon, IElementConfiguration, SupportsDeleteCallback):
    """Class defining a hexagon element configuration."""
    def __init__(self, source_object=None):
        """Construct an object of type ElementConfigurationHexagon."""
        SupportsDeleteCallback.__init__(self)
        IElementConfigurationPolygon.__init__(self, source_object)
        IElementConfiguration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IElementConfigurationPolygon._private_init(self, intf)
        IElementConfiguration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ElementConfigurationHexagon, [IElementConfigurationPolygon, IElementConfiguration])

agcls.AgClassCatalog.add_catalog_entry((4883174814079443787, 12620361901297570235), ElementConfigurationHexagon)
agcls.AgTypeNameMap["ElementConfigurationHexagon"] = ElementConfigurationHexagon

class SolarActivityConfiguration(ISolarActivityConfiguration, SupportsDeleteCallback):
    """Class defining a solar activity configuration."""
    def __init__(self, source_object=None):
        """Construct an object of type SolarActivityConfiguration."""
        SupportsDeleteCallback.__init__(self)
        ISolarActivityConfiguration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISolarActivityConfiguration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SolarActivityConfiguration, [ISolarActivityConfiguration])

agcls.AgClassCatalog.add_catalog_entry((5208947567198872312, 1609578097824298156), SolarActivityConfiguration)
agcls.AgTypeNameMap["SolarActivityConfiguration"] = SolarActivityConfiguration

class SolarActivityConfigurationSunspotNumber(ISolarActivityConfiguration, SupportsDeleteCallback):
    """Provide access to the properties and methods defining the sunspot number."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sunspot_number_method_offset = 1
    _set_sunspot_number_method_offset = 2
    _metadata = {
        "iid_data" : (4795239360246422722, 11809864841916726957),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SolarActivityConfigurationSunspotNumber)

    _get_sunspot_number_metadata = { "offset" : _get_sunspot_number_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def sunspot_number(self) -> int:
        """Get or set the sunspot number."""
        return self._intf.get_property(SolarActivityConfigurationSunspotNumber._metadata, SolarActivityConfigurationSunspotNumber._get_sunspot_number_metadata)

    _set_sunspot_number_metadata = { "offset" : _set_sunspot_number_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @sunspot_number.setter
    def sunspot_number(self, value:int) -> None:
        return self._intf.set_property(SolarActivityConfigurationSunspotNumber._metadata, SolarActivityConfigurationSunspotNumber._set_sunspot_number_metadata, value)

    _property_names[sunspot_number] = "sunspot_number"

    def __init__(self, source_object=None):
        """Construct an object of type SolarActivityConfigurationSunspotNumber."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SolarActivityConfigurationSunspotNumber)
        ISolarActivityConfiguration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISolarActivityConfiguration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SolarActivityConfigurationSunspotNumber, [SolarActivityConfigurationSunspotNumber, ISolarActivityConfiguration])

agcls.AgClassCatalog.add_catalog_entry((5636818466431649913, 15849401244970577320), SolarActivityConfigurationSunspotNumber)
agcls.AgTypeNameMap["SolarActivityConfigurationSunspotNumber"] = SolarActivityConfigurationSunspotNumber

class SolarActivityConfigurationSolarFlux(ISolarActivityConfiguration, SupportsDeleteCallback):
    """Provide access to the properties and methods defining the solar flux."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_solar_flux_method_offset = 1
    _set_solar_flux_method_offset = 2
    _metadata = {
        "iid_data" : (5247440500508594620, 17039160255339309487),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SolarActivityConfigurationSolarFlux)

    _get_solar_flux_metadata = { "offset" : _get_solar_flux_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def solar_flux(self) -> float:
        """Get or set the solar flux."""
        return self._intf.get_property(SolarActivityConfigurationSolarFlux._metadata, SolarActivityConfigurationSolarFlux._get_solar_flux_metadata)

    _set_solar_flux_metadata = { "offset" : _set_solar_flux_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @solar_flux.setter
    def solar_flux(self, value:float) -> None:
        return self._intf.set_property(SolarActivityConfigurationSolarFlux._metadata, SolarActivityConfigurationSolarFlux._set_solar_flux_metadata, value)

    _property_names[solar_flux] = "solar_flux"

    def __init__(self, source_object=None):
        """Construct an object of type SolarActivityConfigurationSolarFlux."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SolarActivityConfigurationSolarFlux)
        ISolarActivityConfiguration.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISolarActivityConfiguration._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SolarActivityConfigurationSolarFlux, [SolarActivityConfigurationSolarFlux, ISolarActivityConfiguration])

agcls.AgClassCatalog.add_catalog_entry((5453138504880122303, 14612228342293827222), SolarActivityConfigurationSolarFlux)
agcls.AgTypeNameMap["SolarActivityConfigurationSolarFlux"] = SolarActivityConfigurationSolarFlux

class Beamformer(IBeamformer, SupportsDeleteCallback):
    """Class defining a beamformer."""
    def __init__(self, source_object=None):
        """Construct an object of type Beamformer."""
        SupportsDeleteCallback.__init__(self)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Beamformer, [IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((5558988637732161930, 8278135987749672359), Beamformer)
agcls.AgTypeNameMap["Beamformer"] = Beamformer

class BeamformerASCIIFile(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ascii file beamformer."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5633956405146028445, 15823344756828924575),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerASCIIFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the file."""
        return self._intf.get_property(BeamformerASCIIFile._metadata, BeamformerASCIIFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(BeamformerASCIIFile._metadata, BeamformerASCIIFile._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type BeamformerASCIIFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerASCIIFile)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerASCIIFile, [BeamformerASCIIFile, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((5369376374049305805, 9688579633526449324), BeamformerASCIIFile)
agcls.AgTypeNameMap["BeamformerASCIIFile"] = BeamformerASCIIFile

class BeamformerMVDR(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an MVDR beamformer."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_constraint_method_offset = 1
    _set_constraint_method_offset = 2
    _metadata = {
        "iid_data" : (4805823872971384814, 1761618494211255735),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerMVDR)

    _get_constraint_metadata = { "offset" : _get_constraint_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def constraint(self) -> float:
        """Get or set the constraint."""
        return self._intf.get_property(BeamformerMVDR._metadata, BeamformerMVDR._get_constraint_metadata)

    _set_constraint_metadata = { "offset" : _set_constraint_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @constraint.setter
    def constraint(self, value:float) -> None:
        return self._intf.set_property(BeamformerMVDR._metadata, BeamformerMVDR._set_constraint_metadata, value)

    _property_names[constraint] = "constraint"

    def __init__(self, source_object=None):
        """Construct an object of type BeamformerMVDR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerMVDR)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerMVDR, [BeamformerMVDR, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((5399053401554392246, 6565432158862087581), BeamformerMVDR)
agcls.AgTypeNameMap["BeamformerMVDR"] = BeamformerMVDR

class BeamformerUniform(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a uniform tapered beamformer."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5373067349798491497, 4086633479692114856),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerUniform)


    def __init__(self, source_object=None):
        """Construct an object of type BeamformerUniform."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerUniform)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerUniform, [BeamformerUniform, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((4849687443143771243, 8243890568320625291), BeamformerUniform)
agcls.AgTypeNameMap["BeamformerUniform"] = BeamformerUniform

class BeamformerBlackmanHarris(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a Blackman-Harris tapered beamformer."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5165202493015901629, 12616862340708236430),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerBlackmanHarris)


    def __init__(self, source_object=None):
        """Construct an object of type BeamformerBlackmanHarris."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerBlackmanHarris)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerBlackmanHarris, [BeamformerBlackmanHarris, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((5307845700206358013, 8331050199542884752), BeamformerBlackmanHarris)
agcls.AgTypeNameMap["BeamformerBlackmanHarris"] = BeamformerBlackmanHarris

class BeamformerCosine(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a cosine tapered beamformer."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5590695774060967657, 8602638930994462886),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerCosine)


    def __init__(self, source_object=None):
        """Construct an object of type BeamformerCosine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerCosine)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerCosine, [BeamformerCosine, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((5590738103422502055, 5918614905841972895), BeamformerCosine)
agcls.AgTypeNameMap["BeamformerCosine"] = BeamformerCosine

class BeamformerCosineX(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an cosine^X tapered beamformer."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_x_method_offset = 1
    _set_x_method_offset = 2
    _metadata = {
        "iid_data" : (5036763010071089554, 5885187546961969306),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerCosineX)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x(self) -> float:
        """Get or set the cosine exponent."""
        return self._intf.get_property(BeamformerCosineX._metadata, BeamformerCosineX._get_x_metadata)

    _set_x_metadata = { "offset" : _set_x_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @x.setter
    def x(self, value:float) -> None:
        return self._intf.set_property(BeamformerCosineX._metadata, BeamformerCosineX._set_x_metadata, value)

    _property_names[x] = "x"

    def __init__(self, source_object=None):
        """Construct an object of type BeamformerCosineX."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerCosineX)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerCosineX, [BeamformerCosineX, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((5645318211266502882, 16127374802921921189), BeamformerCosineX)
agcls.AgTypeNameMap["BeamformerCosineX"] = BeamformerCosineX

class BeamformerCustomTaperFile(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a custom taper file beamformer."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5650606941624020194, 6900667333423567539),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerCustomTaperFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the file."""
        return self._intf.get_property(BeamformerCustomTaperFile._metadata, BeamformerCustomTaperFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(BeamformerCustomTaperFile._metadata, BeamformerCustomTaperFile._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type BeamformerCustomTaperFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerCustomTaperFile)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerCustomTaperFile, [BeamformerCustomTaperFile, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((4665751792832159908, 12315945442204498346), BeamformerCustomTaperFile)
agcls.AgTypeNameMap["BeamformerCustomTaperFile"] = BeamformerCustomTaperFile

class BeamformerDolphChebyshev(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a Dolph-Chebyshev tapered beamformer."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sidelobe_level_method_offset = 1
    _set_sidelobe_level_method_offset = 2
    _metadata = {
        "iid_data" : (5232135707504218280, 5940681154070275719),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerDolphChebyshev)

    _get_sidelobe_level_metadata = { "offset" : _get_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sidelobe_level(self) -> float:
        """Get or set the sidelobe level relative to the maximum gain."""
        return self._intf.get_property(BeamformerDolphChebyshev._metadata, BeamformerDolphChebyshev._get_sidelobe_level_metadata)

    _set_sidelobe_level_metadata = { "offset" : _set_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sidelobe_level.setter
    def sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(BeamformerDolphChebyshev._metadata, BeamformerDolphChebyshev._set_sidelobe_level_metadata, value)

    _property_names[sidelobe_level] = "sidelobe_level"

    def __init__(self, source_object=None):
        """Construct an object of type BeamformerDolphChebyshev."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerDolphChebyshev)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerDolphChebyshev, [BeamformerDolphChebyshev, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((4976395330795064824, 3262596457634813373), BeamformerDolphChebyshev)
agcls.AgTypeNameMap["BeamformerDolphChebyshev"] = BeamformerDolphChebyshev

class BeamformerTaylor(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a Taylor tapered beamformer."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_sidelobe_level_method_offset = 1
    _set_sidelobe_level_method_offset = 2
    _get_sidelobe_count_method_offset = 3
    _set_sidelobe_count_method_offset = 4
    _metadata = {
        "iid_data" : (4676054441559958980, 4075843629947319996),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerTaylor)

    _get_sidelobe_level_metadata = { "offset" : _get_sidelobe_level_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def sidelobe_level(self) -> float:
        """Get or set the sidelobe level relative to the maximum gain."""
        return self._intf.get_property(BeamformerTaylor._metadata, BeamformerTaylor._get_sidelobe_level_metadata)

    _set_sidelobe_level_metadata = { "offset" : _set_sidelobe_level_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @sidelobe_level.setter
    def sidelobe_level(self, value:float) -> None:
        return self._intf.set_property(BeamformerTaylor._metadata, BeamformerTaylor._set_sidelobe_level_metadata, value)

    _get_sidelobe_count_metadata = { "offset" : _get_sidelobe_count_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def sidelobe_count(self) -> int:
        """Get or set the number of desired sidelobes to hold close to the desired sidelobe level."""
        return self._intf.get_property(BeamformerTaylor._metadata, BeamformerTaylor._get_sidelobe_count_metadata)

    _set_sidelobe_count_metadata = { "offset" : _set_sidelobe_count_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @sidelobe_count.setter
    def sidelobe_count(self, value:int) -> None:
        return self._intf.set_property(BeamformerTaylor._metadata, BeamformerTaylor._set_sidelobe_count_metadata, value)

    _property_names[sidelobe_level] = "sidelobe_level"
    _property_names[sidelobe_count] = "sidelobe_count"

    def __init__(self, source_object=None):
        """Construct an object of type BeamformerTaylor."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerTaylor)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerTaylor, [BeamformerTaylor, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((5566689922222321919, 3364865708774946178), BeamformerTaylor)
agcls.AgTypeNameMap["BeamformerTaylor"] = BeamformerTaylor

class BeamformerHamming(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a Hamming tapered beamformer."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4820370834733881995, 9610661824803762068),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerHamming)


    def __init__(self, source_object=None):
        """Construct an object of type BeamformerHamming."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerHamming)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerHamming, [BeamformerHamming, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((5420499795119715607, 3448954312441963433), BeamformerHamming)
agcls.AgTypeNameMap["BeamformerHamming"] = BeamformerHamming

class BeamformerHann(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a Hann tapered beamformer."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5150969369793188835, 6786527643527192217),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerHann)


    def __init__(self, source_object=None):
        """Construct an object of type BeamformerHann."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerHann)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerHann, [BeamformerHann, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((4922050311211367911, 7218903360875159439), BeamformerHann)
agcls.AgTypeNameMap["BeamformerHann"] = BeamformerHann

class BeamformerRaisedCosine(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a raised cosine tapered beamformer."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_p_method_offset = 1
    _set_p_method_offset = 2
    _metadata = {
        "iid_data" : (5370607454102029536, 2073562350571130013),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerRaisedCosine)

    _get_p_metadata = { "offset" : _get_p_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def p(self) -> float:
        """Get or set the raised cosine roll-off factor."""
        return self._intf.get_property(BeamformerRaisedCosine._metadata, BeamformerRaisedCosine._get_p_metadata)

    _set_p_metadata = { "offset" : _set_p_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @p.setter
    def p(self, value:float) -> None:
        return self._intf.set_property(BeamformerRaisedCosine._metadata, BeamformerRaisedCosine._set_p_metadata, value)

    _property_names[p] = "p"

    def __init__(self, source_object=None):
        """Construct an object of type BeamformerRaisedCosine."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerRaisedCosine)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerRaisedCosine, [BeamformerRaisedCosine, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((5459031441836826404, 16768631259193356461), BeamformerRaisedCosine)
agcls.AgTypeNameMap["BeamformerRaisedCosine"] = BeamformerRaisedCosine

class BeamformerRaisedCosineSquared(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a raised cosine-squared tapered beamformer."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_p_method_offset = 1
    _set_p_method_offset = 2
    _metadata = {
        "iid_data" : (5413308953409102762, 16204466107016142254),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerRaisedCosineSquared)

    _get_p_metadata = { "offset" : _get_p_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def p(self) -> float:
        """Get or set the  raised cosine-squared roll-off factor."""
        return self._intf.get_property(BeamformerRaisedCosineSquared._metadata, BeamformerRaisedCosineSquared._get_p_metadata)

    _set_p_metadata = { "offset" : _set_p_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @p.setter
    def p(self, value:float) -> None:
        return self._intf.set_property(BeamformerRaisedCosineSquared._metadata, BeamformerRaisedCosineSquared._set_p_metadata, value)

    _property_names[p] = "p"

    def __init__(self, source_object=None):
        """Construct an object of type BeamformerRaisedCosineSquared."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerRaisedCosineSquared)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerRaisedCosineSquared, [BeamformerRaisedCosineSquared, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((4805866717946250377, 2397234612264250797), BeamformerRaisedCosineSquared)
agcls.AgTypeNameMap["BeamformerRaisedCosineSquared"] = BeamformerRaisedCosineSquared

class BeamformerScript(IBeamformer, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an script plugin beamformer."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _metadata = {
        "iid_data" : (5497561627968448242, 9624789201536915093),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, BeamformerScript)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the filename."""
        return self._intf.get_property(BeamformerScript._metadata, BeamformerScript._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(BeamformerScript._metadata, BeamformerScript._set_filename_metadata, value)

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type BeamformerScript."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, BeamformerScript)
        IBeamformer.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IBeamformer._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, BeamformerScript, [BeamformerScript, IBeamformer])

agcls.AgClassCatalog.add_catalog_entry((5579072859677977485, 15667564110346959282), BeamformerScript)
agcls.AgTypeNameMap["BeamformerScript"] = BeamformerScript

class Priority(SupportsDeleteCallback):
    """Provide access to the properties and methods defining a priority-based target selection method."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_value_method_offset = 2
    _set_value_method_offset = 3
    _metadata = {
        "iid_data" : (4881953416303322141, 1290410433388653230),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Priority)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the target's name."""
        return self._intf.get_property(Priority._metadata, Priority._get_name_metadata)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def value(self) -> int:
        """Get or set the target's priority value."""
        return self._intf.get_property(Priority._metadata, Priority._get_value_metadata)

    _set_value_metadata = { "offset" : _set_value_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @value.setter
    def value(self, value:int) -> None:
        return self._intf.set_property(Priority._metadata, Priority._set_value_metadata, value)

    _property_names[name] = "name"
    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type Priority."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Priority)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Priority, [Priority, ])

agcls.AgClassCatalog.add_catalog_entry((5617683874631468241, 1851403976671477919), Priority)
agcls.AgTypeNameMap["Priority"] = Priority

class PriorityCollection(SupportsDeleteCallback):
    """Represents a collection of priorities from a priority-based target selection method."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (4615685647455004321, 7342034939693721532),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PriorityCollection)
    def __iter__(self):
        """Create an iterator for the PriorityCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "Priority":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of priorities in the collection."""
        return self._intf.get_property(PriorityCollection._metadata, PriorityCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "Priority":
        """Given an index, returns the item in the collection."""
        return self._intf.invoke(PriorityCollection._metadata, PriorityCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(PriorityCollection._metadata, PriorityCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type PriorityCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PriorityCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PriorityCollection, [PriorityCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5151043320629910368, 2173631247928843683), PriorityCollection)
agcls.AgTypeNameMap["PriorityCollection"] = PriorityCollection

class TargetSelectionMethod(ITargetSelectionMethod, SupportsDeleteCallback):
    """Class defining a target selection method."""
    def __init__(self, source_object=None):
        """Construct an object of type TargetSelectionMethod."""
        SupportsDeleteCallback.__init__(self)
        ITargetSelectionMethod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITargetSelectionMethod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TargetSelectionMethod, [ITargetSelectionMethod])

agcls.AgClassCatalog.add_catalog_entry((5214902620024873838, 12712295372208197561), TargetSelectionMethod)
agcls.AgTypeNameMap["TargetSelectionMethod"] = TargetSelectionMethod

class TargetSelectionMethodPriority(ITargetSelectionMethod, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a priority-based target selection method."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_priorities_method_offset = 1
    _metadata = {
        "iid_data" : (5717164818855890307, 1087294748104012186),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TargetSelectionMethodPriority)

    _get_priorities_metadata = { "offset" : _get_priorities_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def priorities(self) -> "PriorityCollection":
        """Get the collection of priorities."""
        return self._intf.get_property(TargetSelectionMethodPriority._metadata, TargetSelectionMethodPriority._get_priorities_metadata)

    _property_names[priorities] = "priorities"

    def __init__(self, source_object=None):
        """Construct an object of type TargetSelectionMethodPriority."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TargetSelectionMethodPriority)
        ITargetSelectionMethod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITargetSelectionMethod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TargetSelectionMethodPriority, [TargetSelectionMethodPriority, ITargetSelectionMethod])

agcls.AgClassCatalog.add_catalog_entry((5750607807490765934, 5495161908315695769), TargetSelectionMethodPriority)
agcls.AgTypeNameMap["TargetSelectionMethodPriority"] = TargetSelectionMethodPriority

class TargetSelectionMethodRange(ITargetSelectionMethod, SupportsDeleteCallback):
    """Provide access to the properties and methods defining range-based target selection method."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (5148755995501361460, 18039968817795226810),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TargetSelectionMethodRange)


    def __init__(self, source_object=None):
        """Construct an object of type TargetSelectionMethodRange."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TargetSelectionMethodRange)
        ITargetSelectionMethod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITargetSelectionMethod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TargetSelectionMethodRange, [TargetSelectionMethodRange, ITargetSelectionMethod])

agcls.AgClassCatalog.add_catalog_entry((5529978429414272224, 15205652330090979735), TargetSelectionMethodRange)
agcls.AgTypeNameMap["TargetSelectionMethodRange"] = TargetSelectionMethodRange

class TargetSelectionMethodClosingVelocity(ITargetSelectionMethod, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a closing velocity-based target selection method."""

    _num_methods = 0
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _metadata = {
        "iid_data" : (4948643037003797337, 6710825989245385100),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, TargetSelectionMethodClosingVelocity)


    def __init__(self, source_object=None):
        """Construct an object of type TargetSelectionMethodClosingVelocity."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, TargetSelectionMethodClosingVelocity)
        ITargetSelectionMethod.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ITargetSelectionMethod._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, TargetSelectionMethodClosingVelocity, [TargetSelectionMethodClosingVelocity, ITargetSelectionMethod])

agcls.AgClassCatalog.add_catalog_entry((4886178712705422622, 4815050435247988628), TargetSelectionMethodClosingVelocity)
agcls.AgTypeNameMap["TargetSelectionMethodClosingVelocity"] = TargetSelectionMethodClosingVelocity

class DirectionProvider(IDirectionProvider, SupportsDeleteCallback):
    """Class defining a direction provider."""
    def __init__(self, source_object=None):
        """Construct an object of type DirectionProvider."""
        SupportsDeleteCallback.__init__(self)
        IDirectionProvider.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDirectionProvider._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DirectionProvider, [IDirectionProvider])

agcls.AgClassCatalog.add_catalog_entry((5760621986906431795, 16300425798651662014), DirectionProvider)
agcls.AgTypeNameMap["DirectionProvider"] = DirectionProvider

class DirectionProviderASCIIFile(IDirectionProvider, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an ascii file direction provider."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enabled_method_offset = 1
    _set_enabled_method_offset = 2
    _get_filename_method_offset = 3
    _set_filename_method_offset = 4
    _metadata = {
        "iid_data" : (5722563012149227986, 6176211047714628779),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DirectionProviderASCIIFile)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Get or set the option for enabling steering."""
        return self._intf.get_property(DirectionProviderASCIIFile._metadata, DirectionProviderASCIIFile._get_enabled_metadata)

    _set_enabled_metadata = { "offset" : _set_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enabled.setter
    def enabled(self, value:bool) -> None:
        return self._intf.set_property(DirectionProviderASCIIFile._metadata, DirectionProviderASCIIFile._set_enabled_metadata, value)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the steering ascii file."""
        return self._intf.get_property(DirectionProviderASCIIFile._metadata, DirectionProviderASCIIFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(DirectionProviderASCIIFile._metadata, DirectionProviderASCIIFile._set_filename_metadata, value)

    _property_names[enabled] = "enabled"
    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type DirectionProviderASCIIFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DirectionProviderASCIIFile)
        IDirectionProvider.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDirectionProvider._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DirectionProviderASCIIFile, [DirectionProviderASCIIFile, IDirectionProvider])

agcls.AgClassCatalog.add_catalog_entry((5548324809836752621, 15692317237190823335), DirectionProviderASCIIFile)
agcls.AgTypeNameMap["DirectionProviderASCIIFile"] = DirectionProviderASCIIFile

class DirectionProviderObject(IDirectionProvider, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an object direction provider."""

    _num_methods = 20
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_directions_method_offset = 1
    _get_enabled_method_offset = 2
    _set_enabled_method_offset = 3
    _get_limits_exceeded_behavior_type_method_offset = 4
    _set_limits_exceeded_behavior_type_method_offset = 5
    _get_use_default_direction_method_offset = 6
    _set_use_default_direction_method_offset = 7
    _get_azimuth_steering_limit_a_method_offset = 8
    _set_azimuth_steering_limit_a_method_offset = 9
    _get_azimuth_steering_limit_b_method_offset = 10
    _set_azimuth_steering_limit_b_method_offset = 11
    _get_elevation_steering_limit_a_method_offset = 12
    _set_elevation_steering_limit_a_method_offset = 13
    _get_elevation_steering_limit_b_method_offset = 14
    _set_elevation_steering_limit_b_method_offset = 15
    _get_maximum_selection_count_method_offset = 16
    _set_maximum_selection_count_method_offset = 17
    _get_target_selection_method_type_method_offset = 18
    _set_target_selection_method_type_method_offset = 19
    _get_target_selection_method_method_offset = 20
    _metadata = {
        "iid_data" : (5499382704780572787, 13694695689838364817),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DirectionProviderObject)

    _get_directions_metadata = { "offset" : _get_directions_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def directions(self) -> "ObjectLinkCollection":
        """Get the beam steering list."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_directions_metadata)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Get or set the option for enabling steering."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_enabled_metadata)

    _set_enabled_metadata = { "offset" : _set_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enabled.setter
    def enabled(self, value:bool) -> None:
        return self._intf.set_property(DirectionProviderObject._metadata, DirectionProviderObject._set_enabled_metadata, value)

    _get_limits_exceeded_behavior_type_metadata = { "offset" : _get_limits_exceeded_behavior_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LimitsExceededBehaviorType),) }
    @property
    def limits_exceeded_behavior_type(self) -> "LimitsExceededBehaviorType":
        """Get or set the Limits Exceeded Behavior type."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_limits_exceeded_behavior_type_metadata)

    _set_limits_exceeded_behavior_type_metadata = { "offset" : _set_limits_exceeded_behavior_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LimitsExceededBehaviorType),) }
    @limits_exceeded_behavior_type.setter
    def limits_exceeded_behavior_type(self, value:"LimitsExceededBehaviorType") -> None:
        return self._intf.set_property(DirectionProviderObject._metadata, DirectionProviderObject._set_limits_exceeded_behavior_type_metadata, value)

    _get_use_default_direction_metadata = { "offset" : _get_use_default_direction_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_default_direction(self) -> bool:
        """Get or set the option to use default direction when there are zero objects in the field of view."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_use_default_direction_metadata)

    _set_use_default_direction_metadata = { "offset" : _set_use_default_direction_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_default_direction.setter
    def use_default_direction(self, value:bool) -> None:
        return self._intf.set_property(DirectionProviderObject._metadata, DirectionProviderObject._set_use_default_direction_metadata, value)

    _get_azimuth_steering_limit_a_metadata = { "offset" : _get_azimuth_steering_limit_a_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_steering_limit_a(self) -> float:
        """Get or set Azimuth Steering Limit A."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_azimuth_steering_limit_a_metadata)

    _set_azimuth_steering_limit_a_metadata = { "offset" : _set_azimuth_steering_limit_a_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth_steering_limit_a.setter
    def azimuth_steering_limit_a(self, value:float) -> None:
        return self._intf.set_property(DirectionProviderObject._metadata, DirectionProviderObject._set_azimuth_steering_limit_a_metadata, value)

    _get_azimuth_steering_limit_b_metadata = { "offset" : _get_azimuth_steering_limit_b_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_steering_limit_b(self) -> float:
        """Get or set Azimuth Steering Limit B."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_azimuth_steering_limit_b_metadata)

    _set_azimuth_steering_limit_b_metadata = { "offset" : _set_azimuth_steering_limit_b_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth_steering_limit_b.setter
    def azimuth_steering_limit_b(self, value:float) -> None:
        return self._intf.set_property(DirectionProviderObject._metadata, DirectionProviderObject._set_azimuth_steering_limit_b_metadata, value)

    _get_elevation_steering_limit_a_metadata = { "offset" : _get_elevation_steering_limit_a_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_steering_limit_a(self) -> float:
        """Get or set Elevation Steering Limit A."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_elevation_steering_limit_a_metadata)

    _set_elevation_steering_limit_a_metadata = { "offset" : _set_elevation_steering_limit_a_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @elevation_steering_limit_a.setter
    def elevation_steering_limit_a(self, value:float) -> None:
        return self._intf.set_property(DirectionProviderObject._metadata, DirectionProviderObject._set_elevation_steering_limit_a_metadata, value)

    _get_elevation_steering_limit_b_metadata = { "offset" : _get_elevation_steering_limit_b_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_steering_limit_b(self) -> float:
        """Get or set Elevation Steering Limit B."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_elevation_steering_limit_b_metadata)

    _set_elevation_steering_limit_b_metadata = { "offset" : _set_elevation_steering_limit_b_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @elevation_steering_limit_b.setter
    def elevation_steering_limit_b(self, value:float) -> None:
        return self._intf.set_property(DirectionProviderObject._metadata, DirectionProviderObject._set_elevation_steering_limit_b_metadata, value)

    _get_maximum_selection_count_metadata = { "offset" : _get_maximum_selection_count_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def maximum_selection_count(self) -> int:
        """Get or set the maximum number of targets to select for beam steering."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_maximum_selection_count_metadata)

    _set_maximum_selection_count_metadata = { "offset" : _set_maximum_selection_count_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @maximum_selection_count.setter
    def maximum_selection_count(self, value:int) -> None:
        return self._intf.set_property(DirectionProviderObject._metadata, DirectionProviderObject._set_maximum_selection_count_metadata, value)

    _get_target_selection_method_type_metadata = { "offset" : _get_target_selection_method_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(TargetSelectionMethod),) }
    @property
    def target_selection_method_type(self) -> "TargetSelectionMethod":
        """Get or set the method type used to determine which targets are selected for steering."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_target_selection_method_type_metadata)

    _set_target_selection_method_type_metadata = { "offset" : _set_target_selection_method_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(TargetSelectionMethod),) }
    @target_selection_method_type.setter
    def target_selection_method_type(self, value:"TargetSelectionMethod") -> None:
        return self._intf.set_property(DirectionProviderObject._metadata, DirectionProviderObject._set_target_selection_method_type_metadata, value)

    _get_target_selection_method_metadata = { "offset" : _get_target_selection_method_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def target_selection_method(self) -> "ITargetSelectionMethod":
        """Get the target selection method."""
        return self._intf.get_property(DirectionProviderObject._metadata, DirectionProviderObject._get_target_selection_method_metadata)

    _property_names[directions] = "directions"
    _property_names[enabled] = "enabled"
    _property_names[limits_exceeded_behavior_type] = "limits_exceeded_behavior_type"
    _property_names[use_default_direction] = "use_default_direction"
    _property_names[azimuth_steering_limit_a] = "azimuth_steering_limit_a"
    _property_names[azimuth_steering_limit_b] = "azimuth_steering_limit_b"
    _property_names[elevation_steering_limit_a] = "elevation_steering_limit_a"
    _property_names[elevation_steering_limit_b] = "elevation_steering_limit_b"
    _property_names[maximum_selection_count] = "maximum_selection_count"
    _property_names[target_selection_method_type] = "target_selection_method_type"
    _property_names[target_selection_method] = "target_selection_method"

    def __init__(self, source_object=None):
        """Construct an object of type DirectionProviderObject."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DirectionProviderObject)
        IDirectionProvider.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDirectionProvider._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DirectionProviderObject, [DirectionProviderObject, IDirectionProvider])

agcls.AgClassCatalog.add_catalog_entry((5565288507889174589, 15490350846973940671), DirectionProviderObject)
agcls.AgTypeNameMap["DirectionProviderObject"] = DirectionProviderObject

class DirectionProviderLink(IDirectionProvider, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an link direction provider."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_limits_exceeded_behavior_type_method_offset = 1
    _set_limits_exceeded_behavior_type_method_offset = 2
    _get_azimuth_steering_limit_a_method_offset = 3
    _set_azimuth_steering_limit_a_method_offset = 4
    _get_azimuth_steering_limit_b_method_offset = 5
    _set_azimuth_steering_limit_b_method_offset = 6
    _get_elevation_steering_limit_a_method_offset = 7
    _set_elevation_steering_limit_a_method_offset = 8
    _get_elevation_steering_limit_b_method_offset = 9
    _set_elevation_steering_limit_b_method_offset = 10
    _metadata = {
        "iid_data" : (5155918986765484938, 14648105958343487143),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DirectionProviderLink)

    _get_limits_exceeded_behavior_type_metadata = { "offset" : _get_limits_exceeded_behavior_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(LimitsExceededBehaviorType),) }
    @property
    def limits_exceeded_behavior_type(self) -> "LimitsExceededBehaviorType":
        """Get or set the Limits Exceeded Behavior type."""
        return self._intf.get_property(DirectionProviderLink._metadata, DirectionProviderLink._get_limits_exceeded_behavior_type_metadata)

    _set_limits_exceeded_behavior_type_metadata = { "offset" : _set_limits_exceeded_behavior_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(LimitsExceededBehaviorType),) }
    @limits_exceeded_behavior_type.setter
    def limits_exceeded_behavior_type(self, value:"LimitsExceededBehaviorType") -> None:
        return self._intf.set_property(DirectionProviderLink._metadata, DirectionProviderLink._set_limits_exceeded_behavior_type_metadata, value)

    _get_azimuth_steering_limit_a_metadata = { "offset" : _get_azimuth_steering_limit_a_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_steering_limit_a(self) -> float:
        """Get or set Azimuth Steering Limit A."""
        return self._intf.get_property(DirectionProviderLink._metadata, DirectionProviderLink._get_azimuth_steering_limit_a_metadata)

    _set_azimuth_steering_limit_a_metadata = { "offset" : _set_azimuth_steering_limit_a_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth_steering_limit_a.setter
    def azimuth_steering_limit_a(self, value:float) -> None:
        return self._intf.set_property(DirectionProviderLink._metadata, DirectionProviderLink._set_azimuth_steering_limit_a_metadata, value)

    _get_azimuth_steering_limit_b_metadata = { "offset" : _get_azimuth_steering_limit_b_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def azimuth_steering_limit_b(self) -> float:
        """Get or set Azimuth Steering Limit B."""
        return self._intf.get_property(DirectionProviderLink._metadata, DirectionProviderLink._get_azimuth_steering_limit_b_metadata)

    _set_azimuth_steering_limit_b_metadata = { "offset" : _set_azimuth_steering_limit_b_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @azimuth_steering_limit_b.setter
    def azimuth_steering_limit_b(self, value:float) -> None:
        return self._intf.set_property(DirectionProviderLink._metadata, DirectionProviderLink._set_azimuth_steering_limit_b_metadata, value)

    _get_elevation_steering_limit_a_metadata = { "offset" : _get_elevation_steering_limit_a_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_steering_limit_a(self) -> float:
        """Get or set Elevation Steering Limit A."""
        return self._intf.get_property(DirectionProviderLink._metadata, DirectionProviderLink._get_elevation_steering_limit_a_metadata)

    _set_elevation_steering_limit_a_metadata = { "offset" : _set_elevation_steering_limit_a_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @elevation_steering_limit_a.setter
    def elevation_steering_limit_a(self, value:float) -> None:
        return self._intf.set_property(DirectionProviderLink._metadata, DirectionProviderLink._set_elevation_steering_limit_a_metadata, value)

    _get_elevation_steering_limit_b_metadata = { "offset" : _get_elevation_steering_limit_b_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def elevation_steering_limit_b(self) -> float:
        """Get or set Elevation Steering Limit B."""
        return self._intf.get_property(DirectionProviderLink._metadata, DirectionProviderLink._get_elevation_steering_limit_b_metadata)

    _set_elevation_steering_limit_b_metadata = { "offset" : _set_elevation_steering_limit_b_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @elevation_steering_limit_b.setter
    def elevation_steering_limit_b(self, value:float) -> None:
        return self._intf.set_property(DirectionProviderLink._metadata, DirectionProviderLink._set_elevation_steering_limit_b_metadata, value)

    _property_names[limits_exceeded_behavior_type] = "limits_exceeded_behavior_type"
    _property_names[azimuth_steering_limit_a] = "azimuth_steering_limit_a"
    _property_names[azimuth_steering_limit_b] = "azimuth_steering_limit_b"
    _property_names[elevation_steering_limit_a] = "elevation_steering_limit_a"
    _property_names[elevation_steering_limit_b] = "elevation_steering_limit_b"

    def __init__(self, source_object=None):
        """Construct an object of type DirectionProviderLink."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DirectionProviderLink)
        IDirectionProvider.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDirectionProvider._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DirectionProviderLink, [DirectionProviderLink, IDirectionProvider])

agcls.AgClassCatalog.add_catalog_entry((4734558107762322380, 3872700552389818499), DirectionProviderLink)
agcls.AgTypeNameMap["DirectionProviderLink"] = DirectionProviderLink

class DirectionProviderScript(IDirectionProvider, SupportsDeleteCallback):
    """Provide access to the properties and methods defining an script plugin direction provider."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_members_method_offset = 1
    _get_filename_method_offset = 2
    _set_filename_method_offset = 3
    _metadata = {
        "iid_data" : (4810420675860267197, 5507284776460878995),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DirectionProviderScript)

    _get_members_metadata = { "offset" : _get_members_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def members(self) -> "ObjectLinkCollection":
        """Get the members list."""
        return self._intf.get_property(DirectionProviderScript._metadata, DirectionProviderScript._get_members_metadata)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Get or set the filename."""
        return self._intf.get_property(DirectionProviderScript._metadata, DirectionProviderScript._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(DirectionProviderScript._metadata, DirectionProviderScript._set_filename_metadata, value)

    _property_names[members] = "members"
    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type DirectionProviderScript."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DirectionProviderScript)
        IDirectionProvider.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IDirectionProvider._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DirectionProviderScript, [DirectionProviderScript, IDirectionProvider])

agcls.AgClassCatalog.add_catalog_entry((5590292842279628739, 15392539382455014050), DirectionProviderScript)
agcls.AgTypeNameMap["DirectionProviderScript"] = DirectionProviderScript

class Element(SupportsDeleteCallback):
    """Provide access to the properties and methods defining a phased array element."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_x_method_offset = 1
    _get_y_method_offset = 2
    _get_identifier_method_offset = 3
    _get_enabled_method_offset = 4
    _set_enabled_method_offset = 5
    _metadata = {
        "iid_data" : (5471686800271162067, 17747056760404360320),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Element)

    _get_x_metadata = { "offset" : _get_x_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def x(self) -> float:
        """Get the x position, in wavelengths."""
        return self._intf.get_property(Element._metadata, Element._get_x_metadata)

    _get_y_metadata = { "offset" : _get_y_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def y(self) -> float:
        """Get the y position, in wavelengths."""
        return self._intf.get_property(Element._metadata, Element._get_y_metadata)

    _get_identifier_metadata = { "offset" : _get_identifier_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def identifier(self) -> int:
        """Get the element Id."""
        return self._intf.get_property(Element._metadata, Element._get_identifier_metadata)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Get or set whether or not the element is enabled."""
        return self._intf.get_property(Element._metadata, Element._get_enabled_metadata)

    _set_enabled_metadata = { "offset" : _set_enabled_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enabled.setter
    def enabled(self, value:bool) -> None:
        return self._intf.set_property(Element._metadata, Element._set_enabled_metadata, value)

    _property_names[x] = "x"
    _property_names[y] = "y"
    _property_names[identifier] = "identifier"
    _property_names[enabled] = "enabled"

    def __init__(self, source_object=None):
        """Construct an object of type Element."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Element)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Element, [Element, ])

agcls.AgClassCatalog.add_catalog_entry((5125988439340576089, 15868390165599912361), Element)
agcls.AgTypeNameMap["Element"] = Element

class ElementCollection(SupportsDeleteCallback):
    """Represents a collection of phased array elements."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (5265600016102456920, 18220219424186997686),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, ElementCollection)
    def __iter__(self):
        """Create an iterator for the ElementCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "Element":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in the collection."""
        return self._intf.get_property(ElementCollection._metadata, ElementCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.INT, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IntArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "Element":
        """Given an index, returns the element in the collection."""
        return self._intf.invoke(ElementCollection._metadata, ElementCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator for the collection."""
        return self._intf.get_property(ElementCollection._metadata, ElementCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type ElementCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, ElementCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, ElementCollection, [ElementCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4868609802252555272, 7129333562065628565), ElementCollection)
agcls.AgTypeNameMap["ElementCollection"] = ElementCollection

class KeyValueCollection(SupportsDeleteCallback):
    """A collection of keys and values associated with the keys."""

    _num_methods = 10
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _contains_method_offset = 4
    _remove_all_method_offset = 5
    _remove_key_method_offset = 6
    _set_method_offset = 7
    _get_keys_method_offset = 8
    _get_read_only_method_offset = 9
    _set_read_only_method_offset = 10
    _metadata = {
        "iid_data" : (4897415598149893054, 15510003516842211240),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, KeyValueCollection)
    def __iter__(self):
        """Create an iterator for the KeyValueCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> str:
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(KeyValueCollection._metadata, KeyValueCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def item(self, key:str) -> str:
        """Given a key, returns associated element."""
        return self._intf.invoke(KeyValueCollection._metadata, KeyValueCollection._item_metadata, key, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator containing the keys in the collection."""
        return self._intf.get_property(KeyValueCollection._metadata, KeyValueCollection._get__new_enum_metadata)

    _contains_metadata = { "offset" : _contains_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def contains(self, key:str) -> bool:
        """Determine whether the collection contains the specified key."""
        return self._intf.invoke(KeyValueCollection._metadata, KeyValueCollection._contains_metadata, key, OutArg())

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements."""
        return self._intf.invoke(KeyValueCollection._metadata, KeyValueCollection._remove_all_metadata, )

    _remove_key_metadata = { "offset" : _remove_key_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def remove_key(self, key:str) -> bool:
        """Remove an element associated with specified key."""
        return self._intf.invoke(KeyValueCollection._metadata, KeyValueCollection._remove_key_metadata, key, OutArg())

    _set_metadata = { "offset" : _set_method_offset,
            "arg_types" : (agcom.BSTR, agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.BStrArg,) }
    def set(self, key:str, value:str) -> None:
        """Set the value associated with specified key."""
        return self._intf.invoke(KeyValueCollection._metadata, KeyValueCollection._set_metadata, key, value)

    _get_keys_metadata = { "offset" : _get_keys_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def keys(self) -> list:
        """Return an array of keys of the collection."""
        return self._intf.get_property(KeyValueCollection._metadata, KeyValueCollection._get_keys_metadata)

    _get_read_only_metadata = { "offset" : _get_read_only_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def get_read_only(self, key:str) -> bool:
        """Given a key, returns read-only flag."""
        return self._intf.invoke(KeyValueCollection._metadata, KeyValueCollection._get_read_only_metadata, key, OutArg())

    _set_read_only_metadata = { "offset" : _set_read_only_method_offset,
            "arg_types" : (agcom.BSTR, agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.BStrArg, agmarshall.VariantBoolArg,) }
    def set_read_only(self, key:str, is_read_only:bool) -> None:
        """Given a key, sets read-only flag."""
        return self._intf.invoke(KeyValueCollection._metadata, KeyValueCollection._set_read_only_metadata, key, is_read_only)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"
    _property_names[keys] = "keys"

    def __init__(self, source_object=None):
        """Construct an object of type KeyValueCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, KeyValueCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, KeyValueCollection, [KeyValueCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5647002939766699321, 1300416035703029638), KeyValueCollection)
agcls.AgTypeNameMap["KeyValueCollection"] = KeyValueCollection

class RadarSTCAttenuation(IRadarSTCAttenuation, SupportsDeleteCallback):
    """Class defining an radar stc."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarSTCAttenuation."""
        SupportsDeleteCallback.__init__(self)
        IRadarSTCAttenuation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarSTCAttenuation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarSTCAttenuation, [IRadarSTCAttenuation])

agcls.AgClassCatalog.add_catalog_entry((4995119789281256960, 5711954603309153703), RadarSTCAttenuation)
agcls.AgTypeNameMap["RadarSTCAttenuation"] = RadarSTCAttenuation

class RadarSTCAttenuationDecayFactor(IRadarSTCAttenuation, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar decay factor STC attenuation."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_maximum_value_method_offset = 1
    _set_maximum_value_method_offset = 2
    _get_start_value_method_offset = 3
    _set_start_value_method_offset = 4
    _get_step_size_method_offset = 5
    _set_step_size_method_offset = 6
    _get_start_range_method_offset = 7
    _set_start_range_method_offset = 8
    _get_stop_range_method_offset = 9
    _set_stop_range_method_offset = 10
    _get_decay_factor_method_offset = 11
    _set_decay_factor_method_offset = 12
    _metadata = {
        "iid_data" : (5199568538757332657, 10719010083682409627),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarSTCAttenuationDecayFactor)

    _get_maximum_value_metadata = { "offset" : _get_maximum_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_value(self) -> float:
        """Get or set the maximum value."""
        return self._intf.get_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._get_maximum_value_metadata)

    _set_maximum_value_metadata = { "offset" : _set_maximum_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_value.setter
    def maximum_value(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._set_maximum_value_metadata, value)

    _get_start_value_metadata = { "offset" : _get_start_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def start_value(self) -> float:
        """Get or set the start value."""
        return self._intf.get_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._get_start_value_metadata)

    _set_start_value_metadata = { "offset" : _set_start_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @start_value.setter
    def start_value(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._set_start_value_metadata, value)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step_size(self) -> float:
        """Get or set the step size."""
        return self._intf.get_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._get_step_size_metadata)

    _set_step_size_metadata = { "offset" : _set_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step_size.setter
    def step_size(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._set_step_size_metadata, value)

    _get_start_range_metadata = { "offset" : _get_start_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def start_range(self) -> float:
        """Get or set the start range."""
        return self._intf.get_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._get_start_range_metadata)

    _set_start_range_metadata = { "offset" : _set_start_range_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @start_range.setter
    def start_range(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._set_start_range_metadata, value)

    _get_stop_range_metadata = { "offset" : _get_stop_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def stop_range(self) -> float:
        """Get or set the stop range."""
        return self._intf.get_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._get_stop_range_metadata)

    _set_stop_range_metadata = { "offset" : _set_stop_range_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @stop_range.setter
    def stop_range(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._set_stop_range_metadata, value)

    _get_decay_factor_metadata = { "offset" : _get_decay_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def decay_factor(self) -> float:
        """Get or set the decay factor."""
        return self._intf.get_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._get_decay_factor_metadata)

    _set_decay_factor_metadata = { "offset" : _set_decay_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @decay_factor.setter
    def decay_factor(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecayFactor._metadata, RadarSTCAttenuationDecayFactor._set_decay_factor_metadata, value)

    _property_names[maximum_value] = "maximum_value"
    _property_names[start_value] = "start_value"
    _property_names[step_size] = "step_size"
    _property_names[start_range] = "start_range"
    _property_names[stop_range] = "stop_range"
    _property_names[decay_factor] = "decay_factor"

    def __init__(self, source_object=None):
        """Construct an object of type RadarSTCAttenuationDecayFactor."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarSTCAttenuationDecayFactor)
        IRadarSTCAttenuation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarSTCAttenuation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarSTCAttenuationDecayFactor, [RadarSTCAttenuationDecayFactor, IRadarSTCAttenuation])

agcls.AgClassCatalog.add_catalog_entry((5044539588156968498, 10404916766932303512), RadarSTCAttenuationDecayFactor)
agcls.AgTypeNameMap["RadarSTCAttenuationDecayFactor"] = RadarSTCAttenuationDecayFactor

class RadarSTCAttenuationDecaySlope(IRadarSTCAttenuation, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar decay slope STC attenuation."""

    _num_methods = 12
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_maximum_value_method_offset = 1
    _set_maximum_value_method_offset = 2
    _get_start_value_method_offset = 3
    _set_start_value_method_offset = 4
    _get_step_size_method_offset = 5
    _set_step_size_method_offset = 6
    _get_start_range_method_offset = 7
    _set_start_range_method_offset = 8
    _get_stop_range_method_offset = 9
    _set_stop_range_method_offset = 10
    _get_decay_slope_method_offset = 11
    _set_decay_slope_method_offset = 12
    _metadata = {
        "iid_data" : (5632175244918382961, 3026216853180224134),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarSTCAttenuationDecaySlope)

    _get_maximum_value_metadata = { "offset" : _get_maximum_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_value(self) -> float:
        """Get or set the maximum value."""
        return self._intf.get_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._get_maximum_value_metadata)

    _set_maximum_value_metadata = { "offset" : _set_maximum_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_value.setter
    def maximum_value(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._set_maximum_value_metadata, value)

    _get_start_value_metadata = { "offset" : _get_start_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def start_value(self) -> float:
        """Get or set the start value."""
        return self._intf.get_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._get_start_value_metadata)

    _set_start_value_metadata = { "offset" : _set_start_value_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @start_value.setter
    def start_value(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._set_start_value_metadata, value)

    _get_step_size_metadata = { "offset" : _get_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def step_size(self) -> float:
        """Get or set the step size."""
        return self._intf.get_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._get_step_size_metadata)

    _set_step_size_metadata = { "offset" : _set_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @step_size.setter
    def step_size(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._set_step_size_metadata, value)

    _get_start_range_metadata = { "offset" : _get_start_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def start_range(self) -> float:
        """Get or set the start range."""
        return self._intf.get_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._get_start_range_metadata)

    _set_start_range_metadata = { "offset" : _set_start_range_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @start_range.setter
    def start_range(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._set_start_range_metadata, value)

    _get_stop_range_metadata = { "offset" : _get_stop_range_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def stop_range(self) -> float:
        """Get or set the stop range."""
        return self._intf.get_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._get_stop_range_metadata)

    _set_stop_range_metadata = { "offset" : _set_stop_range_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @stop_range.setter
    def stop_range(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._set_stop_range_metadata, value)

    _get_decay_slope_metadata = { "offset" : _get_decay_slope_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def decay_slope(self) -> float:
        """Get or set the decay slope."""
        return self._intf.get_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._get_decay_slope_metadata)

    _set_decay_slope_metadata = { "offset" : _set_decay_slope_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @decay_slope.setter
    def decay_slope(self, value:float) -> None:
        return self._intf.set_property(RadarSTCAttenuationDecaySlope._metadata, RadarSTCAttenuationDecaySlope._set_decay_slope_metadata, value)

    _property_names[maximum_value] = "maximum_value"
    _property_names[start_value] = "start_value"
    _property_names[step_size] = "step_size"
    _property_names[start_range] = "start_range"
    _property_names[stop_range] = "stop_range"
    _property_names[decay_slope] = "decay_slope"

    def __init__(self, source_object=None):
        """Construct an object of type RadarSTCAttenuationDecaySlope."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarSTCAttenuationDecaySlope)
        IRadarSTCAttenuation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarSTCAttenuation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarSTCAttenuationDecaySlope, [RadarSTCAttenuationDecaySlope, IRadarSTCAttenuation])

agcls.AgClassCatalog.add_catalog_entry((5234868492280745573, 10317704804508733318), RadarSTCAttenuationDecaySlope)
agcls.AgTypeNameMap["RadarSTCAttenuationDecaySlope"] = RadarSTCAttenuationDecaySlope

class RadarSTCAttenuationMapRange(IRadarSTCAttenuation, IRadarSTCAttenuationMap, SupportsDeleteCallback):
    """Class defining an radar stc range map."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarSTCAttenuationMapRange."""
        SupportsDeleteCallback.__init__(self)
        IRadarSTCAttenuation.__init__(self, source_object)
        IRadarSTCAttenuationMap.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarSTCAttenuation._private_init(self, intf)
        IRadarSTCAttenuationMap._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarSTCAttenuationMapRange, [IRadarSTCAttenuation, IRadarSTCAttenuationMap])

agcls.AgClassCatalog.add_catalog_entry((5202691400162936242, 12595190521772940422), RadarSTCAttenuationMapRange)
agcls.AgTypeNameMap["RadarSTCAttenuationMapRange"] = RadarSTCAttenuationMapRange

class RadarSTCAttenuationMapAzimuthRange(IRadarSTCAttenuation, IRadarSTCAttenuationMap, SupportsDeleteCallback):
    """Class defining an radar stc azimuth-range map."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarSTCAttenuationMapAzimuthRange."""
        SupportsDeleteCallback.__init__(self)
        IRadarSTCAttenuation.__init__(self, source_object)
        IRadarSTCAttenuationMap.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarSTCAttenuation._private_init(self, intf)
        IRadarSTCAttenuationMap._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarSTCAttenuationMapAzimuthRange, [IRadarSTCAttenuation, IRadarSTCAttenuationMap])

agcls.AgClassCatalog.add_catalog_entry((5241086329154088964, 5830581343361264778), RadarSTCAttenuationMapAzimuthRange)
agcls.AgTypeNameMap["RadarSTCAttenuationMapAzimuthRange"] = RadarSTCAttenuationMapAzimuthRange

class RadarSTCAttenuationMapElevationRange(IRadarSTCAttenuation, IRadarSTCAttenuationMap, SupportsDeleteCallback):
    """Class defining an radar stc elevation-range map."""
    def __init__(self, source_object=None):
        """Construct an object of type RadarSTCAttenuationMapElevationRange."""
        SupportsDeleteCallback.__init__(self)
        IRadarSTCAttenuation.__init__(self, source_object)
        IRadarSTCAttenuationMap.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarSTCAttenuation._private_init(self, intf)
        IRadarSTCAttenuationMap._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarSTCAttenuationMapElevationRange, [IRadarSTCAttenuation, IRadarSTCAttenuationMap])

agcls.AgClassCatalog.add_catalog_entry((4902649161798398238, 15788246861221948053), RadarSTCAttenuationMapElevationRange)
agcls.AgTypeNameMap["RadarSTCAttenuationMapElevationRange"] = RadarSTCAttenuationMapElevationRange

class RadarSTCAttenuationPlugin(IRadarSTCAttenuation, SupportsDeleteCallback):
    """Provide access to the properties and methods defining a radar STC plugin model."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_plugin_configuration_method_offset = 1
    _get_raw_plugin_object_method_offset = 2
    _metadata = {
        "iid_data" : (4864332374059743328, 1682634812105052325),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, RadarSTCAttenuationPlugin)

    _get_plugin_configuration_metadata = { "offset" : _get_plugin_configuration_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plugin_configuration(self) -> "CommRadPluginConfiguration":
        """Get the plugin configuration interface."""
        return self._intf.get_property(RadarSTCAttenuationPlugin._metadata, RadarSTCAttenuationPlugin._get_plugin_configuration_metadata)

    _get_raw_plugin_object_metadata = { "offset" : _get_raw_plugin_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def raw_plugin_object(self) -> typing.Any:
        """Get the raw plugin IUnknown interface."""
        return self._intf.get_property(RadarSTCAttenuationPlugin._metadata, RadarSTCAttenuationPlugin._get_raw_plugin_object_metadata)

    _property_names[plugin_configuration] = "plugin_configuration"
    _property_names[raw_plugin_object] = "raw_plugin_object"

    def __init__(self, source_object=None):
        """Construct an object of type RadarSTCAttenuationPlugin."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, RadarSTCAttenuationPlugin)
        IRadarSTCAttenuation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IRadarSTCAttenuation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, RadarSTCAttenuationPlugin, [RadarSTCAttenuationPlugin, IRadarSTCAttenuation])

agcls.AgClassCatalog.add_catalog_entry((4733744625845234925, 726331482427561919), RadarSTCAttenuationPlugin)
agcls.AgTypeNameMap["RadarSTCAttenuationPlugin"] = RadarSTCAttenuationPlugin

class SensorPointingAlongVector(ISensorPointing, SupportsDeleteCallback):
    """SensorPointingAlongVector Interface for a sensor whose alignment is controlled by a pair of vectors defined using the Vector Geometry tool."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_alignment_vector_method_offset = 1
    _set_alignment_vector_method_offset = 2
    _get_available_alignment_vectors_method_offset = 3
    _get_constraint_vector_method_offset = 4
    _set_constraint_vector_method_offset = 5
    _get_available_constraint_vectors_method_offset = 6
    _get_clock_angle_offset_method_offset = 7
    _set_clock_angle_offset_method_offset = 8
    _metadata = {
        "iid_data" : (5680800909786274082, 10811699555786739128),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointingAlongVector)

    _get_alignment_vector_metadata = { "offset" : _get_alignment_vector_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def alignment_vector(self) -> str:
        """The alignment vector for along vector sensor pointing alignment."""
        return self._intf.get_property(SensorPointingAlongVector._metadata, SensorPointingAlongVector._get_alignment_vector_metadata)

    _set_alignment_vector_metadata = { "offset" : _set_alignment_vector_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @alignment_vector.setter
    def alignment_vector(self, value:str) -> None:
        return self._intf.set_property(SensorPointingAlongVector._metadata, SensorPointingAlongVector._set_alignment_vector_metadata, value)

    _get_available_alignment_vectors_metadata = { "offset" : _get_available_alignment_vectors_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_alignment_vectors(self) -> list:
        """Get the available Alignment Vectors."""
        return self._intf.get_property(SensorPointingAlongVector._metadata, SensorPointingAlongVector._get_available_alignment_vectors_metadata)

    _get_constraint_vector_metadata = { "offset" : _get_constraint_vector_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def constraint_vector(self) -> str:
        """The constraint vector for along vector sensor pointing alignment."""
        return self._intf.get_property(SensorPointingAlongVector._metadata, SensorPointingAlongVector._get_constraint_vector_metadata)

    _set_constraint_vector_metadata = { "offset" : _set_constraint_vector_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @constraint_vector.setter
    def constraint_vector(self, value:str) -> None:
        return self._intf.set_property(SensorPointingAlongVector._metadata, SensorPointingAlongVector._set_constraint_vector_metadata, value)

    _get_available_constraint_vectors_metadata = { "offset" : _get_available_constraint_vectors_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_constraint_vectors(self) -> list:
        """Get the available Constraint Vector."""
        return self._intf.get_property(SensorPointingAlongVector._metadata, SensorPointingAlongVector._get_available_constraint_vectors_metadata)

    _get_clock_angle_offset_metadata = { "offset" : _get_clock_angle_offset_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def clock_angle_offset(self) -> typing.Any:
        """The clock angle offset for along vector sensor pointing alignment.It is an optional value that is entered in degrees, between -360.0 and 360.0."""
        return self._intf.get_property(SensorPointingAlongVector._metadata, SensorPointingAlongVector._get_clock_angle_offset_metadata)

    _set_clock_angle_offset_metadata = { "offset" : _set_clock_angle_offset_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @clock_angle_offset.setter
    def clock_angle_offset(self, value:typing.Any) -> None:
        return self._intf.set_property(SensorPointingAlongVector._metadata, SensorPointingAlongVector._set_clock_angle_offset_metadata, value)

    _property_names[alignment_vector] = "alignment_vector"
    _property_names[available_alignment_vectors] = "available_alignment_vectors"
    _property_names[constraint_vector] = "constraint_vector"
    _property_names[available_constraint_vectors] = "available_constraint_vectors"
    _property_names[clock_angle_offset] = "clock_angle_offset"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointingAlongVector."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointingAlongVector)
        ISensorPointing.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointing._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointingAlongVector, [SensorPointingAlongVector, ISensorPointing])

agcls.AgClassCatalog.add_catalog_entry((5712737100702049511, 4637416485567069057), SensorPointingAlongVector)
agcls.AgTypeNameMap["SensorPointingAlongVector"] = SensorPointingAlongVector

class SensorPointingSchedule(ISensorPointing, SupportsDeleteCallback):
    """SensorPointingSchedule is a placeholder interface to handle Sensor Schedule pointing type. Use Point path/to/sensor Schedule connect command to control scheduled sensor pointing."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_enabled_method_offset = 1
    _metadata = {
        "iid_data" : (5738487952136629385, 4565505624212741817),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, SensorPointingSchedule)

    _get_enabled_metadata = { "offset" : _get_enabled_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enabled(self) -> bool:
        """Whether scheduled sensor pointing is enabled."""
        return self._intf.get_property(SensorPointingSchedule._metadata, SensorPointingSchedule._get_enabled_metadata)

    _property_names[enabled] = "enabled"

    def __init__(self, source_object=None):
        """Construct an object of type SensorPointingSchedule."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, SensorPointingSchedule)
        ISensorPointing.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISensorPointing._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, SensorPointingSchedule, [SensorPointingSchedule, ISensorPointing])

agcls.AgClassCatalog.add_catalog_entry((5299952724480090561, 12037227889758221974), SensorPointingSchedule)
agcls.AgTypeNameMap["SensorPointingSchedule"] = SensorPointingSchedule

class AccessConstraintAnalysisWorkbenchCollection(IAccessConstraint, SupportsDeleteCallback):
    """AccessConstraintAnalysisWorkbenchCollection used to access angle, vector and condition constraint List interface."""

    _num_methods = 8
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _remove_index_method_offset = 2
    _remove_all_method_offset = 3
    _remove_constraint_method_offset = 4
    _add_constraint_method_offset = 5
    _get_available_references_method_offset = 6
    _item_method_offset = 7
    _get__new_enum_method_offset = 8
    _metadata = {
        "iid_data" : (5481384868317230159, 16886145389793779330),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintAnalysisWorkbenchCollection)
    def __iter__(self):
        """Create an iterator for the AccessConstraintAnalysisWorkbenchCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "AccessConstraintAnalysisWorkbench":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Number of items in the collection."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbenchCollection._metadata, AccessConstraintAnalysisWorkbenchCollection._get_count_metadata)

    _remove_index_metadata = { "offset" : _remove_index_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_index(self, index:int) -> None:
        """Remove an item given an index."""
        return self._intf.invoke(AccessConstraintAnalysisWorkbenchCollection._metadata, AccessConstraintAnalysisWorkbenchCollection._remove_index_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all items from the collection."""
        return self._intf.invoke(AccessConstraintAnalysisWorkbenchCollection._metadata, AccessConstraintAnalysisWorkbenchCollection._remove_all_metadata, )

    _remove_constraint_metadata = { "offset" : _remove_constraint_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR,),
            "marshallers" : (agmarshall.EnumArg(AnalysisWorkbenchAccessConstraintType), agmarshall.BStrArg,) }
    def remove_constraint(self, type:"AnalysisWorkbenchAccessConstraintType", reference:str) -> None:
        """Remove a Analysis Workbench using Reference/Component."""
        return self._intf.invoke(AccessConstraintAnalysisWorkbenchCollection._metadata, AccessConstraintAnalysisWorkbenchCollection._remove_constraint_metadata, type, reference)

    _add_constraint_metadata = { "offset" : _add_constraint_method_offset,
            "arg_types" : (agcom.LONG, agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(AnalysisWorkbenchAccessConstraintType), agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add_constraint(self, constraint:"AnalysisWorkbenchAccessConstraintType", reference:str) -> "IAccessConstraint":
        """Add a constraint to the AWB Constraint Collection."""
        return self._intf.invoke(AccessConstraintAnalysisWorkbenchCollection._metadata, AccessConstraintAnalysisWorkbenchCollection._add_constraint_metadata, constraint, reference, OutArg())

    _get_available_references_metadata = { "offset" : _get_available_references_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.EnumArg(AnalysisWorkbenchAccessConstraintType), agmarshall.LPSafearrayArg,) }
    def get_available_references(self, type:"AnalysisWorkbenchAccessConstraintType") -> list:
        """Return an array of available References."""
        return self._intf.invoke(AccessConstraintAnalysisWorkbenchCollection._metadata, AccessConstraintAnalysisWorkbenchCollection._get_available_references_metadata, type, OutArg())

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "AccessConstraintAnalysisWorkbench":
        """Get an AccessConstraintAnalysisWorkbench interface using an index."""
        return self._intf.invoke(AccessConstraintAnalysisWorkbenchCollection._metadata, AccessConstraintAnalysisWorkbenchCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Enumerate the AccessConstraintAnalysisWorkbench interfaces."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbenchCollection._metadata, AccessConstraintAnalysisWorkbenchCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintAnalysisWorkbenchCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintAnalysisWorkbenchCollection)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintAnalysisWorkbenchCollection, [AccessConstraintAnalysisWorkbenchCollection, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((4902181634341907122, 15370444605536839324), AccessConstraintAnalysisWorkbenchCollection)
agcls.AgTypeNameMap["AccessConstraintAnalysisWorkbenchCollection"] = AccessConstraintAnalysisWorkbenchCollection

class AccessConstraintAnalysisWorkbench(IAccessConstraint, SupportsDeleteCallback):
    """Access Constraint used for Analysis Workbench Constraints."""

    _num_methods = 9
    _vtable_offset = IAccessConstraint._vtable_offset + IAccessConstraint._num_methods
    _get_enable_minimum_method_offset = 1
    _set_enable_minimum_method_offset = 2
    _get_enable_maximum_method_offset = 3
    _set_enable_maximum_method_offset = 4
    _get_minimum_method_offset = 5
    _set_minimum_method_offset = 6
    _get_maximum_method_offset = 7
    _set_maximum_method_offset = 8
    _get_reference_method_offset = 9
    _metadata = {
        "iid_data" : (5658511873983197329, 17558643318287049379),
        "vtable_reference" : IAccessConstraint._vtable_offset + IAccessConstraint._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AccessConstraintAnalysisWorkbench)

    _get_enable_minimum_metadata = { "offset" : _get_enable_minimum_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_minimum(self) -> bool:
        """Enable the Min property."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbench._metadata, AccessConstraintAnalysisWorkbench._get_enable_minimum_metadata)

    _set_enable_minimum_metadata = { "offset" : _set_enable_minimum_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_minimum.setter
    def enable_minimum(self, value:bool) -> None:
        return self._intf.set_property(AccessConstraintAnalysisWorkbench._metadata, AccessConstraintAnalysisWorkbench._set_enable_minimum_metadata, value)

    _get_enable_maximum_metadata = { "offset" : _get_enable_maximum_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def enable_maximum(self) -> bool:
        """Enable the Max property."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbench._metadata, AccessConstraintAnalysisWorkbench._get_enable_maximum_metadata)

    _set_enable_maximum_metadata = { "offset" : _set_enable_maximum_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @enable_maximum.setter
    def enable_maximum(self, value:bool) -> None:
        return self._intf.set_property(AccessConstraintAnalysisWorkbench._metadata, AccessConstraintAnalysisWorkbench._set_enable_maximum_metadata, value)

    _get_minimum_metadata = { "offset" : _get_minimum_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def minimum(self) -> typing.Any:
        """Min value for the access constraint."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbench._metadata, AccessConstraintAnalysisWorkbench._get_minimum_metadata)

    _set_minimum_metadata = { "offset" : _set_minimum_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @minimum.setter
    def minimum(self, value:typing.Any) -> None:
        return self._intf.set_property(AccessConstraintAnalysisWorkbench._metadata, AccessConstraintAnalysisWorkbench._set_minimum_metadata, value)

    _get_maximum_metadata = { "offset" : _get_maximum_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def maximum(self) -> typing.Any:
        """Max value for the access constraint."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbench._metadata, AccessConstraintAnalysisWorkbench._get_maximum_metadata)

    _set_maximum_metadata = { "offset" : _set_maximum_method_offset,
            "arg_types" : (agcom.Variant,),
            "marshallers" : (agmarshall.VariantArg,) }
    @maximum.setter
    def maximum(self, value:typing.Any) -> None:
        return self._intf.set_property(AccessConstraintAnalysisWorkbench._metadata, AccessConstraintAnalysisWorkbench._set_maximum_metadata, value)

    _get_reference_metadata = { "offset" : _get_reference_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reference(self) -> str:
        """Reference value for the access constraint."""
        return self._intf.get_property(AccessConstraintAnalysisWorkbench._metadata, AccessConstraintAnalysisWorkbench._get_reference_metadata)

    _property_names[enable_minimum] = "enable_minimum"
    _property_names[enable_maximum] = "enable_maximum"
    _property_names[minimum] = "minimum"
    _property_names[maximum] = "maximum"
    _property_names[reference] = "reference"

    def __init__(self, source_object=None):
        """Construct an object of type AccessConstraintAnalysisWorkbench."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AccessConstraintAnalysisWorkbench)
        IAccessConstraint.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IAccessConstraint._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AccessConstraintAnalysisWorkbench, [AccessConstraintAnalysisWorkbench, IAccessConstraint])

agcls.AgClassCatalog.add_catalog_entry((4820969393325514909, 7209183934427770015), AccessConstraintAnalysisWorkbench)
agcls.AgTypeNameMap["AccessConstraintAnalysisWorkbench"] = AccessConstraintAnalysisWorkbench

class Graphics3DArticulationFile(SupportsDeleteCallback):
    """Interface for VO model articulations."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _reload_method_offset = 3
    _metadata = {
        "iid_data" : (5269784974940055982, 16297973985174465935),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DArticulationFile)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Path and file name of articulation file."""
        return self._intf.get_property(Graphics3DArticulationFile._metadata, Graphics3DArticulationFile._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(Graphics3DArticulationFile._metadata, Graphics3DArticulationFile._set_filename_metadata, value)

    _reload_metadata = { "offset" : _reload_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def reload(self) -> None:
        """Reload articulation file."""
        return self._intf.invoke(Graphics3DArticulationFile._metadata, Graphics3DArticulationFile._reload_metadata, )

    _property_names[filename] = "filename"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DArticulationFile."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DArticulationFile)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DArticulationFile, [Graphics3DArticulationFile, ])

agcls.AgClassCatalog.add_catalog_entry((4769756754726387427, 13548173372874945166), Graphics3DArticulationFile)
agcls.AgTypeNameMap["Graphics3DArticulationFile"] = Graphics3DArticulationFile

class DataProviderResultStatisticResult(SupportsDeleteCallback):
    """Represents the results of computing a data set statistics using DataProviderResultStatistics.ComputeStatistic method."""

    _num_methods = 1
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_value_method_offset = 1
    _metadata = {
        "iid_data" : (5143791191059945774, 11000159128465771669),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultStatisticResult)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of the statistic computed. Uses the dimension of the data set used to compute the time varying extremum."""
        return self._intf.get_property(DataProviderResultStatisticResult._metadata, DataProviderResultStatisticResult._get_value_metadata)

    _property_names[value] = "value"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultStatisticResult."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultStatisticResult)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultStatisticResult, [DataProviderResultStatisticResult, ])

agcls.AgClassCatalog.add_catalog_entry((4624968127517584255, 10488740296486807213), DataProviderResultStatisticResult)
agcls.AgTypeNameMap["DataProviderResultStatisticResult"] = DataProviderResultStatisticResult

class DataProviderResultTimeVaryingExtremumResult(SupportsDeleteCallback):
    """Represents the results of computing a data set time varying extremum using DataProviderResultStatistics.ComputeTimeVarExtremum method."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_value_method_offset = 1
    _get_time_method_offset = 2
    _metadata = {
        "iid_data" : (5756928529354163652, 6633363123201046659),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultTimeVaryingExtremumResult)

    _get_value_metadata = { "offset" : _get_value_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def value(self) -> float:
        """Value of the time varying extremum computed. Uses the dimension of the data set used to compute the time varying extremum."""
        return self._intf.get_property(DataProviderResultTimeVaryingExtremumResult._metadata, DataProviderResultTimeVaryingExtremumResult._get_value_metadata)

    _get_time_metadata = { "offset" : _get_time_method_offset,
            "arg_types" : (POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.VariantArg,) }
    @property
    def time(self) -> typing.Any:
        """Get the time when the value occurred. Use this time with the Exec methods to retrieve other element values when the statistics occurred. Uses DateFormat Dimension."""
        return self._intf.get_property(DataProviderResultTimeVaryingExtremumResult._metadata, DataProviderResultTimeVaryingExtremumResult._get_time_metadata)

    _property_names[value] = "value"
    _property_names[time] = "time"

    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultTimeVaryingExtremumResult."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultTimeVaryingExtremumResult)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultTimeVaryingExtremumResult, [DataProviderResultTimeVaryingExtremumResult, ])

agcls.AgClassCatalog.add_catalog_entry((5607594007559867562, 15460680506095946656), DataProviderResultTimeVaryingExtremumResult)
agcls.AgTypeNameMap["DataProviderResultTimeVaryingExtremumResult"] = DataProviderResultTimeVaryingExtremumResult

class DataProviderResultStatistics(SupportsDeleteCallback):
    """Compute statistics and time varying extremums on a data set when available."""

    _num_methods = 4
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _compute_statistic_method_offset = 1
    _compute_time_varying_extremum_method_offset = 2
    _is_statistic_available_method_offset = 3
    _is_time_varying_extremum_available_method_offset = 4
    _metadata = {
        "iid_data" : (4809303562421733745, 15960073073581815475),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, DataProviderResultStatistics)

    _compute_statistic_metadata = { "offset" : _compute_statistic_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(StatisticType), agmarshall.InterfaceOutArg,) }
    def compute_statistic(self, statistic:"StatisticType") -> "DataProviderResultStatisticResult":
        """Compute the requested statistic for the data set."""
        return self._intf.invoke(DataProviderResultStatistics._metadata, DataProviderResultStatistics._compute_statistic_metadata, statistic, OutArg())

    _compute_time_varying_extremum_metadata = { "offset" : _compute_time_varying_extremum_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.EnumArg(TimeVaryingExtremum), agmarshall.InterfaceOutArg,) }
    def compute_time_varying_extremum(self, time_var_extremum:"TimeVaryingExtremum") -> "DataProviderResultTimeVaryingExtremumResult":
        """Compute the requested time varying extremum for the data set."""
        return self._intf.invoke(DataProviderResultStatistics._metadata, DataProviderResultStatistics._compute_time_varying_extremum_metadata, time_var_extremum, OutArg())

    _is_statistic_available_metadata = { "offset" : _is_statistic_available_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(StatisticType), agmarshall.VariantBoolArg,) }
    def is_statistic_available(self, statistic:"StatisticType") -> bool:
        """Is the supplied statistic available for the data?"""
        return self._intf.invoke(DataProviderResultStatistics._metadata, DataProviderResultStatistics._is_statistic_available_metadata, statistic, OutArg())

    _is_time_varying_extremum_available_metadata = { "offset" : _is_time_varying_extremum_available_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.EnumArg(TimeVaryingExtremum), agmarshall.VariantBoolArg,) }
    def is_time_varying_extremum_available(self, time_var_extremum:"TimeVaryingExtremum") -> bool:
        """Is the supplied time varying extremum available for the data?"""
        return self._intf.invoke(DataProviderResultStatistics._metadata, DataProviderResultStatistics._is_time_varying_extremum_available_metadata, time_var_extremum, OutArg())


    def __init__(self, source_object=None):
        """Construct an object of type DataProviderResultStatistics."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, DataProviderResultStatistics)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, DataProviderResultStatistics, [DataProviderResultStatistics, ])

agcls.AgClassCatalog.add_catalog_entry((5183857755555505397, 17927531058050358172), DataProviderResultStatistics)
agcls.AgTypeNameMap["DataProviderResultStatistics"] = DataProviderResultStatistics

class Graphics3DModelglTFImageBased(SupportsDeleteCallback):
    """glTF Reflection Settings Interface."""

    _num_methods = 5
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_filename_method_offset = 1
    _set_filename_method_offset = 2
    _get_file_path_method_offset = 3
    _get_reflection_reference_frame_method_offset = 4
    _set_reflection_reference_frame_method_offset = 5
    _metadata = {
        "iid_data" : (5133524884645611972, 16940846038510413211),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, Graphics3DModelglTFImageBased)

    _get_filename_metadata = { "offset" : _get_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def filename(self) -> str:
        """Path and filename of the glTF image based file."""
        return self._intf.get_property(Graphics3DModelglTFImageBased._metadata, Graphics3DModelglTFImageBased._get_filename_metadata)

    _set_filename_metadata = { "offset" : _set_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @filename.setter
    def filename(self, value:str) -> None:
        return self._intf.set_property(Graphics3DModelglTFImageBased._metadata, Graphics3DModelglTFImageBased._set_filename_metadata, value)

    _get_file_path_metadata = { "offset" : _get_file_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def file_path(self) -> str:
        """Absolute path and filename of the glTF image based file."""
        return self._intf.get_property(Graphics3DModelglTFImageBased._metadata, Graphics3DModelglTFImageBased._get_file_path_metadata)

    _get_reflection_reference_frame_metadata = { "offset" : _get_reflection_reference_frame_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reflection_reference_frame(self) -> str:
        """Get or set the system used to orient an environment map around a glTF model."""
        return self._intf.get_property(Graphics3DModelglTFImageBased._metadata, Graphics3DModelglTFImageBased._get_reflection_reference_frame_metadata)

    _set_reflection_reference_frame_metadata = { "offset" : _set_reflection_reference_frame_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @reflection_reference_frame.setter
    def reflection_reference_frame(self, value:str) -> None:
        return self._intf.set_property(Graphics3DModelglTFImageBased._metadata, Graphics3DModelglTFImageBased._set_reflection_reference_frame_metadata, value)

    _property_names[filename] = "filename"
    _property_names[file_path] = "file_path"
    _property_names[reflection_reference_frame] = "reflection_reference_frame"

    def __init__(self, source_object=None):
        """Construct an object of type Graphics3DModelglTFImageBased."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, Graphics3DModelglTFImageBased)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, Graphics3DModelglTFImageBased, [Graphics3DModelglTFImageBased, ])

agcls.AgClassCatalog.add_catalog_entry((4969941172518099960, 10971625228847638684), Graphics3DModelglTFImageBased)
agcls.AgTypeNameMap["Graphics3DModelglTFImageBased"] = Graphics3DModelglTFImageBased

class STKObjectCutCopyPasteEventArguments(SupportsDeleteCallback):
    """Arguments for the OnStkObjectPreCut, OnStkObjectCopy and OnStkObjectPaste events."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_selected_object_path_method_offset = 1
    _get_object_paths_method_offset = 2
    _get_pasted_object_paths_method_offset = 3
    _metadata = {
        "iid_data" : (5630057424615184223, 16400770414384607663),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, STKObjectCutCopyPasteEventArguments)

    _get_selected_object_path_metadata = { "offset" : _get_selected_object_path_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def selected_object_path(self) -> str:
        """Selected Object path that is being cut, copied or pasted."""
        return self._intf.get_property(STKObjectCutCopyPasteEventArguments._metadata, STKObjectCutCopyPasteEventArguments._get_selected_object_path_metadata)

    _get_object_paths_metadata = { "offset" : _get_object_paths_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def object_paths(self) -> list:
        """Return an array of object paths that are cut, copied or pasted."""
        return self._intf.get_property(STKObjectCutCopyPasteEventArguments._metadata, STKObjectCutCopyPasteEventArguments._get_object_paths_metadata)

    _get_pasted_object_paths_metadata = { "offset" : _get_pasted_object_paths_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def pasted_object_paths(self) -> list:
        """Return an array of object paths that are being pasted. The new object paths corresposnd to the old paths at the same array location in ObjectPaths array."""
        return self._intf.get_property(STKObjectCutCopyPasteEventArguments._metadata, STKObjectCutCopyPasteEventArguments._get_pasted_object_paths_metadata)

    _property_names[selected_object_path] = "selected_object_path"
    _property_names[object_paths] = "object_paths"
    _property_names[pasted_object_paths] = "pasted_object_paths"

    def __init__(self, source_object=None):
        """Construct an object of type STKObjectCutCopyPasteEventArguments."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, STKObjectCutCopyPasteEventArguments)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, STKObjectCutCopyPasteEventArguments, [STKObjectCutCopyPasteEventArguments, ])

agcls.AgClassCatalog.add_catalog_entry((5598165820007439831, 1634687943240035974), STKObjectCutCopyPasteEventArguments)
agcls.AgTypeNameMap["STKObjectCutCopyPasteEventArguments"] = STKObjectCutCopyPasteEventArguments

class PreferencesPythonPlugins(SupportsDeleteCallback):
    """Python plugin settings."""

    _num_methods = 2
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_access_constraint_paths_method_offset = 1
    _get_ephemeris_file_reader_paths_method_offset = 2
    _metadata = {
        "iid_data" : (5313658222505430546, 10223371679008999604),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PreferencesPythonPlugins)

    _get_access_constraint_paths_metadata = { "offset" : _get_access_constraint_paths_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def access_constraint_paths(self) -> "PathCollection":
        """Return a list of paths to Python access constraint plugin."""
        return self._intf.get_property(PreferencesPythonPlugins._metadata, PreferencesPythonPlugins._get_access_constraint_paths_metadata)

    _get_ephemeris_file_reader_paths_metadata = { "offset" : _get_ephemeris_file_reader_paths_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ephemeris_file_reader_paths(self) -> "PathCollection":
        """Return a list of paths to Python ephemeris file reader plugin."""
        return self._intf.get_property(PreferencesPythonPlugins._metadata, PreferencesPythonPlugins._get_ephemeris_file_reader_paths_metadata)

    _property_names[access_constraint_paths] = "access_constraint_paths"
    _property_names[ephemeris_file_reader_paths] = "ephemeris_file_reader_paths"

    def __init__(self, source_object=None):
        """Construct an object of type PreferencesPythonPlugins."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PreferencesPythonPlugins)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PreferencesPythonPlugins, [PreferencesPythonPlugins, ])

agcls.AgClassCatalog.add_catalog_entry((4646526253843283609, 5203884967154193077), PreferencesPythonPlugins)
agcls.AgTypeNameMap["PreferencesPythonPlugins"] = PreferencesPythonPlugins

class PathCollection(SupportsDeleteCallback):
    """Collection to add and remove paths."""

    _num_methods = 7
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _remove_method_offset = 7
    _metadata = {
        "iid_data" : (5572041515562703037, 717144270721970593),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, PathCollection)
    def __iter__(self):
        """Create an iterator for the PathCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> str:
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(PathCollection._metadata, PathCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.LongArg, agmarshall.BStrArg,) }
    def item(self, index:int) -> str:
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(PathCollection._metadata, PathCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(PathCollection._metadata, PathCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element from the collection using specified index."""
        return self._intf.invoke(PathCollection._metadata, PathCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(PathCollection._metadata, PathCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def add(self, filename:str) -> None:
        """Add a new element to the collection. Must be the full path to the file."""
        return self._intf.invoke(PathCollection._metadata, PathCollection._add_metadata, filename)

    _remove_metadata = { "offset" : _remove_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    def remove(self, filename:str) -> None:
        """Remove an element from the collection given a filename."""
        return self._intf.invoke(PathCollection._metadata, PathCollection._remove_metadata, filename)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type PathCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, PathCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, PathCollection, [PathCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5381925190988005438, 16474786558132462758), PathCollection)
agcls.AgTypeNameMap["PathCollection"] = PathCollection

class AdvCAT(ISTKObject, ILifetimeInformation, SupportsDeleteCallback):
    """AdvCAT properties."""

    _num_methods = 29
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_time_period_method_offset = 1
    _get_threshold_method_offset = 2
    _set_threshold_method_offset = 3
    _get_use_range_measure_method_offset = 4
    _set_use_range_measure_method_offset = 5
    _get_display_acknowledgement_when_done_method_offset = 6
    _set_display_acknowledgement_when_done_method_offset = 7
    _compute_method_offset = 8
    _get_available_objects_method_offset = 9
    _get_primary_chosen_objects_method_offset = 10
    _get_secondary_chosen_objects_method_offset = 11
    _get_primary_default_class_method_offset = 12
    _get_advanced_method_offset = 13
    _get_graphics_3d_method_offset = 14
    _set_primary_default_class_method_offset = 15
    _get_primary_default_tangential_method_offset = 16
    _set_primary_default_tangential_method_offset = 17
    _get_primary_default_cross_track_method_offset = 18
    _set_primary_default_cross_track_method_offset = 19
    _get_primary_default_normal_method_offset = 20
    _set_primary_default_normal_method_offset = 21
    _get_secondary_default_class_method_offset = 22
    _set_secondary_default_class_method_offset = 23
    _get_secondary_default_tangential_method_offset = 24
    _set_secondary_default_tangential_method_offset = 25
    _get_secondary_default_cross_track_method_offset = 26
    _set_secondary_default_cross_track_method_offset = 27
    _get_secondary_default_normal_method_offset = 28
    _set_secondary_default_normal_method_offset = 29
    _metadata = {
        "iid_data" : (4779171180037278914, 1264472064357590429),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AdvCAT)

    _get_time_period_metadata = { "offset" : _get_time_period_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def time_period(self) -> "ITimeToolTimeIntervalSmartInterval":
        """Get the time period for the close approach analysis."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_time_period_metadata)

    _get_threshold_metadata = { "offset" : _get_threshold_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def threshold(self) -> float:
        """Distance threshold."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_threshold_metadata)

    _set_threshold_metadata = { "offset" : _set_threshold_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @threshold.setter
    def threshold(self, threshold:float) -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_threshold_metadata, threshold)

    _get_use_range_measure_metadata = { "offset" : _get_use_range_measure_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_range_measure(self) -> bool:
        """Enable/disable use range measure."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_use_range_measure_metadata)

    _set_use_range_measure_metadata = { "offset" : _set_use_range_measure_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_range_measure.setter
    def use_range_measure(self, value:bool) -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_use_range_measure_metadata, value)

    _get_display_acknowledgement_when_done_metadata = { "offset" : _get_display_acknowledgement_when_done_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def display_acknowledgement_when_done(self) -> bool:
        """Enable/disable displaying acknowledgement when done."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_display_acknowledgement_when_done_metadata)

    _set_display_acknowledgement_when_done_metadata = { "offset" : _set_display_acknowledgement_when_done_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @display_acknowledgement_when_done.setter
    def display_acknowledgement_when_done(self, value:bool) -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_display_acknowledgement_when_done_metadata, value)

    _compute_metadata = { "offset" : _compute_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def compute(self) -> None:
        """Launch the close approach analysis."""
        return self._intf.invoke(AdvCAT._metadata, AdvCAT._compute_metadata, )

    _get_available_objects_metadata = { "offset" : _get_available_objects_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_available_objects(self) -> "AdvCATAvailableObjectCollection":
        """Return a collection of available objects."""
        return self._intf.invoke(AdvCAT._metadata, AdvCAT._get_available_objects_metadata, OutArg())

    _get_primary_chosen_objects_metadata = { "offset" : _get_primary_chosen_objects_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_primary_chosen_objects(self) -> "AdvCATChosenObjectCollection":
        """Return a collection of primary objects."""
        return self._intf.invoke(AdvCAT._metadata, AdvCAT._get_primary_chosen_objects_metadata, OutArg())

    _get_secondary_chosen_objects_metadata = { "offset" : _get_secondary_chosen_objects_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def get_secondary_chosen_objects(self) -> "AdvCATChosenObjectCollection":
        """Return a collection of secondary objects."""
        return self._intf.invoke(AdvCAT._metadata, AdvCAT._get_secondary_chosen_objects_metadata, OutArg())

    _get_primary_default_class_metadata = { "offset" : _get_primary_default_class_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AdvCATEllipsoidClassType),) }
    @property
    def primary_default_class(self) -> "AdvCATEllipsoidClassType":
        """Determine Ellipsoid Sizing method class."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_primary_default_class_metadata)

    _get_advanced_metadata = { "offset" : _get_advanced_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def advanced(self) -> "AdvCATAdvancedSettings":
        """Get AdvCAT advanced properties."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_advanced_metadata)

    _get_graphics_3d_metadata = { "offset" : _get_graphics_3d_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def graphics_3d(self) -> "AdvCATGraphics3D":
        """Get AdvCAT advanced properties."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_graphics_3d_metadata)

    _set_primary_default_class_metadata = { "offset" : _set_primary_default_class_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AdvCATEllipsoidClassType),) }
    @primary_default_class.setter
    def primary_default_class(self, type:"AdvCATEllipsoidClassType") -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_primary_default_class_metadata, type)

    _get_primary_default_tangential_metadata = { "offset" : _get_primary_default_tangential_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def primary_default_tangential(self) -> float:
        """Primary default value for Semi-major Axes Size along A."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_primary_default_tangential_metadata)

    _set_primary_default_tangential_metadata = { "offset" : _set_primary_default_tangential_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @primary_default_tangential.setter
    def primary_default_tangential(self, tangential:float) -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_primary_default_tangential_metadata, tangential)

    _get_primary_default_cross_track_metadata = { "offset" : _get_primary_default_cross_track_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def primary_default_cross_track(self) -> float:
        """Primary default value for Semi-major Axes Size along B."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_primary_default_cross_track_metadata)

    _set_primary_default_cross_track_metadata = { "offset" : _set_primary_default_cross_track_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @primary_default_cross_track.setter
    def primary_default_cross_track(self, cross_track:float) -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_primary_default_cross_track_metadata, cross_track)

    _get_primary_default_normal_metadata = { "offset" : _get_primary_default_normal_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def primary_default_normal(self) -> float:
        """Primary default value for Semi-major Axes Size along C."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_primary_default_normal_metadata)

    _set_primary_default_normal_metadata = { "offset" : _set_primary_default_normal_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @primary_default_normal.setter
    def primary_default_normal(self, normal:float) -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_primary_default_normal_metadata, normal)

    _get_secondary_default_class_metadata = { "offset" : _get_secondary_default_class_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AdvCATEllipsoidClassType),) }
    @property
    def secondary_default_class(self) -> "AdvCATEllipsoidClassType":
        """Determine Ellipsoid Sizing method class."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_secondary_default_class_metadata)

    _set_secondary_default_class_metadata = { "offset" : _set_secondary_default_class_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AdvCATEllipsoidClassType),) }
    @secondary_default_class.setter
    def secondary_default_class(self, type:"AdvCATEllipsoidClassType") -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_secondary_default_class_metadata, type)

    _get_secondary_default_tangential_metadata = { "offset" : _get_secondary_default_tangential_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def secondary_default_tangential(self) -> float:
        """Secondary default value for Semi-major Axes Size along A."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_secondary_default_tangential_metadata)

    _set_secondary_default_tangential_metadata = { "offset" : _set_secondary_default_tangential_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @secondary_default_tangential.setter
    def secondary_default_tangential(self, tangential:float) -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_secondary_default_tangential_metadata, tangential)

    _get_secondary_default_cross_track_metadata = { "offset" : _get_secondary_default_cross_track_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def secondary_default_cross_track(self) -> float:
        """Secondary default value for Semi-major Axes Size along B."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_secondary_default_cross_track_metadata)

    _set_secondary_default_cross_track_metadata = { "offset" : _set_secondary_default_cross_track_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @secondary_default_cross_track.setter
    def secondary_default_cross_track(self, cross_track:float) -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_secondary_default_cross_track_metadata, cross_track)

    _get_secondary_default_normal_metadata = { "offset" : _get_secondary_default_normal_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def secondary_default_normal(self) -> float:
        """Secondary default value for Semi-major Axes Size along C."""
        return self._intf.get_property(AdvCAT._metadata, AdvCAT._get_secondary_default_normal_metadata)

    _set_secondary_default_normal_metadata = { "offset" : _set_secondary_default_normal_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @secondary_default_normal.setter
    def secondary_default_normal(self, normal:float) -> None:
        return self._intf.set_property(AdvCAT._metadata, AdvCAT._set_secondary_default_normal_metadata, normal)

    _property_names[time_period] = "time_period"
    _property_names[threshold] = "threshold"
    _property_names[use_range_measure] = "use_range_measure"
    _property_names[display_acknowledgement_when_done] = "display_acknowledgement_when_done"
    _property_names[primary_default_class] = "primary_default_class"
    _property_names[advanced] = "advanced"
    _property_names[graphics_3d] = "graphics_3d"
    _property_names[primary_default_tangential] = "primary_default_tangential"
    _property_names[primary_default_cross_track] = "primary_default_cross_track"
    _property_names[primary_default_normal] = "primary_default_normal"
    _property_names[secondary_default_class] = "secondary_default_class"
    _property_names[secondary_default_tangential] = "secondary_default_tangential"
    _property_names[secondary_default_cross_track] = "secondary_default_cross_track"
    _property_names[secondary_default_normal] = "secondary_default_normal"

    def __init__(self, source_object=None):
        """Construct an object of type AdvCAT."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AdvCAT)
        ISTKObject.__init__(self, source_object)
        ILifetimeInformation.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        ISTKObject._private_init(self, intf)
        ILifetimeInformation._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AdvCAT, [AdvCAT, ISTKObject, ILifetimeInformation])

agcls.AgClassCatalog.add_catalog_entry((5546587474577404889, 13625713137302390443), AdvCAT)
agcls.AgTypeNameMap["AdvCAT"] = AdvCAT

class AdvCATAvailableObjectCollection(SupportsDeleteCallback):
    """AdvCATAvailableObjectCollection represents available objects."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _get_available_object_method_offset = 2
    _to_array_method_offset = 3
    _metadata = {
        "iid_data" : (5215625691669643077, 16270638333395847819),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AdvCATAvailableObjectCollection)

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Number of items in the collection."""
        return self._intf.get_property(AdvCATAvailableObjectCollection._metadata, AdvCATAvailableObjectCollection._get_count_metadata)

    _get_available_object_metadata = { "offset" : _get_available_object_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.Variant), POINTER(agcom.Variant), POINTER(agcom.Variant),),
            "marshallers" : (agmarshall.LongArg, agmarshall.VariantArg, agmarshall.VariantArg, agmarshall.VariantArg,) }
    def get_available_object(self, index:int) -> typing.Tuple[typing.Any, typing.Any, typing.Any]:
        """Return name, date and type times of the interval at a given index."""
        return self._intf.invoke(AdvCATAvailableObjectCollection._metadata, AdvCATAvailableObjectCollection._get_available_object_metadata, index, OutArg(), OutArg(), OutArg())

    _to_array_metadata = { "offset" : _to_array_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    def to_array(self) -> list:
        """Return a two-dimensional array of objects."""
        return self._intf.invoke(AdvCATAvailableObjectCollection._metadata, AdvCATAvailableObjectCollection._to_array_metadata, OutArg())

    _property_names[count] = "count"

    def __init__(self, source_object=None):
        """Construct an object of type AdvCATAvailableObjectCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AdvCATAvailableObjectCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AdvCATAvailableObjectCollection, [AdvCATAvailableObjectCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4981593631626472226, 7668078502143400346), AdvCATAvailableObjectCollection)
agcls.AgTypeNameMap["AdvCATAvailableObjectCollection"] = AdvCATAvailableObjectCollection

class AdvCATChosenObject(SupportsDeleteCallback):
    """Chosen object."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_name_method_offset = 1
    _get_ellipsoid_class_method_offset = 2
    _set_ellipsoid_class_method_offset = 3
    _get_tangential_method_offset = 4
    _set_tangential_method_offset = 5
    _get_cross_track_method_offset = 6
    _set_cross_track_method_offset = 7
    _get_normal_method_offset = 8
    _set_normal_method_offset = 9
    _get_type_method_offset = 10
    _get_hard_body_radius_method_offset = 11
    _set_hard_body_radius_method_offset = 12
    _get_number_identifier_method_offset = 13
    _set_number_identifier_method_offset = 14
    _get_string_identifier_method_offset = 15
    _set_string_identifier_method_offset = 16
    _metadata = {
        "iid_data" : (5242634949936642757, 6961002716461653138),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AdvCATChosenObject)

    _get_name_metadata = { "offset" : _get_name_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def name(self) -> str:
        """Get the chosen object name."""
        return self._intf.get_property(AdvCATChosenObject._metadata, AdvCATChosenObject._get_name_metadata)

    _get_ellipsoid_class_metadata = { "offset" : _get_ellipsoid_class_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AdvCATEllipsoidClassType),) }
    @property
    def ellipsoid_class(self) -> "AdvCATEllipsoidClassType":
        """Determine Ellipsoid Sizing method class."""
        return self._intf.get_property(AdvCATChosenObject._metadata, AdvCATChosenObject._get_ellipsoid_class_metadata)

    _set_ellipsoid_class_metadata = { "offset" : _set_ellipsoid_class_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AdvCATEllipsoidClassType),) }
    @ellipsoid_class.setter
    def ellipsoid_class(self, type:"AdvCATEllipsoidClassType") -> None:
        return self._intf.set_property(AdvCATChosenObject._metadata, AdvCATChosenObject._set_ellipsoid_class_metadata, type)

    _get_tangential_metadata = { "offset" : _get_tangential_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def tangential(self) -> float:
        """Semi-major Axes Size along A."""
        return self._intf.get_property(AdvCATChosenObject._metadata, AdvCATChosenObject._get_tangential_metadata)

    _set_tangential_metadata = { "offset" : _set_tangential_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @tangential.setter
    def tangential(self, tangential:float) -> None:
        return self._intf.set_property(AdvCATChosenObject._metadata, AdvCATChosenObject._set_tangential_metadata, tangential)

    _get_cross_track_metadata = { "offset" : _get_cross_track_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def cross_track(self) -> float:
        """Semi-major Axes Size along B."""
        return self._intf.get_property(AdvCATChosenObject._metadata, AdvCATChosenObject._get_cross_track_metadata)

    _set_cross_track_metadata = { "offset" : _set_cross_track_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @cross_track.setter
    def cross_track(self, cross_track:float) -> None:
        return self._intf.set_property(AdvCATChosenObject._metadata, AdvCATChosenObject._set_cross_track_metadata, cross_track)

    _get_normal_metadata = { "offset" : _get_normal_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def normal(self) -> float:
        """Semi-major Axes Size along C."""
        return self._intf.get_property(AdvCATChosenObject._metadata, AdvCATChosenObject._get_normal_metadata)

    _set_normal_metadata = { "offset" : _set_normal_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @normal.setter
    def normal(self, normal:float) -> None:
        return self._intf.set_property(AdvCATChosenObject._metadata, AdvCATChosenObject._set_normal_metadata, normal)

    _get_type_metadata = { "offset" : _get_type_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def type(self) -> str:
        """Get the File Type."""
        return self._intf.get_property(AdvCATChosenObject._metadata, AdvCATChosenObject._get_type_metadata)

    _get_hard_body_radius_metadata = { "offset" : _get_hard_body_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def hard_body_radius(self) -> float:
        """Used in prob of collision."""
        return self._intf.get_property(AdvCATChosenObject._metadata, AdvCATChosenObject._get_hard_body_radius_metadata)

    _set_hard_body_radius_metadata = { "offset" : _set_hard_body_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @hard_body_radius.setter
    def hard_body_radius(self, hard_body_radius:float) -> None:
        return self._intf.set_property(AdvCATChosenObject._metadata, AdvCATChosenObject._set_hard_body_radius_metadata, hard_body_radius)

    _get_number_identifier_metadata = { "offset" : _get_number_identifier_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def number_identifier(self) -> int:
        """An IRON or other numeric id."""
        return self._intf.get_property(AdvCATChosenObject._metadata, AdvCATChosenObject._get_number_identifier_metadata)

    _set_number_identifier_metadata = { "offset" : _set_number_identifier_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    @number_identifier.setter
    def number_identifier(self, number_id:int) -> None:
        return self._intf.set_property(AdvCATChosenObject._metadata, AdvCATChosenObject._set_number_identifier_metadata, number_id)

    _get_string_identifier_metadata = { "offset" : _get_string_identifier_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def string_identifier(self) -> str:
        """A VEID, or other character id."""
        return self._intf.get_property(AdvCATChosenObject._metadata, AdvCATChosenObject._get_string_identifier_metadata)

    _set_string_identifier_metadata = { "offset" : _set_string_identifier_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @string_identifier.setter
    def string_identifier(self, string_id:str) -> None:
        return self._intf.set_property(AdvCATChosenObject._metadata, AdvCATChosenObject._set_string_identifier_metadata, string_id)

    _property_names[name] = "name"
    _property_names[ellipsoid_class] = "ellipsoid_class"
    _property_names[tangential] = "tangential"
    _property_names[cross_track] = "cross_track"
    _property_names[normal] = "normal"
    _property_names[type] = "type"
    _property_names[hard_body_radius] = "hard_body_radius"
    _property_names[number_identifier] = "number_identifier"
    _property_names[string_identifier] = "string_identifier"

    def __init__(self, source_object=None):
        """Construct an object of type AdvCATChosenObject."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AdvCATChosenObject)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AdvCATChosenObject, [AdvCATChosenObject, ])

agcls.AgClassCatalog.add_catalog_entry((5127417626703106696, 4129607638292874175), AdvCATChosenObject)
agcls.AgTypeNameMap["AdvCATChosenObject"] = AdvCATChosenObject

class AdvCATChosenObjectCollection(SupportsDeleteCallback):
    """Chosen object collection."""

    _num_methods = 6
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _remove_at_method_offset = 4
    _remove_all_method_offset = 5
    _add_method_offset = 6
    _metadata = {
        "iid_data" : (5284024138308496929, 4700503640331206791),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AdvCATChosenObjectCollection)
    def __iter__(self):
        """Create an iterator for the AdvCATChosenObjectCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "AdvCATChosenObject":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of chosen objects in a collection."""
        return self._intf.get_property(AdvCATChosenObjectCollection._metadata, AdvCATChosenObjectCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "AdvCATChosenObject":
        """Given an index, returns a chosen object in the collection."""
        return self._intf.invoke(AdvCATChosenObjectCollection._metadata, AdvCATChosenObjectCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(AdvCATChosenObjectCollection._metadata, AdvCATChosenObjectCollection._get__new_enum_metadata)

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an object from the collection using specified index."""
        return self._intf.invoke(AdvCATChosenObjectCollection._metadata, AdvCATChosenObjectCollection._remove_at_metadata, index)

    _remove_all_metadata = { "offset" : _remove_all_method_offset,
            "arg_types" : (),
            "marshallers" : () }
    def remove_all(self) -> None:
        """Remove all elements from the collection."""
        return self._intf.invoke(AdvCATChosenObjectCollection._metadata, AdvCATChosenObjectCollection._remove_all_metadata, )

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (agcom.BSTR, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.BStrArg, agmarshall.InterfaceOutArg,) }
    def add(self, object:str) -> "AdvCATChosenObject":
        """Add a new chosen object to the collection."""
        return self._intf.invoke(AdvCATChosenObjectCollection._metadata, AdvCATChosenObjectCollection._add_metadata, object, OutArg())

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type AdvCATChosenObjectCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AdvCATChosenObjectCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AdvCATChosenObjectCollection, [AdvCATChosenObjectCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5654748430213401858, 2202430422327945379), AdvCATChosenObjectCollection)
agcls.AgTypeNameMap["AdvCATChosenObjectCollection"] = AdvCATChosenObjectCollection

class AdvCATPreFilters(SupportsDeleteCallback):
    """Pre-Filters."""

    _num_methods = 16
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_use_out_of_date_filter_method_offset = 1
    _set_use_out_of_date_filter_method_offset = 2
    _get_out_of_date_pad_method_offset = 3
    _set_out_of_date_pad_method_offset = 4
    _get_use_apogee_perigee_filter_method_offset = 5
    _set_use_apogee_perigee_filter_method_offset = 6
    _get_apogee_perigee_pad_method_offset = 7
    _set_apogee_perigee_pad_method_offset = 8
    _get_use_orbit_path_filter_method_offset = 9
    _set_use_orbit_path_filter_method_offset = 10
    _get_orbit_path_pad_method_offset = 11
    _set_orbit_path_pad_method_offset = 12
    _get_use_time_filter_method_offset = 13
    _set_use_time_filter_method_offset = 14
    _get_time_distance_pad_method_offset = 15
    _set_time_distance_pad_method_offset = 16
    _metadata = {
        "iid_data" : (5362803302368612261, 3628469002483610498),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AdvCATPreFilters)

    _get_use_out_of_date_filter_metadata = { "offset" : _get_use_out_of_date_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_out_of_date_filter(self) -> bool:
        """Flag to specify if Out of Date Filter is Used."""
        return self._intf.get_property(AdvCATPreFilters._metadata, AdvCATPreFilters._get_use_out_of_date_filter_metadata)

    _set_use_out_of_date_filter_metadata = { "offset" : _set_use_out_of_date_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_out_of_date_filter.setter
    def use_out_of_date_filter(self, value:bool) -> None:
        return self._intf.set_property(AdvCATPreFilters._metadata, AdvCATPreFilters._set_use_out_of_date_filter_metadata, value)

    _get_out_of_date_pad_metadata = { "offset" : _get_out_of_date_pad_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def out_of_date_pad(self) -> float:
        """Out Of Date TLE Pad."""
        return self._intf.get_property(AdvCATPreFilters._metadata, AdvCATPreFilters._get_out_of_date_pad_metadata)

    _set_out_of_date_pad_metadata = { "offset" : _set_out_of_date_pad_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @out_of_date_pad.setter
    def out_of_date_pad(self, out_of_date_pad:float) -> None:
        return self._intf.set_property(AdvCATPreFilters._metadata, AdvCATPreFilters._set_out_of_date_pad_metadata, out_of_date_pad)

    _get_use_apogee_perigee_filter_metadata = { "offset" : _get_use_apogee_perigee_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_apogee_perigee_filter(self) -> bool:
        """Flag to specify if Out of Apogee/Perigee Filter is Used."""
        return self._intf.get_property(AdvCATPreFilters._metadata, AdvCATPreFilters._get_use_apogee_perigee_filter_metadata)

    _set_use_apogee_perigee_filter_metadata = { "offset" : _set_use_apogee_perigee_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_apogee_perigee_filter.setter
    def use_apogee_perigee_filter(self, value:bool) -> None:
        return self._intf.set_property(AdvCATPreFilters._metadata, AdvCATPreFilters._set_use_apogee_perigee_filter_metadata, value)

    _get_apogee_perigee_pad_metadata = { "offset" : _get_apogee_perigee_pad_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def apogee_perigee_pad(self) -> float:
        """Apogee/Perigee Pad."""
        return self._intf.get_property(AdvCATPreFilters._metadata, AdvCATPreFilters._get_apogee_perigee_pad_metadata)

    _set_apogee_perigee_pad_metadata = { "offset" : _set_apogee_perigee_pad_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @apogee_perigee_pad.setter
    def apogee_perigee_pad(self, apogee_perigee_pad:float) -> None:
        return self._intf.set_property(AdvCATPreFilters._metadata, AdvCATPreFilters._set_apogee_perigee_pad_metadata, apogee_perigee_pad)

    _get_use_orbit_path_filter_metadata = { "offset" : _get_use_orbit_path_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_orbit_path_filter(self) -> bool:
        """Flag to specify if Out of Path Filter is Used."""
        return self._intf.get_property(AdvCATPreFilters._metadata, AdvCATPreFilters._get_use_orbit_path_filter_metadata)

    _set_use_orbit_path_filter_metadata = { "offset" : _set_use_orbit_path_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_orbit_path_filter.setter
    def use_orbit_path_filter(self, value:bool) -> None:
        return self._intf.set_property(AdvCATPreFilters._metadata, AdvCATPreFilters._set_use_orbit_path_filter_metadata, value)

    _get_orbit_path_pad_metadata = { "offset" : _get_orbit_path_pad_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def orbit_path_pad(self) -> float:
        """Orbit Path Pad."""
        return self._intf.get_property(AdvCATPreFilters._metadata, AdvCATPreFilters._get_orbit_path_pad_metadata)

    _set_orbit_path_pad_metadata = { "offset" : _set_orbit_path_pad_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @orbit_path_pad.setter
    def orbit_path_pad(self, orbit_path_pad:float) -> None:
        return self._intf.set_property(AdvCATPreFilters._metadata, AdvCATPreFilters._set_orbit_path_pad_metadata, orbit_path_pad)

    _get_use_time_filter_metadata = { "offset" : _get_use_time_filter_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_time_filter(self) -> bool:
        """Flag to specify if Out of Time Filter is Used."""
        return self._intf.get_property(AdvCATPreFilters._metadata, AdvCATPreFilters._get_use_time_filter_metadata)

    _set_use_time_filter_metadata = { "offset" : _set_use_time_filter_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_time_filter.setter
    def use_time_filter(self, value:bool) -> None:
        return self._intf.set_property(AdvCATPreFilters._metadata, AdvCATPreFilters._set_use_time_filter_metadata, value)

    _get_time_distance_pad_metadata = { "offset" : _get_time_distance_pad_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def time_distance_pad(self) -> float:
        """Time Distance Pad."""
        return self._intf.get_property(AdvCATPreFilters._metadata, AdvCATPreFilters._get_time_distance_pad_metadata)

    _set_time_distance_pad_metadata = { "offset" : _set_time_distance_pad_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @time_distance_pad.setter
    def time_distance_pad(self, time_distance_pad:float) -> None:
        return self._intf.set_property(AdvCATPreFilters._metadata, AdvCATPreFilters._set_time_distance_pad_metadata, time_distance_pad)

    _property_names[use_out_of_date_filter] = "use_out_of_date_filter"
    _property_names[out_of_date_pad] = "out_of_date_pad"
    _property_names[use_apogee_perigee_filter] = "use_apogee_perigee_filter"
    _property_names[apogee_perigee_pad] = "apogee_perigee_pad"
    _property_names[use_orbit_path_filter] = "use_orbit_path_filter"
    _property_names[orbit_path_pad] = "orbit_path_pad"
    _property_names[use_time_filter] = "use_time_filter"
    _property_names[time_distance_pad] = "time_distance_pad"

    def __init__(self, source_object=None):
        """Construct an object of type AdvCATPreFilters."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AdvCATPreFilters)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AdvCATPreFilters, [AdvCATPreFilters, ])

agcls.AgClassCatalog.add_catalog_entry((5085415179048922310, 3426314117474137774), AdvCATPreFilters)
agcls.AgTypeNameMap["AdvCATPreFilters"] = AdvCATPreFilters

class AdvCATAdvancedEllipsoid(SupportsDeleteCallback):
    """Advanced ellipsoid properties."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_scale_factor_method_offset = 1
    _set_scale_factor_method_offset = 2
    _get_quadratic_in_time_database_method_offset = 3
    _set_quadratic_in_time_database_method_offset = 4
    _get_fixed_by_orbit_class_database_method_offset = 5
    _set_fixed_by_orbit_class_database_method_offset = 6
    _get_quadratic_by_orbit_class_database_method_offset = 7
    _set_quadratic_by_orbit_class_database_method_offset = 8
    _metadata = {
        "iid_data" : (4688256180059810640, 4617223414674944663),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AdvCATAdvancedEllipsoid)

    _get_scale_factor_metadata = { "offset" : _get_scale_factor_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def scale_factor(self) -> float:
        """Ellipsoid Scaling Factor."""
        return self._intf.get_property(AdvCATAdvancedEllipsoid._metadata, AdvCATAdvancedEllipsoid._get_scale_factor_metadata)

    _set_scale_factor_metadata = { "offset" : _set_scale_factor_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @scale_factor.setter
    def scale_factor(self, scale_factor:float) -> None:
        return self._intf.set_property(AdvCATAdvancedEllipsoid._metadata, AdvCATAdvancedEllipsoid._set_scale_factor_metadata, scale_factor)

    _get_quadratic_in_time_database_metadata = { "offset" : _get_quadratic_in_time_database_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def quadratic_in_time_database(self) -> str:
        """Quadratic Database Path."""
        return self._intf.get_property(AdvCATAdvancedEllipsoid._metadata, AdvCATAdvancedEllipsoid._get_quadratic_in_time_database_metadata)

    _set_quadratic_in_time_database_metadata = { "offset" : _set_quadratic_in_time_database_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @quadratic_in_time_database.setter
    def quadratic_in_time_database(self, quadratic_in_time_db:str) -> None:
        return self._intf.set_property(AdvCATAdvancedEllipsoid._metadata, AdvCATAdvancedEllipsoid._set_quadratic_in_time_database_metadata, quadratic_in_time_db)

    _get_fixed_by_orbit_class_database_metadata = { "offset" : _get_fixed_by_orbit_class_database_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def fixed_by_orbit_class_database(self) -> str:
        """Fixed by Orbit Class Database Path."""
        return self._intf.get_property(AdvCATAdvancedEllipsoid._metadata, AdvCATAdvancedEllipsoid._get_fixed_by_orbit_class_database_metadata)

    _set_fixed_by_orbit_class_database_metadata = { "offset" : _set_fixed_by_orbit_class_database_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @fixed_by_orbit_class_database.setter
    def fixed_by_orbit_class_database(self, fixed_by_orbit_class_db:str) -> None:
        return self._intf.set_property(AdvCATAdvancedEllipsoid._metadata, AdvCATAdvancedEllipsoid._set_fixed_by_orbit_class_database_metadata, fixed_by_orbit_class_db)

    _get_quadratic_by_orbit_class_database_metadata = { "offset" : _get_quadratic_by_orbit_class_database_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def quadratic_by_orbit_class_database(self) -> str:
        """Quadratics by Orbit Class Database Path."""
        return self._intf.get_property(AdvCATAdvancedEllipsoid._metadata, AdvCATAdvancedEllipsoid._get_quadratic_by_orbit_class_database_metadata)

    _set_quadratic_by_orbit_class_database_metadata = { "offset" : _set_quadratic_by_orbit_class_database_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @quadratic_by_orbit_class_database.setter
    def quadratic_by_orbit_class_database(self, quadratic_by_orbit_class_db:str) -> None:
        return self._intf.set_property(AdvCATAdvancedEllipsoid._metadata, AdvCATAdvancedEllipsoid._set_quadratic_by_orbit_class_database_metadata, quadratic_by_orbit_class_db)

    _property_names[scale_factor] = "scale_factor"
    _property_names[quadratic_in_time_database] = "quadratic_in_time_database"
    _property_names[fixed_by_orbit_class_database] = "fixed_by_orbit_class_database"
    _property_names[quadratic_by_orbit_class_database] = "quadratic_by_orbit_class_database"

    def __init__(self, source_object=None):
        """Construct an object of type AdvCATAdvancedEllipsoid."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AdvCATAdvancedEllipsoid)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AdvCATAdvancedEllipsoid, [AdvCATAdvancedEllipsoid, ])

agcls.AgClassCatalog.add_catalog_entry((4911942773965246607, 1023026884008663216), AdvCATAdvancedEllipsoid)
agcls.AgTypeNameMap["AdvCATAdvancedEllipsoid"] = AdvCATAdvancedEllipsoid

class AdvCATAdvancedSettings(SupportsDeleteCallback):
    """AdvCAT Advanced properties."""

    _num_methods = 34
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_ellipsoid_advanced_settings_method_offset = 1
    _get_pre_filters_method_offset = 2
    _get_use_log_file_method_offset = 3
    _set_use_log_file_method_offset = 4
    _get_log_filename_method_offset = 5
    _set_log_filename_method_offset = 6
    _get_use_correlation_file_method_offset = 7
    _set_use_correlation_file_method_offset = 8
    _get_correlation_filename_method_offset = 9
    _set_correlation_filename_method_offset = 10
    _get_use_cross_reference_database_method_offset = 11
    _set_use_cross_reference_database_method_offset = 12
    _get_cross_reference_database_method_offset = 13
    _set_cross_reference_database_method_offset = 14
    _get_use_ssc_hard_body_radius_file_method_offset = 15
    _set_use_ssc_hard_body_radius_file_method_offset = 16
    _get_ssc_hard_body_radius_file_method_offset = 17
    _set_ssc_hard_body_radius_file_method_offset = 18
    _get_show_message_in_message_viewer_method_offset = 19
    _set_show_message_in_message_viewer_method_offset = 20
    _get_force_repropagation_on_load_method_offset = 21
    _set_force_repropagation_on_load_method_offset = 22
    _get_compute_on_load_method_offset = 23
    _set_compute_on_load_method_offset = 24
    _get_allow_partial_ephemeris_method_offset = 25
    _set_allow_partial_ephemeris_method_offset = 26
    _get_remove_secondary_by_ssc_method_offset = 27
    _set_remove_secondary_by_ssc_method_offset = 28
    _get_maximum_sample_step_size_method_offset = 29
    _set_maximum_sample_step_size_method_offset = 30
    _get_minimum_sample_step_size_method_offset = 31
    _set_minimum_sample_step_size_method_offset = 32
    _get_conjunction_type_method_offset = 33
    _set_conjunction_type_method_offset = 34
    _metadata = {
        "iid_data" : (4724894696386409845, 3008725467391479969),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AdvCATAdvancedSettings)

    _get_ellipsoid_advanced_settings_metadata = { "offset" : _get_ellipsoid_advanced_settings_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def ellipsoid_advanced_settings(self) -> "AdvCATAdvancedEllipsoid":
        """Get AdvCAT advanced ellipsoid properties."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_ellipsoid_advanced_settings_metadata)

    _get_pre_filters_metadata = { "offset" : _get_pre_filters_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def pre_filters(self) -> "AdvCATPreFilters":
        """Get AdvCAT filter settings."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_pre_filters_metadata)

    _get_use_log_file_metadata = { "offset" : _get_use_log_file_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_log_file(self) -> bool:
        """Use the log file."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_use_log_file_metadata)

    _set_use_log_file_metadata = { "offset" : _set_use_log_file_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_log_file.setter
    def use_log_file(self, value:bool) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_use_log_file_metadata, value)

    _get_log_filename_metadata = { "offset" : _get_log_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def log_filename(self) -> str:
        """Name of the Log File."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_log_filename_metadata)

    _set_log_filename_metadata = { "offset" : _set_log_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @log_filename.setter
    def log_filename(self, log_file_name:str) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_log_filename_metadata, log_file_name)

    _get_use_correlation_file_metadata = { "offset" : _get_use_correlation_file_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_correlation_file(self) -> bool:
        """Flag to specify Use of Correlation File."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_use_correlation_file_metadata)

    _set_use_correlation_file_metadata = { "offset" : _set_use_correlation_file_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_correlation_file.setter
    def use_correlation_file(self, value:bool) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_use_correlation_file_metadata, value)

    _get_correlation_filename_metadata = { "offset" : _get_correlation_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def correlation_filename(self) -> str:
        """Correlation File Path."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_correlation_filename_metadata)

    _set_correlation_filename_metadata = { "offset" : _set_correlation_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @correlation_filename.setter
    def correlation_filename(self, correlation_file:str) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_correlation_filename_metadata, correlation_file)

    _get_use_cross_reference_database_metadata = { "offset" : _get_use_cross_reference_database_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_cross_reference_database(self) -> bool:
        """Flag to specify Use of Cross Reference Database."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_use_cross_reference_database_metadata)

    _set_use_cross_reference_database_metadata = { "offset" : _set_use_cross_reference_database_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_cross_reference_database.setter
    def use_cross_reference_database(self, value:bool) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_use_cross_reference_database_metadata, value)

    _get_cross_reference_database_metadata = { "offset" : _get_cross_reference_database_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def cross_reference_database(self) -> str:
        """Cross Reference Database Path."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_cross_reference_database_metadata)

    _set_cross_reference_database_metadata = { "offset" : _set_cross_reference_database_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @cross_reference_database.setter
    def cross_reference_database(self, cross_reference_db:str) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_cross_reference_database_metadata, cross_reference_db)

    _get_use_ssc_hard_body_radius_file_metadata = { "offset" : _get_use_ssc_hard_body_radius_file_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def use_ssc_hard_body_radius_file(self) -> bool:
        """Flag to specify Use of SSC Reference File."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_use_ssc_hard_body_radius_file_metadata)

    _set_use_ssc_hard_body_radius_file_metadata = { "offset" : _set_use_ssc_hard_body_radius_file_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @use_ssc_hard_body_radius_file.setter
    def use_ssc_hard_body_radius_file(self, value:bool) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_use_ssc_hard_body_radius_file_metadata, value)

    _get_ssc_hard_body_radius_file_metadata = { "offset" : _get_ssc_hard_body_radius_file_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def ssc_hard_body_radius_file(self) -> str:
        """SSC Reference File Path."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_ssc_hard_body_radius_file_metadata)

    _set_ssc_hard_body_radius_file_metadata = { "offset" : _set_ssc_hard_body_radius_file_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @ssc_hard_body_radius_file.setter
    def ssc_hard_body_radius_file(self, ssc_hard_body_radius_file:str) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_ssc_hard_body_radius_file_metadata, ssc_hard_body_radius_file)

    _get_show_message_in_message_viewer_metadata = { "offset" : _get_show_message_in_message_viewer_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_message_in_message_viewer(self) -> bool:
        """Flag to specify whether to write messages to message viewer."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_show_message_in_message_viewer_metadata)

    _set_show_message_in_message_viewer_metadata = { "offset" : _set_show_message_in_message_viewer_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_message_in_message_viewer.setter
    def show_message_in_message_viewer(self, value:bool) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_show_message_in_message_viewer_metadata, value)

    _get_force_repropagation_on_load_metadata = { "offset" : _get_force_repropagation_on_load_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def force_repropagation_on_load(self) -> bool:
        """Flag to force repropagation on load."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_force_repropagation_on_load_metadata)

    _set_force_repropagation_on_load_metadata = { "offset" : _set_force_repropagation_on_load_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @force_repropagation_on_load.setter
    def force_repropagation_on_load(self, value:bool) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_force_repropagation_on_load_metadata, value)

    _get_compute_on_load_metadata = { "offset" : _get_compute_on_load_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def compute_on_load(self) -> bool:
        """Flag to force compute on load."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_compute_on_load_metadata)

    _set_compute_on_load_metadata = { "offset" : _set_compute_on_load_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @compute_on_load.setter
    def compute_on_load(self, value:bool) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_compute_on_load_metadata, value)

    _get_allow_partial_ephemeris_metadata = { "offset" : _get_allow_partial_ephemeris_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def allow_partial_ephemeris(self) -> bool:
        """Flag to allow computation even when ephemeris does not completely overlap analysis interval."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_allow_partial_ephemeris_metadata)

    _set_allow_partial_ephemeris_metadata = { "offset" : _set_allow_partial_ephemeris_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @allow_partial_ephemeris.setter
    def allow_partial_ephemeris(self, value:bool) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_allow_partial_ephemeris_metadata, value)

    _get_remove_secondary_by_ssc_metadata = { "offset" : _get_remove_secondary_by_ssc_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def remove_secondary_by_ssc(self) -> bool:
        """Remove from cosniseration any secondary whose SSC number is the same as the primary."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_remove_secondary_by_ssc_metadata)

    _set_remove_secondary_by_ssc_metadata = { "offset" : _set_remove_secondary_by_ssc_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @remove_secondary_by_ssc.setter
    def remove_secondary_by_ssc(self, value:bool) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_remove_secondary_by_ssc_metadata, value)

    _get_maximum_sample_step_size_metadata = { "offset" : _get_maximum_sample_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_sample_step_size(self) -> float:
        """Maximum step size used in sampling."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_maximum_sample_step_size_metadata)

    _set_maximum_sample_step_size_metadata = { "offset" : _set_maximum_sample_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_sample_step_size.setter
    def maximum_sample_step_size(self, max_sample_step_size:float) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_maximum_sample_step_size_metadata, max_sample_step_size)

    _get_minimum_sample_step_size_metadata = { "offset" : _get_minimum_sample_step_size_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def minimum_sample_step_size(self) -> float:
        """Minimum step size used in sampling."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_minimum_sample_step_size_metadata)

    _set_minimum_sample_step_size_metadata = { "offset" : _set_minimum_sample_step_size_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @minimum_sample_step_size.setter
    def minimum_sample_step_size(self, min_sample_step_size:float) -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_minimum_sample_step_size_metadata, min_sample_step_size)

    _get_conjunction_type_metadata = { "offset" : _get_conjunction_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AdvCATConjunctionType),) }
    @property
    def conjunction_type(self) -> "AdvCATConjunctionType":
        """Mode for computing events involving conjunction TCA."""
        return self._intf.get_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._get_conjunction_type_metadata)

    _set_conjunction_type_metadata = { "offset" : _set_conjunction_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AdvCATConjunctionType),) }
    @conjunction_type.setter
    def conjunction_type(self, type:"AdvCATConjunctionType") -> None:
        return self._intf.set_property(AdvCATAdvancedSettings._metadata, AdvCATAdvancedSettings._set_conjunction_type_metadata, type)

    _property_names[ellipsoid_advanced_settings] = "ellipsoid_advanced_settings"
    _property_names[pre_filters] = "pre_filters"
    _property_names[use_log_file] = "use_log_file"
    _property_names[log_filename] = "log_filename"
    _property_names[use_correlation_file] = "use_correlation_file"
    _property_names[correlation_filename] = "correlation_filename"
    _property_names[use_cross_reference_database] = "use_cross_reference_database"
    _property_names[cross_reference_database] = "cross_reference_database"
    _property_names[use_ssc_hard_body_radius_file] = "use_ssc_hard_body_radius_file"
    _property_names[ssc_hard_body_radius_file] = "ssc_hard_body_radius_file"
    _property_names[show_message_in_message_viewer] = "show_message_in_message_viewer"
    _property_names[force_repropagation_on_load] = "force_repropagation_on_load"
    _property_names[compute_on_load] = "compute_on_load"
    _property_names[allow_partial_ephemeris] = "allow_partial_ephemeris"
    _property_names[remove_secondary_by_ssc] = "remove_secondary_by_ssc"
    _property_names[maximum_sample_step_size] = "maximum_sample_step_size"
    _property_names[minimum_sample_step_size] = "minimum_sample_step_size"
    _property_names[conjunction_type] = "conjunction_type"

    def __init__(self, source_object=None):
        """Construct an object of type AdvCATAdvancedSettings."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AdvCATAdvancedSettings)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AdvCATAdvancedSettings, [AdvCATAdvancedSettings, ])

agcls.AgClassCatalog.add_catalog_entry((5176310190116054689, 9441159742071418300), AdvCATAdvancedSettings)
agcls.AgTypeNameMap["AdvCATAdvancedSettings"] = AdvCATAdvancedSettings

class AdvCATGraphics3D(SupportsDeleteCallback):
    """AdvCAT VO properties."""

    _num_methods = 8
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_show_method_offset = 1
    _set_show_method_offset = 2
    _get_show_primary_ellipsoids_method_offset = 3
    _set_show_primary_ellipsoids_method_offset = 4
    _get_show_secondary_ellipsoids_method_offset = 5
    _set_show_secondary_ellipsoids_method_offset = 6
    _get_show_secondary_ellipsoids_type_method_offset = 7
    _set_show_secondary_ellipsoids_type_method_offset = 8
    _metadata = {
        "iid_data" : (5238013641064937867, 5776456668155165609),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, AdvCATGraphics3D)

    _get_show_metadata = { "offset" : _get_show_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show(self) -> bool:
        """Show VO properties."""
        return self._intf.get_property(AdvCATGraphics3D._metadata, AdvCATGraphics3D._get_show_metadata)

    _set_show_metadata = { "offset" : _set_show_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show.setter
    def show(self, value:bool) -> None:
        return self._intf.set_property(AdvCATGraphics3D._metadata, AdvCATGraphics3D._set_show_metadata, value)

    _get_show_primary_ellipsoids_metadata = { "offset" : _get_show_primary_ellipsoids_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_primary_ellipsoids(self) -> bool:
        """Show VO properties."""
        return self._intf.get_property(AdvCATGraphics3D._metadata, AdvCATGraphics3D._get_show_primary_ellipsoids_metadata)

    _set_show_primary_ellipsoids_metadata = { "offset" : _set_show_primary_ellipsoids_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_primary_ellipsoids.setter
    def show_primary_ellipsoids(self, value:bool) -> None:
        return self._intf.set_property(AdvCATGraphics3D._metadata, AdvCATGraphics3D._set_show_primary_ellipsoids_metadata, value)

    _get_show_secondary_ellipsoids_metadata = { "offset" : _get_show_secondary_ellipsoids_method_offset,
            "arg_types" : (POINTER(agcom.VARIANT_BOOL),),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @property
    def show_secondary_ellipsoids(self) -> bool:
        """Show VO properties."""
        return self._intf.get_property(AdvCATGraphics3D._metadata, AdvCATGraphics3D._get_show_secondary_ellipsoids_metadata)

    _set_show_secondary_ellipsoids_metadata = { "offset" : _set_show_secondary_ellipsoids_method_offset,
            "arg_types" : (agcom.VARIANT_BOOL,),
            "marshallers" : (agmarshall.VariantBoolArg,) }
    @show_secondary_ellipsoids.setter
    def show_secondary_ellipsoids(self, value:bool) -> None:
        return self._intf.set_property(AdvCATGraphics3D._metadata, AdvCATGraphics3D._set_show_secondary_ellipsoids_metadata, value)

    _get_show_secondary_ellipsoids_type_metadata = { "offset" : _get_show_secondary_ellipsoids_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(AdvCATSecondaryEllipsoidsVisibilityType),) }
    @property
    def show_secondary_ellipsoids_type(self) -> "AdvCATSecondaryEllipsoidsVisibilityType":
        """Type of visible Secondary Ellipsoids."""
        return self._intf.get_property(AdvCATGraphics3D._metadata, AdvCATGraphics3D._get_show_secondary_ellipsoids_type_metadata)

    _set_show_secondary_ellipsoids_type_metadata = { "offset" : _set_show_secondary_ellipsoids_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(AdvCATSecondaryEllipsoidsVisibilityType),) }
    @show_secondary_ellipsoids_type.setter
    def show_secondary_ellipsoids_type(self, type:"AdvCATSecondaryEllipsoidsVisibilityType") -> None:
        return self._intf.set_property(AdvCATGraphics3D._metadata, AdvCATGraphics3D._set_show_secondary_ellipsoids_type_metadata, type)

    _property_names[show] = "show"
    _property_names[show_primary_ellipsoids] = "show_primary_ellipsoids"
    _property_names[show_secondary_ellipsoids] = "show_secondary_ellipsoids"
    _property_names[show_secondary_ellipsoids_type] = "show_secondary_ellipsoids_type"

    def __init__(self, source_object=None):
        """Construct an object of type AdvCATGraphics3D."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, AdvCATGraphics3D)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, AdvCATGraphics3D, [AdvCATGraphics3D, ])

agcls.AgClassCatalog.add_catalog_entry((4903659112848992809, 14718191763392026513), AdvCATGraphics3D)
agcls.AgTypeNameMap["AdvCATGraphics3D"] = AdvCATGraphics3D

class EOIRShapeObject(IEOIRShapeObject, SupportsDeleteCallback):
    """Represents a generic shape object."""
    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeObject."""
        SupportsDeleteCallback.__init__(self)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeObject, [IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((5622567447135372743, 16134615885239614390), EOIRShapeObject)
agcls.AgTypeNameMap["EOIRShapeObject"] = EOIRShapeObject

class EOIRShapeBox(IEOIRShapeObject, SupportsDeleteCallback):
    """A box shape interface."""

    _num_methods = 6
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _get_width_method_offset = 1
    _set_width_method_offset = 2
    _get_depth_method_offset = 3
    _set_depth_method_offset = 4
    _get_height_method_offset = 5
    _set_height_method_offset = 6
    _metadata = {
        "iid_data" : (5147971186223010593, 13867620545952592770),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeBox)

    _get_width_metadata = { "offset" : _get_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def width(self) -> float:
        """Property used to access the width dimension of a box shape."""
        return self._intf.get_property(EOIRShapeBox._metadata, EOIRShapeBox._get_width_metadata)

    _set_width_metadata = { "offset" : _set_width_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @width.setter
    def width(self, width:float) -> None:
        return self._intf.set_property(EOIRShapeBox._metadata, EOIRShapeBox._set_width_metadata, width)

    _get_depth_metadata = { "offset" : _get_depth_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def depth(self) -> float:
        """Property used to access the depth dimension of a box shape."""
        return self._intf.get_property(EOIRShapeBox._metadata, EOIRShapeBox._get_depth_metadata)

    _set_depth_metadata = { "offset" : _set_depth_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @depth.setter
    def depth(self, depth:float) -> None:
        return self._intf.set_property(EOIRShapeBox._metadata, EOIRShapeBox._set_depth_metadata, depth)

    _get_height_metadata = { "offset" : _get_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height(self) -> float:
        """Property used to access the height dimension of a box shape."""
        return self._intf.get_property(EOIRShapeBox._metadata, EOIRShapeBox._get_height_metadata)

    _set_height_metadata = { "offset" : _set_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @height.setter
    def height(self, height:float) -> None:
        return self._intf.set_property(EOIRShapeBox._metadata, EOIRShapeBox._set_height_metadata, height)

    _property_names[width] = "width"
    _property_names[depth] = "depth"
    _property_names[height] = "height"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeBox."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeBox)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeBox, [EOIRShapeBox, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((5377029136618265413, 15285653526622387889), EOIRShapeBox)
agcls.AgTypeNameMap["EOIRShapeBox"] = EOIRShapeBox

class EOIRShapeCone(IEOIRShapeObject, SupportsDeleteCallback):
    """A cone shape interface."""

    _num_methods = 4
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _get_radius_method_offset = 1
    _set_radius_method_offset = 2
    _get_height_method_offset = 3
    _set_height_method_offset = 4
    _metadata = {
        "iid_data" : (4995891592915416079, 82245295784254363),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeCone)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """Property used to access the radius dimension of a cone shape."""
        return self._intf.get_property(EOIRShapeCone._metadata, EOIRShapeCone._get_radius_metadata)

    _set_radius_metadata = { "offset" : _set_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius.setter
    def radius(self, radius:float) -> None:
        return self._intf.set_property(EOIRShapeCone._metadata, EOIRShapeCone._set_radius_metadata, radius)

    _get_height_metadata = { "offset" : _get_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height(self) -> float:
        """Property used to access the height dimension of a cone shape."""
        return self._intf.get_property(EOIRShapeCone._metadata, EOIRShapeCone._get_height_metadata)

    _set_height_metadata = { "offset" : _set_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @height.setter
    def height(self, height:float) -> None:
        return self._intf.set_property(EOIRShapeCone._metadata, EOIRShapeCone._set_height_metadata, height)

    _property_names[radius] = "radius"
    _property_names[height] = "height"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeCone."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeCone)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeCone, [EOIRShapeCone, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((4788154945298007731, 12986435188117445555), EOIRShapeCone)
agcls.AgTypeNameMap["EOIRShapeCone"] = EOIRShapeCone

class EOIRShapeCylinder(IEOIRShapeObject, SupportsDeleteCallback):
    """A cylinder shape interface."""

    _num_methods = 4
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _get_radius_method_offset = 1
    _set_radius_method_offset = 2
    _get_height_method_offset = 3
    _set_height_method_offset = 4
    _metadata = {
        "iid_data" : (4869429536510235187, 5274452158890480289),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeCylinder)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """Property used to access the radius dimension of a cylinder shape."""
        return self._intf.get_property(EOIRShapeCylinder._metadata, EOIRShapeCylinder._get_radius_metadata)

    _set_radius_metadata = { "offset" : _set_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius.setter
    def radius(self, radius:float) -> None:
        return self._intf.set_property(EOIRShapeCylinder._metadata, EOIRShapeCylinder._set_radius_metadata, radius)

    _get_height_metadata = { "offset" : _get_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height(self) -> float:
        """Property used to access the height dimension of a cylinder shape."""
        return self._intf.get_property(EOIRShapeCylinder._metadata, EOIRShapeCylinder._get_height_metadata)

    _set_height_metadata = { "offset" : _set_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @height.setter
    def height(self, height:float) -> None:
        return self._intf.set_property(EOIRShapeCylinder._metadata, EOIRShapeCylinder._set_height_metadata, height)

    _property_names[radius] = "radius"
    _property_names[height] = "height"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeCylinder."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeCylinder)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeCylinder, [EOIRShapeCylinder, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((5165189817663896218, 15982790717381512869), EOIRShapeCylinder)
agcls.AgTypeNameMap["EOIRShapeCylinder"] = EOIRShapeCylinder

class EOIRShapePlate(IEOIRShapeObject, SupportsDeleteCallback):
    """A plate shape interface."""

    _num_methods = 4
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _get_width_method_offset = 1
    _set_width_method_offset = 2
    _get_length_method_offset = 3
    _set_length_method_offset = 4
    _metadata = {
        "iid_data" : (5746744348359830853, 6464695860465282188),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapePlate)

    _get_width_metadata = { "offset" : _get_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def width(self) -> float:
        """Property used to access the radius dimension of a plate shape."""
        return self._intf.get_property(EOIRShapePlate._metadata, EOIRShapePlate._get_width_metadata)

    _set_width_metadata = { "offset" : _set_width_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @width.setter
    def width(self, radius:float) -> None:
        return self._intf.set_property(EOIRShapePlate._metadata, EOIRShapePlate._set_width_metadata, radius)

    _get_length_metadata = { "offset" : _get_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def length(self) -> float:
        """Property used to access the height dimension of a plate shape."""
        return self._intf.get_property(EOIRShapePlate._metadata, EOIRShapePlate._get_length_metadata)

    _set_length_metadata = { "offset" : _set_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @length.setter
    def length(self, height:float) -> None:
        return self._intf.set_property(EOIRShapePlate._metadata, EOIRShapePlate._set_length_metadata, height)

    _property_names[width] = "width"
    _property_names[length] = "length"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapePlate."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapePlate)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapePlate, [EOIRShapePlate, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((5662146441099054589, 9216257800842512010), EOIRShapePlate)
agcls.AgTypeNameMap["EOIRShapePlate"] = EOIRShapePlate

class EOIRShapeSphere(IEOIRShapeObject, SupportsDeleteCallback):
    """A sphere shape interface."""

    _num_methods = 2
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _get_radius_method_offset = 1
    _set_radius_method_offset = 2
    _metadata = {
        "iid_data" : (4974545034189772612, 4975275657333493163),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeSphere)

    _get_radius_metadata = { "offset" : _get_radius_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius(self) -> float:
        """Property used to access the radius dimension of a sphere shape."""
        return self._intf.get_property(EOIRShapeSphere._metadata, EOIRShapeSphere._get_radius_metadata)

    _set_radius_metadata = { "offset" : _set_radius_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius.setter
    def radius(self, radius:float) -> None:
        return self._intf.set_property(EOIRShapeSphere._metadata, EOIRShapeSphere._set_radius_metadata, radius)

    _property_names[radius] = "radius"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeSphere."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeSphere)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeSphere, [EOIRShapeSphere, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((5006248863257878386, 12062129938570191262), EOIRShapeSphere)
agcls.AgTypeNameMap["EOIRShapeSphere"] = EOIRShapeSphere

class EOIRShapeCoupler(IEOIRShapeObject, SupportsDeleteCallback):
    """A coupler shape interface."""

    _num_methods = 6
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _get_radius_1_method_offset = 1
    _set_radius_1_method_offset = 2
    _get_height_method_offset = 3
    _set_height_method_offset = 4
    _get_radius_2_method_offset = 5
    _set_radius_2_method_offset = 6
    _metadata = {
        "iid_data" : (4747095276530463820, 9444672880585740720),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeCoupler)

    _get_radius_1_metadata = { "offset" : _get_radius_1_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius_1(self) -> float:
        """Property used to access the first radius dimension of a coupler shape."""
        return self._intf.get_property(EOIRShapeCoupler._metadata, EOIRShapeCoupler._get_radius_1_metadata)

    _set_radius_1_metadata = { "offset" : _set_radius_1_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius_1.setter
    def radius_1(self, radius1:float) -> None:
        return self._intf.set_property(EOIRShapeCoupler._metadata, EOIRShapeCoupler._set_radius_1_metadata, radius1)

    _get_height_metadata = { "offset" : _get_height_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def height(self) -> float:
        """Property used to access the height dimension of a coupler shape."""
        return self._intf.get_property(EOIRShapeCoupler._metadata, EOIRShapeCoupler._get_height_metadata)

    _set_height_metadata = { "offset" : _set_height_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @height.setter
    def height(self, height:float) -> None:
        return self._intf.set_property(EOIRShapeCoupler._metadata, EOIRShapeCoupler._set_height_metadata, height)

    _get_radius_2_metadata = { "offset" : _get_radius_2_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def radius_2(self) -> float:
        """Property used to access the second radius dimension of a coupler shape."""
        return self._intf.get_property(EOIRShapeCoupler._metadata, EOIRShapeCoupler._get_radius_2_metadata)

    _set_radius_2_metadata = { "offset" : _set_radius_2_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @radius_2.setter
    def radius_2(self, radius2:float) -> None:
        return self._intf.set_property(EOIRShapeCoupler._metadata, EOIRShapeCoupler._set_radius_2_metadata, radius2)

    _property_names[radius_1] = "radius_1"
    _property_names[height] = "height"
    _property_names[radius_2] = "radius_2"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeCoupler."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeCoupler)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeCoupler, [EOIRShapeCoupler, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((5058660448228640564, 9783556086914125958), EOIRShapeCoupler)
agcls.AgTypeNameMap["EOIRShapeCoupler"] = EOIRShapeCoupler

class EOIRShapeNone(IEOIRShapeObject, SupportsDeleteCallback):
    """A none shape interface."""

    _num_methods = 0
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _metadata = {
        "iid_data" : (5526585069202275863, 9770760002973488792),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeNone)


    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeNone."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeNone)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeNone, [EOIRShapeNone, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((5248556209914859763, 14443655460638782351), EOIRShapeNone)
agcls.AgTypeNameMap["EOIRShapeNone"] = EOIRShapeNone

class EOIRShapeGEOComm(IEOIRShapeObject, SupportsDeleteCallback):
    """A GEOComm shape interface."""

    _num_methods = 0
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _metadata = {
        "iid_data" : (5515062103971932979, 16218948562177085625),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeGEOComm)


    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeGEOComm."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeGEOComm)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeGEOComm, [EOIRShapeGEOComm, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((4633694283218559647, 7306700794713638830), EOIRShapeGEOComm)
agcls.AgTypeNameMap["EOIRShapeGEOComm"] = EOIRShapeGEOComm

class EOIRShapeLEOComm(IEOIRShapeObject, SupportsDeleteCallback):
    """A LEOComm shape interface."""

    _num_methods = 0
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _metadata = {
        "iid_data" : (4623288677466957156, 161318337429374132),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeLEOComm)


    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeLEOComm."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeLEOComm)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeLEOComm, [EOIRShapeLEOComm, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((4996020744492011875, 17431614038522018476), EOIRShapeLEOComm)
agcls.AgTypeNameMap["EOIRShapeLEOComm"] = EOIRShapeLEOComm

class EOIRShapeLEOImaging(IEOIRShapeObject, SupportsDeleteCallback):
    """A LEOImaging shape interface."""

    _num_methods = 0
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _metadata = {
        "iid_data" : (5057531936211286584, 9688802007297914266),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeLEOImaging)


    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeLEOImaging."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeLEOImaging)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeLEOImaging, [EOIRShapeLEOImaging, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((5412509976418887244, 16110007566943600052), EOIRShapeLEOImaging)
agcls.AgTypeNameMap["EOIRShapeLEOImaging"] = EOIRShapeLEOImaging

class EOIRShapeCustomMesh(IEOIRShapeObject, SupportsDeleteCallback):
    """A custom mesh shape interface."""

    _num_methods = 2
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _get_maximum_dimension_method_offset = 1
    _set_maximum_dimension_method_offset = 2
    _metadata = {
        "iid_data" : (5415007957844688397, 17688264213153448099),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeCustomMesh)

    _get_maximum_dimension_metadata = { "offset" : _get_maximum_dimension_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def maximum_dimension(self) -> float:
        """Property used to access the maximum dimension of a custom mesh shape."""
        return self._intf.get_property(EOIRShapeCustomMesh._metadata, EOIRShapeCustomMesh._get_maximum_dimension_metadata)

    _set_maximum_dimension_metadata = { "offset" : _set_maximum_dimension_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @maximum_dimension.setter
    def maximum_dimension(self, max_dimension:float) -> None:
        return self._intf.set_property(EOIRShapeCustomMesh._metadata, EOIRShapeCustomMesh._set_maximum_dimension_metadata, max_dimension)

    _property_names[maximum_dimension] = "maximum_dimension"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeCustomMesh."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeCustomMesh)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeCustomMesh, [EOIRShapeCustomMesh, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((4657408382724570873, 8374402524525026949), EOIRShapeCustomMesh)
agcls.AgTypeNameMap["EOIRShapeCustomMesh"] = EOIRShapeCustomMesh

class EOIRShapeTargetSignature(IEOIRShapeObject, SupportsDeleteCallback):
    """A target signature shape interface."""

    _num_methods = 0
    _vtable_offset = IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods
    _metadata = {
        "iid_data" : (5424466613259205794, 3969246438018797470),
        "vtable_reference" : IEOIRShapeObject._vtable_offset + IEOIRShapeObject._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeTargetSignature)


    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeTargetSignature."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeTargetSignature)
        IEOIRShapeObject.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIRShapeObject._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeTargetSignature, [EOIRShapeTargetSignature, IEOIRShapeObject])

agcls.AgClassCatalog.add_catalog_entry((5041169000762999054, 11904425735747874194), EOIRShapeTargetSignature)
agcls.AgTypeNameMap["EOIRShapeTargetSignature"] = EOIRShapeTargetSignature

class EOIRStagePlume(SupportsDeleteCallback):
    """A stage interface."""

    _num_methods = 10
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_on_time_delta_method_offset = 1
    _set_on_time_delta_method_offset = 2
    _get_off_time_delta_method_offset = 3
    _set_off_time_delta_method_offset = 4
    _get_temperature_method_offset = 5
    _set_temperature_method_offset = 6
    _get_relative_width_method_offset = 7
    _set_relative_width_method_offset = 8
    _get_relative_length_method_offset = 9
    _set_relative_length_method_offset = 10
    _metadata = {
        "iid_data" : (5028578668208377392, 16016201513002978194),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRStagePlume)

    _get_on_time_delta_metadata = { "offset" : _get_on_time_delta_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def on_time_delta(self) -> float:
        """Property used to access the On Time delta."""
        return self._intf.get_property(EOIRStagePlume._metadata, EOIRStagePlume._get_on_time_delta_metadata)

    _set_on_time_delta_metadata = { "offset" : _set_on_time_delta_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @on_time_delta.setter
    def on_time_delta(self, on_time_delta:float) -> None:
        return self._intf.set_property(EOIRStagePlume._metadata, EOIRStagePlume._set_on_time_delta_metadata, on_time_delta)

    _get_off_time_delta_metadata = { "offset" : _get_off_time_delta_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def off_time_delta(self) -> float:
        """Property used to access the Off Time Delta."""
        return self._intf.get_property(EOIRStagePlume._metadata, EOIRStagePlume._get_off_time_delta_metadata)

    _set_off_time_delta_metadata = { "offset" : _set_off_time_delta_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @off_time_delta.setter
    def off_time_delta(self, off_time_delta:float) -> None:
        return self._intf.set_property(EOIRStagePlume._metadata, EOIRStagePlume._set_off_time_delta_metadata, off_time_delta)

    _get_temperature_metadata = { "offset" : _get_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def temperature(self) -> float:
        """Property used to access the Plume Temperature."""
        return self._intf.get_property(EOIRStagePlume._metadata, EOIRStagePlume._get_temperature_metadata)

    _set_temperature_metadata = { "offset" : _set_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @temperature.setter
    def temperature(self, temperature:float) -> None:
        return self._intf.set_property(EOIRStagePlume._metadata, EOIRStagePlume._set_temperature_metadata, temperature)

    _get_relative_width_metadata = { "offset" : _get_relative_width_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def relative_width(self) -> float:
        """Property used to access the Relative Width."""
        return self._intf.get_property(EOIRStagePlume._metadata, EOIRStagePlume._get_relative_width_metadata)

    _set_relative_width_metadata = { "offset" : _set_relative_width_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @relative_width.setter
    def relative_width(self, relative_width:float) -> None:
        return self._intf.set_property(EOIRStagePlume._metadata, EOIRStagePlume._set_relative_width_metadata, relative_width)

    _get_relative_length_metadata = { "offset" : _get_relative_length_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def relative_length(self) -> float:
        """Property used to access the Relative Length."""
        return self._intf.get_property(EOIRStagePlume._metadata, EOIRStagePlume._get_relative_length_metadata)

    _set_relative_length_metadata = { "offset" : _set_relative_length_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @relative_length.setter
    def relative_length(self, relative_length:float) -> None:
        return self._intf.set_property(EOIRStagePlume._metadata, EOIRStagePlume._set_relative_length_metadata, relative_length)

    _property_names[on_time_delta] = "on_time_delta"
    _property_names[off_time_delta] = "off_time_delta"
    _property_names[temperature] = "temperature"
    _property_names[relative_width] = "relative_width"
    _property_names[relative_length] = "relative_length"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRStagePlume."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRStagePlume)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRStagePlume, [EOIRStagePlume, ])

agcls.AgClassCatalog.add_catalog_entry((5439098423667952282, 9174991584698107819), EOIRStagePlume)
agcls.AgTypeNameMap["EOIRStagePlume"] = EOIRStagePlume

class EOIRShape(SupportsDeleteCallback):
    """A shape interface."""

    _num_methods = 21
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_shape_type_method_offset = 1
    _set_shape_type_method_offset = 2
    _get_mesh_filename_method_offset = 3
    _set_mesh_filename_method_offset = 4
    _get_shape_object_method_offset = 5
    _get_dimension_a_method_offset = 6
    _set_dimension_a_method_offset = 7
    _get_dimension_b_method_offset = 8
    _set_dimension_b_method_offset = 9
    _get_dimension_c_method_offset = 10
    _set_dimension_c_method_offset = 11
    _get_material_specification_type_method_offset = 12
    _set_material_specification_type_method_offset = 13
    _get_material_map_filename_method_offset = 14
    _set_material_map_filename_method_offset = 15
    _get_material_element_index_method_offset = 16
    _set_material_element_index_method_offset = 17
    _get_material_elements_count_method_offset = 18
    _get_material_elements_method_offset = 19
    _get_target_signature_filename_method_offset = 20
    _set_target_signature_filename_method_offset = 21
    _metadata = {
        "iid_data" : (5721765850749641403, 8351399361499794823),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShape)

    _get_shape_type_metadata = { "offset" : _get_shape_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EOIRShapeType),) }
    @property
    def shape_type(self) -> "EOIRShapeType":
        """Property used to access the shape type."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_shape_type_metadata)

    _set_shape_type_metadata = { "offset" : _set_shape_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EOIRShapeType),) }
    @shape_type.setter
    def shape_type(self, shape_type:"EOIRShapeType") -> None:
        return self._intf.set_property(EOIRShape._metadata, EOIRShape._set_shape_type_metadata, shape_type)

    _get_mesh_filename_metadata = { "offset" : _get_mesh_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def mesh_filename(self) -> str:
        """Property used to access the mesh file."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_mesh_filename_metadata)

    _set_mesh_filename_metadata = { "offset" : _set_mesh_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @mesh_filename.setter
    def mesh_filename(self, mesh_file:str) -> None:
        return self._intf.set_property(EOIRShape._metadata, EOIRShape._set_mesh_filename_metadata, mesh_file)

    _get_shape_object_metadata = { "offset" : _get_shape_object_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def shape_object(self) -> "IEOIRShapeObject":
        """Property used to access the shape object."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_shape_object_metadata)

    _get_dimension_a_metadata = { "offset" : _get_dimension_a_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def dimension_a(self) -> float:
        """Property used to access the A dimension."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_dimension_a_metadata)

    _set_dimension_a_metadata = { "offset" : _set_dimension_a_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @dimension_a.setter
    def dimension_a(self, dimension_a:float) -> None:
        return self._intf.set_property(EOIRShape._metadata, EOIRShape._set_dimension_a_metadata, dimension_a)

    _get_dimension_b_metadata = { "offset" : _get_dimension_b_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def dimension_b(self) -> float:
        """Property used to access the B dimension."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_dimension_b_metadata)

    _set_dimension_b_metadata = { "offset" : _set_dimension_b_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @dimension_b.setter
    def dimension_b(self, dimension_b:float) -> None:
        return self._intf.set_property(EOIRShape._metadata, EOIRShape._set_dimension_b_metadata, dimension_b)

    _get_dimension_c_metadata = { "offset" : _get_dimension_c_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def dimension_c(self) -> float:
        """Property used to access the C dimension."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_dimension_c_metadata)

    _set_dimension_c_metadata = { "offset" : _set_dimension_c_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @dimension_c.setter
    def dimension_c(self, dimension_c:float) -> None:
        return self._intf.set_property(EOIRShape._metadata, EOIRShape._set_dimension_c_metadata, dimension_c)

    _get_material_specification_type_metadata = { "offset" : _get_material_specification_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EOIRShapeMaterialSpecificationType),) }
    @property
    def material_specification_type(self) -> "EOIRShapeMaterialSpecificationType":
        """Property used to access the shape material specification type."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_material_specification_type_metadata)

    _set_material_specification_type_metadata = { "offset" : _set_material_specification_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EOIRShapeMaterialSpecificationType),) }
    @material_specification_type.setter
    def material_specification_type(self, value:"EOIRShapeMaterialSpecificationType") -> None:
        return self._intf.set_property(EOIRShape._metadata, EOIRShape._set_material_specification_type_metadata, value)

    _get_material_map_filename_metadata = { "offset" : _get_material_map_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def material_map_filename(self) -> str:
        """Property used to access the material map file."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_material_map_filename_metadata)

    _set_material_map_filename_metadata = { "offset" : _set_material_map_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @material_map_filename.setter
    def material_map_filename(self, value:str) -> None:
        return self._intf.set_property(EOIRShape._metadata, EOIRShape._set_material_map_filename_metadata, value)

    _get_material_element_index_metadata = { "offset" : _get_material_element_index_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def material_element_index(self) -> int:
        """Property used to access the currently selected material element index."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_material_element_index_metadata)

    _set_material_element_index_metadata = { "offset" : _set_material_element_index_method_offset,
            "arg_types" : (agcom.INT,),
            "marshallers" : (agmarshall.IntArg,) }
    @material_element_index.setter
    def material_element_index(self, value:int) -> None:
        return self._intf.set_property(EOIRShape._metadata, EOIRShape._set_material_element_index_metadata, value)

    _get_material_elements_count_metadata = { "offset" : _get_material_elements_count_method_offset,
            "arg_types" : (POINTER(agcom.INT),),
            "marshallers" : (agmarshall.IntArg,) }
    @property
    def material_elements_count(self) -> int:
        """Property used to access the number of material elements."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_material_elements_count_metadata)

    _get_material_elements_metadata = { "offset" : _get_material_elements_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def material_elements(self) -> "EOIRMaterialElementCollection":
        """Property used to access the material element collection."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_material_elements_metadata)

    _get_target_signature_filename_metadata = { "offset" : _get_target_signature_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def target_signature_filename(self) -> str:
        """Property used to access the target signature file."""
        return self._intf.get_property(EOIRShape._metadata, EOIRShape._get_target_signature_filename_metadata)

    _set_target_signature_filename_metadata = { "offset" : _set_target_signature_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @target_signature_filename.setter
    def target_signature_filename(self, value:str) -> None:
        return self._intf.set_property(EOIRShape._metadata, EOIRShape._set_target_signature_filename_metadata, value)

    _property_names[shape_type] = "shape_type"
    _property_names[mesh_filename] = "mesh_filename"
    _property_names[shape_object] = "shape_object"
    _property_names[dimension_a] = "dimension_a"
    _property_names[dimension_b] = "dimension_b"
    _property_names[dimension_c] = "dimension_c"
    _property_names[material_specification_type] = "material_specification_type"
    _property_names[material_map_filename] = "material_map_filename"
    _property_names[material_element_index] = "material_element_index"
    _property_names[material_elements_count] = "material_elements_count"
    _property_names[material_elements] = "material_elements"
    _property_names[target_signature_filename] = "target_signature_filename"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRShape."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShape)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShape, [EOIRShape, ])

agcls.AgClassCatalog.add_catalog_entry((5595459323576511142, 4885970280442111112), EOIRShape)
agcls.AgTypeNameMap["EOIRShape"] = EOIRShape

class EOIRShapeCollection(SupportsDeleteCallback):
    """EOIRShapeCollection Interface."""

    _num_methods = 5
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _item_method_offset = 1
    _add_method_offset = 2
    _remove_at_method_offset = 3
    _get_count_method_offset = 4
    _get__new_enum_method_offset = 5
    _metadata = {
        "iid_data" : (4705205688846739011, 95676743177469084),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRShapeCollection)
    def __iter__(self):
        """Create an iterator for the EOIRShapeCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "EOIRShape":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "EOIRShape":
        """Given an index, returns an element in the collection. If the index is an integer, then the method returns the element in the collection at the given position. If the index is a string, then the method returns the element with the specified name."""
        return self._intf.invoke(EOIRShapeCollection._metadata, EOIRShapeCollection._item_metadata, index, OutArg())

    _add_metadata = { "offset" : _add_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    def add(self) -> "EOIRShape":
        """Add an element at the end of the collection."""
        return self._intf.invoke(EOIRShapeCollection._metadata, EOIRShapeCollection._add_metadata, OutArg())

    _remove_at_metadata = { "offset" : _remove_at_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.LongArg,) }
    def remove_at(self, index:int) -> None:
        """Remove an element at the given index in the collection."""
        return self._intf.invoke(EOIRShapeCollection._metadata, EOIRShapeCollection._remove_at_metadata, index)

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(EOIRShapeCollection._metadata, EOIRShapeCollection._get_count_metadata)

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(EOIRShapeCollection._metadata, EOIRShapeCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRShapeCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRShapeCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRShapeCollection, [EOIRShapeCollection, ])

agcls.AgClassCatalog.add_catalog_entry((5364622352194568893, 3652039276111000480), EOIRShapeCollection)
agcls.AgTypeNameMap["EOIRShapeCollection"] = EOIRShapeCollection

class EOIRMaterialElement(SupportsDeleteCallback):
    """A material element interface."""

    _num_methods = 17
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_temperature_model_method_offset = 1
    _set_temperature_model_method_offset = 2
    _get_body_temperature_method_offset = 3
    _set_body_temperature_method_offset = 4
    _get_temperature_filename_method_offset = 5
    _set_temperature_filename_method_offset = 6
    _get_reflectance_method_offset = 7
    _set_reflectance_method_offset = 8
    _get_material_method_offset = 9
    _set_material_method_offset = 10
    _get_reflectance_filename_method_offset = 11
    _set_reflectance_filename_method_offset = 12
    _get_material_element_label_method_offset = 13
    _get_available_materials_method_offset = 14
    _get_data_provider_method_offset = 15
    _set_data_provider_method_offset = 16
    _get_available_data_providers_method_offset = 17
    _metadata = {
        "iid_data" : (4686919727227844820, 2320211807274992286),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRMaterialElement)

    _get_temperature_model_metadata = { "offset" : _get_temperature_model_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def temperature_model(self) -> str:
        """Property used to access the temperature model."""
        return self._intf.get_property(EOIRMaterialElement._metadata, EOIRMaterialElement._get_temperature_model_metadata)

    _set_temperature_model_metadata = { "offset" : _set_temperature_model_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @temperature_model.setter
    def temperature_model(self, temperature_model:str) -> None:
        return self._intf.set_property(EOIRMaterialElement._metadata, EOIRMaterialElement._set_temperature_model_metadata, temperature_model)

    _get_body_temperature_metadata = { "offset" : _get_body_temperature_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def body_temperature(self) -> float:
        """Property used to access the body temperature."""
        return self._intf.get_property(EOIRMaterialElement._metadata, EOIRMaterialElement._get_body_temperature_metadata)

    _set_body_temperature_metadata = { "offset" : _set_body_temperature_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @body_temperature.setter
    def body_temperature(self, body_temperature:float) -> None:
        return self._intf.set_property(EOIRMaterialElement._metadata, EOIRMaterialElement._set_body_temperature_metadata, body_temperature)

    _get_temperature_filename_metadata = { "offset" : _get_temperature_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def temperature_filename(self) -> str:
        """Property used to access the temperature file."""
        return self._intf.get_property(EOIRMaterialElement._metadata, EOIRMaterialElement._get_temperature_filename_metadata)

    _set_temperature_filename_metadata = { "offset" : _set_temperature_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @temperature_filename.setter
    def temperature_filename(self, temperature_file:str) -> None:
        return self._intf.set_property(EOIRMaterialElement._metadata, EOIRMaterialElement._set_temperature_filename_metadata, temperature_file)

    _get_reflectance_metadata = { "offset" : _get_reflectance_method_offset,
            "arg_types" : (POINTER(agcom.DOUBLE),),
            "marshallers" : (agmarshall.DoubleArg,) }
    @property
    def reflectance(self) -> float:
        """Property used to access the reflectance."""
        return self._intf.get_property(EOIRMaterialElement._metadata, EOIRMaterialElement._get_reflectance_metadata)

    _set_reflectance_metadata = { "offset" : _set_reflectance_method_offset,
            "arg_types" : (agcom.DOUBLE,),
            "marshallers" : (agmarshall.DoubleArg,) }
    @reflectance.setter
    def reflectance(self, reflectance:float) -> None:
        return self._intf.set_property(EOIRMaterialElement._metadata, EOIRMaterialElement._set_reflectance_metadata, reflectance)

    _get_material_metadata = { "offset" : _get_material_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def material(self) -> str:
        """Property used to access the material."""
        return self._intf.get_property(EOIRMaterialElement._metadata, EOIRMaterialElement._get_material_metadata)

    _set_material_metadata = { "offset" : _set_material_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @material.setter
    def material(self, material:str) -> None:
        return self._intf.set_property(EOIRMaterialElement._metadata, EOIRMaterialElement._set_material_metadata, material)

    _get_reflectance_filename_metadata = { "offset" : _get_reflectance_filename_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def reflectance_filename(self) -> str:
        """Property used to access the reflectance file."""
        return self._intf.get_property(EOIRMaterialElement._metadata, EOIRMaterialElement._get_reflectance_filename_metadata)

    _set_reflectance_filename_metadata = { "offset" : _set_reflectance_filename_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @reflectance_filename.setter
    def reflectance_filename(self, reflectance_file:str) -> None:
        return self._intf.set_property(EOIRMaterialElement._metadata, EOIRMaterialElement._set_reflectance_filename_metadata, reflectance_file)

    _get_material_element_label_metadata = { "offset" : _get_material_element_label_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def material_element_label(self) -> str:
        """Property used to access the material element label."""
        return self._intf.get_property(EOIRMaterialElement._metadata, EOIRMaterialElement._get_material_element_label_metadata)

    _get_available_materials_metadata = { "offset" : _get_available_materials_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_materials(self) -> list:
        """Property used to access the available materials."""
        return self._intf.get_property(EOIRMaterialElement._metadata, EOIRMaterialElement._get_available_materials_metadata)

    _get_data_provider_metadata = { "offset" : _get_data_provider_method_offset,
            "arg_types" : (POINTER(agcom.BSTR),),
            "marshallers" : (agmarshall.BStrArg,) }
    @property
    def data_provider(self) -> str:
        """Property used to access the DataProvider."""
        return self._intf.get_property(EOIRMaterialElement._metadata, EOIRMaterialElement._get_data_provider_metadata)

    _set_data_provider_metadata = { "offset" : _set_data_provider_method_offset,
            "arg_types" : (agcom.BSTR,),
            "marshallers" : (agmarshall.BStrArg,) }
    @data_provider.setter
    def data_provider(self, data_provider:str) -> None:
        return self._intf.set_property(EOIRMaterialElement._metadata, EOIRMaterialElement._set_data_provider_metadata, data_provider)

    _get_available_data_providers_metadata = { "offset" : _get_available_data_providers_method_offset,
            "arg_types" : (POINTER(agcom.LPSAFEARRAY),),
            "marshallers" : (agmarshall.LPSafearrayArg,) }
    @property
    def available_data_providers(self) -> list:
        """Property used to access the available data providers."""
        return self._intf.get_property(EOIRMaterialElement._metadata, EOIRMaterialElement._get_available_data_providers_metadata)

    _property_names[temperature_model] = "temperature_model"
    _property_names[body_temperature] = "body_temperature"
    _property_names[temperature_filename] = "temperature_filename"
    _property_names[reflectance] = "reflectance"
    _property_names[material] = "material"
    _property_names[reflectance_filename] = "reflectance_filename"
    _property_names[material_element_label] = "material_element_label"
    _property_names[available_materials] = "available_materials"
    _property_names[data_provider] = "data_provider"
    _property_names[available_data_providers] = "available_data_providers"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRMaterialElement."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRMaterialElement)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRMaterialElement, [EOIRMaterialElement, ])

agcls.AgClassCatalog.add_catalog_entry((5142670242090361214, 17813226719618360989), EOIRMaterialElement)
agcls.AgTypeNameMap["EOIRMaterialElement"] = EOIRMaterialElement

class EOIRMaterialElementCollection(SupportsDeleteCallback):
    """EOIRMaterialElementCollection Interface."""

    _num_methods = 3
    _vtable_offset = IDispatch._vtable_offset + IDispatch._num_methods
    _get_count_method_offset = 1
    _item_method_offset = 2
    _get__new_enum_method_offset = 3
    _metadata = {
        "iid_data" : (4854015476383031516, 502013666509547405),
        "vtable_reference" : IDispatch._vtable_offset + IDispatch._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRMaterialElementCollection)
    def __iter__(self):
        """Create an iterator for the EOIRMaterialElementCollection object."""
        self.__dict__["_enumerator"] = self._new_enum
        self._enumerator.reset()
        return self
    def __next__(self) -> "EOIRMaterialElement":
        """Return the next element in the collection."""
        if self._enumerator is None:
            raise StopIteration
        nextval = self._enumerator.next()
        if nextval is None:
            raise StopIteration
        return nextval

    _get_count_metadata = { "offset" : _get_count_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.LongArg,) }
    @property
    def count(self) -> int:
        """Return the number of elements in a collection."""
        return self._intf.get_property(EOIRMaterialElementCollection._metadata, EOIRMaterialElementCollection._get_count_metadata)

    _item_metadata = { "offset" : _item_method_offset,
            "arg_types" : (agcom.LONG, POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.LongArg, agmarshall.InterfaceOutArg,) }
    def item(self, index:int) -> "EOIRMaterialElement":
        """Given an index, returns an element in the collection."""
        return self._intf.invoke(EOIRMaterialElementCollection._metadata, EOIRMaterialElementCollection._item_metadata, index, OutArg())

    _get__new_enum_metadata = { "offset" : _get__new_enum_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.IEnumVariantArg,) }
    @property
    def _new_enum(self) -> EnumeratorProxy:
        """Return an enumerator that can iterate through the collection."""
        return self._intf.get_property(EOIRMaterialElementCollection._metadata, EOIRMaterialElementCollection._get__new_enum_metadata)

    __getitem__ = item


    _property_names[count] = "count"
    _property_names[_new_enum] = "_new_enum"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRMaterialElementCollection."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRMaterialElementCollection)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRMaterialElementCollection, [EOIRMaterialElementCollection, ])

agcls.AgClassCatalog.add_catalog_entry((4806499434646540632, 18402761852085972923), EOIRMaterialElementCollection)
agcls.AgTypeNameMap["EOIRMaterialElementCollection"] = EOIRMaterialElementCollection

class EOIRStage(SupportsDeleteCallback):
    """A stage interface."""

    _num_methods = 3
    _vtable_offset = IUnknown._vtable_offset + IUnknown._num_methods
    _get_flight_type_method_offset = 1
    _set_flight_type_method_offset = 2
    _get_plume_method_offset = 3
    _metadata = {
        "iid_data" : (4635869698162918011, 17701227411883729289),
        "vtable_reference" : IUnknown._vtable_offset + IUnknown._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, EOIRStage)

    _get_flight_type_metadata = { "offset" : _get_flight_type_method_offset,
            "arg_types" : (POINTER(agcom.LONG),),
            "marshallers" : (agmarshall.EnumArg(EOIRFlightType),) }
    @property
    def flight_type(self) -> "EOIRFlightType":
        """Property used to access the flight type."""
        return self._intf.get_property(EOIRStage._metadata, EOIRStage._get_flight_type_metadata)

    _set_flight_type_metadata = { "offset" : _set_flight_type_method_offset,
            "arg_types" : (agcom.LONG,),
            "marshallers" : (agmarshall.EnumArg(EOIRFlightType),) }
    @flight_type.setter
    def flight_type(self, value:"EOIRFlightType") -> None:
        return self._intf.set_property(EOIRStage._metadata, EOIRStage._set_flight_type_metadata, value)

    _get_plume_metadata = { "offset" : _get_plume_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def plume(self) -> "EOIRStagePlume":
        """Property used to access the stage plume."""
        return self._intf.get_property(EOIRStage._metadata, EOIRStage._get_plume_metadata)

    _property_names[flight_type] = "flight_type"
    _property_names[plume] = "plume"

    def __init__(self, source_object=None):
        """Construct an object of type EOIRStage."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, EOIRStage)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIRStage, [EOIRStage, ])

agcls.AgClassCatalog.add_catalog_entry((5642882084118866188, 3047207669554081970), EOIRStage)
agcls.AgTypeNameMap["EOIRStage"] = EOIRStage

class EOIR(IEOIR, SupportsDeleteCallback):
    """EOIR interface class."""
    def __init__(self, source_object=None):
        """Construct an object of type EOIR."""
        SupportsDeleteCallback.__init__(self)
        IEOIR.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIR._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, EOIR, [IEOIR])

agcls.AgClassCatalog.add_catalog_entry((5151219970120816664, 15920936633143424918), EOIR)
agcls.AgTypeNameMap["EOIR"] = EOIR

class MissileEOIR(IEOIR, SupportsDeleteCallback):
    """EOIR interface."""

    _num_methods = 2
    _vtable_offset = IEOIR._vtable_offset + IEOIR._num_methods
    _get_shapes_method_offset = 1
    _get_stage_method_offset = 2
    _metadata = {
        "iid_data" : (5597640745483831161, 12375318982562975400),
        "vtable_reference" : IEOIR._vtable_offset + IEOIR._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, MissileEOIR)

    _get_shapes_metadata = { "offset" : _get_shapes_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def shapes(self) -> "EOIRShapeCollection":
        """Property used to access the shape collection."""
        return self._intf.get_property(MissileEOIR._metadata, MissileEOIR._get_shapes_metadata)

    _get_stage_metadata = { "offset" : _get_stage_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def stage(self) -> "EOIRStage":
        """Property used to access missile stage interface."""
        return self._intf.get_property(MissileEOIR._metadata, MissileEOIR._get_stage_metadata)

    _property_names[shapes] = "shapes"
    _property_names[stage] = "stage"

    def __init__(self, source_object=None):
        """Construct an object of type MissileEOIR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, MissileEOIR)
        IEOIR.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIR._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, MissileEOIR, [MissileEOIR, IEOIR])

agcls.AgClassCatalog.add_catalog_entry((4656109369665156150, 16484410294372866951), MissileEOIR)
agcls.AgTypeNameMap["MissileEOIR"] = MissileEOIR

class VehicleEOIR(IEOIR, SupportsDeleteCallback):
    """Property used to access the IEOIR interface."""

    _num_methods = 1
    _vtable_offset = IEOIR._vtable_offset + IEOIR._num_methods
    _get_shape_method_offset = 1
    _metadata = {
        "iid_data" : (5115038334845859441, 10944120610504814763),
        "vtable_reference" : IEOIR._vtable_offset + IEOIR._num_methods - 1,
    }
    _property_names = {}
    def _get_property(self, attrname):
        return get_interface_property(attrname, VehicleEOIR)

    _get_shape_metadata = { "offset" : _get_shape_method_offset,
            "arg_types" : (POINTER(agcom.PVOID),),
            "marshallers" : (agmarshall.InterfaceOutArg,) }
    @property
    def shape(self) -> "EOIRShape":
        """Property used to access the EOIR interface."""
        return self._intf.get_property(VehicleEOIR._metadata, VehicleEOIR._get_shape_metadata)

    _property_names[shape] = "shape"

    def __init__(self, source_object=None):
        """Construct an object of type VehicleEOIR."""
        SupportsDeleteCallback.__init__(self)
        initialize_from_source_object(self, source_object, VehicleEOIR)
        IEOIR.__init__(self, source_object)
    def _private_init(self, intf:InterfaceProxy):
        self.__dict__["_intf"] = intf
        IEOIR._private_init(self, intf)
    def __eq__(self, other):
        """Check equality of the underlying STK references."""
        return agcls.compare_com_objects(self, other)
    def __setattr__(self, attrname, value):
        """Attempt to assign an attribute."""
        set_class_attribute(self, attrname, value, VehicleEOIR, [VehicleEOIR, IEOIR])

agcls.AgClassCatalog.add_catalog_entry((4867870826696770201, 12027837161255117759), VehicleEOIR)
agcls.AgTypeNameMap["VehicleEOIR"] = VehicleEOIR