maliput
maliput::geometry_base Namespace Reference

Namespaces

 test
 

Classes

class  BranchPoint
 geometry_base's implementation of api::BranchPoint. More...
 
class  BruteForceStrategy
 Implements StrategyBase using a brute force algorithm for resolving the maliput::api::RoadGeometry::ToRoadPosition() and maliput::api::RoadGeometry::FindRoadPositions() methods. More...
 
class  Junction
 geometry_base's implementation of api::Junction. More...
 
class  KDTreeStrategy
 Implements StrategyBase by reorganizing the maliput::api::Lane space into a kd-tree for achieving significantly more performant queries than BruteForceStrategy. More...
 
class  Lane
 geometry_base's implementation of api::Lane. More...
 
class  LaneEndSet
 geometry_base's implementation of api::LaneEndSet. More...
 
class  RoadGeometry
 geometry_base provides basic implementations for a subset of the interfaces of maliput's geometry API (api::RoadGeometry, etc) that can be shared by most "leaf" backends. More...
 
class  Segment
 geometry_base's implementation of api::Segment. More...
 
class  StrategyBase
 Provides a base interface for defining strategies that will affect the behavior of the queries RoadGeomoetry::ToRoadPosition and RoadGeomoetry::FindRoadPositions. More...
 

Functions

std::vector< maliput::api::RoadPositionResultBruteForceFindRoadPositionsStrategy (const maliput::api::RoadGeometry *rg, const maliput::api::InertialPosition &inertial_position, double radius)
 Provides a brute force implementation of RoadGeometry::FindRoadPosition() that exhaustively calls ToLanePosition() on all lanes and checks distance with radius. More...
 
std::vector< api::RoadPositionResultFilterRoadPositionResults (const std::vector< api::RoadPositionResult > &road_position_results, const std::function< bool(const api::RoadPositionResult &)> &filter)
 
bool IsNewRoadPositionResultCloser (const maliput::api::RoadPositionResult &new_road_position_result, const maliput::api::RoadPositionResult &road_position_result)
 Compares two maliput::api::RoadPositionResults and determines whether new_road_position_result is closer to road_position_result. More...
 

Function Documentation

◆ BruteForceFindRoadPositionsStrategy()

std::vector< maliput::api::RoadPositionResult > BruteForceFindRoadPositionsStrategy ( const maliput::api::RoadGeometry rg,
const maliput::api::InertialPosition inertial_position,
double  radius 
)

Provides a brute force implementation of RoadGeometry::FindRoadPosition() that exhaustively calls ToLanePosition() on all lanes and checks distance with radius.

Note
Maliput backends could avoid implementing a custom implementation of RoadGeometry::FindRoadPositions() that knows about the geometry internals by forwarding calls to this function. On the contrary, backends might decide not to use this function because, for example, time complexity which is at least O(n^3).
Parameters
rgThe RoadGeometry over all these operations are performed. It must not be nullptr.
inertial_positionThe inertial position to convert into one or more RoadPositions.
radiusThe maximum distance from inertial_position to search. It must not be negative.
Returns
A vector of RoadPositionResults representing the possible RoadPositions.
Exceptions
maliput::common::assertion_errorIf rg is nullptr, or any entity within it is nullptr.
maliput::common::assertion_errorIf radius is negative.

◆ FilterRoadPositionResults()

std::vector< api::RoadPositionResult > FilterRoadPositionResults ( const std::vector< api::RoadPositionResult > &  road_position_results,
const std::function< bool(const api::RoadPositionResult &)> &  filter 
)
Returns
A filtered version road_position_results by applying filter to each item of road_position_results. When filter returns true, the item is preserved.
Parameters
road_position_resultsA vector of RoadPositionResults to be filtered. Typically, it is the result of calling api::RoadGeometry::FindRoadPositions().
filterAn arbitrary functor to filter road_position_results.

◆ IsNewRoadPositionResultCloser()

bool IsNewRoadPositionResultCloser ( const maliput::api::RoadPositionResult new_road_position_result,
const maliput::api::RoadPositionResult road_position_result 
)

Compares two maliput::api::RoadPositionResults and determines whether new_road_position_result is closer to road_position_result.

See also
maliput::api::RoadPosition::ToRoadPosition() for a clear definition of how the comparison must be performed.
Parameters
new_road_position_resultA maliput::api::RoadPositionResult to compare.
road_position_resultThe reference maliput::api::RoadPositionResult to compare.
Returns
true When new_road_position_result is closer than road_position_result.