mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 22:16:30 +00:00
83ae6a0ae9
forbid non validators to read from queue create better visualization in detector control make colors for detection classes more distinguishable fix bug with removing detection (probably completely)
61 lines
1.3 KiB
C#
61 lines
1.3 KiB
C#
using System.Windows.Media;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Azaion.Common.DTO;
|
|
|
|
public class DetectionClass : ICloneable
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
public string Name { get; set; } = null!;
|
|
public string ShortName { get; set; } = null!;
|
|
|
|
public Color Color { get; set; }
|
|
|
|
[JsonIgnore]
|
|
public string UIName
|
|
{
|
|
get
|
|
{
|
|
var mode = PhotoMode switch
|
|
{
|
|
PhotoMode.Night => "(ніч)",
|
|
PhotoMode.Winter => "(зим)",
|
|
PhotoMode.Regular => "",
|
|
_ => ""
|
|
};
|
|
return ShortName + mode;
|
|
}
|
|
}
|
|
|
|
|
|
[JsonIgnore]
|
|
public PhotoMode PhotoMode { get; set; }
|
|
|
|
[JsonIgnore] //For UI
|
|
public int ClassNumber => Id + 1;
|
|
|
|
[JsonIgnore]
|
|
public int YoloId => Id == -1 ? Id : (int)PhotoMode + Id;
|
|
|
|
[JsonIgnore]
|
|
public SolidColorBrush ColorBrush => new(Color);
|
|
|
|
public static DetectionClass FromYoloId(int yoloId, List<DetectionClass> detectionClasses)
|
|
{
|
|
var cls = yoloId % 20;
|
|
var photoMode = (PhotoMode)(yoloId - cls);
|
|
var detClass = detectionClasses[cls];
|
|
detClass.PhotoMode = photoMode;
|
|
return detClass;
|
|
}
|
|
|
|
public object Clone() => MemberwiseClone();
|
|
}
|
|
|
|
public enum PhotoMode
|
|
{
|
|
Regular = 0,
|
|
Winter = 20,
|
|
Night = 40
|
|
} |