/* * Copyright (c) 2025 LG Electronics Inc. * SPDX-License-Identifier: LicenseRef-LGE-Proprietary */ using System; namespace VisionCommon { public class LayoutRecipe : ICloneCopy { public CoordSystem MotorDirection { get; set; } = new CoordSystem(); public CoordSystem AlignMotorDirection { get; set; } = new CoordSystem(); public bool IsAlignMotor { get; set; } = false; public eMoveObject MoveObjectTypeX { get; set; } = new eMoveObject(); public eMoveObject MoveObjectTypeY { get; set; } = new eMoveObject(); public eMoveObject AlignMoveObjectTypeX { get; set; } = new eMoveObject(); public eMoveObject AlignMoveObjectTypeY { get; set; } = new eMoveObject(); public LayoutRecipe Clone() { return ((ICloneable)this).Clone() as LayoutRecipe; } object ICloneable.Clone() { var cloneObj = new LayoutRecipe(); CopyTo(cloneObj); return cloneObj; } public void CopyTo(LayoutRecipe target) { target.MotorDirection = this.MotorDirection.Clone() as CoordSystem; target.AlignMotorDirection = this.AlignMotorDirection.Clone() as CoordSystem; target.IsAlignMotor = this.IsAlignMotor; target.MoveObjectTypeX = this.MoveObjectTypeX; target.MoveObjectTypeY = this.MoveObjectTypeY; target.AlignMoveObjectTypeX = this.AlignMoveObjectTypeX; target.AlignMoveObjectTypeY = this.AlignMoveObjectTypeY; } } public enum eMoveObject { StaticMove, CamMove } }