CARLA
Loading...
Searching...
No Matches
BaseCarlaMovementComponent.cpp
Go to the documentation of this file.
1// Copyright (c) 2026 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3// Copyright (c) 2019 Intel Corporation
4//
5// This work is licensed under the terms of the MIT license.
6// For a copy, see <https://opensource.org/licenses/MIT>.
7
10
12#include <carla/Logging.h>
14
15
17{
18 Super::BeginPlay();
19 ACarlaWheeledVehicle* Vehicle = Cast<ACarlaWheeledVehicle>(GetOwner());
20 if (Vehicle)
21 {
23 }
24 else
25 {
26 UE_LOG(LogCarla, Warning, TEXT("Error: Owner is not properly set for UBaseCarlaMovementComponent") );
27 }
28}
29
34
36{
37 if (CarlaVehicle)
38 {
39 return CarlaVehicle->AWheeledVehiclePawn::GetVelocity();
40 }
41 return FVector();
42}
43
45{
46 return 0;
47}
48
50{
51 return 0.f;
52}
53
55{
56 if(!CarlaVehicle)
57 {
58 UE_LOG(LogCarla, Warning, TEXT("Error: Owner is not properly set for UCarSimManagerComponent") );
59 return;
60 }
61 CarlaVehicle->GetVehicleMovementComponent()->SetComponentTickEnabled(false);
62 CarlaVehicle->GetVehicleMovementComponent()->Deactivate();
63 CarlaVehicle->GetMesh()->PhysicsTransformUpdateMode = EPhysicsTransformUpdateMode::ComponentTransformIsKinematic;
64 auto * Bone = CarlaVehicle->GetMesh()->GetBodyInstance(NAME_None);
65 if (Bone)
66 {
67 Bone->SetInstanceSimulatePhysics(false);
68 }
69}
70
72{
73
74 FVector CurrentVelocity(0, 0, 0);
75 if (!bResetVelocity)
76 {
77 CurrentVelocity = GetVelocity();
78 }
79 CarlaVehicle->GetMesh()->SetPhysicsLinearVelocity(CurrentVelocity, false, "Vehicle_Base");
80 CarlaVehicle->GetVehicleMovementComponent()->SetComponentTickEnabled(true);
81 CarlaVehicle->GetVehicleMovementComponent()->Activate();
82 CarlaVehicle->GetMesh()->PhysicsTransformUpdateMode = EPhysicsTransformUpdateMode::SimulationUpatesComponentTransform;
83 auto * Bone = CarlaVehicle->GetMesh()->GetBodyInstance(NAME_None);
84 if (Bone)
85 {
86 Bone->SetInstanceSimulatePhysics(true);
87 }
88 else
89 {
90 carla::log_warning("No bone with name");
91 }
92 CarlaVehicle->GetMesh()->SetCollisionResponseToChannel(ECollisionChannel::ECC_WorldStatic, ECollisionResponse::ECR_Block);
93 CarlaVehicle->GetMesh()->SetCollisionProfileName("Vehicle");
95}
Base class for CARLA wheeled vehicles.
virtual void ProcessControl(FVehicleControl &Control)
void EnableUE4VehiclePhysics(bool bResetVelocity=true)
static void log_warning(Args &&... args)
Definition Logging.h:96