CARLA
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
ACollisionSensor Class Reference

A sensor to register collisions. More...

#include <CollisionSensor.h>

+ Inheritance diagram for ACollisionSensor:
+ Collaboration diagram for ACollisionSensor:

Public Member Functions

 ACollisionSensor (const FObjectInitializer &ObjectInitializer)
 
void SetOwner (AActor *NewOwner) override
 
- Public Member Functions inherited from ASensor
 ASensor (const FObjectInitializer &ObjectInitializer)
 
virtual void BeginPlay ()
 
boost::optional< FActorAttributeGetAttribute (const FString Name)
 
const UCarlaEpisodeGetEpisode () const
 
URandomEngineGetRandomEngine ()
 
int32 GetSeed () const
 
auto GetToken () const
 Return the token that allows subscribing to this sensor's stream. More...
 
bool IsStreamReady ()
 
FDataStream MoveDataStream ()
 
virtual void OnFirstClientConnected ()
 
virtual void OnLastClientDisconnected ()
 
virtual void PostPhysTick (UWorld *World, ELevelTick TickType, float DeltaSeconds)
 
void PostPhysTickInternal (UWorld *World, ELevelTick TickType, float DeltaSeconds)
 
virtual void PrePhysTick (float DeltaSeconds)
 
virtual void Set (const FActorDescription &Description)
 
void SetDataStream (FDataStream InStream)
 Replace the FDataStream associated with this sensor. More...
 
void SetEpisode (const UCarlaEpisode &InEpisode)
 
void SetSeed (int32 InSeed)
 
void Tick (const float DeltaTime) final
 

Static Public Member Functions

static FActorDefinition GetSensorDefinition ()
 

Private Member Functions

void OnCollisionEvent (AActor *Actor, AActor *OtherActor, FVector NormalImpulse, const FHitResult &Hit)
 

Private Attributes

std::vector< std::tuple< uint64_t, AActor *, AActor * > > CollisionRegistry
 Registry that saves all collisions. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ASensor
void EndPlay (EEndPlayReason::Type EndPlayReason) override
 
template<typename SensorT >
FAsyncDataStream GetDataStream (const SensorT &Self)
 Return the FDataStream associated with this sensor. More...
 
void PostActorCreated () override
 
- Protected Attributes inherited from ASensor
bool bIsActive = false
 
URandomEngineRandomEngine = nullptr
 Random Engine used to provide noise for sensor output. More...
 
int32 Seed = 123456789
 Seed of the pseudo-random engine. More...
 

Detailed Description

A sensor to register collisions.

Definition at line 19 of file CollisionSensor.h.

Constructor & Destructor Documentation

◆ ACollisionSensor()

ACollisionSensor::ACollisionSensor ( const FObjectInitializer &  ObjectInitializer)

Definition at line 17 of file CollisionSensor.cpp.

Member Function Documentation

◆ GetSensorDefinition()

FActorDefinition ACollisionSensor::GetSensorDefinition ( )
static

Definition at line 23 of file CollisionSensor.cpp.

References UActorBlueprintFunctionLibrary::MakeGenericSensorDefinition().

+ Here is the call graph for this function:

◆ OnCollisionEvent()

void ACollisionSensor::OnCollisionEvent ( AActor Actor,
AActor OtherActor,
FVector  NormalImpulse,
const FHitResult &  Hit 
)
private

Definition at line 42 of file CollisionSensor.cpp.

References ACarlaRecorder::AddCollision(), Collision, CollisionRegistry, ASensor::Episode, carla::streaming::detail::token_type::get_stream_id(), ASensor::GetDataStream(), ASensor::GetEpisode(), FCarlaEngine::GetFrameCounter(), carla::ros2::ROS2::GetInstance(), UCarlaEpisode::GetRecorder(), ASensor::GetToken(), ACarlaRecorder::IsEnabled(), UCarlaEpisode::SerializeActor(), and FAsyncDataStreamTmpl< T >::SerializeAndSend().

Referenced by SetOwner().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetOwner()

void ACollisionSensor::SetOwner ( AActor NewOwner)
override
Todo:
Deregister previous owner if there was one.

Definition at line 30 of file CollisionSensor.cpp.

References OnCollisionEvent().

+ Here is the call graph for this function:

Member Data Documentation

◆ CollisionRegistry

std::vector<std::tuple<uint64_t, AActor*, AActor*> > ACollisionSensor::CollisionRegistry
private

Registry that saves all collisions.

Used to avoid sending the same collision more than once per frame, as the collision sensor uses the PhysX substepping tick. Helps with sensor usage and stream overload.

Definition at line 42 of file CollisionSensor.h.

Referenced by OnCollisionEvent().


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