|
maliput
|
Describes the complete lane marking at a lane boundary.
A LaneMarking describes all properties of the road marking at a lane's boundary. The marking can vary along the lane's s-coordinate, so this structure represents the marking for a specific s-range.
Simple markings: For single-line markings (e.g., a solid white edge line), the type, color, width, and weight fields are sufficient. The lines vector can be left empty.
Complex markings: For compound markings (e.g., double lines with different patterns like kSolidBroken), the lines vector provides detailed information about each component line. When lines is non-empty, the individual line definitions take precedence for geometry and per-line colors. The top-level type, color, and width fields remain useful as summary/fallback values.
#include <include/maliput/api/lane_marking.h>
Public Member Functions | |
| bool | operator== (const LaneMarking &other) const |
| Compares two LaneMarking instances for equality. More... | |
| bool | operator!= (const LaneMarking &other) const |
| Compares two LaneMarking instances for inequality. More... | |
Public Attributes | |
| LaneMarkingType | type {LaneMarkingType::kUnknown} |
| The type/pattern of the marking. More... | |
| LaneMarkingWeight | weight {LaneMarkingWeight::kUnknown} |
| The visual weight of the marking. More... | |
| LaneMarkingColor | color {LaneMarkingColor::kUnknown} |
| The primary color of the marking. More... | |
| double | width {0.} |
| Total width of the marking [m]. More... | |
| double | height {0.} |
| Height of the marking above the road surface [m]. More... | |
| LaneChangePermission | lane_change {LaneChangePermission::kUnknown} |
| Lane change permission indicated by this marking. More... | |
| std::string | material {} |
| Material identifier for the marking. More... | |
| std::vector< LaneMarkingLine > | lines {} |
| Detailed line definitions for compound markings. More... | |
| bool operator!= | ( | const LaneMarking & | other | ) | const |
Compares two LaneMarking instances for inequality.
| bool operator== | ( | const LaneMarking & | other | ) | const |
Compares two LaneMarking instances for equality.
The primary color of the marking.
For multi-colored markings, individual line colors can be specified in the lines vector.
| double height {0.} |
Height of the marking above the road surface [m].
This is relevant for raised markings like Botts' dots or curbs. For painted markings, this is typically very small (a few millimeters).
| LaneChangePermission lane_change {LaneChangePermission::kUnknown} |
Lane change permission indicated by this marking.
| std::vector<LaneMarkingLine> lines {} |
Detailed line definitions for compound markings.
For simple markings, this can be empty and type/width/color are used. For complex markings (double lines, etc.), this provides the detail of each individual line component. When non-empty, these definitions take precedence for geometry and per-line colors over the top-level fields. The line type (solid vs. broken) is determined by each line's space field: space == 0 indicates solid, space > 0 indicates broken.
| std::string material {} |
Material identifier for the marking.
This is application-specific and can indicate properties like "standard", "thermoplastic", "reflective", "temporary", etc.
The type/pattern of the marking.
The visual weight of the marking.
| double width {0.} |
Total width of the marking [m].
For compound markings (like double lines), this is the total width including the space between lines.