using Azaion.Common.DTO; using MediatR; namespace Azaion.Common.Services; public enum MatchTypeEnum { None = -1, MatchTypeSingle = 0, MatchTypeStitched = 1, MatchTypeOpticalFlow = 2, MatchTypeInterpolated = 3, MatchTypeFailure = 4 } public class GPSMatcherResultEvent : INotification { public int Index { get; set; } public string Image { get; set; } = null!; public GeoPoint GeoPoint { get; set; } = null!; public int KeyPoints { get; set; } public MatchTypeEnum MatchType { get; set; } } public class GPSMatcherResultProcessedEvent : GPSMatcherResultEvent { public GeoPoint ProcessedGeoPoint { get; set; } = null!; public GPSMatcherResultProcessedEvent() { } public GPSMatcherResultProcessedEvent(GPSMatcherResultEvent gpsMatcherResultEvent, GeoPoint processedGeoPoint) { Index = gpsMatcherResultEvent.Index; Image = gpsMatcherResultEvent.Image; GeoPoint = gpsMatcherResultEvent.GeoPoint; KeyPoints = gpsMatcherResultEvent.KeyPoints; MatchType = gpsMatcherResultEvent.MatchType; ProcessedGeoPoint = processedGeoPoint; } } public class GPSMatcherJobAcceptedEvent : INotification {} public class GPSMatcherFinishedEvent : INotification {}