maliput
LaneMarking Struct Reference

Detailed Description

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< LaneMarkingLinelines {}
 Detailed line definitions for compound markings. More...
 

Member Function Documentation

◆ operator!=()

bool operator!= ( const LaneMarking other) const

Compares two LaneMarking instances for inequality.

◆ operator==()

bool operator== ( const LaneMarking other) const

Compares two LaneMarking instances for equality.

Member Data Documentation

◆ color

The primary color of the marking.

For multi-colored markings, individual line colors can be specified in the lines vector.

◆ height

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).

◆ lane_change

Lane change permission indicated by this marking.

◆ lines

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.

◆ material

std::string material {}

Material identifier for the marking.

This is application-specific and can indicate properties like "standard", "thermoplastic", "reflective", "temporary", etc.

◆ type

The type/pattern of the marking.

◆ weight

The visual weight of the marking.

◆ width

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.


The documentation for this struct was generated from the following file: