maliput
maliput::api Namespace Reference

Namespaces

 rules
 
 test
 

Classes

class  BasicIdIndex
 Basic general-purpose concrete implementation of the RoadGeometry::IdIndex interface. More...
 
class  BranchPoint
 A BranchPoint is a node in the network of a RoadGeometry at which Lanes connect to one another. More...
 
class  HBounds
 Bounds in the elevation dimension (h component) of a Lane-frame, consisting of a pair of minimum and maximum h value. More...
 
class  InertialPosition
 A position in 3-dimensional geographical Cartesian space, i.e., in the Inertial-frame, consisting of three components x, y, and z. More...
 
class  Intersection
 An abstract convenience class that aggregates information pertaining to an intersection. More...
 
class  IntersectionBook
 An abstract interface for providing the mapping from Intersection::Id to Intersection. More...
 
struct  IsoLaneVelocity
 Isometric velocity vector in a Lane-frame. More...
 
class  Junction
 A Junction is a closed set of Segments which have physically coplanar road surfaces, in the sense that RoadPositions with the same h value (height above surface) in the domains of two Segments map to the same InertialPosition. More...
 
class  Lane
 A Lane represents a lane of travel in a road network. More...
 
struct  LaneEnd
 A specific endpoint of a specific Lane. More...
 
class  LaneEndSet
 A set of LaneEnds. More...
 
class  LanePosition
 A 3-dimensional position in a Lane-frame, consisting of three components: More...
 
struct  LanePositionResult
 Included in the return result of Lane::ToLanePosition(). More...
 
class  LaneSRange
 Directed longitudinal range of a specific Lane, identified by a LaneId. More...
 
class  LaneSRoute
 A route, possibly spanning multiple (end-to-end) lanes. More...
 
class  RBounds
 Bounds in the lateral dimension (r component) of a Lane-frame, consisting of a pair of minimum and maximum r value. More...
 
class  RoadGeometry
 Abstract API for the geometry of a road network, including both the network topology and the geometry of its embedding in 3-space. More...
 
class  RoadNetwork
 A container that aggregates everything pertaining to Maliput. More...
 
struct  RoadNetworkValidatorOptions
 Provides configuration options for the RoadNetworkValidator. More...
 
struct  RoadPosition
 A position in the road network, consisting of a pointer to a specific Lane and a Lane-frame position in that Lane. More...
 
struct  RoadPositionResult
 Included in the return result of RoadGeometry::FindRoadPositions() and RoadGeometry::ToRoadPosition(). More...
 
class  Rotation
 A 3-dimensional rotation. More...
 
class  Segment
 A Segment represents a bundle of adjacent Lanes which share a continuously traversable road surface. More...
 
class  SRange
 Directed, inclusive longitudinal (s value) range from s0 to s1. More...
 
class  TypeSpecificIdentifier
 TypeSpecificIdentifier<T> represents an identifier specifically identifying an entity of type T. More...
 
class  UniqueId
 Represents an unique identifier. More...
 

Typedefs

using BranchPointId = TypeSpecificIdentifier< class BranchPoint >
 
using JunctionId = TypeSpecificIdentifier< class Junction >
 Persistent identifier for a Junction element. More...
 
using LaneId = TypeSpecificIdentifier< class Lane >
 Persistent identifier for a Lane element. More...
 
using RoadGeometryId = TypeSpecificIdentifier< class RoadGeometry >
 Persistent identifier for a RoadGeometry element. More...
 
using SegmentId = TypeSpecificIdentifier< class Segment >
 Persistent identifier for a Segment element. More...
 

Functions

common::ComparisonResult< LanePositionResultIsLanePositionResultClose (const LanePositionResult &lpr_a, const LanePositionResult &lpr_b, double tolerance)
 Compares equality within tolerance deviation of the maliput::api::LanePositionResult lpr_a and lpr_B. More...
 
common::ComparisonResult< RoadPositionResultIsRoadPositionResultClose (const maliput::api::RoadPositionResult &rpr_a, const maliput::api::RoadPositionResult &rpr_b, double tolerance)
 Compares equality within tolerance deviation of the maliput::api::RoadPositionResult rpr_a and rpr_B. More...
 
common::ComparisonResult< InertialPositionIsInertialPositionClose (const InertialPosition &pos1, const InertialPosition &pos2, double tolerance)
 Compares equality within tolerance deviation of two InertialPosition objects. More...
 
common::ComparisonResult< LanePositionIsLanePositionClose (const LanePosition &pos1, const LanePosition &pos2, double tolerance)
 Compares equality within tolerance deviation of two LanePosition objects. More...
 
common::ComparisonResult< RotationIsRotationClose (const Rotation &rot1, const Rotation &rot2, double tolerance)
 Compares equality within tolerance deviation of two Rotation objects. More...
 
common::ComparisonResult< RBoundsIsRBoundsClose (const RBounds &rbounds1, const RBounds &rbounds2, double tolerance)
 Compares equality within tolerance deviation of two RBounds objects. More...
 
common::ComparisonResult< HBoundsIsHBoundsClose (const HBounds &hbounds1, const HBounds &hbounds2, double tolerance)
 Compares equality within tolerance deviation of two HBounds objects. More...
 
common::ComparisonResult< LaneEndIsLaneEndEqual (const LaneEnd &lane_end1, const LaneEnd &lane_end2)
 Compares equality of two LaneEnd objects. More...
 
common::ComparisonResult< JunctionIsEqual (const char *a_expression, const char *b_expression, const Junction *a, const Junction *b)
 Compares equality of two Junction objects. More...
 
common::ComparisonResult< SegmentIsEqual (const char *a_expression, const char *b_expression, const Segment *a, const Segment *b)
 Compares equality of two Segment objects. More...
 
common::ComparisonResult< LaneIsEqual (const char *a_expression, const char *b_expression, const Lane *a, const Lane *b)
 Compares equality of two Lane objects. More...
 
common::ComparisonResult< BranchPointIsEqual (const char *a_expression, const char *b_expression, const BranchPoint *a, const BranchPoint *b)
 Compares equality of two BranchPoint objects. More...
 
common::ComparisonResult< bool > IsEqual (const char *a_expression, const char *b_expression, bool a, bool b)
 Compares equality of two booleans. More...
 
common::ComparisonResult< doubleIsEqual (const char *a_expression, const char *b_expression, double a, double b)
 Compares equality of two doubles. More...
 
common::ComparisonResult< std::size_t > IsEqual (const char *a_expression, const char *b_expression, std::size_t a, std::size_t b)
 Compares equality of two std::size_t. More...
 
template<typename T >
common::ComparisonResult< TypeSpecificIdentifier< T > > IsEqual (const char *a_expression, const char *b_expression, const TypeSpecificIdentifier< T > &a, const TypeSpecificIdentifier< T > &b)
 Compares equality of two TypeSpecificIdentifier<T>. More...
 
common::ComparisonResult< SRangeIsEqual (const SRange &s_range_1, const SRange &s_range_2)
 Compares equality of two SRanges. More...
 
common::ComparisonResult< LaneSRangeIsEqual (const LaneSRange &lane_s_range_1, const LaneSRange &lane_s_range_2)
 Compares equality of two LaneSRange. More...
 
common::ComparisonResult< std::vector< LaneSRange > > IsEqual (const std::vector< LaneSRange > &lane_s_ranges_1, const std::vector< LaneSRange > &lane_s_ranges_2)
 Compares equality of two std::vector<LaneSRange>. More...
 
common::ComparisonResult< LaneSRouteIsEqual (const LaneSRoute &lane_s_route_1, const LaneSRoute &lane_s_route_2)
 Compares equality of two LaneSRoute. More...
 
common::ComparisonResult< InertialPositionIsEqual (const InertialPosition &inertial_position_1, const InertialPosition &inertial_position_2)
 Compares equality of two InertialPosition. More...
 
common::ComparisonResult< RotationIsEqual (const Rotation &rotation_1, const Rotation &rotation_2)
 Compares equality of two Rotation. More...
 
common::ComparisonResult< LaneEnd::WhichIsEqual (const LaneEnd::Which &which_1, const LaneEnd::Which &which_2)
 Compares equality of two LaneEnd::Which. More...
 
common::ComparisonResult< LaneEndIsEqual (const LaneEnd &lane_end_1, const LaneEnd &lane_end_2)
 Compares equality of two LaneEnd. More...
 
std::optional< std::string > CheckIdIndexing (const RoadGeometry *road_geometry)
 Checks that the given RoadGeometry's ById() indexing is correct. More...
 
std::ostream & operator<< (std::ostream &out, const LaneEnd::Which &which_end)
 Streams a string representation of which_end into out. More...
 
std::ostream & operator<< (std::ostream &out, const InertialPosition &inertial_position)
 Streams a string representation of inertial_position into out. More...
 
std::ostream & operator<< (std::ostream &out, const Rotation &rotation)
 Streams a string representation of rotation into out. More...
 
std::ostream & operator<< (std::ostream &out, const LanePosition &lane_position)
 Streams a string representation of lane_position into out. More...
 
bool IsContiguous (const LaneSRange &lane_range_a, const LaneSRange &lane_range_b, const RoadGeometry *road_geometry)
 Evaluates whether lane_range_a end point is G1 contiguous with lane_range_b start pose. More...
 
bool IsIncluded (const InertialPosition &inertial_position, const std::vector< LaneSRange > &lane_s_ranges, const RoadGeometry *road_geometry)
 Evaluates whether inertial_position is within lane_s_ranges. More...
 
void ValidateRoadNetwork (const RoadNetwork &road_network, const RoadNetworkValidatorOptions &options)
 Validates a RoadNetwork. More...
 

Typedef Documentation

◆ BranchPointId

◆ JunctionId

Persistent identifier for a Junction element.

◆ LaneId

Persistent identifier for a Lane element.

◆ RoadGeometryId

Persistent identifier for a RoadGeometry element.

◆ SegmentId

Persistent identifier for a Segment element.

Function Documentation

◆ CheckIdIndexing()

std::optional< std::string > CheckIdIndexing ( const RoadGeometry road_geometry)

Checks that the given RoadGeometry's ById() indexing is correct.

Parameters
road_geometryThe RoadGeometry to check.
Returns
A std::optional<std::string> containing an error message if the indexing is incorrect.

◆ IsContiguous()

bool IsContiguous ( const LaneSRange lane_range_a,
const LaneSRange lane_range_b,
const RoadGeometry road_geometry 
)

Evaluates whether lane_range_a end point is G1 contiguous with lane_range_b start pose.

Parameters
lane_range_aA LaneSRange in road_geometry. Its ID must belong to a road_geometry 's Lane.
lane_range_bA LaneSRange in road_geometry. Its ID must belong to a road_geometry 's Lane.
road_geometryThe RoadGeometry where lane_range_a and lane_range_b are contained. It must not be nullptr.
Returns
true When lane_range_a end pose and lane_range_b start pose are within linear and angular tolerance in the Inertial-frame. Otherwise, it returns false.
Exceptions
common::assertion_errorWhen lane_range_a 's Lane is not found in road_geometry.
common::assertion_errorWhen lane_range_b 's Lane is not found in road_geometry.
common::assertion_errorWhen road_geometry is nullptr.

◆ IsEqual() [1/16]

common::ComparisonResult< bool > IsEqual ( const char *  a_expression,
const char *  b_expression,
bool  a,
bool  b 
)

Compares equality of two booleans.

Parameters
a_expressionLiteral expression of the first boolean.
b_expressionLiteral expression of the second boolean.
aThe first boolean to compare.
bThe second boolean to compare.
Returns
A ComparisonResult indicating whether the two booleans are equal.

◆ IsEqual() [2/16]

common::ComparisonResult< BranchPoint > IsEqual ( const char *  a_expression,
const char *  b_expression,
const BranchPoint a,
const BranchPoint b 
)

Compares equality of two BranchPoint objects.

Parameters
a_expressionLiteral expression of the first BranchPoint.
b_expressionLiteral expression of the second BranchPoint.
aThe first BranchPoint to compare.
bThe second BranchPoint to compare.
Returns
A ComparisonResult indicating whether the two BranchPoints are the same.

◆ IsEqual() [3/16]

common::ComparisonResult< maliput::api::Junction > IsEqual ( const char *  a_expression,
const char *  b_expression,
const Junction a,
const Junction b 
)

Compares equality of two Junction objects.

Parameters
a_expressionLiteral expression of the first Junction.
b_expressionLiteral expression of the second Junction.
aThe first Junction to compare.
bThe second Junction to compare.
Returns
A ComparisonResult indicating whether the two Junctions are the same.

◆ IsEqual() [4/16]

common::ComparisonResult< Lane > IsEqual ( const char *  a_expression,
const char *  b_expression,
const Lane a,
const Lane b 
)

Compares equality of two Lane objects.

Parameters
a_expressionLiteral expression of the first Lane.
b_expressionLiteral expression of the second Lane.
aThe first Lane to compare.
bThe second Lane to compare.
Returns
A ComparisonResult indicating whether the two Lanes are the same.

◆ IsEqual() [5/16]

common::ComparisonResult< Segment > IsEqual ( const char *  a_expression,
const char *  b_expression,
const Segment a,
const Segment b 
)

Compares equality of two Segment objects.

Parameters
a_expressionLiteral expression of the first Segment.
b_expressionLiteral expression of the second Segment.
aThe first Segment to compare.
bThe second Segment to compare.
Returns
A ComparisonResult indicating whether the two Segments are the same.

◆ IsEqual() [6/16]

common::ComparisonResult<TypeSpecificIdentifier<T> > maliput::api::IsEqual ( const char *  a_expression,
const char *  b_expression,
const TypeSpecificIdentifier< T > &  a,
const TypeSpecificIdentifier< T > &  b 
)

Compares equality of two TypeSpecificIdentifier<T>.

@paramT T The type of the TypeSpecificIdentifier.

Parameters
a_expressionLiteral expression of the first TypeSpecificIdentifier.
b_expressionLiteral expression of the second TypeSpecificIdentifier.
aThe first TypeSpecificIdentifier to compare.
bThe second TypeSpecificIdentifier to compare.
Returns
A ComparisonResult indicating whether the two TypeSpecificIdentifiers are equal.

◆ IsEqual() [7/16]

common::ComparisonResult< double > IsEqual ( const char *  a_expression,
const char *  b_expression,
double  a,
double  b 
)

Compares equality of two doubles.

Parameters
a_expressionLiteral expression of the first double.
b_expressionLiteral expression of the second double.
aThe first double to compare.
bThe second double to compare.
Returns
A ComparisonResult indicating whether the two doubles are equal.

◆ IsEqual() [8/16]

common::ComparisonResult< std::size_t > IsEqual ( const char *  a_expression,
const char *  b_expression,
std::size_t  a,
std::size_t  b 
)

Compares equality of two std::size_t.

Parameters
a_expressionLiteral expression of the first std::size_t.
b_expressionLiteral expression of the second std::size_t.
aThe first std::size_t to compare.
bThe second std::size_t to compare.
Returns
A ComparisonResult indicating whether the two std::size_t are equal.

◆ IsEqual() [9/16]

common::ComparisonResult< InertialPosition > IsEqual ( const InertialPosition inertial_position_1,
const InertialPosition inertial_position_2 
)

Compares equality of two InertialPosition.

Parameters
inertial_position_1The first InertialPosition to compare.
inertial_position_2The second InertialPosition to compare.
Returns
A ComparisonResult indicating whether the two InertialPositions are equal.

◆ IsEqual() [10/16]

common::ComparisonResult< LaneEnd > IsEqual ( const LaneEnd lane_end_1,
const LaneEnd lane_end_2 
)

Compares equality of two LaneEnd.

Parameters
lane_end_1The first LaneEnd to compare.
lane_end_2The second LaneEnd to compare.
Returns
A ComparisonResult indicating whether the two LaneEnds are equal.

◆ IsEqual() [11/16]

common::ComparisonResult< LaneEnd::Which > IsEqual ( const LaneEnd::Which which_1,
const LaneEnd::Which which_2 
)

Compares equality of two LaneEnd::Which.

Parameters
which_1The first LaneEnd::Which to compare.
which_2The second LaneEnd::Which to compare.
Returns
A ComparisonResult indicating whether the two LaneEnd::Which are equal.

◆ IsEqual() [12/16]

