44 FVector NormalImpulse,
45 const FHitResult& Hit)
47 if (Actor ==
nullptr || OtherActor ==
nullptr)
59 [CurrentFrame](std::tuple<uint64_t, AActor*, AActor*> Item)
61 return std::get<0>(Item) < CurrentFrame;
68 if (std::get<0>(
Collision) == CurrentFrame &&
77 constexpr float TO_METERS = 1e-2;
78 NormalImpulse *= TO_METERS;
81 CurrentEpisode.SerializeActor(Actor),
82 CurrentEpisode.SerializeActor(OtherActor),
84 (
float)NormalImpulse.X,
85 (
float)NormalImpulse.Y,
86 (
float)NormalImpulse.Z));
88 if (CurrentEpisode.GetRecorder()->IsEnabled()) {
89 CurrentEpisode.GetRecorder()->AddCollision(Actor, OtherActor);
97 if (ROS2->IsEnabled())
99 TRACE_CPUPROFILER_EVENT_SCOPE_STR(
"ROS2 Send");
102 (
float)NormalImpulse.X,
103 (
float)NormalImpulse.Y,
104 (
float)NormalImpulse.Z);
105 AActor* ParentActor = GetAttachParentActor();
108 FTransform LocalTransformRelativeToParent = GetActorTransform().GetRelativeTransform(ParentActor->GetActorTransform());
109 ROS2->ProcessDataFromCollisionSensor(
111 LocalTransformRelativeToParent,
112 OtherActor->GetUniqueID(),
118 ROS2->ProcessDataFromCollisionSensor(
121 OtherActor->GetUniqueID(),