@@ -31,6 +31,21 @@ message ReferenceLine
3131 //
3232 optional Identifier id = 1 ;
3333
34+ optional Type type = 3 ;
35+
36+ enum Type
37+ {
38+ // ReferenceLine is a polyline, where the coordinates of points are
39+ // calculated by projection onto the nearest point on the line.
40+ //
41+ POLYLINE = 0 ;
42+
43+ // ReferenceLine is a polyline, where the coordinates of points are
44+ // calculated using the t axis definition.
45+ //
46+ POLYLINE_WITH_T_AXIS = 1 ;
47+ }
48+
3449 // Points comprising the polyline.
3550 //
3651 // At least 2 points must be given.
@@ -88,13 +103,22 @@ message ReferenceLine
88103 //
89104 // To describe points that are not directly on the polyline, a T coordinate
90105 // is added. T is the signed 2D distance between the point to describe (P)
91- // and a projected point (P_proj) on the polyline. The T axis (projecting
92- // axis) is the line going through P and the intersection point (I). I is
93- // defined as the intersection of both T axes of two consecutive
94- // ReferenceLinePoints (see example and image below for illustration). If
95- // both T axes of the neighboring ReferenceLinePoint are parallel (so no
96- // intersection point exists), the resulting T axis direction is equal to
97- // the T axis of these ReferenceLinePoints.
106+ // and a projected point (P_proj) on the polyline. There are two ways of
107+ // defining this point, depending on the ReferenceLine type.
108+ //
109+ // ## Nearest point (Type POLYLINE)
110+ //
111+ // The projection point is the nearest point on the polyline (this point might
112+ // either be on a line segment or at an edge between two line segments).
113+ //
114+ // ## T axis definition (Type POLYLINE_WITH_T_AXIS)
115+ //
116+ // The T axis (projecting axis) is the line going through P and the
117+ // intersection point (I). I is defined as the intersection of both
118+ // T axes of two consecutive ReferenceLinePoints (see example and
119+ // image below for illustration). If both T axes of the neighboring
120+ // ReferenceLinePoint are parallel (so no intersection point exists), the
121+ // resulting T axis direction is equal to the T axis of these ReferenceLinePoints.
98122 // The T coordinate of the point in question is then defined as
99123 // <code>hypot(P.X-P_proj.X,P.Y-P_proj.Y)</code>. The projected point P_proj
100124 // might either be on a line segment or at an edge between two line segments.
@@ -228,6 +252,8 @@ message ReferenceLine
228252 //
229253 // Also see image "S, T coordinates" at #poly_line for reference.
230254 //
255+ // \note This field is only set if the type of the reference line is POLYLINE_WITH_T_AXIS.
256+ //
231257 optional double t_axis_yaw = 3 ;
232258 }
233259}
0 commit comments