CARLA
Loading...
Searching...
No Matches
Static Public Member Functions | Static Private Member Functions | List of all members
UMapLogicParser Class Reference

Utility class to parse map_logic.json files and apply traffic light timing configuration. More...

#include <MapLogicParser.h>

Static Public Member Functions

static void ApplyLaneIdsFromMapLogic (const FString &XODRFilePath, ATrafficLightManager *TrafficLightManager)
 Apply lane IDs from map_logic.json to traffic light components.
 
static bool ParseAndApplyMapLogic (const FString &XODRFilePath, ATrafficLightManager *TrafficLightManager)
 Parse map_logic.json file and apply traffic light timing configuration to the TrafficLightManager.
 

Static Private Member Functions

static void ApplyTrafficLightLogic (const TArray< FTrafficLightLogicData > &LogicData, ATrafficLightManager *TrafficLightManager)
 Apply traffic light timing configuration to the TrafficLightManager.
 
static FString GetDirectoryPath (const FString &FilePath)
 Get the directory path from a full file path.
 
static TArray< FTrafficLightLogicData > LoadMapLogicFromJSON (const FString &XODRFilePath)
 Load and parse the map_logic.json file from the same directory as the XODR file.
 
static FTrafficLightTiming ParseTimingFromJSON (TSharedPtr< FJsonObject > TimingJson)
 Parse timing data from JSON object.
 
static FTrafficLightLogicData ParseTrafficLightFromJSON (TSharedPtr< FJsonObject > TrafficLightJson)
 Parse individual traffic light data from JSON object.
 

Detailed Description

Utility class to parse map_logic.json files and apply traffic light timing configuration.

Definition at line 103 of file MapLogicParser.h.

Member Function Documentation

◆ ApplyLaneIdsFromMapLogic()

void UMapLogicParser::ApplyLaneIdsFromMapLogic ( const FString &  XODRFilePath,
ATrafficLightManager *  TrafficLightManager 
)
static

◆ ApplyTrafficLightLogic()

void UMapLogicParser::ApplyTrafficLightLogic ( const TArray< FTrafficLightLogicData > &  LogicData,
ATrafficLightManager *  TrafficLightManager 
)
staticprivate

Apply traffic light timing configuration to the TrafficLightManager.

Parameters
LogicDataArray of traffic light configurations to apply
TrafficLightManagerThe traffic light manager to configure

Definition at line 110 of file MapLogicParser.cpp.

References ATrafficLightManager::GetController(), UTrafficLightController::SetGreenTime(), UTrafficLightController::SetRedTime(), and UTrafficLightController::SetYellowTime().

Referenced by ParseAndApplyMapLogic().

◆ GetDirectoryPath()

FString UMapLogicParser::GetDirectoryPath ( const FString &  FilePath)
staticprivate

Get the directory path from a full file path.

Parameters
FilePathFull path to a file
Returns
Directory path without the filename

Definition at line 252 of file MapLogicParser.cpp.

Referenced by LoadMapLogicFromJSON().

◆ LoadMapLogicFromJSON()

TArray< FTrafficLightLogicData > UMapLogicParser::LoadMapLogicFromJSON ( const FString &  XODRFilePath)
staticprivate

Load and parse the map_logic.json file from the same directory as the XODR file.

Parameters
XODRFilePathPath to the .xodr file
Returns
Array of parsed traffic light logic data, empty if file not found or parse failed

Definition at line 58 of file MapLogicParser.cpp.

References GetDirectoryPath(), and ParseTrafficLightFromJSON().

Referenced by ApplyLaneIdsFromMapLogic(), and ParseAndApplyMapLogic().

◆ ParseAndApplyMapLogic()

bool UMapLogicParser::ParseAndApplyMapLogic ( const FString &  XODRFilePath,
ATrafficLightManager *  TrafficLightManager 
)
static

Parse map_logic.json file and apply traffic light timing configuration to the TrafficLightManager.

Returns true if file was found and parsed successfully.

Parameters
XODRFilePathPath to the .xodr file (will look for map_logic.json in same directory)
TrafficLightManagerThe traffic light manager to apply configuration to
Returns
true if map_logic.json was found and applied successfully, false otherwise

Definition at line 30 of file MapLogicParser.cpp.

References ApplyTrafficLightLogic(), and LoadMapLogicFromJSON().

◆ ParseTimingFromJSON()

FTrafficLightTiming UMapLogicParser::ParseTimingFromJSON ( TSharedPtr< FJsonObject >  TimingJson)
staticprivate

Parse timing data from JSON object.

Parameters
TimingJsonJSON object containing timing information
Returns
Parsed timing configuration

Definition at line 218 of file MapLogicParser.cpp.

References FTrafficLightTiming::AmberBlinkInterval, FTrafficLightTiming::AmberDuration, FTrafficLightTiming::GreenDuration, and FTrafficLightTiming::RedDuration.

Referenced by ParseTrafficLightFromJSON().

◆ ParseTrafficLightFromJSON()

FTrafficLightLogicData UMapLogicParser::ParseTrafficLightFromJSON ( TSharedPtr< FJsonObject >  TrafficLightJson)
staticprivate

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