using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace VisionCommon { public class CamPatternIndex : PatternIndex, ICloneable { public eCamId CamId { get; set; } = eCamId.CAM1; public CamPatternIndex(eCamId camId, int patternId, int patternSubId = 0) { CamId = camId; PatternId = patternId; PatternSubId = patternSubId; } public override string GetFullId() { return ToString(); } public override string ToString() { return $"{(int)CamId}_{PatternId}_{PatternSubId}"; } public string GetPrefix() { return GetPrefix(CamId); } public static string GetPrefix(eCamId camId) { return $"{(int)camId}_"; } public string GetPatternIdPrefix() { return GetPatternIdPrefix(CamId, PatternId); } public static string GetPatternIdPrefix(eCamId camId, int patternId) { return $"{(int)camId}_{patternId}_"; } public override string GetSubPatternDirectoryPath() { return Path.Combine( ((int)CamId).ToString(), PatternId.ToString(), PatternSubId.ToString()); } public string GetPatternDirectoryPath() { return Path.Combine( ((int)CamId).ToString(), PatternId.ToString()); } public override object Clone() { return new CamPatternIndex(CamId, PatternId, PatternSubId); } public override bool Equals(object obj) { if (this.GetType() != obj.GetType()) { return false; } return Equals(obj as CamPatternIndex); } public bool Equals(CamPatternIndex patternIndex) { if (patternIndex is null) { return false; } if (Object.ReferenceEquals(this, patternIndex)) { return true; } return this.ToString() == patternIndex.ToString(); } public override int GetHashCode() { return CamId.GetHashCode() ^ PatternId.GetHashCode() ^ PatternSubId.GetHashCode(); } } }