common::ComparisonResult< LaneSRange > IsEqual ( const LaneSRange lane_s_range_1,
const LaneSRange lane_s_range_2 
)

Compares equality of two LaneSRange.

Parameters
lane_s_range_1The first LaneSRange to compare.
lane_s_range_2The second LaneSRange to compare.
Returns
A ComparisonResult indicating whether the two LaneSRanges are equal.

◆ IsEqual() [13/16]

common::ComparisonResult< LaneSRoute > IsEqual ( const LaneSRoute lane_s_route_1,
const LaneSRoute lane_s_route_2 
)

Compares equality of two LaneSRoute.

Parameters
lane_s_route_1The first LaneSRoute to compare.
lane_s_route_2The second LaneSRoute to compare.
Returns
A ComparisonResult indicating whether the two LaneSRoutes are equal.

◆ IsEqual() [14/16]

common::ComparisonResult< Rotation > IsEqual ( const Rotation rotation_1,
const Rotation rotation_2 
)

Compares equality of two Rotation.

Parameters
rotation_1The first Rotation to compare.
rotation_2The second Rotation to compare.
Returns
A ComparisonResult indicating whether the two Rotations are equal.

◆ IsEqual() [15/16]

common::ComparisonResult< SRange > IsEqual ( const SRange s_range_1,
const SRange s_range_2 
)

Compares equality of two SRanges.

Parameters
s_range_1The first SRange to compare.
s_range_2The second SRange to compare.
Returns
A ComparisonResult indicating whether the two SRanges are equal.

◆ IsEqual() [16/16]

common::ComparisonResult< std::vector< LaneSRange > > IsEqual ( const std::vector< LaneSRange > &  lane_s_ranges_1,
const std::vector< LaneSRange > &  lane_s_ranges_2 
)

Compares equality of two std::vector<LaneSRange>.

Parameters
lane_s_ranges_1The first std::vector<LaneSRange> to compare.
lane_s_ranges_2The second std::vector<LaneSRange> to compare.
Returns
A ComparisonResult indicating whether the two std::vector<LaneSRange> are equal.

◆ IsHBoundsClose()

common::ComparisonResult< HBounds > IsHBoundsClose ( const HBounds hbounds1,
const HBounds hbounds2,
double  tolerance 
)

Compares equality within tolerance deviation of two HBounds objects.

Parameters
hbounds1A HBounds object to compare.
hbounds1A HBounds object to compare.
toleranceAn allowable absolute deviation for each HBounds's instance value.
Returns
A ComparisonResult indicating whether the two HBounds are close.

◆ IsIncluded()

bool IsIncluded ( const InertialPosition inertial_position,
const std::vector< LaneSRange > &  lane_s_ranges,
const RoadGeometry road_geometry 
)

Evaluates whether inertial_position is within lane_s_ranges.

Parameters
inertial_positionA InertialPosition in the Inertial-frame.
lane_s_rangesA vector of LaneSRanges that define a region.
road_geometryThe RoadGeometry where lane_s_ranges is contained. It must not be nullptr.
Returns
True when inertial_position is within lane_s_ranges. inertial_position is contained if the distance to the closest LanePosition of lane_s_ranges is less or equal than the linear tolerance of the road_geometry.
Exceptions
common::assertion_errorWhen road_geometry is nullptr.
common::assertion_errorWhen Lanes in lane_s_ranges are not found in road_geometry.

◆ IsInertialPositionClose()

common::ComparisonResult< InertialPosition > IsInertialPositionClose ( const InertialPosition pos1,
const InertialPosition pos2,
double  tolerance 
)

Compares equality within tolerance deviation of two InertialPosition objects.

Parameters
pos1A InertialPosition object to compare.
pos2A InertialPosition object to compare.
toleranceAn allowable absolute deviation for each InertialPosition's coordinate.
Returns
A ComparisonResult indicating whether the two InertialPositions are close.

◆ IsLaneEndEqual()

common::ComparisonResult< LaneEnd > IsLaneEndEqual ( const LaneEnd lane_end1,
const LaneEnd lane_end2 
)

Compares equality of two LaneEnd objects.

Parameters
lane_end1A LaneEnd object to compare.
lane_end2A LaneEnd object to compare.
Returns
A ComparisonResult indicating whether the two LaneEnds are equal.

◆ IsLanePositionClose()

common::ComparisonResult< LanePosition > IsLanePositionClose ( const LanePosition pos1,
const LanePosition pos2,
double  tolerance 
)

Compares equality within tolerance deviation of two LanePosition objects.

Parameters
pos1A LanePosition object to compare.
pos2A LanePosition object to compare.
toleranceAn allowable absolute deviation for each LanePosition's coordinate.
Returns
A ComparisonResult indicating whether the two LanePositions are close.

◆ IsLanePositionResultClose()

common::ComparisonResult< LanePositionResult > IsLanePositionResultClose ( const LanePositionResult lpr_a,
const LanePositionResult lpr_b,
double  tolerance 
)

Compares equality within tolerance deviation of the maliput::api::LanePositionResult lpr_a and lpr_B.

Parameters
lpr_aThe first LanePositionResult to compare.
lpr_bThe second LanePositionResult to compare.
toleranceThe tolerance to use for the comparison.
Returns
A ComparisonResult indicating whether the two LanePositionResults are close.

◆ IsRBoundsClose()

common::ComparisonResult< RBounds > IsRBoundsClose ( const RBounds rbounds1,
const RBounds rbounds2,
double  tolerance 
)

Compares equality within tolerance deviation of two RBounds objects.

Parameters
rbounds1A RBounds object to compare.
rbounds2A RBounds object to compare.
toleranceAn allowable absolute deviation for each RBounds's instance value.
Returns
A ComparisonResult indicating whether the two RBounds are close.

◆ IsRoadPositionResultClose()

common::ComparisonResult< RoadPositionResult > IsRoadPositionResultClose ( const maliput::api::RoadPositionResult rpr_a,
const maliput::api::RoadPositionResult rpr_b,
double  tolerance 
)

Compares equality within tolerance deviation of the maliput::api::RoadPositionResult rpr_a and rpr_B.

Parameters
rpr_aThe first RoadPositionResult to compare.
rpr_bThe second RoadPositionResult to compare.
toleranceThe tolerance to use for the comparison.
Returns
A ComparisonResult indicating whether the two RoadPositionResults are close.

◆ IsRotationClose()

common::ComparisonResult< Rotation > IsRotationClose ( const Rotation rot1,
const Rotation rot2,
double  tolerance 
)

Compares equality within tolerance deviation of two Rotation objects.

Comparison will evaluate the inner Rotation's Euler angles.

Parameters
rot1A Rotation object to compare.
rot2A Rotation object to compare.
toleranceAn allowable absolute deviation for each Rotation's coordinate.
Returns
A ComparisonResult indicating whether the two Rotations are close.

◆ operator<<() [1/4]

std::ostream & operator<< ( std::ostream &  out,
const InertialPosition inertial_position 
)

Streams a string representation of inertial_position into out.

Returns out. This method is provided for the purposes of debugging or text-logging. It is not intended for serialization.

◆ operator<<() [2/4]

std::ostream & operator<< ( std::ostream &  out,
const LaneEnd::Which which_end 
)

Streams a string representation of which_end into out.

Returns out. This method is provided for the purposes of debugging or text-logging. It is not intended for serialization.

◆ operator<<() [3/4]

std::ostream & operator<< ( std::ostream &  out,
const LanePosition lane_position 
)

Streams a string representation of lane_position into out.

Returns out. This method is provided for the purposes of debugging or text-logging. It is not intended for serialization.

◆ operator<<() [4/4]

std::ostream & operator<< ( std::ostream &  out,
const Rotation rotation 
)

Streams a string representation of rotation into out.

Returns out. This method is provided for the purposes of debugging or text-logging. It is not intended for serialization.

◆ ValidateRoadNetwork()

void ValidateRoadNetwork ( const RoadNetwork road_network,
const RoadNetworkValidatorOptions options 
)

Validates a RoadNetwork.

Parameters
road_networkThe RoadNetwork to validate.
optionsOptions for selecting what aspects of RoadNetwork to check.
Exceptions
maliput::common::assertion_errorWhen road_network is not valid.