Beispiel #1
0
		public RegistrationDefinition getWarpedRegistration()
		{
			IPointTransformer pointTransformer = this.getSourceToDestLatLonTransformer();
			List<PositionAssociation> associationList = this.registration.GetAssociationList();
			List<IImageTransformer.QualitySortPair> list = new List<IImageTransformer.QualitySortPair>();
			for (int i = 0; i < associationList.Count; i++)
			{
				PositionAssociation positionAssociation = associationList[i];
				bool invertError;
				LatLon p = pointTransformer.getTransformedPoint(positionAssociation.sourcePosition.pinPosition.latlon, out invertError);
				PositionAssociation positionAssociation2 = new PositionAssociation(positionAssociation.associationName, positionAssociation.imagePosition.pinPosition, new LatLonZoom(p.lat, p.lon, positionAssociation.sourcePosition.pinPosition.zoom), positionAssociation.globalPosition.pinPosition, new DirtyEvent());
				positionAssociation2.sourcePosition.invertError = invertError;
				positionAssociation2.sourcePosition.SetErrorPosition(DisplayablePosition.ErrorMarker.AsContributor, positionAssociation.globalPosition.pinPosition.latlon);
				positionAssociation2.pinId = positionAssociation.pinId;
				double num = LatLon.DistanceInMeters(p, positionAssociation.globalPosition.pinPosition.latlon);
				positionAssociation2.qualityMessage = LatLon.PrettyDistance(num);
				list.Add(new IImageTransformer.QualitySortPair(positionAssociation2, num));
			}
			list.Sort();
			RegistrationDefinition registrationDefinition = new RegistrationDefinition(new DirtyEvent());
			registrationDefinition.warpStyle = this.registration.warpStyle;
			foreach (IImageTransformer.QualitySortPair current in list)
			{
				registrationDefinition.AddAssociation(current.assoc);
			}
			registrationDefinition.isLocked = true;
			return registrationDefinition;
		}
		public PolynomialImageTransformer(RegistrationDefinition registration, InterpolationMode interpolationMode, int polynomialDegree) : base(registration, interpolationMode)
		{
			List<PositionAssociation> associationList = registration.GetAssociationList();
			TransformationStyle arg_15_0 = registration.warpStyle;
			int num = associationList.Count;
			if (num == 2)
			{
				num++;
			}
			JamaMatrix jamaMatrix = new JamaMatrix(num, 2);
			JamaMatrix jamaMatrix2 = new JamaMatrix(num, 2);
			for (int i = 0; i < num; i++)
			{
				LatLon latLon = (i == associationList.Count) ? PolynomialImageTransformer.getThirdPosition(associationList[0].sourcePosition.pinPosition.latlon, associationList[1].sourcePosition.pinPosition.latlon, true) : associationList[i].sourcePosition.pinPosition.latlon;
				jamaMatrix.SetElement(i, 0, latLon.lon);
				jamaMatrix.SetElement(i, 1, latLon.lat);
				LatLon latLon2 = (i == associationList.Count) ? PolynomialImageTransformer.getThirdPosition(MercatorCoordinateSystem.LatLonToMercator(associationList[0].globalPosition.pinPosition.latlon), MercatorCoordinateSystem.LatLonToMercator(associationList[1].globalPosition.pinPosition.latlon), false) : MercatorCoordinateSystem.LatLonToMercator(associationList[i].globalPosition.pinPosition.latlon);
				jamaMatrix2.SetElement(i, 0, latLon2.lon);
				jamaMatrix2.SetElement(i, 1, latLon2.lat);
			}
			this.destMercatorToSourceTransformer = PolynomialImageTransformer.getPolyPointTransformer(jamaMatrix, jamaMatrix2, polynomialDegree);
			this.sourceToDestMercatorTransformer_approximate = PolynomialImageTransformer.getApproximateInverterPolyPointTransformer(jamaMatrix, jamaMatrix2, polynomialDegree);
			DownhillInverterPointTransformer flakyPointTransformer = new DownhillInverterPointTransformer(this.destMercatorToSourceTransformer, this.sourceToDestMercatorTransformer_approximate);
			IPointTransformer sourceToMercator = new RobustPointTransformer(flakyPointTransformer, this.sourceToDestMercatorTransformer_approximate);
			this.destLatLonToSourceTransformer = new LatLonToSourceTransform(this.destMercatorToSourceTransformer);
			this.sourceToDestLatLonTransformer = new SourceToLatLonTransform(sourceToMercator);
		}
        public PolynomialImageTransformer(RegistrationDefinition registration, InterpolationMode interpolationMode, int polynomialDegree) : base(registration, interpolationMode)
        {
            List <PositionAssociation> associationList = registration.GetAssociationList();
            TransformationStyle        arg_15_0        = registration.warpStyle;
            int num = associationList.Count;

            if (num == 2)
            {
                num++;
            }
            JamaMatrix jamaMatrix  = new JamaMatrix(num, 2);
            JamaMatrix jamaMatrix2 = new JamaMatrix(num, 2);

            for (int i = 0; i < num; i++)
            {
                LatLon latLon = (i == associationList.Count) ? PolynomialImageTransformer.getThirdPosition(associationList[0].sourcePosition.pinPosition.latlon, associationList[1].sourcePosition.pinPosition.latlon, true) : associationList[i].sourcePosition.pinPosition.latlon;
                jamaMatrix.SetElement(i, 0, latLon.lon);
                jamaMatrix.SetElement(i, 1, latLon.lat);
                LatLon latLon2 = (i == associationList.Count) ? PolynomialImageTransformer.getThirdPosition(MercatorCoordinateSystem.LatLonToMercator(associationList[0].globalPosition.pinPosition.latlon), MercatorCoordinateSystem.LatLonToMercator(associationList[1].globalPosition.pinPosition.latlon), false) : MercatorCoordinateSystem.LatLonToMercator(associationList[i].globalPosition.pinPosition.latlon);
                jamaMatrix2.SetElement(i, 0, latLon2.lon);
                jamaMatrix2.SetElement(i, 1, latLon2.lat);
            }
            this.destMercatorToSourceTransformer             = PolynomialImageTransformer.getPolyPointTransformer(jamaMatrix, jamaMatrix2, polynomialDegree);
            this.sourceToDestMercatorTransformer_approximate = PolynomialImageTransformer.getApproximateInverterPolyPointTransformer(jamaMatrix, jamaMatrix2, polynomialDegree);
            DownhillInverterPointTransformer flakyPointTransformer = new DownhillInverterPointTransformer(this.destMercatorToSourceTransformer, this.sourceToDestMercatorTransformer_approximate);
            IPointTransformer sourceToMercator = new RobustPointTransformer(flakyPointTransformer, this.sourceToDestMercatorTransformer_approximate);

            this.destLatLonToSourceTransformer = new LatLonToSourceTransform(this.destMercatorToSourceTransformer);
            this.sourceToDestLatLonTransformer = new SourceToLatLonTransform(sourceToMercator);
        }
