CARLA
Loading...
Searching...
No Matches
ObjectRegister.h
Go to the documentation of this file.
1// Copyright (c) 2026 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
13
14#include <util/ue-header-guard-begin.h>
15#include "GameFramework/Actor.h"
16#include <util/ue-header-guard-end.h>
17
18#include "ObjectRegister.generated.h"
19
20UCLASS()
21class CARLA_API UObjectRegister : public UObject
22{
23 GENERATED_BODY()
24
25public:
26
29
30 UFUNCTION(Category = "Carla Object Register", BlueprintCallable, CallInEditor)
31 TArray<FEnvironmentObject> GetEnvironmentObjects(uint8 InTagQueried = 0xFF) const;
32
33 UFUNCTION(Category = "Carla Object Register")
34 void RegisterObjects(TArray<AActor*> Actors);
35
36 UFUNCTION(Category = "Carla Object Register")
37 void EnableEnvironmentObjects(const TSet<uint64>& EnvObjectIds, bool Enable);
38
39 /// The ids of @a EnvObjectIds that are registered now.
40 TSet<uint64> FindEnvironmentObjects(const TSet<uint64>& EnvObjectIds) const;
41
42 /// The ids of @a EnvObjectIds registered now for an actor of @a Actors.
43 TSet<uint64> FindEnvironmentObjectsOf(
44 const TSet<uint64>& EnvObjectIds,
45 const TSet<const AActor*>& Actors) const;
46
47private:
48
49 void RegisterEnvironmentObject(
50 AActor* Actor,
53 uint8 Tag);
54
55 void RegisterVehicle(ACarlaWheeledVehicle* Vehicle);
56
57 void RegisterCharacter(ACharacter* Character);
58
59 void RegisterTrafficLight(ATrafficLightBase* TrafficLight);
60
61 void RegisterISMComponents(AActor* Actor);
62
63 void RegisterSMComponents(AActor* Actor);
64
65 void RegisterSKMComponents(AActor* Actor);
66
67 void EnableEnvironmentObject(FEnvironmentObject& EnvironmentObject, bool Enable);
68
69 void EnableActor(FEnvironmentObject& EnvironmentObject, bool Enable);
70
71 void EnableTrafficLight(FEnvironmentObject& EnvironmentObject, bool Enable);
72
73 void EnableISMComp(FEnvironmentObject& EnvironmentObject, bool Enable);
74
75 TMultiMap<uint64, TWeakObjectPtr<const UStaticMeshComponent>> ObjectIdToComp;
76
77 UPROPERTY(Category = "Carla Object Register", EditAnywhere)
78 TArray<FEnvironmentObject> EnvironmentObjects;
79
80 int FoliageActorInstanceCount = 0;
81
82};
Base class for CARLA wheeled vehicles.