Fixing replayer crash when running in multi gpu mode
This commit is contained in:
parent
bc719a1056
commit
51fde10129
|
@ -420,43 +420,37 @@ void FFrameData::AddVehicleWheelsAnimation(FCarlaActor *CarlaActor)
|
|||
return;
|
||||
if (CarlaActor->GetActorType() != FCarlaActor::ActorType::Vehicle)
|
||||
return;
|
||||
|
||||
ACarlaWheeledVehicle* CarlaVehicle = Cast<ACarlaWheeledVehicle>(CarlaActor->GetActor());
|
||||
check(CarlaVehicle != nullptr)
|
||||
if (CarlaVehicle == nullptr)
|
||||
return;
|
||||
|
||||
USkeletalMeshComponent* SkeletalMesh = CarlaVehicle->GetMesh();
|
||||
check(SkeletalMesh != nullptr)
|
||||
if (SkeletalMesh == nullptr)
|
||||
return;
|
||||
|
||||
UVehicleAnimInstance* VehicleAnim = Cast<UVehicleAnimInstance>(SkeletalMesh->GetAnimInstance());
|
||||
check(VehicleAnim != nullptr)
|
||||
if (VehicleAnim == nullptr)
|
||||
return;
|
||||
|
||||
const UWheeledVehicleMovementComponent* WheeledVehicleMovementComponent = VehicleAnim->GetWheeledVehicleMovementComponent();
|
||||
check(WheeledVehicleMovementComponent != nullptr)
|
||||
if (WheeledVehicleMovementComponent == nullptr)
|
||||
return;
|
||||
|
||||
CarlaRecorderAnimWheels Record;
|
||||
Record.DatabaseId = CarlaActor->GetActorId();
|
||||
Record.WheelValues.reserve(WheeledVehicleMovementComponent->Wheels.Num());
|
||||
|
||||
WheelInfo FL;
|
||||
FL.Location = EVehicleWheelLocation::FL_Wheel;
|
||||
FL.SteeringAngle = CarlaVehicle->GetWheelSteerAngle(FL.Location);
|
||||
FL.TireRotation = WheeledVehicleMovementComponent->Wheels[static_cast<uint8>(FL.Location)]->GetRotationAngle();
|
||||
|
||||
WheelInfo FR;
|
||||
FR.Location = EVehicleWheelLocation::FR_Wheel;
|
||||
FR.SteeringAngle = CarlaVehicle->GetWheelSteerAngle(FR.Location);
|
||||
FR.TireRotation = WheeledVehicleMovementComponent->Wheels[static_cast<uint8>(FR.Location)]->GetRotationAngle();
|
||||
|
||||
WheelInfo BL;
|
||||
BL.Location = EVehicleWheelLocation::BL_Wheel;
|
||||
BL.SteeringAngle = CarlaVehicle->GetWheelSteerAngle(BL.Location);
|
||||
BL.TireRotation = WheeledVehicleMovementComponent->Wheels[static_cast<uint8>(BL.Location)]->GetRotationAngle();
|
||||
|
||||
WheelInfo BR;
|
||||
BR.Location = EVehicleWheelLocation::BR_Wheel;
|
||||
BR.SteeringAngle = CarlaVehicle->GetWheelSteerAngle(BR.Location);
|
||||
BR.TireRotation = WheeledVehicleMovementComponent->Wheels[static_cast<uint8>(BR.Location)]->GetRotationAngle();
|
||||
|
||||
Record.WheelValues.reserve(4);
|
||||
Record.WheelValues.push_back(FL);
|
||||
Record.WheelValues.push_back(FR);
|
||||
Record.WheelValues.push_back(BL);
|
||||
Record.WheelValues.push_back(BR);
|
||||
uint8 i = 0;
|
||||
for (auto Wheel : WheeledVehicleMovementComponent->Wheels)
|
||||
{
|
||||
WheelInfo Info;
|
||||
Info.Location = static_cast<EVehicleWheelLocation>(i);
|
||||
Info.SteeringAngle = CarlaVehicle->GetWheelSteerAngle(Info.Location);
|
||||
Info.TireRotation = Wheel->GetRotationAngle();
|
||||
Record.WheelValues.push_back(Info);
|
||||
++i;
|
||||
}
|
||||
|
||||
AddAnimVehicleWheels(Record);
|
||||
|
||||
|
|
Loading…
Reference in New Issue