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