11#include <util/ue-header-guard-begin.h>
12#include "CoreMinimal.h"
13#include "Dom/JsonObject.h"
14#include <util/ue-header-guard-end.h>
16#include "MapLogicParser.generated.h"
25 float RedDuration = 2.0f;
28 float GreenDuration = 10.0f;
31 float AmberDuration = 3.0f;
34 float AmberBlinkInterval = 0.25f;
44 TArray<int32> LaneIds;
63 FString ComponentPrefix;
69 TArray<int32> LaneIds;
85 int32 JunctionID = -1;
88 FString TrafficLightGroupID;
113 static bool ParseAndApplyMapLogic(
const FString& XODRFilePath,
ATrafficLightManager* TrafficLightManager);
118 static void ApplyLaneIdsFromMapLogic(
const FString& XODRFilePath,
ATrafficLightManager* TrafficLightManager);
125 static TArray<FTrafficLightLogicData> LoadMapLogicFromJSON(
const FString& XODRFilePath);
130 static void ApplyTrafficLightLogic(
const TArray<FTrafficLightLogicData>& LogicData,
ATrafficLightManager* TrafficLightManager);
145 static FString GetDirectoryPath(
const FString& FilePath);
Class In charge of creating and assigning traffic light groups, controllers and components.
Utility class to parse map_logic.json files and apply traffic light timing configuration.
One head of a baked Traffic Light Tool rig, and the OpenDRIVE signal it shows.
Represents a traffic light configuration entry from map_logic.json.
Represents a traffic light module with its lane assignments.
Represents timing configuration for a traffic light from map_logic.json.