maliput_malidrive
builder_tools.h File Reference
#include <optional>
#include <string>
#include <maliput/api/lane_data.h>
#include <maliput/api/road_geometry.h>
#include "maliput_malidrive/base/lane.h"
#include "maliput_malidrive/builder/rule_tools.h"
#include "maliput_malidrive/common/macros.h"
#include "maliput_malidrive/xodr/junction.h"
#include "maliput_malidrive/xodr/lane.h"
#include "maliput_malidrive/xodr/road_header.h"
Include dependency graph for builder_tools.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  MalidriveXodrLaneProperties
 Holds useful XODR Lane properties. More...
 
class  LaneTravelDirection
 Hold the travel direction of a lane obtained from parsing a userData XML node. More...
 

Namespaces

 malidrive
 Generate a new XODR file which is filled with Roads that are extracted from an another XODR file.
 
 malidrive::builder
 

Enumerations

enum  XodrConnectionType { kSuccessor = 0, kPredecessor }
 Convenient enumeration to identify which type of connection is needed. More...
 

Functions

std::vector< maliput::api::LaneEndSolveLaneEndsForConnectingRoad (const maliput::api::RoadGeometry *rg, const MalidriveXodrLaneProperties &xodr_lane_properties, const std::map< xodr::RoadHeader::Id, xodr::RoadHeader > &road_headers, XodrConnectionType connection_type)
 Searches which LaneEnds connect to xodr_lane_properties.lane in connection_type direction considering the LaneEnd belongs to an external interface with other XODR Roads, not XODR Junctions. More...
 
std::vector< maliput::api::LaneEndSolveLaneEndsForJunction (const maliput::api::RoadGeometry *rg, const MalidriveXodrLaneProperties &xodr_lane_properties, const std::map< xodr::RoadHeader::Id, xodr::RoadHeader > &road_headers, const std::unordered_map< xodr::Junction::Id, xodr::Junction > &junctions, XodrConnectionType connection_type)
 Searches which LaneEnds connect to xodr_lane_properties.lane in connection_type direction considering the LaneEnd belongs to an external interface with a XODR Junction but the XODR Road does not live in a XODR Junction. More...
 
std::vector< maliput::api::LaneEndSolveLaneEndsWithinJunction (const maliput::api::RoadGeometry *rg, const MalidriveXodrLaneProperties &xodr_lane_properties, const std::map< xodr::RoadHeader::Id, xodr::RoadHeader > &road_headers, XodrConnectionType connection_type)
 Searches which LaneEnds connect to xodr_lane_properties.lane in connection_type direction considering the LaneEnd belongs to an external interface. More...
 
std::vector< maliput::api::LaneEndSolveLaneEndsForInnerLaneSection (const maliput::api::RoadGeometry *rg, const maliput::api::LaneEnd &lane_end, const MalidriveXodrLaneProperties &xodr_lane_properties)
 Searches which LaneEnds connect to lane_end considering it belongs to an inner interface. More...
 
bool is_driveable_lane (const xodr::Lane &xodr_lane)
 Determines whether or not an xodr_lane is driveable by any vehicle. More...
 
bool AreOnlyNonDrivableLanes (const xodr::RoadHeader &xodr_road)
 Determines whether or not an xodr_road contains only non-drivable lanes. More...
 
std::string VehicleUsageValueForXodrLane (const xodr::Lane &xodr_lane)
 Determines the vehicle usage rule state value for xodr_lane based on its XODR Lane type. More...
 
std::optional< std::string > VehicleExclusiveValueForXodrLane (const xodr::Lane &xodr_lane)
 Determines the vehicle exclusive rule state value for xodr_lane based on its XODR Lane type. More...
 
std::vector< rules::XodrSpeedProperties > GetRoadTypeSpeedPropertiesInRange (const xodr::RoadHeader &xodr_road, double s_track_start, double s_track_end)
 
std::vector< rules::XodrSpeedProperties > GetLaneSpeedProperties (const xodr::Lane &xodr_lane, double s_track_start, double s_track_end)
 
const xodr::RoadHeader & GetXodrRoadFromMalidriveLane (const Lane *lane)
 
const xodr::LaneGetXodrLaneFromMalidriveLane (const Lane *lane)
 
std::string GetDirectionUsageRuleStateType (const Lane *lane)
 
std::vector< rules::XodrSpeedProperties > GetMaxSpeedLimitFor (const Lane *lane)
 
std::pair< std::string, std::optional< std::string > > VehicleUsageAndExclusiveRuleStateValues (const Lane *lane)
 
std::optional< double > FindLocalMinFromCubicPol (double a, double b, double c, double d)
 Finds the local minimum of the cubic polynomial. More...