2026-06-05 13:44:39 +09:00

85 lines
2.3 KiB
C#

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();
}
}
}