CARLA
 
载入中...
搜索中...
未找到
TrafficSignBase.h
浏览该文件的文档.
1// Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.
5// For a copy, see <https://opensource.org/licenses/MIT>.
6
7#pragma once
8
9#include "GameFramework/Actor.h"
10
11#include "TrafficSignBase.generated.h"
12
13class UBoxComponent;
14
15// UENUM 将枚举类型进行标记,方便 虚幻头文件解析工具(UHT, UnrealHeaderTool) 为其生成相应的类型文件,生成反射系统需要的代码。
16// BlueprintType说明符令该枚举可以在蓝图中自如使用。
17UENUM(BlueprintType)
18enum class ETrafficSignState : uint8 {
19 Null = 0, // 解决 UE4.24 枚举问题
20 UNKNOWN = 0u UMETA(DisplayName = "UNKNOWN"),
21 TrafficLightRed = 1u UMETA(DisplayName = "Traffic Light - Red"),
22 TrafficLightYellow = 2u UMETA(DisplayName = "Traffic Light - Yellow"),
23 TrafficLightGreen = 3u UMETA(DisplayName = "Traffic Light - Green"),
24 SpeedLimit_30 UMETA(DisplayName = "Speed Limit - 30"),
25 SpeedLimit_40 UMETA(DisplayName = "Speed Limit - 40"),
26 SpeedLimit_50 UMETA(DisplayName = "Speed Limit - 50"),
27 SpeedLimit_60 UMETA(DisplayName = "Speed Limit - 60"),
28 SpeedLimit_90 UMETA(DisplayName = "Speed Limit - 90"),
29 SpeedLimit_100 UMETA(DisplayName = "Speed Limit - 100"),
30 SpeedLimit_120 UMETA(DisplayName = "Speed Limit - 120"),
31 SpeedLimit_130 UMETA(DisplayName = "Speed Limit - 130"),
32 StopSign UMETA(DisplayName = "Stop Sign"),
33 YieldSign UMETA(DisplayName = "Yield Sign")
34};
35
36UCLASS()
37class CARLA_API ATrafficSignBase : public AActor {
38
39 GENERATED_BODY()
40
41public:
42
43 ATrafficSignBase(const FObjectInitializer &ObjectInitializer);
44
45 UFUNCTION(BlueprintCallable)
46 ETrafficSignState GetTrafficSignState() const
47 {
48 return TrafficSignState;
49 }
50
51 UFUNCTION(BlueprintCallable)
52 void SetTrafficSignState(ETrafficSignState State)
53 {
54 TrafficSignState = State;
55 }
56
57 UFUNCTION(BlueprintImplementableEvent)
58 UBoxComponent *GetTriggerVolume() const;
59
60 TArray<UBoxComponent*> GetTriggerVolumes() const;
61
62private:
63
64 UPROPERTY(Category = "Traffic Sign", EditAnywhere)
66};
ETrafficSignState