/*
* Copyright (c) 2025 LG Electronics Inc.
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
*/
using Aurora.Api;
using VisionCommon;
using System.Windows.Controls;
using VisionAligner;
using Aurora;
using VisionUI.Pattern;
using VisionInspector;
using System.Windows;
using System.Collections.ObjectModel;
using System;
using System.Reflection;
#if USE_COGNEX
using CogUI;
#else
using MilUI;
#endif
namespace VisionUI {
///
/// MIL or Cognex 관련 뷰를 생성 및 관리한다.
///
public static class IpViewManager {
private static Logger _Logger = new Logger("IpViewManager");
/// Force Ok 뷰
public static ForceOkView ForceOkView { get; set; }
///
/// 카메라 뷰
///
/// Fov 정보
/// 디스플레이 타입
///
public static CameraView CreateCameraView(FovInfo fovInfo, eDisplayType displayType) {
string viewName = "camView" + displayType.ToString() + fovInfo.GetKey().Replace("_", string.Empty);
return new CameraView(fovInfo, displayType) { Name = viewName };
}
///
/// 카메라 뷰 해제
///
/// 카메라 뷰
public static void DisposeCameraView(UserControl camView) {
var cameraView = camView as CameraView;
cameraView.Dispose();
}
///
/// 그래픽 컬러 가져오기 (from Align)
///
/// 얼라인 상태
/// 컬러
public static eColor GetGraphicColor(AlignStatus alignStatus) {
return (eColor)DisplayDrawer.GetGraphicColor(alignStatus);
}
///
/// 그래픽 컬러 가져오기 (from Inspection)
///
/// 인스펙션 상태
/// 컬러
public static eColor GetGraphicColor(InspStatus inspStatus) {
return (eColor)DisplayDrawer.GetGraphicColor(inspStatus);
}
///
/// 패턴 리스트 뷰 모델 생성
///
/// Fov 정보
/// 카메라 뷰
/// Fov 패턴리스트 뷰모델
public static PatternListViewModel CreatePatternListViewModel(FovInfo fovInfo, UserControl camView) {
return new PatternListViewModel(fovInfo, camView as CameraView);
}
///
/// ForceOk 뷰 생성
///
/// Fov 정보
/// 패턴 정보
/// 찾은 이미지
/// ForceOk 윈도우
public static void CreateForceOkView(FovInfo fovInfo, PatternInfo patternInfo, object findImage, ForceOkWindow forceOkWindow) {
ForceOkView = new ForceOkView(fovInfo, patternInfo, findImage);
ForceOkView.ParentWindow = forceOkWindow;
}
}
}