CARLA
Loading...
Searching...
No Matches
CarlaActor.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
15
20
21class AActor;
22
23/// A view over an actor and its properties.
25{
26public:
27
28 using IdType = uint32;
29
30 enum class ActorType : uint8
31 {
32 Other,
33 Vehicle,
34 Walker,
37 Sensor,
39 };
40
41 FCarlaActor() = default;
42 // FCarlaActor(const FCarlaActor &) = default;
43 // FCarlaActor(FCarlaActor &&) = default;
44
46 IdType ActorId,
47 AActor* Actor,
48 TSharedPtr<const FActorInfo> Info,
50 UWorld* World);
51
52 virtual ~FCarlaActor() {};
53
54
55 bool IsInValid() const
56 {
58 }
59
65
66 bool IsActive() const
67 {
69 }
70
71 bool IsDormant() const
72 {
74 }
75
76 bool IsPendingKill() const
77 {
79 }
80
82 {
83 return Id;
84 }
85
87 {
88 return Type;
89 }
90
92 {
93 return TheActor.Get();
94 }
95
96 const AActor *GetActor() const
97 {
98 return TheActor.Get();
99 }
100
102 {
103 return Info.Get();
104 }
105
107 {
108 return State;
109 }
110
112 {
113 State = InState;
114 }
115
116 void SetParent(IdType InParentId)
117 {
118 ParentId = InParentId;
119 }
120
122 {
123 return ParentId;
124 }
125
126 void AddChildren(IdType ChildId)
127 {
128 // A Multi-GPU secondary replays an attachment again on every resync.
129 Children.AddUnique(ChildId);
130 }
131
132 void RemoveChildren(IdType ChildId)
133 {
134 Children.Remove(ChildId);
135 }
136
137 const TArray<IdType>& GetChildren() const
138 {
139 return Children;
140 }
141
142 /// Multi-GPU secondary: the id the primary gave the actor this one mirrors.
143 void SetPrimaryActorId(IdType InPrimaryActorId)
144 {
145 PrimaryActorId = InPrimaryActorId;
146 }
147
148 /// The id clients know this actor by: the primary's for a mirror on a
149 /// Multi-GPU secondary, this actor's own id everywhere else.
151 {
152 return (PrimaryActorId != 0u) ? PrimaryActorId : Id;
153 }
154
155 /// Multi-GPU secondary: the primary's velocities of the actor this one
156 /// mirrors, in the world frame (cm/s and rad/s), of primary frame @a Frame.
157 /// A mirror never moves on its own, so its body has none of its own, and
158 /// the velocity getters report these instead.
159 void SetMirroredKinematics(const FVector &Velocity, const FVector &AngularVelocityRadians, uint64 Frame)
160 {
162 MirroredVelocity = Velocity;
163 MirroredAngularVelocity = AngularVelocityRadians;
165 }
166
168 {
170 MirroredVelocity = FVector::ZeroVector;
171 MirroredAngularVelocity = FVector::ZeroVector;
172 }
173
175 {
177 }
178
180 {
182 }
183
185 {
187 }
188
190 {
191 Attachment = InAttachmentType;
192 }
193
198
200
201 void PutActorToSleep(UCarlaEpisode* CarlaEpisode);
202
203 void WakeActorUp(UCarlaEpisode* CarlaEpisode);
204
206 {
207 return ActorData.Get();
208 }
209
211 {
212 return ActorData.Get();
213 }
214
215 template<typename T>
217 {
218 return dynamic_cast<T*>(ActorData.Get());
219 }
220
221 template<typename T>
222 const T* GetActorData() const
223 {
224 return dynamic_cast<T*>(ActorData.Get());
225 }
226
227 // Actor function interface ----------------------
228
229 // General functions
230
231 FTransform GetActorLocalTransform() const;
232
233 FTransform GetActorGlobalTransform() const;
234
235 FVector GetActorLocalLocation() const;
236
237 FVector GetActorGlobalLocation() const;
238
240 const FVector& Location,
241 ETeleportType Teleport = ETeleportType::TeleportPhysics);
242
244 const FVector& Location,
245 ETeleportType Teleport = ETeleportType::TeleportPhysics);
246
248 const FTransform& Transform,
249 ETeleportType Teleport = ETeleportType::TeleportPhysics);
250
252 const FTransform& Transform,
253 ETeleportType Teleport = ETeleportType::TeleportPhysics);
254
255 virtual FVector GetActorVelocity() const;
256
257 FVector GetActorAngularVelocity() const;
258
259 ECarlaServerResponse SetActorTargetVelocity(const FVector& Velocity);
260
261 ECarlaServerResponse SetActorTargetAngularVelocity(const FVector& AngularVelocity);
262
263 ECarlaServerResponse AddActorImpulse(const FVector& Impulse);
264
265 ECarlaServerResponse AddActorImpulseAtLocation(const FVector& Impulse, const FVector& Location);
266
267 ECarlaServerResponse AddActorForce(const FVector& Force);
268
269 ECarlaServerResponse AddActorForceAtLocation(const FVector& Force, const FVector& Location);
270
271 ECarlaServerResponse AddActorAngularImpulse(const FVector& AngularInpulse);
272
273 ECarlaServerResponse AddActorTorque(const FVector& Torque);
274
275 virtual ECarlaServerResponse SetActorSimulatePhysics(bool bEnabled);
276
277 virtual ECarlaServerResponse SetActorCollisions(bool bEnabled);
278
279 virtual ECarlaServerResponse SetActorEnableGravity(bool bEnabled);
280
281 // Components, bones and sockets. Dormant actors answer from the rig recorded
282 // when they were put to sleep, so the results do not depend on streaming.
283 ECarlaServerResponse GetActorComponentNames(TArray<FString>& Names) const;
284
286 const FString& ComponentName, FTransform& Transform) const;
287
289 const FString& ComponentName, FTransform& Transform) const;
290
291 ECarlaServerResponse GetActorBoneNames(TArray<FString>& Names) const;
292
293 ECarlaServerResponse GetActorBoneWorldTransforms(TArray<FTransform>& Transforms) const;
294
295 ECarlaServerResponse GetActorBoneRelativeTransforms(TArray<FTransform>& Transforms) const;
296
297 ECarlaServerResponse GetActorSocketNames(TArray<FString>& Names) const;
298
299 ECarlaServerResponse GetActorSocketWorldTransforms(TArray<FTransform>& Transforms) const;
300
301 ECarlaServerResponse GetActorSocketRelativeTransforms(TArray<FTransform>& Transforms) const;
302
304
306 const TArray<FTransform>& Relative, TArray<FTransform>& Transforms) const;
307
308 // Vehicle functions
313
318
323
328
333
338
343
348
353
358
363
368
373
378
383
388
393
398
403
409
415
420
425
430
435
436 virtual ECarlaServerResponse SetActorAutopilot(bool, bool bKeepState = false)
437 {
439 }
440
445
446 virtual ECarlaServerResponse EnableCarSim(const FString&)
447 {
449 }
450
455
457 const FString&, const FString&, const FString&, const FString&)
458 {
460 }
461
462 // Traffic light functions
463
468
470 {
471 return ETrafficLightState::Off;
472 }
473
475 {
476 return nullptr;
477 }
478
483
488
493
494 // Traffic sign functions
495
496 // Walker functions
498 const FTransform& Transform,
499 carla::rpc::WalkerControl WalkerControl)
500 {
502 }
503
508
513
518
523
524 virtual ECarlaServerResponse BlendPose(float Blend)
525 {
527 }
528
533
538
543
548
549 // Sensor functions
550
551 static TSharedPtr<FCarlaActor> ConstructCarlaActor(
552 IdType ActorId,
553 AActor* Actor,
554 TSharedPtr<const FActorInfo> Info,
557 UWorld* World);
558
559private:
560
561 friend class FActorRegistry;
562
563 /// Weak: World Partition can stream out (destroy) the actor without going
564 /// through the episode, so a raw pointer here dangles and the per-frame
565 /// state serialization crashes on a freed vtable. Weak reads back null and
566 /// the callers' existing null-checks take over.
567 TWeakObjectPtr<AActor> TheActor = nullptr;
568
569 TSharedPtr<const FActorInfo> Info = nullptr;
570
571 IdType Id = 0u;
572
574
576
577protected:
578
580
581 FVector MirroredVelocity = FVector::ZeroVector;
582
583 FVector MirroredAngularVelocity = FVector::ZeroVector;
584
586
587private:
588
590
592
593 TArray<IdType> Children;
594
595protected:
596
598
599 TSharedPtr<FActorData> ActorData = nullptr;
600
601 UWorld *World = nullptr;
602
603};
604
606{
607public:
609 IdType ActorId,
610 AActor* Actor,
611 TSharedPtr<const FActorInfo> Info,
613 UWorld* World);
614
615 virtual ECarlaServerResponse EnableActorConstantVelocity(const FVector& Velocity) final;
616
618
619 virtual ECarlaServerResponse EnableActorConstantAcceleration(const FVector& Acceleration) final;
620
622
624
626
628
630
631 virtual ECarlaServerResponse OpenVehicleDoor(const EVehicleDoor DoorIdx) final;
632
633 virtual ECarlaServerResponse CloseVehicleDoor(const EVehicleDoor DoorIdx) final;
634
637
639 const FVehicleLightState& LightState) final;
640
642 const EVehicleWheelLocation& WheelLocation, float AngleInDeg) final;
643
645 const EVehicleWheelLocation& WheelLocation, float& Angle);
646
648 const EVehicleWheelLocation& WheelLocation, float AngleInDeg) final;
649
651 const EVehicleWheelLocation& WheelLocation, float& Angle) final;
652
653 /// Offset in meters.
655 const EVehicleWheelLocation& WheelLocation, float Offset) final;
656
657 /// Offset in meters.
659 const EVehicleWheelLocation& WheelLocation, float& Offset) final;
660
661 virtual ECarlaServerResponse SetWheelAnimationOverride(bool bEnabled) final;
662
663 virtual ECarlaServerResponse SetActorSimulatePhysics(bool bSimulatePhysics) final;
664
666 const FVehicleControl&, const EVehicleInputPriority&) final;
667
670
672
674
676
678
679 virtual ECarlaServerResponse SetActorAutopilot(bool bEnabled, bool bKeepState = false) final;
680
681 virtual ECarlaServerResponse ShowVehicleDebugTelemetry(bool bEnabled) final;
682
683 virtual ECarlaServerResponse EnableCarSim(const FString& SimfilePath) final;
684
685 virtual ECarlaServerResponse UseCarSimRoad(bool bEnabled) final;
686
688 uint64_t MaxSubsteps, float MaxSubstepDeltaTime,
689 const FString& VehicleJSON, const FString& PowertrainJSON,
690 const FString& TireJSON, const FString& BaseJSONPath) final;
691};
692
694{
695public:
697 IdType ActorId,
698 AActor* Actor,
699 TSharedPtr<const FActorInfo> Info,
701 UWorld* World);
702
703};
704
706{
707public:
709 IdType ActorId,
710 AActor* Actor,
711 TSharedPtr<const FActorInfo> Info,
713 UWorld* World);
714};
715
717{
718public:
720 IdType ActorId,
721 AActor* Actor,
722 TSharedPtr<const FActorInfo> Info,
724 UWorld* World);
725
727
728 virtual ETrafficLightState GetTrafficLightState() const final;
729
731
732 virtual ECarlaServerResponse SetLightGreenTime(float time) final;
733
734 virtual ECarlaServerResponse SetLightYellowTime(float time) final;
735
736 virtual ECarlaServerResponse SetLightRedTime(float time) final;
737
738 virtual ECarlaServerResponse FreezeTrafficLight(bool bFreeze) final;
739
741
742};
743
745{
746public:
748 IdType ActorId,
749 AActor* Actor,
750 TSharedPtr<const FActorInfo> Info,
752 UWorld* World);
753
755 const FTransform& Transform,
756 carla::rpc::WalkerControl WalkerControl) final;
757
758 virtual ECarlaServerResponse SetActorSimulatePhysics(bool bSimulatePhysics) final;
759
760 virtual ECarlaServerResponse SetActorEnableGravity(bool bEnabled) final;
761
762 /// Walkers move via UCharacterMovementComponent (kinematic sweeps driven
763 /// by AddMovementInput), not physics simulation. AActor::GetVelocity()
764 /// (via APawn::GetVelocity()) prefers the root component's physics-body
765 /// velocity whenever the root is simulating physics, which for walker
766 /// Blueprints configured for ragdoll death is often true even while
767 /// idle -- so the base FCarlaActor::GetActorVelocity() path can report
768 /// near-zero while the walker is actually moving briskly. Read the
769 /// movement component's own tracked velocity directly instead.
770 virtual FVector GetActorVelocity() const final;
771
773
775
777
779
780 virtual ECarlaServerResponse BlendPose(float Blend);
781
783
785};
786
788{
789public:
791 IdType ActorId,
792 AActor* Actor,
793 TSharedPtr<const FActorInfo> Info,
795 UWorld* World);
796
797};
798
799/// Angular velocity of @a Actor in the world frame, in rad/s: on a Multi-GPU
800/// secondary the primary's (a mirror has no motion of its own), elsewhere its
801/// root body's.
FVector CarlaGetActorAngularVelocityInRadians(const AActor &Actor)
Angular velocity of Actor in the world frame, in rad/s: on a Multi-GPU secondary the primary's (a mir...
ECarlaServerResponse
EVehicleWheelLocation
EVehicleDoor
Type of door to open/close.
EVehicleInputPriority
A registry of all the Carla actors.
A view over an actor and its properties.
Definition CarlaActor.h:25
ECarlaServerResponse GetActorComponentNames(TArray< FString > &Names) const
carla::rpc::ActorState State
Definition CarlaActor.h:589
UWorld * World
Definition CarlaActor.h:601
ECarlaServerResponse AddActorImpulseAtLocation(const FVector &Impulse, const FVector &Location)
uint64 MirroredKinematicsFrame
Definition CarlaActor.h:585
virtual ECarlaServerResponse GetPhysicsControl(FVehiclePhysicsControl &)
Definition CarlaActor.h:329
ECarlaServerResponse GetActorSocketNames(TArray< FString > &Names) const
carla::rpc::AttachmentType GetAttachmentType() const
Definition CarlaActor.h:194
ECarlaServerResponse GetActorBoneWorldTransforms(TArray< FTransform > &Transforms) const
virtual ECarlaServerResponse EnableActorConstantAcceleration(const FVector &)
Definition CarlaActor.h:319
static TSharedPtr< FCarlaActor > ConstructCarlaActor(IdType ActorId, AActor *Actor, TSharedPtr< const FActorInfo > Info, ActorType Type, carla::rpc::ActorState InState, UWorld *World)
ECarlaServerResponse AddActorForceAtLocation(const FVector &Force, const FVector &Location)
void RemoveChildren(IdType ChildId)
Definition CarlaActor.h:132
virtual ECarlaServerResponse SetActorEnableGravity(bool bEnabled)
virtual ECarlaServerResponse GetBonesTransform(FWalkerBoneControlOut &)
Definition CarlaActor.h:514
virtual ECarlaServerResponse GetAckermannControllerSettings(FAckermannControllerSettings &)
Definition CarlaActor.h:426
ECarlaServerResponse ToWorld(const TArray< FTransform > &Relative, TArray< FTransform > &Transforms) const
virtual ECarlaServerResponse SetLightRedTime(float)
Definition CarlaActor.h:489
virtual ECarlaServerResponse ResetTrafficLightGroup()
Definition CarlaActor.h:544
void SetMirroredKinematics(const FVector &Velocity, const FVector &AngularVelocityRadians, uint64 Frame)
Multi-GPU secondary: the primary's velocities of the actor this one mirrors, in the world frame (cm/s...
Definition CarlaActor.h:159
virtual ECarlaServerResponse DisableActorConstantAcceleration()
Definition CarlaActor.h:324
IdType GetParent() const
Definition CarlaActor.h:121
ActorType GetActorType() const
Definition CarlaActor.h:86
FVector GetActorLocalLocation() const
ECarlaServerResponse GetActorBoneRelativeTransforms(TArray< FTransform > &Transforms) const
void SetActorLocalTransform(const FTransform &Transform, ETeleportType Teleport=ETeleportType::TeleportPhysics)
virtual ECarlaServerResponse GetVehicleAckermannControl(FVehicleAckermannControl &)
Definition CarlaActor.h:421
virtual ECarlaServerResponse SetLightYellowTime(float)
Definition CarlaActor.h:484
virtual ECarlaServerResponse GetPoseFromAnimation()
Definition CarlaActor.h:529
virtual ECarlaServerResponse SetActorAutopilot(bool, bool bKeepState=false)
Definition CarlaActor.h:436
virtual ECarlaServerResponse SetWheelAnimationOverride(bool)
Definition CarlaActor.h:399
FVector MirroredAngularVelocity
Definition CarlaActor.h:583
carla::rpc::AttachmentType Attachment
Definition CarlaActor.h:591
ECarlaServerResponse AddActorTorque(const FVector &Torque)
void ClearMirroredKinematics()
Definition CarlaActor.h:167
bool IsAlive() const
Definition CarlaActor.h:60
ECarlaServerResponse SetActorTargetAngularVelocity(const FVector &AngularVelocity)
bool IsDormant() const
Definition CarlaActor.h:71
ECarlaServerResponse AddActorImpulse(const FVector &Impulse)
AActor * GetActor()
Definition CarlaActor.h:91
virtual ECarlaServerResponse SetVehicleLightState(const FVehicleLightState &)
Definition CarlaActor.h:364
T * GetActorData()
Definition CarlaActor.h:216
FVector MirroredVelocity
Definition CarlaActor.h:581
virtual ECarlaServerResponse SetActorDead()
Definition CarlaActor.h:534
bool HasMirroredKinematics() const
Definition CarlaActor.h:174
virtual ECarlaServerResponse ApplyControlToVehicle(const FVehicleControl &, const EVehicleInputPriority &)
Definition CarlaActor.h:404
virtual ECarlaServerResponse GetWheelSteerAngle(const EVehicleWheelLocation &, float &)
Definition CarlaActor.h:374
virtual ECarlaServerResponse ApplyAckermannControllerSettings(const FAckermannControllerSettings &)
Definition CarlaActor.h:431
uint32 IdType
Definition CarlaActor.h:28
virtual ECarlaServerResponse SetActorCollisions(bool bEnabled)
virtual ECarlaServerResponse SetWheelSuspensionOffset(const EVehicleWheelLocation &, float)
Definition CarlaActor.h:389
TWeakObjectPtr< AActor > TheActor
Weak: World Partition can stream out (destroy) the actor without going through the episode,...
Definition CarlaActor.h:567
virtual ECarlaServerResponse GetVehicleTelemetryData(FVehicleTelemetryData &)
Definition CarlaActor.h:334
virtual ECarlaServerResponse CloseVehicleDoor(const EVehicleDoor)
Definition CarlaActor.h:354
ECarlaServerResponse GetActorRigSnapshot(FActorRigSnapshot &Rig) const
virtual ECarlaServerResponse GetFailureState(carla::rpc::VehicleFailureState &)
Definition CarlaActor.h:339
carla::rpc::ActorState GetActorState() const
Definition CarlaActor.h:106
IdType GetPrimaryActorId() const
The id clients know this actor by: the primary's for a mirror on a Multi-GPU secondary,...
Definition CarlaActor.h:150
FVector GetActorAngularVelocity() const
virtual ECarlaServerResponse ApplyAckermannControlToVehicle(const FVehicleAckermannControl &, const EVehicleInputPriority &)
Definition CarlaActor.h:410
virtual ECarlaServerResponse GetWheelPitchAngle(const EVehicleWheelLocation &, float &)
Definition CarlaActor.h:384
void SetParent(IdType InParentId)
Definition CarlaActor.h:116
void SetAttachmentType(carla::rpc::AttachmentType InAttachmentType)
Definition CarlaActor.h:189
uint64 GetMirroredKinematicsFrame() const
Definition CarlaActor.h:179
virtual ECarlaServerResponse SetWalkerState(const FTransform &Transform, carla::rpc::WalkerControl WalkerControl)
Definition CarlaActor.h:497
void SetPrimaryActorId(IdType InPrimaryActorId)
Multi-GPU secondary: the id the primary gave the actor this one mirrors.
Definition CarlaActor.h:143
virtual ECarlaServerResponse DisableActorConstantVelocity()
Definition CarlaActor.h:314
ECarlaServerResponse GetActorComponentWorldTransform(const FString &ComponentName, FTransform &Transform) const
ECarlaServerResponse GetActorSocketWorldTransforms(TArray< FTransform > &Transforms) const
ECarlaServerResponse GetActorBoneNames(TArray< FString > &Names) const
ECarlaServerResponse GetActorSocketRelativeTransforms(TArray< FTransform > &Transforms) const
virtual ECarlaServerResponse GetVehicleLightState(FVehicleLightState &)
Definition CarlaActor.h:344
IdType ParentId
Definition CarlaActor.h:573
virtual ECarlaServerResponse SetBonesTransform(const FWalkerBoneControlIn &)
Definition CarlaActor.h:519
FTransform GetActorGlobalTransform() const
virtual FVector GetActorVelocity() const
virtual ECarlaServerResponse FreezeTrafficLight(bool)
Definition CarlaActor.h:539
void SetActorGlobalTransform(const FTransform &Transform, ETeleportType Teleport=ETeleportType::TeleportPhysics)
virtual ECarlaServerResponse ApplyControlToWalker(const FWalkerControl &)
Definition CarlaActor.h:504
void SetActorState(carla::rpc::ActorState InState)
Definition CarlaActor.h:111
virtual ECarlaServerResponse GetVehicleControl(FVehicleControl &)
Definition CarlaActor.h:416
void SetActorGlobalLocation(const FVector &Location, ETeleportType Teleport=ETeleportType::TeleportPhysics)
FActorData * GetActorData()
Definition CarlaActor.h:205
TSharedPtr< const FActorInfo > Info
Definition CarlaActor.h:569
FVector GetActorGlobalLocation() const
ActorType Type
Definition CarlaActor.h:597
bool IsPendingKill() const
Definition CarlaActor.h:76
IdType PrimaryActorId
Definition CarlaActor.h:575
virtual ECarlaServerResponse UseCarSimRoad(bool)
Definition CarlaActor.h:451
virtual ECarlaServerResponse ApplyPhysicsControl(const FVehiclePhysicsControl &)
Definition CarlaActor.h:359
TArray< IdType > Children
Definition CarlaActor.h:593
virtual ECarlaServerResponse SetLightGreenTime(float)
Definition CarlaActor.h:479
void AddChildren(IdType ChildId)
Definition CarlaActor.h:126
virtual ETrafficLightState GetTrafficLightState() const
Definition CarlaActor.h:469
bool bHasMirroredKinematics
Definition CarlaActor.h:579
ECarlaServerResponse GetActorComponentRelativeTransform(const FString &ComponentName, FTransform &Transform) const
virtual ECarlaServerResponse OpenVehicleDoor(const EVehicleDoor)
Definition CarlaActor.h:349
bool IsInValid() const
Definition CarlaActor.h:55
const T * GetActorData() const
Definition CarlaActor.h:222
const FActorData * GetActorData() const
Definition CarlaActor.h:210
virtual UTrafficLightController * GetTrafficLightController()
Definition CarlaActor.h:474
virtual ECarlaServerResponse GetWalkerControl(FWalkerControl &)
Definition CarlaActor.h:509
FVector GetMirroredAngularVelocityInRadians() const
Definition CarlaActor.h:184
bool IsActive() const
Definition CarlaActor.h:66
void SetActorLocalLocation(const FVector &Location, ETeleportType Teleport=ETeleportType::TeleportPhysics)
const FActorInfo * GetActorInfo() const
Definition CarlaActor.h:101
TSharedPtr< FActorData > ActorData
Definition CarlaActor.h:599
IdType GetActorId() const
Definition CarlaActor.h:81
virtual ~FCarlaActor()
Definition CarlaActor.h:52
virtual ECarlaServerResponse EnableActorConstantVelocity(const FVector &)
Definition CarlaActor.h:309
void BuildActorData()
FTransform GetActorLocalTransform() const
virtual ECarlaServerResponse SetWheelSteerDirection(const EVehicleWheelLocation &, float)
Definition CarlaActor.h:369
virtual ECarlaServerResponse EnableCarSim(const FString &)
Definition CarlaActor.h:446
ECarlaServerResponse SetActorTargetVelocity(const FVector &Velocity)
virtual ECarlaServerResponse SetWheelPitchAngle(const EVehicleWheelLocation &, float)
Definition CarlaActor.h:379
ECarlaServerResponse AddActorForce(const FVector &Force)
FCarlaActor()=default
virtual ECarlaServerResponse BlendPose(float Blend)
Definition CarlaActor.h:524
virtual ECarlaServerResponse ShowVehicleDebugTelemetry(bool)
Definition CarlaActor.h:441
virtual ECarlaServerResponse SetActorSimulatePhysics(bool bEnabled)
virtual ECarlaServerResponse EnableChronoPhysics(uint64_t, float, const FString &, const FString &, const FString &, const FString &)
Definition CarlaActor.h:456
void WakeActorUp(UCarlaEpisode *CarlaEpisode)
ECarlaServerResponse AddActorAngularImpulse(const FVector &AngularInpulse)
virtual ECarlaServerResponse SetTrafficLightState(const ETrafficLightState &)
Definition CarlaActor.h:464
virtual ECarlaServerResponse GetWheelSuspensionOffset(const EVehicleWheelLocation &, float &)
Definition CarlaActor.h:394
const TArray< IdType > & GetChildren() const
Definition CarlaActor.h:137
void PutActorToSleep(UCarlaEpisode *CarlaEpisode)
const AActor * GetActor() const
Definition CarlaActor.h:96
virtual ECarlaServerResponse SetLightGreenTime(float time) final
virtual ECarlaServerResponse FreezeTrafficLight(bool bFreeze) final
virtual ETrafficLightState GetTrafficLightState() const final
virtual ECarlaServerResponse SetTrafficLightState(const ETrafficLightState &State) final
virtual ECarlaServerResponse ResetTrafficLightGroup() final
virtual UTrafficLightController * GetTrafficLightController() final
virtual ECarlaServerResponse SetLightRedTime(float time) final
virtual ECarlaServerResponse SetLightYellowTime(float time) final
virtual ECarlaServerResponse SetActorAutopilot(bool bEnabled, bool bKeepState=false) final
virtual ECarlaServerResponse EnableChronoPhysics(uint64_t MaxSubsteps, float MaxSubstepDeltaTime, const FString &VehicleJSON, const FString &PowertrainJSON, const FString &TireJSON, const FString &BaseJSONPath) final
virtual ECarlaServerResponse SetActorSimulatePhysics(bool bSimulatePhysics) final
virtual ECarlaServerResponse DisableActorConstantVelocity() final
virtual ECarlaServerResponse GetVehicleLightState(FVehicleLightState &LightState) final
virtual ECarlaServerResponse SetWheelPitchAngle(const EVehicleWheelLocation &WheelLocation, float AngleInDeg) final
virtual ECarlaServerResponse GetWheelSuspensionOffset(const EVehicleWheelLocation &WheelLocation, float &Offset) final
Offset in meters.
virtual ECarlaServerResponse GetFailureState(carla::rpc::VehicleFailureState &) final
virtual ECarlaServerResponse GetWheelPitchAngle(const EVehicleWheelLocation &WheelLocation, float &Angle) final
virtual ECarlaServerResponse SetWheelAnimationOverride(bool bEnabled) final
virtual ECarlaServerResponse GetWheelSteerAngle(const EVehicleWheelLocation &WheelLocation, float &Angle)
virtual ECarlaServerResponse ApplyControlToVehicle(const FVehicleControl &, const EVehicleInputPriority &) final
virtual ECarlaServerResponse DisableActorConstantAcceleration() final
virtual ECarlaServerResponse EnableActorConstantVelocity(const FVector &Velocity) final
virtual ECarlaServerResponse GetVehicleTelemetryData(FVehicleTelemetryData &TelemetryData) final
virtual ECarlaServerResponse SetVehicleLightState(const FVehicleLightState &LightState) final
virtual ECarlaServerResponse EnableCarSim(const FString &SimfilePath) final
virtual ECarlaServerResponse GetPhysicsControl(FVehiclePhysicsControl &PhysicsControl) final
virtual ECarlaServerResponse SetWheelSteerDirection(const EVehicleWheelLocation &WheelLocation, float AngleInDeg) final
virtual ECarlaServerResponse SetWheelSuspensionOffset(const EVehicleWheelLocation &WheelLocation, float Offset) final
Offset in meters.
virtual ECarlaServerResponse UseCarSimRoad(bool bEnabled) final
virtual ECarlaServerResponse GetVehicleControl(FVehicleControl &) final
virtual ECarlaServerResponse ApplyAckermannControllerSettings(const FAckermannControllerSettings &) final
virtual ECarlaServerResponse EnableActorConstantAcceleration(const FVector &Acceleration) final
virtual ECarlaServerResponse ApplyAckermannControlToVehicle(const FVehicleAckermannControl &, const EVehicleInputPriority &) final
virtual ECarlaServerResponse ApplyPhysicsControl(const FVehiclePhysicsControl &PhysicsControl) final
virtual ECarlaServerResponse OpenVehicleDoor(const EVehicleDoor DoorIdx) final
virtual ECarlaServerResponse CloseVehicleDoor(const EVehicleDoor DoorIdx) final
virtual ECarlaServerResponse GetVehicleAckermannControl(FVehicleAckermannControl &) final
virtual ECarlaServerResponse ShowVehicleDebugTelemetry(bool bEnabled) final
virtual ECarlaServerResponse GetAckermannControllerSettings(FAckermannControllerSettings &) final
virtual ECarlaServerResponse BlendPose(float Blend)
virtual ECarlaServerResponse SetActorSimulatePhysics(bool bSimulatePhysics) final
virtual ECarlaServerResponse SetActorEnableGravity(bool bEnabled) final
virtual FVector GetActorVelocity() const final
Walkers move via UCharacterMovementComponent (kinematic sweeps driven by AddMovementInput),...
virtual ECarlaServerResponse GetPoseFromAnimation()
virtual ECarlaServerResponse SetBonesTransform(const FWalkerBoneControlIn &) final
virtual ECarlaServerResponse GetWalkerControl(FWalkerControl &) final
virtual ECarlaServerResponse SetWalkerState(const FTransform &Transform, carla::rpc::WalkerControl WalkerControl) final
virtual ECarlaServerResponse SetActorDead()
virtual ECarlaServerResponse ApplyControlToWalker(const FWalkerControl &) final
virtual ECarlaServerResponse GetBonesTransform(FWalkerBoneControlOut &) final
A simulation episode.
Maps a controller from OpenDrive.
A view over an actor and its properties.
Definition ActorInfo.h:18