Beispiel #4
0
        public RegistrationDefinition getWarpedRegistration()
        {
            IPointTransformer          pointTransformer   = this.getSourceToDestLatLonTransformer();
            List <PositionAssociation> associationList    = this.registration.GetAssociationList();
            List <IImageTransformer.QualitySortPair> list = new List <IImageTransformer.QualitySortPair>();

            for (int i = 0; i < associationList.Count; i++)
            {
                PositionAssociation positionAssociation = associationList[i];
                bool   invertError;
                LatLon p = pointTransformer.getTransformedPoint(positionAssociation.sourcePosition.pinPosition.latlon, out invertError);
                PositionAssociation positionAssociation2 = new PositionAssociation(positionAssociation.associationName, positionAssociation.imagePosition.pinPosition, new LatLonZoom(p.lat, p.lon, positionAssociation.sourcePosition.pinPosition.zoom), positionAssociation.globalPosition.pinPosition, new DirtyEvent());
                positionAssociation2.sourcePosition.invertError = invertError;
                positionAssociation2.sourcePosition.SetErrorPosition(DisplayablePosition.ErrorMarker.AsContributor, positionAssociation.globalPosition.pinPosition.latlon);
                positionAssociation2.pinId = positionAssociation.pinId;
                double num = LatLon.DistanceInMeters(p, positionAssociation.globalPosition.pinPosition.latlon);
                positionAssociation2.qualityMessage = LatLon.PrettyDistance(num);
                list.Add(new IImageTransformer.QualitySortPair(positionAssociation2, num));
            }
            list.Sort();
            RegistrationDefinition registrationDefinition = new RegistrationDefinition(new DirtyEvent());

            registrationDefinition.warpStyle = this.registration.warpStyle;
            foreach (IImageTransformer.QualitySortPair current in list)
            {
                registrationDefinition.AddAssociation(current.assoc);
            }
            registrationDefinition.isLocked = true;
            return(registrationDefinition);
        }
 public RegistrationDefinition CreateOrUpdateRegistrationDefinition(
     string scope,
     RegistrationDefinition registrationDefinition,
     Guid registratonDefinitionId = default(Guid))
 {
     return(this.ManagedServicesClient.RegistrationDefinitions.CreateOrUpdate(
                scope: scope,
                registratonDefinitionId: registratonDefinitionId.ToString(),
                requestBody: registrationDefinition,
                apiVersion: API_VERSION));
 }
