fix a recorder crash and replay hang for 0.9.15 log issue after introducing vehicle door animation into the log
This commit is contained in:
parent
f45dd6943c
commit
7b07075480
|
@ -553,12 +553,18 @@ void FFrameData::AddTriggerVolume(const ATrafficSignBase &TrafficSign)
|
|||
{
|
||||
return;
|
||||
}
|
||||
|
||||
auto CarlaActor = Episode->GetActorRegistry().FindCarlaActor(&TrafficSign);
|
||||
if (!CarlaActor)
|
||||
{
|
||||
return;
|
||||
}
|
||||
UBoxComponent* Trigger = Triggers.Top();
|
||||
auto VolumeOrigin = Trigger->GetComponentLocation();
|
||||
auto VolumeExtent = Trigger->GetScaledBoxExtent();
|
||||
CarlaRecorderActorBoundingBox TriggerVolume =
|
||||
{
|
||||
Episode->GetActorRegistry().FindCarlaActor(&TrafficSign)->GetActorId(),
|
||||
CarlaActor->GetActorId(),
|
||||
{VolumeOrigin, VolumeExtent}
|
||||
};
|
||||
TriggerVolumes.Add(TriggerVolume);
|
||||
|
@ -567,21 +573,29 @@ void FFrameData::AddTriggerVolume(const ATrafficSignBase &TrafficSign)
|
|||
void FFrameData::AddPhysicsControl(const ACarlaWheeledVehicle& Vehicle)
|
||||
{
|
||||
CarlaRecorderPhysicsControl Control;
|
||||
Control.DatabaseId = Episode->GetActorRegistry().FindCarlaActor(&Vehicle)->GetActorId();
|
||||
Control.VehiclePhysicsControl = Vehicle.GetVehiclePhysicsControl();
|
||||
PhysicsControls.Add(Control);
|
||||
auto CarlaActor = Episode->GetActorRegistry().FindCarlaActor(&Vehicle);
|
||||
if (CarlaActor)
|
||||
{
|
||||
Control.DatabaseId = CarlaActor->GetActorId();
|
||||
Control.VehiclePhysicsControl = Vehicle.GetVehiclePhysicsControl();
|
||||
PhysicsControls.Add(Control);
|
||||
}
|
||||
}
|
||||
|
||||
void FFrameData::AddTrafficLightTime(const ATrafficLightBase& TrafficLight)
|
||||
{
|
||||
auto DatabaseId = Episode->GetActorRegistry().FindCarlaActor(&TrafficLight)->GetActorId();
|
||||
CarlaRecorderTrafficLightTime TrafficLightTime{
|
||||
DatabaseId,
|
||||
TrafficLight.GetGreenTime(),
|
||||
TrafficLight.GetYellowTime(),
|
||||
TrafficLight.GetRedTime()
|
||||
};
|
||||
TrafficLightTimes.Add(TrafficLightTime);
|
||||
auto CarlaActor = Episode->GetActorRegistry().FindCarlaActor(&TrafficLight);
|
||||
if (CarlaActor)
|
||||
{
|
||||
auto DatabaseId = CarlaActor->GetActorId();
|
||||
CarlaRecorderTrafficLightTime TrafficLightTime{
|
||||
DatabaseId,
|
||||
TrafficLight.GetGreenTime(),
|
||||
TrafficLight.GetYellowTime(),
|
||||
TrafficLight.GetRedTime()
|
||||
};
|
||||
TrafficLightTimes.Add(TrafficLightTime);
|
||||
}
|
||||
}
|
||||
|
||||
void FFrameData::AddPosition(const CarlaRecorderPosition &Position)
|
||||
|
|
|
@ -307,10 +307,14 @@ void ACarlaRecorder::AddVehicleLight(FCarlaActor *CarlaActor)
|
|||
void ACarlaRecorder::AddVehicleDoor(const ACarlaWheeledVehicle &Vehicle, const EVehicleDoor SDoors, bool bIsOpen)
|
||||
{
|
||||
CarlaRecorderDoorVehicle DoorVehicle;
|
||||
DoorVehicle.DatabaseId = Episode->GetActorRegistry().FindCarlaActor(&Vehicle)->GetActorId();
|
||||
DoorVehicle.Doors = static_cast<CarlaRecorderDoorVehicle::VehicleDoorType>(SDoors);
|
||||
DoorVehicle.bIsOpen = bIsOpen;
|
||||
AddDoorVehicle(DoorVehicle);
|
||||
auto CarlaActor = Episode->GetActorRegistry().FindCarlaActor(&Vehicle);
|
||||
if (CarlaActor)
|
||||
{
|
||||
DoorVehicle.DatabaseId = CarlaActor->GetActorId();
|
||||
DoorVehicle.Doors = static_cast<CarlaRecorderDoorVehicle::VehicleDoorType>(SDoors);
|
||||
DoorVehicle.bIsOpen = bIsOpen;
|
||||
AddDoorVehicle(DoorVehicle);
|
||||
}
|
||||
}
|
||||
|
||||
void ACarlaRecorder::AddActorKinematics(FCarlaActor *CarlaActor)
|
||||
|
@ -353,12 +357,17 @@ void ACarlaRecorder::AddTriggerVolume(const ATrafficSignBase &TrafficSign)
|
|||
{
|
||||
return;
|
||||
}
|
||||
auto CarlaActor = Episode->GetActorRegistry().FindCarlaActor(&TrafficSign);
|
||||
if (!CarlaActor)
|
||||
{
|
||||
return;
|
||||
}
|
||||
UBoxComponent* Trigger = Triggers.Top();
|
||||
auto VolumeOrigin = Trigger->GetComponentLocation();
|
||||
auto VolumeExtent = Trigger->GetScaledBoxExtent();
|
||||
CarlaRecorderActorBoundingBox TriggerVolume =
|
||||
{
|
||||
Episode->GetActorRegistry().FindCarlaActor(&TrafficSign)->GetActorId(),
|
||||
CarlaActor->GetActorId(),
|
||||
{VolumeOrigin, VolumeExtent}
|
||||
};
|
||||
TriggerVolumes.Add(TriggerVolume);
|
||||
|
@ -370,9 +379,12 @@ void ACarlaRecorder::AddPhysicsControl(const ACarlaWheeledVehicle& Vehicle)
|
|||
if (bAdditionalData)
|
||||
{
|
||||
CarlaRecorderPhysicsControl Control;
|
||||
Control.DatabaseId = Episode->GetActorRegistry().FindCarlaActor(&Vehicle)->GetActorId();
|
||||
Control.VehiclePhysicsControl = Vehicle.GetVehiclePhysicsControl();
|
||||
PhysicsControls.Add(Control);
|
||||
if (auto CarlaActor = Episode->GetActorRegistry().FindCarlaActor(&Vehicle))
|
||||
{
|
||||
Control.DatabaseId = CarlaActor->GetActorId();
|
||||
Control.VehiclePhysicsControl = Vehicle.GetVehiclePhysicsControl();
|
||||
PhysicsControls.Add(Control);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -380,14 +392,17 @@ void ACarlaRecorder::AddTrafficLightTime(const ATrafficLightBase& TrafficLight)
|
|||
{
|
||||
if (bAdditionalData)
|
||||
{
|
||||
auto DatabaseId = Episode->GetActorRegistry().FindCarlaActor(&TrafficLight)->GetActorId();
|
||||
CarlaRecorderTrafficLightTime TrafficLightTime{
|
||||
DatabaseId,
|
||||
TrafficLight.GetGreenTime(),
|
||||
TrafficLight.GetYellowTime(),
|
||||
TrafficLight.GetRedTime()
|
||||
};
|
||||
TrafficLightTimes.Add(TrafficLightTime);
|
||||
if (auto CarlaActor = Episode->GetActorRegistry().FindCarlaActor(&TrafficLight))
|
||||
{
|
||||
auto DatabaseId = CarlaActor->GetActorId();
|
||||
CarlaRecorderTrafficLightTime TrafficLightTime{
|
||||
DatabaseId,
|
||||
TrafficLight.GetGreenTime(),
|
||||
TrafficLight.GetYellowTime(),
|
||||
TrafficLight.GetRedTime()
|
||||
};
|
||||
TrafficLightTimes.Add(TrafficLightTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -69,9 +69,9 @@ enum class CarlaRecorderPacketId : uint8_t
|
|||
FrameCounter,
|
||||
WalkerBones,
|
||||
VisualTime,
|
||||
VehicleDoor,
|
||||
AnimVehicleWheels,
|
||||
AnimBiker
|
||||
AnimBiker,
|
||||
VehicleDoor
|
||||
};
|
||||
|
||||
/// Recorder for the simulation
|
||||
|
|
Loading…
Reference in New Issue