This commit is contained in:
backuppc
2026-02-12 09:58:01 +09:00
parent 2b3a9b3d1d
commit d6aed58516
17 changed files with 914 additions and 402 deletions

View File

@@ -67,15 +67,13 @@ namespace AGVNavigationCore.Models
/// <summary>로더</summary>
Loader,
/// <summary>클리너</summary>
Clearner,
Plating,
/// <summary>오프로더</summary>
UnLoader,
Cleaner,
/// <summary>버퍼</summary>
Buffer,
/// <summary>충전기1</summary>
Charger1,
/// <summary>충전기2</summary>
Charger2,
Charger,
/// <summary>
/// 끝점(더이상 이동불가)

View File

@@ -76,5 +76,17 @@ namespace AGVNavigationCore.Models
get => new Point((int)P2.X, (int)P2.Y);
set { P2.X = value.X; P2.Y = value.Y; }
}
public override string ToString()
{
if (ControlPoint == null)
{
return $"[LINE] ({P1.X:F0},{P1.Y:F0}) -> ({P2.X:F0},{P2.Y:F0})";
}
else
{
return $"[CURVE] ({P1.X:F0},{P1.Y:F0}) -> ({P2.X:F0},{P2.Y:F0})";
}
}
}
}

View File

@@ -15,9 +15,7 @@ namespace AGVNavigationCore.Models
{
[Category("라벨 설정")]
[Description("표시할 텍스트입니다.")]
public string Text { get; set; } = "";
public StationType StationType { get; set; }
@@ -28,10 +26,9 @@ namespace AGVNavigationCore.Models
{
if (StationType == StationType.Buffer) return true;
if (StationType == StationType.Loader) return true;
if (StationType == StationType.UnLoader) return true;
if (StationType == StationType.Clearner) return true;
if (StationType == StationType.Charger1) return true;
if (StationType == StationType.Charger2) return true;
if (StationType == StationType.Cleaner) return true;
if (StationType == StationType.Plating) return true;
if (StationType == StationType.Charger) return true;
return false;
}
}
@@ -56,11 +53,11 @@ namespace AGVNavigationCore.Models
[Category("주행 설정")]
[Description("제자리 회전(좌) 가능 여부입니다.")]
public bool CanTurnLeft { get; set; } = true;
public bool CanTurnLeft { get; set; } = false;
[Category("주행 설정")]
[Description("제자리 회전(우) 가능 여부입니다.")]
public bool CanTurnRight { get; set; } = true;
public bool CanTurnRight { get; set; } = false;
[Category("주행 설정")]
[Description("교차로 주행 가능 여부입니다.")]
@@ -73,7 +70,7 @@ namespace AGVNavigationCore.Models
}
set { _disablecross = value; }
}
private bool _disablecross = false;
private bool _disablecross = true;
[Category("주행 설정")]
[Description("노드 통과 시 제한 속도입니다.")]
@@ -105,6 +102,10 @@ namespace AGVNavigationCore.Models
set => _textFontSize = value > 0 ? value : 7.0f;
}
[Category("노드 텍스트")]
[Description("표시할 텍스트입니다.")]
public string Text { get; set; } = "";
public MapNode() : base()
{
Type = NodeType.Normal;
@@ -121,9 +122,9 @@ namespace AGVNavigationCore.Models
{
get
{
if (StationType == StationType.Charger1 || StationType == StationType.Charger2 || StationType == StationType.Buffer ||
StationType == StationType.Clearner || StationType == StationType.Loader ||
StationType == StationType.UnLoader) return true;
if (StationType == StationType.Charger || StationType == StationType.Buffer ||
StationType == StationType.Plating || StationType == StationType.Loader ||
StationType == StationType.Cleaner) return true;
return false;
}
}
@@ -141,6 +142,15 @@ namespace AGVNavigationCore.Models
{
if (ConnectedNodes.Remove(nodeId))
{
if (MagnetDirections != null && MagnetDirections.ContainsKey(nodeId))
{
MagnetDirections.Remove(nodeId);
}
// 🔥 ConnectedMapNodes에서도 제거 (화면 갱신용)
var target = ConnectedMapNodes.Find(n => n.Id == nodeId);
if (target != null) ConnectedMapNodes.Remove(target);
ModifiedDate = DateTime.Now;
}
}