/* * 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; } } }