using Newtonsoft.Json; using System; using System.Drawing; namespace VisionCommon { public enum ePatternType { None, ImageModelFinder, ShapeModelFinder, PatternMatching, LineFinder, MultiLineFinder, EdgeFinder, Caliper, Blob, BarCode, Brightness, LineIntersection = 20, LineWidth, MachinePattern_A = 30, MachinePattern_B, MachinePattern_C } public abstract class PatternInfo : ICloneable { public ePatternType PatternType { get; set; } = ePatternType.None; public string PatternName { get; set; } = string.Empty; public bool IsActivated { get; set; } = true; public string Description { get; set; } = string.Empty; public bool IsQuickFind { get; set; } = false; public LightInfo LightInfo { get; set; } = new LightInfo(); [JsonIgnore] public int MilSystemId { get; set; } public PreProcessingParam PreProcParam { get; set; } = new PreProcessingParam(); public FixtureSetting FixtureSetting { get; set; } = new FixtureSetting(); [JsonIgnore] public Bitmap Thumbnail { get; set; } = ThumbnailUtil.GetDefaultImage(); public abstract PatternIndex GetPatternIndex(); public abstract string GetFullId(); public abstract string GetPrefix(); public abstract string GetPatternIdPrefix(); public abstract int GetPatternId(); public abstract void SetPatternId(int patternId); public abstract int GetPatternSubId(); public abstract void SetPatternSubId(int patternSubId); public abstract bool IsMainPattern(string idPrefix); public abstract bool IsSubPattern(string idPrefix); public abstract string GetPatternDirectoryPath(); public abstract string GetSubPatternDirectoryPath(); public abstract object Clone(); public bool IsRegistered() { return PatternType != ePatternType.None; } } }