CARLA
Loading...
Searching...
No Matches
ActorData.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
18#include "Carla/Math/DVector.h"
19
23
24class UCarlaEpisode;
26class FCarlaActor;
27
28// Names and actor-relative transforms of an actor's scene components, bones and
29// authored sockets, so a dormant actor answers the same queries as a live one.
31{
32 TArray<FString> ComponentNames;
33 TArray<FTransform> ComponentTransforms;
34 TArray<FString> BoneNames;
35 TArray<FTransform> BoneTransforms;
36 TArray<FString> SocketNames;
37 TArray<FTransform> SocketTransforms;
38
39 // Reads the rig off a live actor. Every transform is relative to the actor,
40 // so composing it with the actor transform gives world space either way.
41 static FActorRigSnapshot FromActor(const AActor *Actor);
42};
43
45{
46public:
47
49
50 // Recorded when the actor goes dormant, read while it has no AActor.
52
53 FQuat Rotation;
54
55 FVector Scale;
56
57 FVector Velocity;
58
59 FVector AngularVelocity = FVector(0,0,0);
60
61 bool bSimulatePhysics = false;
62
63 virtual void RecordActorData(FCarlaActor* CarlaActor, UCarlaEpisode* CarlaEpisode);
64
65 virtual void RestoreActorData(FCarlaActor* CarlaActor, UCarlaEpisode* CarlaEpisode);
66
67 virtual AActor* RespawnActor(UCarlaEpisode* CarlaEpisode, const FActorInfo& Info);
68
69 FTransform GetLocalTransform(UCarlaEpisode* CarlaEpisode) const;
70
71 virtual ~FActorData(){};
72};
73
98
99class FWalkerData : public FActorData
100{
101public:
102
104
105 bool bAlive = true;
106
107 virtual void RecordActorData(FCarlaActor* CarlaActor, UCarlaEpisode* CarlaEpisode) override;
108
109 virtual void RestoreActorData(FCarlaActor* CarlaActor, UCarlaEpisode* CarlaEpisode) override;
110};
111
113{
114public:
115 FString SignId;
116
117 TSubclassOf<AActor> Model;
118
119 TSubclassOf<UObject> SignModel;
120
121 virtual AActor* RespawnActor(UCarlaEpisode* CarlaEpisode, const FActorInfo& Info) override;
122
123 virtual void RecordActorData(FCarlaActor* CarlaActor, UCarlaEpisode* CarlaEpisode) override;
124
125 virtual void RestoreActorData(FCarlaActor* CarlaActor, UCarlaEpisode* CarlaEpisode) override;
126};
127
129{
130public:
131
133
135
136 FString SignId;
137
138 TSubclassOf<AActor> Model;
139
141
142 virtual AActor* RespawnActor(UCarlaEpisode* CarlaEpisode, const FActorInfo& Info) override;
143
144 virtual void RecordActorData(FCarlaActor* CarlaActor, UCarlaEpisode* CarlaEpisode) override;
145
146 virtual void RestoreActorData(FCarlaActor* CarlaActor, UCarlaEpisode* CarlaEpisode) override;
147
148};
149
151{
152public:
153
155
156 virtual void RecordActorData(FCarlaActor* CarlaActor, UCarlaEpisode* CarlaEpisode) override;
157
158 virtual void RestoreActorData(FCarlaActor* CarlaActor, UCarlaEpisode* CarlaEpisode) override;
159};
virtual ~FActorData()
Definition ActorData.h:71
virtual void RecordActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode)
Definition ActorData.cpp:94
virtual AActor * RespawnActor(UCarlaEpisode *CarlaEpisode, const FActorInfo &Info)
Definition ActorData.cpp:86
FQuat Rotation
Definition ActorData.h:53
FActorRigSnapshot Rig
Definition ActorData.h:51
virtual void RestoreActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode)
FVector Velocity
Definition ActorData.h:57
bool bSimulatePhysics
Definition ActorData.h:61
FVector AngularVelocity
Definition ActorData.h:59
FTransform GetLocalTransform(UCarlaEpisode *CarlaEpisode) const
FVector Scale
Definition ActorData.h:55
FDVector Location
Definition ActorData.h:48
FDataStream Stream
Definition ActorData.h:154
virtual void RestoreActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode) override
virtual void RecordActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode) override
A view over an actor and its properties.
Definition CarlaActor.h:25
virtual void RestoreActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode) override
ETrafficLightState LightState
Definition ActorData.h:134
UTrafficLightController * Controller
Definition ActorData.h:132
virtual void RecordActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode) override
TSubclassOf< AActor > Model
Definition ActorData.h:138
virtual AActor * RespawnActor(UCarlaEpisode *CarlaEpisode, const FActorInfo &Info) override
virtual void RecordActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode) override
TSubclassOf< UObject > SignModel
Definition ActorData.h:119
virtual AActor * RespawnActor(UCarlaEpisode *CarlaEpisode, const FActorInfo &Info) override
TSubclassOf< AActor > Model
Definition ActorData.h:117
virtual void RestoreActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode) override
bool bAckermannControlActive
Definition ActorData.h:84
virtual void RecordActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode) override
FVehicleLightState LightState
Definition ActorData.h:88
FVehicleControl Control
Definition ActorData.h:80
float SpeedLimit
Definition ActorData.h:90
virtual void RestoreActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode) override
carla::rpc::VehicleFailureState FailureState
Definition ActorData.h:92
FVehicleAckermannControl AckermannControl
Definition ActorData.h:82
FAckermannControllerSettings AckermannControllerSettings
Definition ActorData.h:86
FVehiclePhysicsControl PhysicsControl
Definition ActorData.h:78
carla::rpc::WalkerControl WalkerControl
Definition ActorData.h:103
virtual void RestoreActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode) override
virtual void RecordActorData(FCarlaActor *CarlaActor, UCarlaEpisode *CarlaEpisode) override
A simulation episode.
Maps a controller from OpenDrive.
A view over an actor and its properties.
Definition ActorInfo.h:18
TArray< FString > SocketNames
Definition ActorData.h:36
TArray< FTransform > ComponentTransforms
Definition ActorData.h:33
TArray< FString > ComponentNames
Definition ActorData.h:32
TArray< FTransform > BoneTransforms
Definition ActorData.h:35
TArray< FString > BoneNames
Definition ActorData.h:34
static FActorRigSnapshot FromActor(const AActor *Actor)
Definition ActorData.cpp:26
TArray< FTransform > SocketTransforms
Definition ActorData.h:37