Beispiel #6
0
        public PSRegistrationDefinition(RegistrationDefinition registrationDefinition)
        {
            if (registrationDefinition != null)
            {
                this.Id = registrationDefinition.Id;

                this.Name       = registrationDefinition.Name;
                this.Type       = registrationDefinition.Type;
                this.Plan       = new PSPlan(registrationDefinition.Plan);
                this.Properties = new PSRegistrationDefinitionProperties(registrationDefinition.Properties);
            }
        }
		public HomographicImageTransformer(RegistrationDefinition registration, InterpolationMode interpolationMode) : base(registration, interpolationMode)
		{
			List<PositionAssociation> associationList = registration.GetAssociationList();
			TransformationStyle arg_15_0 = registration.warpStyle;
			int count = associationList.Count;
			JamaMatrix jamaMatrix = new JamaMatrix(count, 2);
			JamaMatrix jamaMatrix2 = new JamaMatrix(count, 2);
			for (int i = 0; i < count; i++)
			{
				LatLon latlon = associationList[i].sourcePosition.pinPosition.latlon;
				jamaMatrix.SetElement(i, 0, latlon.lon);
				jamaMatrix.SetElement(i, 1, latlon.lat);
				LatLon latLon = MercatorCoordinateSystem.LatLonToMercator(associationList[i].globalPosition.pinPosition.latlon);
				jamaMatrix2.SetElement(i, 0, latLon.lon);
				jamaMatrix2.SetElement(i, 1, latLon.lat);
			}
		}
Beispiel #8
0
		public HomographicImageTransformer(RegistrationDefinition registration, InterpolationMode interpolationMode) : base(registration, interpolationMode)
		{
			List<PositionAssociation> associationList = registration.GetAssociationList();
			TransformationStyle arg_15_0 = registration.warpStyle;
			int count = associationList.Count;
			JamaMatrix jamaMatrix = new JamaMatrix(count, 2);
			JamaMatrix jamaMatrix2 = new JamaMatrix(count, 2);
			for (int i = 0; i < count; i++)
			{
				LatLon latlon = associationList[i].sourcePosition.pinPosition.latlon;
				jamaMatrix.SetElement(i, 0, latlon.lon);
				jamaMatrix.SetElement(i, 1, latlon.lat);
				LatLon latLon = MercatorCoordinateSystem.LatLonToMercator(associationList[i].globalPosition.pinPosition.latlon);
				jamaMatrix2.SetElement(i, 0, latLon.lon);
				jamaMatrix2.SetElement(i, 1, latLon.lat);
			}
		}
