29 if (
String ==
"Building")
return crp::CityObjectLabel::Buildings;
30 else if (
String ==
"Fence")
return crp::CityObjectLabel::Fences;
31 else if (
String ==
"Pedestrian")
return crp::CityObjectLabel::Pedestrians;
32 else if (
String ==
"Pole")
return crp::CityObjectLabel::Poles;
33 else if (
String ==
"Other")
return crp::CityObjectLabel::Other;
34 else if (
String ==
"Road")
return crp::CityObjectLabel::Roads;
35 else if (
String ==
"RoadLine")
return crp::CityObjectLabel::RoadLines;
36 else if (
String ==
"SideWalk")
return crp::CityObjectLabel::Sidewalks;
37 else if (
String ==
"TrafficSign")
return crp::CityObjectLabel::TrafficSigns;
38 else if (
String ==
"Vegetation")
return crp::CityObjectLabel::Vegetation;
39 else if (
String ==
"Car")
return crp::CityObjectLabel::Car;
40 else if (
String ==
"Wall")
return crp::CityObjectLabel::Walls;
41 else if (
String ==
"Sky")
return crp::CityObjectLabel::Sky;
42 else if (
String ==
"Ground")
return crp::CityObjectLabel::Ground;
43 else if (
String ==
"Bridge")
return crp::CityObjectLabel::Bridge;
44 else if (
String ==
"RailTrack")
return crp::CityObjectLabel::RailTrack;
45 else if (
String ==
"GuardRail")
return crp::CityObjectLabel::GuardRail;
46 else if (
String ==
"TrafficLight")
return crp::CityObjectLabel::TrafficLight;
47 else if (
String ==
"Static")
return crp::CityObjectLabel::Static;
48 else if (
String ==
"Dynamic")
return crp::CityObjectLabel::Dynamic;
49 else if (
String ==
"Water")
return crp::CityObjectLabel::Water;
50 else if (
String ==
"Terrain")
return crp::CityObjectLabel::Terrain;
51 else if (
String ==
"Truck")
return crp::CityObjectLabel::Truck;
52 else if (
String ==
"Motorcycle")
return crp::CityObjectLabel::Motorcycle;
53 else if (
String ==
"Bicycle")
return crp::CityObjectLabel::Bicycle;
54 else if (
String ==
"Bus")
return crp::CityObjectLabel::Bus;
55 else if (
String ==
"Rider")
return crp::CityObjectLabel::Rider;
56 else if (
String ==
"Train")
return crp::CityObjectLabel::Train;
57 else if (
String ==
"Rock")
return crp::CityObjectLabel::Rock;
58 else if (
String ==
"Stone")
return crp::CityObjectLabel::Rock;
59 else if (
String ==
"Bush")
return crp::CityObjectLabel::Vegetation;
60 else return crp::CityObjectLabel::None;
66static TMap<unsigned short, unsigned int> TruncatedIDUsedDebug;
68#ifdef CARLA_TAGGER_EXTRA_LOG
69 unsigned short truncated_id =
static_cast<unsigned short>(ActorID);
70 if(TruncatedIDUsedDebug.Contains(truncated_id)){
71 UE_LOG(LogCarla, Warning, TEXT(
"Warning: The Instance ID %d has been used %d time/s previously on this scene"), truncated_id, TruncatedIDUsedDebug[truncated_id]);
72 TruncatedIDUsedDebug[truncated_id]++;
76 TruncatedIDUsedDebug.Emplace(truncated_id, 1);
80 Component.SetCustomPrimitiveDataVector4(4, FVector4((
float) ActorID, (
float)
CastEnum(Label), 0.0f, 0.0f));
85 return (Label == crp::CityObjectLabel::Pedestrians ||
86 Label == crp::CityObjectLabel::TrafficSigns ||
87 Label == crp::CityObjectLabel::Car ||
88 Label == crp::CityObjectLabel::Train ||
89 Label == crp::CityObjectLabel::Bicycle ||
90 Label == crp::CityObjectLabel::Motorcycle ||
91 Label == crp::CityObjectLabel::Bus ||
92 Label == crp::CityObjectLabel::Rider ||
93 Label == crp::CityObjectLabel::Truck ||
94 Label == crp::CityObjectLabel::TrafficLight);
132#ifdef CARLA_TAGGER_EXTRA_LOG
133 UE_LOG(LogCarla, Log, TEXT(
"Actor: %s"), *Actor.GetName());
137 TArray<UStaticMeshComponent *> StaticMeshComponents;
138 Actor.GetComponents<UStaticMeshComponent>(StaticMeshComponents);
140 for (UStaticMeshComponent *Component : StaticMeshComponents)
143 if (Label == crp::CityObjectLabel::Pedestrians && Cast<ACarlaWheeledVehicle>(&Actor))
145 Label = crp::CityObjectLabel::Rider;
150 #ifdef CARLA_TAGGER_EXTRA_LOG
151 UE_LOG(LogCarla, Log, TEXT(
" + StaticMeshComponent: %s"), *Component->GetName());
152 UE_LOG(LogCarla, Log, TEXT(
" - Label: \"%s\""), *
GetTagAsString(Label));
157 TArray<USkeletalMeshComponent *> SkeletalMeshComponents;
158 Actor.GetComponents<USkeletalMeshComponent>(SkeletalMeshComponents);
160 for (USkeletalMeshComponent *Component : SkeletalMeshComponents) {
162 if (Label == crp::CityObjectLabel::Pedestrians && Cast<ACarlaWheeledVehicle>(&Actor))
164 Label = crp::CityObjectLabel::Rider;
169 #ifdef CARLA_TAGGER_EXTRA_LOG
170 UE_LOG(LogCarla, Log, TEXT(
" + SkeletalMeshComponent: %s"), *Component->GetName());
171 UE_LOG(LogCarla, Log, TEXT(
" - Label: \"%s\""), *
GetTagAsString(Label));
237 if(Tag.Contains(
"Building"))
return crp::CityObjectLabel::Buildings;
238 if(Tag.Contains(
"Fence"))
return crp::CityObjectLabel::Fences;
239 if(Tag.Contains(
"Pedestrian"))
return crp::CityObjectLabel::Pedestrians;
240 if(Tag.Contains(
"Pole"))
return crp::CityObjectLabel::Poles;
241 if(Tag.Contains(
"Other"))
return crp::CityObjectLabel::Other;
242 if(Tag.Contains(
"Roads"))
return crp::CityObjectLabel::Roads;
243 if(Tag.Contains(
"RoadLine"))
return crp::CityObjectLabel::RoadLines;
244 if(Tag.Contains(
"SideWalk"))
return crp::CityObjectLabel::Sidewalks;
245 if(Tag.Contains(
"TrafficSign"))
return crp::CityObjectLabel::TrafficSigns;
246 if(Tag.Contains(
"Vegetation"))
return crp::CityObjectLabel::Vegetation;
247 if(Tag.Contains(
"Car"))
return crp::CityObjectLabel::Car;
248 if(Tag.Contains(
"Wall"))
return crp::CityObjectLabel::Walls;
249 if(Tag.Contains(
"Sky"))
return crp::CityObjectLabel::Sky;
250 if(Tag.Contains(
"Ground"))
return crp::CityObjectLabel::Ground;
251 if(Tag.Contains(
"Bridge"))
return crp::CityObjectLabel::Bridge;
252 if(Tag.Contains(
"RailTrack"))
return crp::CityObjectLabel::RailTrack;
253 if(Tag.Contains(
"GuardRail"))
return crp::CityObjectLabel::GuardRail;
254 if(Tag.Contains(
"TrafficLight"))
return crp::CityObjectLabel::TrafficLight;
255 if(Tag.Contains(
"Static"))
return crp::CityObjectLabel::Static;
256 if(Tag.Contains(
"Dynamic"))
return crp::CityObjectLabel::Dynamic;
257 if(Tag.Contains(
"Water"))
return crp::CityObjectLabel::Water;
258 if(Tag.Contains(
"Terrain"))
return crp::CityObjectLabel::Terrain;
259 if(Tag.Contains(
"Truck"))
return crp::CityObjectLabel::Truck;
260 if(Tag.Contains(
"Motorcycle"))
return crp::CityObjectLabel::Motorcycle;
261 if(Tag.Contains(
"Bicycle"))
return crp::CityObjectLabel::Bicycle;
262 if(Tag.Contains(
"Bus"))
return crp::CityObjectLabel::Bus;
263 if(Tag.Contains(
"Rider"))
return crp::CityObjectLabel::Rider;
264 if(Tag.Contains(
"Train"))
return crp::CityObjectLabel::Train;
265 if(Tag.Contains(
"Rock"))
return crp::CityObjectLabel::Rock;
266 return crp::CityObjectLabel::None;