2026-01-26 14:51:28 +09:00

92 lines
3.3 KiB
C#

/*
* 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 {
/// <summary>
/// MIL or Cognex 관련 뷰를 생성 및 관리한다.
/// </summary>
public static class IpViewManager {
private static Logger _Logger = new Logger("IpViewManager");
/// <summary>Force Ok 뷰</summary>
public static ForceOkView ForceOkView { get; set; }
/// <summary>
/// 카메라 뷰
/// </summary>
/// <param name="fovInfo">Fov 정보</param>
/// <param name="displayType">디스플레이 타입</param>
/// <returns></returns>
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 };
}
/// <summary>
/// 카메라 뷰 해제
/// </summary>
/// <param name="camView">카메라 뷰</param>
public static void DisposeCameraView(UserControl camView) {
var cameraView = camView as CameraView;
cameraView.Dispose();
}
/// <summary>
/// 그래픽 컬러 가져오기 (from Align)
/// </summary>
/// <param name="alignStatus">얼라인 상태</param>
/// <returns>컬러</returns>
public static eColor GetGraphicColor(AlignStatus alignStatus) {
return (eColor)DisplayDrawer.GetGraphicColor(alignStatus);
}
/// <summary>
/// 그래픽 컬러 가져오기 (from Inspection)
/// </summary>
/// <param name="inspStatus">인스펙션 상태</param>
/// <returns>컬러</returns>
public static eColor GetGraphicColor(InspStatus inspStatus) {
return (eColor)DisplayDrawer.GetGraphicColor(inspStatus);
}
/// <summary>
/// 패턴 리스트 뷰 모델 생성
/// </summary>
/// <param name="fovInfo">Fov 정보</param>
/// <param name="camView">카메라 뷰</param>
/// <returns>Fov 패턴리스트 뷰모델</returns>
public static PatternListViewModel CreatePatternListViewModel(FovInfo fovInfo, UserControl camView) {
return new PatternListViewModel(fovInfo, camView as CameraView);
}
/// <summary>
/// ForceOk 뷰 생성
/// </summary>
/// <param name="fovInfo">Fov 정보</param>
/// <param name="patternInfo">패턴 정보</param>
/// <param name="findImage">찾은 이미지</param>
/// <param name="forceOkWindow">ForceOk 윈도우</param>
public static void CreateForceOkView(FovInfo fovInfo, PatternInfo patternInfo, object findImage, ForceOkWindow forceOkWindow) {
ForceOkView = new ForceOkView(fovInfo, patternInfo, findImage);
ForceOkView.ParentWindow = forceOkWindow;
}
}
}