Beispiel #9
0
		public IImageTransformer(RegistrationDefinition registration, InterpolationMode interpolationMode)
		{
			this.registration = new RegistrationDefinition(registration, new DirtyEvent());
			this.interpolationMode = interpolationMode;
		}
Beispiel #10
0
 public SpecificationBuilder(RegistrationDefinition registrationDefinition)
 {
     RegistrationDefinition = registrationDefinition;
 }
Beispiel #11
0
        public override void ExecuteCmdlet()
        {
            var scope             = this.GetDefaultScope();
            var definitionId      = Guid.NewGuid().ToString();
            var managedByTenantId = string.Empty;

            if (this.IsParameterBound(x => x.Name))
            {
                if (!this.Name.IsGuid())
                {
                    throw new ApplicationException("Name must be a valid GUID.");
                }

                definitionId = (new Guid(this.Name)).ToString();
            }

            if (!this.ManagedByTenantId.IsGuid())
            {
                throw new ApplicationException("ManagedByTenantId must be a valid GUID.");
            }
            else
            {
                managedByTenantId = (new Guid(this.ManagedByTenantId)).ToString();
            }

            if (this.IsParameterBound(x => x.Authorization) &&
                (this.IsParameterBound(x => x.PrincipalId) || this.IsParameterBound(x => x.RoleDefinitionId)))
            {
                throw new ApplicationException("Authorization parameter is supported only when RoleDefinitionId and PrincipalId are null.");
            }

            if (!this.IsParameterBound(x => x.Authorization) &&
                (!this.IsParameterBound(x => x.PrincipalId) || !this.IsParameterBound(x => x.RoleDefinitionId)))
            {
                throw new ApplicationException("Please provide RoleDefinitionId and PrincipalId parameters together or Authorization parameter.");
            }

            if (this.Authorization == null &&
                this.IsParameterBound(x => x.PrincipalId) &&
                this.IsParameterBound(x => x.RoleDefinitionId))
            {
                this.Authorization = new Authorization[]
                {
                    new Authorization
                    {
                        RoleDefinitionId = this.RoleDefinitionId,
                        PrincipalId      = this.PrincipalId
                    }
                };
            }

            Plan plan = null;

            if (this.IsParameterBound(x => x.PlanName) &&
                this.IsParameterBound(x => x.PlanPublisher) &&
                this.IsParameterBound(x => x.PlanProduct) &&
                this.IsParameterBound(x => x.PlanVersion))
            {
                plan = new Plan
                {
                    Name      = this.PlanName,
                    Product   = this.PlanProduct,
                    Publisher = this.PlanPublisher,
                    Version   = this.PlanVersion
                };
            }

            ConfirmAction(MyInvocation.InvocationName,
                          $"{scope}/providers/Microsoft.ManagedServices/registrationDefinitions/{definitionId}",
                          () =>
            {
                var registrationDefinition = new RegistrationDefinition
                {
                    Plan       = plan,
                    Properties = new RegistrationDefinitionProperties
                    {
                        Description = this.Description,
                        RegistrationDefinitionName = this.DisplayName,
                        ManagedByTenantId          = managedByTenantId,
                        Authorizations             = this.Authorization
                    }
                };

                var result = this.PSManagedServicesClient.CreateOrUpdateRegistrationDefinition(
                    scope: scope,
                    registrationDefinition: registrationDefinition,
                    registratonDefinitionId: definitionId);

                WriteObject(new PSRegistrationDefinition(result), true);
            });
        }
Beispiel #12
0
 public ComponentRegistryDefinition()
 {
     PluginFolder            = string.Empty;
     RegistrationsDefinition = new RegistrationDefinition[0];
 }
Beispiel #13
0
 public ComponentSetRegistrationDefinition()
 {
     RegistrationsDefinition = new RegistrationDefinition[0];
 }
 public RegistrationControlRecord(RegistrationDefinition model, ReadyToLockIfc readyToLock)
 {
     this.model       = model;
     this.readyToLock = readyToLock;
 }