using Aurora.Api; using System; using System.Collections.Generic; namespace VisionCommon { /// /// 패턴을 트래킹하기 위해 패턴 위치를 저장/관리하는 매니저 /// public class PatternTrackingManager { private static readonly Logger _Logger = new Logger(typeof(PatternTrackingManager).Name); private static Dictionary _PatternTrackings = new Dictionary(); /// /// 패턴 위치 추가 /// /// FOV 키 /// 패턴 위치 public static void AddCross(FovInfo fovInfo, Cross cross) { if (!_PatternTrackings.ContainsKey(fovInfo)) { _PatternTrackings.Add(fovInfo, new DataList()); } _PatternTrackings[fovInfo].Add(cross); } /// /// 모든 패턴 위치 리턴 /// /// FOV 키 /// 모든 패턴 위치 public static List GetCrosses(FovInfo fovInfo) { if (_PatternTrackings.ContainsKey(fovInfo)) { return _PatternTrackings[fovInfo].GetDataList().ConvertAll(o => (Cross)o); } return null; } /// /// 마지막 lastDataCnt개의 패턴 위치 리턴 /// /// FOV 키 /// 마지막 패턴 위치 개수 /// 마지막 lastDataCnt개의 패턴 위치 public static List GetCrosses(FovInfo fovInfo, int lastDataCnt) { if (_PatternTrackings.ContainsKey(fovInfo)) { return _PatternTrackings[fovInfo].GetDataList(lastDataCnt).ConvertAll(o => (Cross)o); } return null; } /// /// 모든 패턴 위치 초기화 /// /// FOV 키 public static void Clear(FovInfo fovInfo) { if (_PatternTrackings.ContainsKey(fovInfo)) { _PatternTrackings[fovInfo].Clear(); } } } }