MapEdgeDto.cs
2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
using System;
using Rcs.Domain.Entities;
namespace Rcs.Application.DTOs
{
public class MapEdgeDto
{
public string? EdgeId { get; set; }
/// <summary>
/// 地图ID(外键)
/// </summary>
public string? MapId { get; set; }
public string EdgeCode { get; set; }
public string FromNode { get; set; }
public string ToNode { get; set; }
public string EdgeName { get; set; }
public double? Length { get; set; }
public double? Cost { get; set; } = 1d;
public DateTime? CreatedAt { get; set; }
public bool Active { get; set; }
/// <summary>
/// 是否为曲线
/// false = 直线
/// true = NURBS 曲线
/// </summary>
public bool IsCurve { get; set; }
/// <summary>
/// 半径
/// </summary>
public double? Radius { get; set; }
/// <summary>
/// 圆心X
/// </summary>
public double? CenterX { get; set; }
/// <summary>
/// 圆心Y
/// </summary>
public double? CenterY { get; set; }
// ----------------------
// NURBS 曲线参数(仅当 IsCurve = true 时有效)
// ----------------------
/// <summary>
/// 曲线阶数(degree)
/// 常用值:2(二次),3(三次)
/// </summary>
public int? Degree { get; set; } = 2;
/// <summary>
/// 控制点列表,存储为 JSON
/// 例如:[{"X":0,"Y":0},{"X":1,"Y":2},{"X":3,"Y":4}]
/// </summary>
public List<Point>? ControlPoints { get; set; }
/// <summary>
/// 控制点权重,存储为 JSON
/// 例如:[1.0, 1.0, 1.0]
/// </summary>
public List<double>? Weights { get; set; }
/// <summary>
/// 节点向量(Knot Vector),存储为 JSON
/// 长度 = 控制点数量 + Degree + 1
/// 例如:[0,0,0,1,1,1]
/// </summary>
public List<double>? Knots { get; set; }
/// <summary>
/// 是否倒车行驶
/// </summary>
public bool Regress { get; set; }
/// <summary>
/// 最大坐标偏移值 (单位:米)
/// </summary>
public double? MaxCoordinateOffset { get; set; }
/// <summary>
/// 最大角度偏差值 (单位:度)
/// </summary>
public double? MaxAngleDeviation { get; set; }
/// <summary>
/// 最高速度 (单位:米/秒)
/// </summary>
public double? MaxSpeed { get; set; }
}
public class PointDto
{
public double X { get; set; }
public double Y { get; set; }
}
}