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