CARLA
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
UCarlaLidarSubsystem Class Reference

Subsystem responsible for simulating all ray-cast LiDARs of a world. More...

#include <CarlaLidarSubsystem.h>

+ Inheritance diagram for UCarlaLidarSubsystem:

Public Member Functions

virtual void Deinitialize () override
 
void FinishLidarSimulations (UWorld *World, float DeltaSeconds)
 
int32 GetActiveLidarCount () const
 
bool HasActiveLidars () const
 
void RegisterLidar (ARayCastSemanticLidar *Lidar)
 
void StartLidarSimulations (UWorld *World, float DeltaSeconds)
 
void UnregisterLidar (ARayCastSemanticLidar *Lidar)
 

Private Attributes

TArray< TWeakObjectPtr< ARayCastSemanticLidar > > ActiveLidars
 
FGraphEventRef LidarSimulationTask
 
TArray< TObjectPtr< ARayCastSemanticLidar > > LidarsToSimulate
 LiDARs due this frame, snapshotted on the game thread for the simulation task.
 

Detailed Description

Subsystem responsible for simulating all ray-cast LiDARs of a world.

Registered LiDARs are simulated asynchronously via TaskGraph high-priority worker tasks while the Game Thread processes remaining sensors (cameras, etc.). FSensorManager::PostPhysTick calls StartLidarSimulations() at the beginning of the post-physics tick, and FinishLidarSimulations() after other sensors finish.

Definition at line 26 of file CarlaLidarSubsystem.h.

Member Function Documentation

◆ Deinitialize()

void UCarlaLidarSubsystem::Deinitialize ( )
overridevirtual

Definition at line 23 of file CarlaLidarSubsystem.cpp.

References ActiveLidars, LidarSimulationTask, and LidarsToSimulate.

◆ FinishLidarSimulations()

void UCarlaLidarSubsystem::FinishLidarSimulations ( UWorld *  World,
float  DeltaSeconds 
)

◆ GetActiveLidarCount()

int32 UCarlaLidarSubsystem::GetActiveLidarCount ( ) const
inline

Definition at line 43 of file CarlaLidarSubsystem.h.

◆ HasActiveLidars()

bool UCarlaLidarSubsystem::HasActiveLidars ( ) const
inline

Definition at line 38 of file CarlaLidarSubsystem.h.

Referenced by StartLidarSimulations().

◆ RegisterLidar()

void UCarlaLidarSubsystem::RegisterLidar ( ARayCastSemanticLidar *  Lidar)

◆ StartLidarSimulations()

void UCarlaLidarSubsystem::StartLidarSimulations ( UWorld *  World,
float  DeltaSeconds 
)

◆ UnregisterLidar()

void UCarlaLidarSubsystem::UnregisterLidar ( ARayCastSemanticLidar *  Lidar)

Definition at line 50 of file CarlaLidarSubsystem.cpp.

References ActiveLidars.

Member Data Documentation

◆ ActiveLidars

TArray<TWeakObjectPtr<ARayCastSemanticLidar> > UCarlaLidarSubsystem::ActiveLidars
private

◆ LidarSimulationTask

FGraphEventRef UCarlaLidarSubsystem::LidarSimulationTask
private

◆ LidarsToSimulate

TArray<TObjectPtr<ARayCastSemanticLidar> > UCarlaLidarSubsystem::LidarsToSimulate
private

LiDARs due this frame, snapshotted on the game thread for the simulation task.

Definition at line 57 of file CarlaLidarSubsystem.h.

Referenced by Deinitialize(), FinishLidarSimulations(), and StartLidarSimulations().


The documentation for this class was generated from the following files: