|
CARLA
|
A sensor to register collisions. More...
#include <CollisionSensor.h>
Inheritance diagram for ACollisionSensor:Public Member Functions | |
| ACollisionSensor (const FObjectInitializer &ObjectInitializer) | |
| void | SetOwner (AActor *NewOwner) override |
Public Member Functions inherited from ASensor | |
| bool | AreClientsListening () |
| ASensor (const FObjectInitializer &ObjectInitializer) | |
| virtual void | BeginPlay () |
| void | ClearReadyToTick () |
| std::optional< FActorAttribute > | GetAttribute (const FString Name) |
| const UCarlaEpisode & | GetEpisode () const |
| virtual void | GetMirrorState (carla::multigpu::SensorState &State) const |
| Multi-GPU: the runtime state this sensor starts its next tick from (noise generator, sweep angle, history). | |
| URandomEngine * | GetRandomEngine () |
| float | GetReadyToTickDeltaSeconds () const |
| int32 | GetSeed () const |
| auto | GetToken () const |
| Return the token that allows subscribing to this sensor's stream. | |
| bool | IsReadyToTick () const |
| 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. | |
| void | SetEpisode (const UCarlaEpisode &InEpisode) |
| virtual void | SetMirrorState (const carla::multigpu::SensorState &State) |
| void | SetPrimaryTick (float DeltaSeconds) |
| Multi-GPU secondary: tick in this engine frame, with the primary's delta. | |
| void | SetSavingDataToDisk (bool bSavingData) |
| void | SetSeed (int32 InSeed) |
| void | Tick (const float DeltaTime) final |
Static Public Member Functions | |
| static FActorDefinition | GetSensorDefinition () |
Static Public Member Functions inherited from ASensor | |
| static FSensorCaptureContext | MakeCaptureContext (const ASensor &Sensor) |
| Call on the game thread right after CaptureScene(). | |
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. | |
Additional Inherited Members | |
Protected Member Functions inherited from ASensor | |
| void | EndPlay (EEndPlayReason::Type EndPlayReason) override |
| template<typename SensorType > | |
| FAsyncDataStream | GetDataStream (SensorType &&Self) |
| Return the FDataStream associated with this sensor. | |
| void | PostActorCreated () override |
Static Protected Member Functions inherited from ASensor | |
| template<typename SensorType , typename ElementType > | |
| static void | SendDataToClient (SensorType &&Sensor, TArrayView< ElementType > SensorData, const FSensorCaptureContext &CaptureContext) |
Protected Attributes inherited from ASensor | |
| bool | bIsActive = false |
| bool | bSavingDataToDisk = false |
| URandomEngine * | RandomEngine = nullptr |
| Random Engine used to provide noise for sensor output. | |
| int32 | Seed = 123456789 |
| Seed of the pseudo-random engine. | |
A sensor to register collisions.
Definition at line 19 of file CollisionSensor.h.
| ACollisionSensor::ACollisionSensor | ( | const FObjectInitializer & | ObjectInitializer | ) |
Definition at line 16 of file CollisionSensor.cpp.
|
static |
Definition at line 22 of file CollisionSensor.cpp.
References UActorBlueprintFunctionLibrary::MakeGenericSensorDefinition().
|
private |
Definition at line 41 of file CollisionSensor.cpp.
References Collision, CollisionRegistry, carla::streaming::detail::token_type::get_stream_id(), ASensor::GetDataStream(), ASensor::GetEpisode(), FCarlaEngine::GetFrameCounter(), carla::ros2::ROS2::GetInstance(), ASensor::GetToken(), and FAsyncDataStreamTmpl< T >::SerializeAndSend().
Referenced by SetOwner().
|
override |
Definition at line 29 of file CollisionSensor.cpp.
References OnCollisionEvent().
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().