84 lines
2.9 KiB
C#
84 lines
2.9 KiB
C#
/*
|
|
* Copyright (c) 2025 LG Electronics Inc.
|
|
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
|
|
*/
|
|
using System;
|
|
using System.Collections.ObjectModel;
|
|
using System.Collections.Specialized;
|
|
using System.Linq;
|
|
|
|
namespace VisionCommon {
|
|
public class TrackingParam : ICloneable {
|
|
public bool Enabled { get; set; } = true;
|
|
public int Count { get; set; } = 20;
|
|
|
|
public object Clone() {
|
|
return new TrackingParam() {
|
|
Enabled = this.Enabled,
|
|
Count = this.Count
|
|
};
|
|
}
|
|
}
|
|
|
|
public class PatternRecipe : ICloneCopy<PatternRecipe> {
|
|
public TrackingParam TrackingParam { get; set; } = new TrackingParam();
|
|
public ObservableCollection<ProcPatternInfo> ProcPatternInfos { get; set; } = new ObservableCollection<ProcPatternInfo>();
|
|
|
|
public PatternRecipe() {
|
|
}
|
|
|
|
public PatternRecipe Clone() {
|
|
return ((ICloneable)this).Clone() as PatternRecipe;
|
|
}
|
|
|
|
object ICloneable.Clone() {
|
|
var cloneObj = new PatternRecipe();
|
|
CopyTo(cloneObj);
|
|
return cloneObj;
|
|
}
|
|
|
|
public void CopyTo(PatternRecipe target) {
|
|
target.TrackingParam = this.TrackingParam.Clone() as TrackingParam;
|
|
var clonedList = this.ProcPatternInfos.Select(x => x.Clone()).ToList();
|
|
target.ProcPatternInfos = new ObservableCollection<ProcPatternInfo>(clonedList);
|
|
}
|
|
}
|
|
|
|
public class ProcPatternInfo : ICloneCopy<ProcPatternInfo> {
|
|
public eProcPatternId ProcPatternId { get; set; } = eProcPatternId.ProcPattern1;
|
|
/// <summary> 얼라인 혹은 검사에 대한 string ID </summary>
|
|
public string ProcId { get; set; } = "Align1";
|
|
public string PatternName { get; set; } = "Fov1_Align1_Proc1";
|
|
public int PatternId { get; set; } = -1;
|
|
public bool IsFovPattern { get; set; } = true;
|
|
|
|
public ProcPatternInfo Clone() {
|
|
return ((ICloneable)this).Clone() as ProcPatternInfo;
|
|
}
|
|
|
|
object ICloneable.Clone() {
|
|
var cloneObj = new ProcPatternInfo();
|
|
CopyTo(cloneObj);
|
|
return cloneObj;
|
|
}
|
|
|
|
public void CopyTo(ProcPatternInfo target) {
|
|
target.ProcPatternId = this.ProcPatternId;
|
|
target.ProcId = this.ProcId;
|
|
target.PatternName = this.PatternName;
|
|
target.PatternId = this.PatternId;
|
|
target.IsFovPattern = this.IsFovPattern;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 하나의 FOV 내에서 동시에 찾을 패턴의 갯수 ID
|
|
/// EX) ProcPattern1 : 1개 / ProcPattern2 : 2개 / ... / ProcPattern10 : 10개
|
|
/// </summary>
|
|
public enum eProcPatternId {
|
|
None = -1,
|
|
ProcPattern1 = 0, ProcPattern2, ProcPattern3, ProcPattern4, ProcPattern5,
|
|
ProcPattern6, ProcPattern7, ProcPattern8, ProcPattern9, ProcPattern10, ProcPattern11, ProcPattern12, ProcPattern13,
|
|
Max
|
|
}
|
|
} |