maliput

A Lane represents a lane of travel in a road network.
A Lane defines a curvilinear coordinate system covering the road surface, with a longitudinal 's' coordinate that expresses the arclength along a central reference curve. The reference curve nominally represents an ideal travel trajectory along the Lane.
Lanes are grouped by Segment. All Lanes belonging to a Segment represent the same road surface, but with different coordinate parameterizations (e.g., each Lane has its own reference curve).
#include <include/maliput/api/lane.h>
Public Member Functions  
virtual  ~Lane ()=default 
LaneId  id () const 
Returns the persistent identifier. More...  
const Segment *  segment () const 
Returns the Segment to which this Lane belongs. More...  
int  index () const 
Returns the index of this Lane within the Segment which owns it. More...  
const Lane *  to_left () const 
Returns a pointer to the adjacent Lane to the left of this Lane. More...  
const Lane *  to_right () const 
Returns a pointer to the adjacent Lane to the right of this Lane. More...  
double  length () const 
Returns the arclength of the Lane along its reference curve. More...  
RBounds  lane_bounds (double s) const 
Returns the nominal lateral (r) bounds for the lane as a function of s. More...  
RBounds  segment_bounds (double s) const 
Returns the lateral segment (r) bounds of the lane as a function of s. More...  
HBounds  elevation_bounds (double s, double r) const 
Returns the elevation (h ) bounds of the lane as a function of (s, r) . More...  
InertialPosition  ToInertialPosition (const LanePosition &lane_pos) const 
Returns the InertialPosition corresponding to the given LanePosition. More...  
LanePositionResult  ToLanePosition (const InertialPosition &inertial_pos) const 
Determines the LanePosition corresponding to InertialPosition inertial_pos . More...  
LanePositionResult  ToSegmentPosition (const InertialPosition &inertial_pos) const 
Determines the LanePosition corresponding to InertialPosition inertial_pos . More...  
Rotation  GetOrientation (const LanePosition &lane_pos) const 
Returns the rotation which expresses the orientation of the Lane frame basis at lane_pos with respect to the Inertial frame basis. More...  
LanePosition  EvalMotionDerivatives (const LanePosition &position, const IsoLaneVelocity &velocity) const 
Computes derivatives of LanePosition given a velocity vector velocity . More...  
const BranchPoint *  GetBranchPoint (const LaneEnd::Which which_end) const 
Returns the lane's BranchPoint for the end specified by which_end . More...  
const LaneEndSet *  GetConfluentBranches (const LaneEnd::Which which_end) const 
Returns the set of LaneEnd's which connect with this lane on the same side of the BranchPoint at which_end . More...  
const LaneEndSet *  GetOngoingBranches (const LaneEnd::Which which_end) const 
Returns the set of LaneEnd's which continue onward from this lane at the BranchPoint at which_end . More...  
std::optional< LaneEnd >  GetDefaultBranch (const LaneEnd::Which which_end) const 
Returns the default ongoing LaneEnd connected at which_end , or std::nullopt if no default branch has been established at which_end . More...  
bool  Contains (const LanePosition &lane_position) const 
Returns if this lane contains lane_position . More...  
Protected Member Functions  
Lane ()=default  

protecteddefault 
bool Contains  (  const LanePosition &  lane_position  )  const 
Returns if this lane contains lane_position
.
Returns the elevation (h
) bounds of the lane as a function of (s, r)
.
These are the elevation bounds for a position that is considered to be within the Lane's volume modeled by the RoadGeometry.
s
is within [0, length()
] of this Lane and r
is within lane_bounds(s)
.
LanePosition EvalMotionDerivatives  (  const LanePosition &  position, 
const IsoLaneVelocity &  velocity  
)  const 
Computes derivatives of LanePosition given a velocity vector velocity
.
velocity
is a isometric velocity vector oriented in the Lane
frame at position
.
Lane
frame derivatives packed into a LanePosition struct. const BranchPoint * GetBranchPoint  (  const LaneEnd::Which  which_end  )  const 
Returns the lane's BranchPoint for the end specified by which_end
.
const LaneEndSet * GetConfluentBranches  (  const LaneEnd::Which  which_end  )  const 
Returns the set of LaneEnd's which connect with this lane on the same side of the BranchPoint at which_end
.
At a minimum, this set will include this Lane.
std::optional< LaneEnd > GetDefaultBranch  (  const LaneEnd::Which  which_end  )  const 
Returns the default ongoing LaneEnd connected at which_end
, or std::nullopt if no default branch has been established at which_end
.
const LaneEndSet * GetOngoingBranches  (  const LaneEnd::Which  which_end  )  const 
Returns the set of LaneEnd's which continue onward from this lane at the BranchPoint at which_end
.
Rotation GetOrientation  (  const LanePosition &  lane_pos  )  const 
Returns the rotation which expresses the orientation of the Lane
frame basis at lane_pos
with respect to the Inertial
frame basis.
LaneId id  (  )  const 
Returns the persistent identifier.
Returns the nominal lateral (r) bounds for the lane as a function of s.
These are the lateral bounds for a position that is considered to be "staying in the lane".
double length  (  )  const 
Returns the lateral segment (r) bounds of the lane as a function of s.
These are the lateral bounds for a position that is considered to be "on segment", reflecting the physical extent of the surface of the lane's segment.
const Lane * to_left  (  )  const 
const Lane * to_right  (  )  const 
InertialPosition ToInertialPosition  (  const LanePosition &  lane_pos  )  const 
Returns the InertialPosition corresponding to the given LanePosition.
lane_pos
must be in domain [0, Lane::length()]. lane_pos
must be in domain [Rmin, Rmax] derived from Lane::segment_bounds(). LanePositionResult ToLanePosition  (  const InertialPosition &  inertial_pos  )  const 
Determines the LanePosition corresponding to InertialPosition inertial_pos
.
The LanePosition is expected to be contained within the lane's boundaries.
This method guarantees that its result satisfies the condition that ToInertialPosition(result.lane_position)
is within linear_tolerance()
of result.nearest_position
.
LanePositionResult ToSegmentPosition  (  const InertialPosition &  inertial_pos  )  const 
Determines the LanePosition corresponding to InertialPosition inertial_pos
.
The LanePosition is expected to be contained within the segment's boundaries.
This method guarantees that its result satisfies the condition that ToInertialPosition(result.lane_position)
is within linear_tolerance()
of result.nearest_position
.