61 lines
1.6 KiB
C#
61 lines
1.6 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace AGVNavigationCore.Models
|
|
{
|
|
/// <summary>
|
|
/// 맵 상의 모든 객체의 최상위 기본 클래스
|
|
/// 위치, 선택 상태, 기본 식별자 등을 관리
|
|
/// </summary>
|
|
public abstract class NodeBase
|
|
{
|
|
[Category("기본 정보")]
|
|
[Description("객체의 고유 ID입니다.")]
|
|
[ReadOnly(true)]
|
|
public string Id { get; set; } = Guid.NewGuid().ToString();
|
|
|
|
[Category("기본 정보")]
|
|
public NodeType Type { protected set; get; } = NodeType.Normal;
|
|
|
|
[Category("기본 정보")]
|
|
[Description("객체의 좌표(X, Y)입니다.")]
|
|
public virtual Point Position { get; set; } = Point.Empty;
|
|
|
|
[Category("기본 정보")]
|
|
[Description("객체 생성 일자입니다.")]
|
|
[JsonIgnore]
|
|
[ReadOnly(true), Browsable(false)]
|
|
public DateTime CreatedDate { get; set; } = DateTime.Now;
|
|
|
|
[Category("기본 정보")]
|
|
[Description("객체 수정 일자입니다.")]
|
|
[JsonIgnore]
|
|
[ReadOnly(true), Browsable(false)]
|
|
public DateTime ModifiedDate { get; set; } = DateTime.Now;
|
|
|
|
[Browsable(false)]
|
|
[JsonIgnore]
|
|
public bool IsSelected { get; set; } = false;
|
|
|
|
|
|
[Browsable(false)]
|
|
[JsonIgnore]
|
|
public bool IsHovered { get; set; } = false;
|
|
|
|
|
|
|
|
public NodeBase()
|
|
{
|
|
}
|
|
|
|
public NodeBase(string id, Point position)
|
|
{
|
|
Id = id;
|
|
Position = position;
|
|
}
|
|
}
|
|
}
|