- Add real-time RFID duplicate validation in map editor with automatic rollback - Remove RFID auto-assignment to maintain data consistency between editor and simulator - Fix magnet direction calculation to use actual forward direction angles instead of arbitrary assignment - Add node names to simulator combo boxes for better identification - Improve UI layout by drawing connection lines before text for better visibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
67 lines
2.1 KiB
C#
67 lines
2.1 KiB
C#
using System;
|
|
|
|
namespace AGVNavigationCore.PathFinding
|
|
{
|
|
/// <summary>
|
|
/// 경로 탐색 옵션 설정
|
|
/// </summary>
|
|
public class PathfindingOptions
|
|
{
|
|
/// <summary>
|
|
/// 회전 가능 노드 회피 여부 (기본값: false - 회전 허용)
|
|
/// </summary>
|
|
public bool AvoidRotationNodes { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// 회전 회피 시 추가 비용 가중치 (회전 노드를 완전 차단하지 않고 높은 비용으로 설정)
|
|
/// </summary>
|
|
public float RotationAvoidanceCost { get; set; } = 1000.0f;
|
|
|
|
/// <summary>
|
|
/// 회전 비용 가중치 (기존 회전 비용)
|
|
/// </summary>
|
|
public float RotationCostWeight { get; set; } = 50.0f;
|
|
|
|
/// <summary>
|
|
/// 도킹 접근 거리
|
|
/// </summary>
|
|
public float DockingApproachDistance { get; set; } = 100.0f;
|
|
|
|
/// <summary>
|
|
/// 기본 옵션 생성
|
|
/// </summary>
|
|
public static PathfindingOptions Default => new PathfindingOptions();
|
|
|
|
/// <summary>
|
|
/// 회전 회피 옵션 생성
|
|
/// </summary>
|
|
public static PathfindingOptions AvoidRotation => new PathfindingOptions
|
|
{
|
|
AvoidRotationNodes = true
|
|
};
|
|
|
|
/// <summary>
|
|
/// 옵션 복사
|
|
/// </summary>
|
|
public PathfindingOptions Clone()
|
|
{
|
|
return new PathfindingOptions
|
|
{
|
|
AvoidRotationNodes = this.AvoidRotationNodes,
|
|
RotationAvoidanceCost = this.RotationAvoidanceCost,
|
|
RotationCostWeight = this.RotationCostWeight,
|
|
DockingApproachDistance = this.DockingApproachDistance
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 설정 정보 문자열
|
|
/// </summary>
|
|
public override string ToString()
|
|
{
|
|
return $"회전회피: {(AvoidRotationNodes ? "ON" : "OFF")}, " +
|
|
$"회전비용: {RotationCostWeight}, " +
|
|
$"회피비용: {RotationAvoidanceCost}";
|
|
}
|
|
}
|
|
} |