/* * Copyright (c) 2025 LG Electronics Inc. * SPDX-License-Identifier: LicenseRef-LGE-Proprietary */ using Aurora.View; using Newtonsoft.Json; using System; namespace VisionCommon { public enum eStaticCenterType { Center, LL } /// /// 자재 좌표계 구성을 위한 레시피 /// public class CalRecipe : ICloneCopy { /// /// 기준 좌표계 대비 자재 좌표계의 방향을 설정 /// public CoordSystem CoordSystem { get; set; } = new CoordSystem(); /// /// FOV 간의 X, Y축 방향으로의 거리 /// public StaticPoint FovDistance { get; set; } = new StaticPoint(); /// /// 얼라인 보정량 계산과 보정량 적용을 위한 회전 중심 /// public StaticPoint ThetaOrigin { get; set; } = new StaticPoint(); // [mm] public eStaticCenterType StaticCenterType { get; set; } = eStaticCenterType.Center; /// /// 깊은 복사 /// /// public CalRecipe Clone() { return ((ICloneable)this).Clone() as CalRecipe; } /// /// 데이터 복사 (this -> target) /// /// public void CopyTo(CalRecipe target) { target.CoordSystem = this.CoordSystem.Clone() as CoordSystem; target.ThetaOrigin = this.ThetaOrigin.Clone() as StaticPoint; target.FovDistance = this.FovDistance.Clone() as StaticPoint; target.StaticCenterType = this.StaticCenterType; } object ICloneable.Clone() { var cloneObj = new CalRecipe(); CopyTo(cloneObj); return cloneObj; } } }