using Newtonsoft.Json; using System; namespace VisionCommon { public class CamPatternInfo : PatternInfo, ICloneable { [JsonIgnore] public CamPatternIndex PatternIndex { get; set; } public override string GetPatternDirectoryPath() { return PatternIndex.GetPatternDirectoryPath(); } public override string GetSubPatternDirectoryPath() { return PatternIndex.GetSubPatternDirectoryPath(); } public override object Clone() { return new CamPatternInfo() { PatternType = PatternType, PatternName = PatternName, IsActivated = IsActivated, Description = Description, IsQuickFind = IsQuickFind, LightInfo = LightInfo.Clone(), PatternIndex = PatternIndex.Clone() as CamPatternIndex, MilSystemId = MilSystemId, PreProcParam = PreProcParam.Clone(), FixtureSetting = FixtureSetting.Clone() as FixtureSetting, }; } public override PatternIndex GetPatternIndex() { return PatternIndex; } public override string GetFullId() { return ToString(); } public override string ToString() { return PatternIndex.ToString(); } public override string GetPrefix() { return PatternIndex.GetPrefix(); } public override string GetPatternIdPrefix() { return PatternIndex.GetPatternIdPrefix(); } public override int GetPatternId() { return PatternIndex.PatternId; } public override void SetPatternId(int patternId) { PatternIndex.PatternId = patternId; } public override int GetPatternSubId() { return PatternIndex.PatternSubId; } public override void SetPatternSubId(int patternSubId) { PatternIndex.PatternSubId = patternSubId; } public override bool IsMainPattern(string idPrefix) { return GetFullId().StartsWith(idPrefix) && PatternIndex.PatternSubId == PatternConstants.MAIN_PATTERN_INDEX; } public override bool IsSubPattern(string idPrefix) { return GetFullId().StartsWith(idPrefix) && PatternIndex.PatternSubId != PatternConstants.MAIN_PATTERN_INDEX; } public override bool Equals(object obj) { if (this.GetType() != obj.GetType()) { return false; } return PatternIndex.Equals(((CamPatternInfo)obj).PatternIndex); } public override int GetHashCode() { return PatternIndex.GetHashCode(); } } }