mapRenderTokens.ts
3.75 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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/**
* 机器人物理尺寸(单位:mm)。
* 用于控制机器人图标在地图 world 坐标中的 1:1 渲染尺寸。
*/
export type RobotPhysicalSizeMm = {
/** 机器人图标宽度(mm) */
iconWidthMm: number
/** 机器人图标高度(mm) */
iconHeightMm: number
}
/**
* 地图渲染尺寸令牌(Render Tokens)。
* 约定:
* 1. 所有尺寸均使用地图 world 坐标单位(当前为 mm)。
* 2. 本文件仅定义“物理尺寸和比例”,不做大/中/小档位切换。
*/
export type MapRenderTokens = {
/** 尺寸单位标识。当前固定为毫米(mm) */
unit: 'mm'
/** 机器人类型与后端 robotType 枚举值映射 */
robotType: {
/** 潜伏式机器人类型值 */
latent: number
/** 叉车式机器人类型值 */
forklift: number
}
/** 按机器人类型定义实际图标尺寸(mm) */
robotByType: {
/** 未匹配到类型时的默认尺寸 */
default: RobotPhysicalSizeMm
/** 潜伏式机器人尺寸 */
latent: RobotPhysicalSizeMm
/** 叉车式机器人尺寸 */
forklift: RobotPhysicalSizeMm
}
/** 托盘标志(库位图形)的尺寸定义 */
trayMarker: {
/** 托盘原始矢量图基准宽度(mm) */
baseGraphicWidthMm: number
/** 托盘原始矢量图基准高度(mm) */
baseGraphicHeightMm: number
/** 托盘渲染实际宽度(mm) */
widthMm: number
/** 托盘渲染实际高度(mm) */
heightMm: number
}
/** 机器人高亮路径样式 */
highlightPath: {
/** 高亮路径线宽(mm) */
strokeWidthMm: number
}
/** 机器人选中态圆环样式(相对机器人尺寸的比例) */
robotSelection: {
/** 选中圆环半径比例(相对于机器人基准尺寸) */
radiusRatio: number
/** 选中圆环线宽比例(相对于机器人高度) */
strokeWidthRatio: number
/** 虚线段长度比例(相对于机器人基准尺寸) */
dashLengthRatio: number
/** 虚线段间隔比例(相对于机器人基准尺寸) */
dashGapRatio: number
}
/** 机器人编码文字样式(相对机器人尺寸的比例) */
robotLabel: {
/** 文字字号比例(相对于机器人高度) */
fontSizeRatio: number
}
}
/**
* 地图渲染全局令牌默认值。
* 修改本对象即可统一调整 Dashboard 机器人、托盘与高亮路径尺寸。
*/
export const mapRenderTokens = Object.freeze({
/** 当前地图尺寸单位:毫米 */
unit: 'mm',
/** 后端 robotType 与前端语义映射 */
robotType: {
latent: 1,
forklift: 2,
},
/** 机器人默认物理尺寸(mm) */
robotByType: {
/** 默认回退尺寸(未识别类型时使用) */
default: {
iconWidthMm: 2133,
iconHeightMm: 1707,
},
/** 潜伏式机器人尺寸(mm) */
latent: {
iconWidthMm: 600,
iconHeightMm: 500,
},
/** 叉车式机器人尺寸(mm) */
forklift: {
iconWidthMm: 2773,
iconHeightMm: 1707,
},
},
/** 托盘标志尺寸配置(长 * 宽) */
trayMarker: {
/** 原始图形基准宽度(mm) */
baseGraphicWidthMm: 300,
/** 原始图形基准高度(mm) */
baseGraphicHeightMm: 300,
/** 托盘实际渲染宽度(mm) */
widthMm: 290,
/** 托盘实际渲染高度(mm) */
heightMm: 290,
},
/** 高亮路径配置 */
highlightPath: {
/** 高亮路径线宽(mm) */
strokeWidthMm: 60,
},
/** 机器人选中圆环配置(比例) */
robotSelection: {
radiusRatio: 0.58,
strokeWidthRatio: 0.1,
dashLengthRatio: 0.24,
dashGapRatio: 0.12,
},
/** 机器人编码文字配置(比例) */
robotLabel: {
fontSizeRatio: 0.35,
},
} as const satisfies MapRenderTokens)