maliput_malidrive
RoadRuleBookBuilderOldRules Class Reference

Detailed Description

Functor to build a RoadRulebook.

The deprecated rule API is composed of.

  • maliput::api::rules::SpeedLimitRule
  • maliput::api::rules::RightOfWayRule
  • maliput::api::rules::DirectionUsageRule

Rules with the old API are built out of the YAML file and created maliput::api::rules::RightOfWayRules are used to create their analogous version as maliput::api::rules::DiscreteValueRules of type "Right-Of-Way-Rule" and "Vehicle-In-Stop-Behavior-Rule".

See also
RoadRulebook loader without rule registry provided by maliput.

The following rules are created regardless the values of road_rulebook_file_path and rule_registry:

  • Speed limits: maliput::api::rules::SpeedLimitRule and maliput::api::rules::RangeValueRule whose type is "Speed-Limit-Rule" are created.
  • Direction usage: maliput::api::rules::DirectionUsageRule and maliput::api::rules::DiscretValueRule whose type is "Speed-Limit-Rule" are created.
  • Vehicle exclusive: maliput::api::rules::DiscretValueRule whose type is "Vehicle-Exclusive-Rule" are created.
  • Vehicle usage: maliput::api::rules::DiscretValueRule whose type is "Vehicle-Usage-Rule" are created.

TODO(ToyotaResearchInstitute/maliput#108): remove RoadRulebook builder functor

#include <src/maliput_malidrive/builder/road_rulebook_builder_old_rules.h>

Public Member Functions

 RoadRuleBookBuilderOldRules ()=delete
 
 RoadRuleBookBuilderOldRules (const maliput::api::RoadGeometry *rg, const maliput::api::rules::RuleRegistry *rule_registry, const std::optional< std::string > &road_rulebook_file_path, const std::vector< maliput::api::rules::DirectionUsageRule > &direction_usage_rules, const std::vector< maliput::api::rules::SpeedLimitRule > &speed_limit_rules)
 Constructs a RoadRuleBook. More...
 
std::unique_ptr< const maliput::api::rules::RoadRulebookoperator() ()
 Builds a ManualRulebook. More...
 

Constructor & Destructor Documentation

◆ RoadRuleBookBuilderOldRules() [1/2]

◆ RoadRuleBookBuilderOldRules() [2/2]

RoadRuleBookBuilderOldRules ( const maliput::api::RoadGeometry rg,
const maliput::api::rules::RuleRegistry rule_registry,
const std::optional< std::string > &  road_rulebook_file_path,
const std::vector< maliput::api::rules::DirectionUsageRule > &  direction_usage_rules,
const std::vector< maliput::api::rules::SpeedLimitRule > &  speed_limit_rules 
)

Constructs a RoadRuleBook.

Parameters
rgis the pointer to the RoadGeometry. It must not be nullptr.
rule_registryis the pointer to the RuleRegistry. It must not be nullptr.
road_rulebook_file_pathto the yaml file to load the RoadRulebook.
direction_usage_rulesis a vector of DirectionUsageRules.
speed_limit_rulesis a vector of SpeedLimitRules.
Exceptions
maliput::assertion_errorWhen rg or rule_registry are nullptr.

Member Function Documentation

◆ operator()()

std::unique_ptr< const maliput::api::rules::RoadRulebook > operator() ( )

Builds a ManualRulebook.

Both Speed Limits Rules and Direction Usage Rules are added to the Rulebook after Rulebook yaml file is loaded.


The documentation for this class was generated from the following files: