Agrarsense
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
AOverlapSensor Class Reference

#include <OverlapSensor.h>

Inheritance diagram for AOverlapSensor:
Inheritance graph
[legend]
Collaboration diagram for AOverlapSensor:
Collaboration graph
[legend]

Public Member Functions

 AOverlapSensor (const FObjectInitializer &ObjectInitializer)
 
void Init (FOverlapSensorParameters InParameters)
 
virtual ESensorTypes GetSensorType () const override
 
void SetOverlapBounds (const FVector &NewSize)
 
void SetVisualizeOverlapArea (bool Visualize)
 
void SetOverlapRelativePosition (const FVector &Vector)
 
void SetOverlapResponseToAllChannels (const ECollisionResponse Response)
 
bool IsVisualizingOverlapArea () const
 
virtual FString GetParametersAsString () const override
 
- Public Member Functions inherited from ASensor
 ASensor (const FObjectInitializer &ObjectInitializer)
 
FString ExportToJsonFile (const FString &FileName)
 
virtual ESensorTypes GetSensorType () const
 
FString GetSensorIdentifier () const
 
void SetSensorIdentifier (const FString newIdentifier)
 
FString GetSensorName () const
 
virtual FString GetParametersAsString () const
 
AVehicleIsAttachedToVehicle () const
 
void SetSensorName (const FString newName)
 
FString GetTopicName ()
 
UTopic * GetROSTopic () const
 
void SetSimulateSensor (bool SimulateSensor)
 
bool CanSimulateSensor () const
 
ASensorModelGetSensorModel () const
 
void SetSensorModel (ASensorModel *NewSensorModel)
 
FORCEINLINE bool IsROSConnected () const
 
UROSIntegrationGameInstance * GetROSGameInstance () const
 
virtual FString GetActorID_Implementation () const override
 
virtual FString GetActorName_Implementation () const override
 
virtual FString GetActorInformation_Implementation () const override
 
virtual void SetActorName_Implementation (const FString &NewActorName) override
 
virtual void SetActorIDAndName_Implementation (const FString &NewActorName, const FString &NewID) override
 
void SetParentActorPtr (AActor *ParentActorPtr)
 
- Public Member Functions inherited from IActorInformation
FString GetActorID () const
 
FString GetActorName () const
 
FString GetActorInformation () const
 
void SetActorName (const FString &NewActorName)
 
void SetActorIDAndName (const FString &NewActorName, const FString &NewID)
 

Protected Member Functions

void OnOverlapBegin (UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)
 
void OnOverlapEnd (UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex)
 
- Protected Member Functions inherited from ASensor
virtual void BeginPlay () override
 
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason) override
 
FString CreateTimeStampString () const
 
virtual void CreateROSTopic ()
 
virtual void DestroyROSTopic ()
 
virtual void CreateDataSavePath ()
 
bool IsLogFileCreated ()
 
virtual void CreateLogFile ()
 
void WriteToLogFile (const FString &Message)
 

Protected Attributes

UBoundsVisualizerComponent * BoundsComponent = nullptr
 
- Protected Attributes inherited from ASensor
UTopic * ROSTopic = nullptr
 
bool SendDataToROS = true
 
ULogFileLogFile = nullptr
 
AActor * ParentActor = nullptr
 
FString FileSavePath
 
UROSIntegrationGameInstance * ROSInstance = nullptr
 

Private Member Functions

virtual void BeginPlay () override
 
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason) override
 
void BuildAndSendMessage (const FString &Prefix, AActor *Actor)
 
void CreateDataSavePath () override
 
void CreateLogFile () override
 
FString TryGetID (AActor *Actor)
 

Private Attributes

TSharedPtr< ROSMessages::std_msgs::String > ROSMessage
 
FOverlapSensorParameters Parameters
 
AVehicleVehicle = nullptr
 
FString VehicleName
 
FString VehicleID
 
bool IsVisible = false
 

Additional Inherited Members

- Static Public Member Functions inherited from ASensor
static void HideComponentForAllCameras (UPrimitiveComponent *PrimitiveComponent)
 
static TMap< FString, FColor > GetSemanticColors ()
 
static TArray< TWeakObjectPtr< UPrimitiveComponent > > GetComponentsToHide ()
 
- Static Public Member Functions inherited from IActorInformation
static void SetAndValidateActorIDAndName (FString &ActorName, FString &ActorID, TWeakObjectPtr< AActor > Actor)
 
static bool DestroyActorByID (const FString &ID)
 
static AActor * GetActorByID (const FString &ID)
 
template<typename T >
static TArray< T * > GetActorsWithInterface ()
 
static void PrintAllIds ()
 
- Public Attributes inherited from ASensor
FSensorDestroy OnSensorDestroy
 
FString AttachedToComponent
 
FName AttachedToBone
 
- Static Protected Member Functions inherited from ASensor
template<typename InStructType >
static FString StructToString (const InStructType &InStruct)
 
- Static Protected Attributes inherited from ASensor
static FPrimitiveAdded OnPrimitiveAdded
 
static const FName NiagaraPointsInt = "User.PointCount"
 
static const FName NiagaraHitPoints = "User.HitPoints"
 
static const FName NiagaraHitColors = "User.HitColors"
 
static const FName NiagaraPointsFloat = "User.Test"
 

Detailed Description

Overlap sensor is a sensor that detects overlap with certain objects in the simulation. This can be useful for development purposes, such as determining when a Walker/Vehicle enters the "safe zone" of another Vehicle. Note that this sensor does not simulate any real-world sensor.

Definition at line 28 of file OverlapSensor.h.

Constructor & Destructor Documentation

◆ AOverlapSensor()

AOverlapSensor::AOverlapSensor ( const FObjectInitializer &  ObjectInitializer)

Definition at line 17 of file OverlapSensor.cpp.

17 : Super(ObjectInitializer)
18{
19 PrimaryActorTick.bCanEverTick = false;
20
21 BoundsComponent = CreateDefaultSubobject<UBoundsVisualizerComponent>(TEXT("BoundsComponent"));
22 BoundsComponent->SetupAttachment(RootComponent);
23 BoundsComponent->SetGenerateOverlapEvents(true);
24 BoundsComponent->SetVisibility(false);
25 BoundsComponent->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
26}
UBoundsVisualizerComponent * BoundsComponent
Definition: OverlapSensor.h:98

References BoundsComponent.

Member Function Documentation

◆ BeginPlay()

void AOverlapSensor::BeginPlay ( )
overrideprivatevirtual

Reimplemented from ASensor.

Definition at line 103 of file OverlapSensor.cpp.

104{
105 Super::BeginPlay();
106
107 BoundsComponent->OnComponentBeginOverlap.AddDynamic(this, &AOverlapSensor::OnOverlapBegin);
108 BoundsComponent->OnComponentEndOverlap.AddDynamic(this, &AOverlapSensor::OnOverlapEnd);
109}
void OnOverlapEnd(UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex)
void OnOverlapBegin(UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)

References BoundsComponent, OnOverlapBegin(), and OnOverlapEnd().

◆ BuildAndSendMessage()

void AOverlapSensor::BuildAndSendMessage ( const FString &  Prefix,
AActor *  Actor 
)
private

Definition at line 198 of file OverlapSensor.cpp.

199{
200 if (!Actor)
201 {
202 return;
203 }
204
205 FString ID = TryGetID(Actor);
206 FString Message;
207
208 // Calculate distance from sensor parent (vehicle) to incoming Actor
209 AActor* From = this;
210 if (AActor* VehicleActorPtr = GetParentActor())
211 {
212 From = VehicleActorPtr;
213 }
214 float DistanceInMeters = FVector::Dist(From->GetActorLocation(), Actor->GetActorLocation()) / 100.0f;
215
216 // Get Actor Location
217 FVector Location = Actor->GetActorLocation();
218
219 // Format location info
220 FString LocationStr = FString::Printf(TEXT("Location: (%.2f, %.2f, %.2f)"),
221 Location.X, Location.Y, Location.Z);
222
223 // Add distance and location to the message
224 if (ID.IsEmpty())
225 {
226 Message = FString::Printf(TEXT("%s: %s, Distance: %.2f m, %s"),
227 *Prefix, *Actor->GetName(), DistanceInMeters, *LocationStr);
228 }
229 else
230 {
231 Message = FString::Printf(TEXT("%s: %s: ID: %s, Distance: %.2f m, %s"),
232 *Prefix, *Actor->GetName(), *ID, DistanceInMeters, *LocationStr);
233 }
234
235 UTopic* Topic = GetROSTopic();
236 if (ROSMessage.IsValid() && Topic && IsROSConnected())
237 {
238 ROSMessage->_Data = Message;
239 Topic->Publish(ROSMessage);
240 }
241
242 WriteToLogFile(Message);
243
244 if (Vehicle)
245 {
246 FString Msg = FString::Printf(TEXT("Actor '%s' with ID: '%s' %s"), *VehicleName, *VehicleID, *Message);
248 }
249}
TSharedPtr< ROSMessages::std_msgs::String > ROSMessage
FString VehicleName
AVehicle * Vehicle
FString TryGetID(AActor *Actor)
UTopic * GetROSTopic() const
Definition: Sensor.h:150
void WriteToLogFile(const FString &Message)
Definition: Sensor.cpp:295
FORCEINLINE bool IsROSConnected() const
Definition: Sensor.h:201
static void Log(const FString &Message, bool LogToTextFile=true, bool LogToROS=true)

References ASensor::GetROSTopic(), ASensor::IsROSConnected(), SimulatorLog::Log(), ROSMessage, TryGetID(), Vehicle, VehicleID, VehicleName, and ASensor::WriteToLogFile().

Referenced by OnOverlapBegin(), and OnOverlapEnd().

◆ CreateDataSavePath()

void AOverlapSensor::CreateDataSavePath ( )
overrideprivatevirtual

Creates data save path for this sensor. Can be overriden if needed.

Reimplemented from ASensor.

Definition at line 251 of file OverlapSensor.cpp.

252{
253 if (!FileSavePath.IsEmpty())
254 {
255 return;
256 }
257
258 const FString DataLocation = UAgrarsensePaths::GetDataFolder();
259
260 // Default save path
261 FileSavePath = DataLocation + GetActorID_Implementation() + "/";
262
263 if (AVehicle* AttachedVehicle = IsAttachedToVehicle())
264 {
265 // If sensor is attached to vehicle, save data to vehicle folder
266 FileSavePath = DataLocation + AttachedVehicle->GetActorID_Implementation();
267 }
268}
AVehicle * IsAttachedToVehicle() const
Definition: Sensor.cpp:152
virtual FString GetActorID_Implementation() const override
Definition: Sensor.h:216
FString FileSavePath
Definition: Sensor.h:372
static FString GetDataFolder()

References ASensor::FileSavePath, ASensor::GetActorID_Implementation(), UAgrarsensePaths::GetDataFolder(), and ASensor::IsAttachedToVehicle().

Referenced by CreateLogFile().

◆ CreateLogFile()

void AOverlapSensor::CreateLogFile ( )
overrideprivatevirtual

Create Text file for this sensor if it has not been created already. Text file will be created to ROOT/Data/Run/Logs directory. Filename will be SensorName_ID_UnixTimestamp.txt Can be overriden by individual sensor if needed.

Reimplemented from ASensor.

Definition at line 270 of file OverlapSensor.cpp.

271{
272 if (IsValid(LogFile))
273 {
274 // File has already been created, return
275 return;
276 }
277
279
280 FLogFileSettings Settings;
283 Settings.QueueLength = MAX_int32;
284 Settings.KeepFileOpen = false;
285 Settings.Timestamp = false;
286 Settings.OverrideFilePath = true;
287 Settings.FilePath = FileSavePath;
288
289 UE_LOG(LogTemp, Warning, TEXT("FileSavePath %s"), *FileSavePath);
290
291 LogFile = NewObject<ULogFile>(ULogFile::StaticClass());
292 if (IsValid(LogFile))
293 {
294 FString Prefix;
295 if (AVehicle* AttachedVehicle = IsAttachedToVehicle())
296 {
297 Prefix = AttachedVehicle->GetActorID_Implementation();
298 }
299 FString FileName = Prefix.IsEmpty() ? TEXT("overlap") : Prefix + TEXT("_overlap");
300
301 LogFile->Create(FileName, Settings);
302
303 }
304}
void CreateDataSavePath() override
ULogFile * LogFile
Definition: Sensor.h:367
void Create(const FString &FileNameWithoutExtension, FLogFileSettings Settings)
Definition: LogFile.cpp:40
bool KeepFileOpen
Definition: LogFile.h:42
bool Timestamp
Definition: LogFile.h:39
FString FilePath
Definition: LogFile.h:54
FFileWriteOptions FileWriteOptions
Definition: LogFile.h:45
int32 QueueLength
Definition: LogFile.h:48
bool OverrideFilePath
Definition: LogFile.h:51
FFileCreationOptions FileCreationOptions
Definition: LogFile.h:36

References ULogFile::Create(), CreateDataSavePath(), FLogFileSettings::FileCreationOptions, FLogFileSettings::FilePath, ASensor::FileSavePath, FLogFileSettings::FileWriteOptions, ASensor::IsAttachedToVehicle(), FLogFileSettings::KeepFileOpen, ASensor::LogFile, FLogFileSettings::OverrideFilePath, Overwrite, Queue, FLogFileSettings::QueueLength, and FLogFileSettings::Timestamp.

Referenced by Init().

◆ EndPlay()

void AOverlapSensor::EndPlay ( const EEndPlayReason::Type  EndPlayReason)
overrideprivatevirtual

Reimplemented from ASensor.

Definition at line 111 of file OverlapSensor.cpp.

112{
113 Super::EndPlay(EndPlayReason);
114
115 BoundsComponent->OnComponentBeginOverlap.RemoveDynamic(this, &AOverlapSensor::OnOverlapBegin);
116 BoundsComponent->OnComponentEndOverlap.RemoveDynamic(this, &AOverlapSensor::OnOverlapEnd);
117}

References BoundsComponent, OnOverlapBegin(), and OnOverlapEnd().

◆ GetParametersAsString()

virtual FString AOverlapSensor::GetParametersAsString ( ) const
inlineoverridevirtual

Get this sensor parameters as string

Reimplemented from ASensor.

Definition at line 82 of file OverlapSensor.h.

83 {
85 }
FOverlapSensorParameters Parameters
static FString StructToString(const InStructType &InStruct)
Definition: Sensor.h:325

◆ GetSensorType()

virtual ESensorTypes AOverlapSensor::GetSensorType ( ) const
inlineoverridevirtual

Get type of the sensor

Returns
Sensor's type

Reimplemented from ASensor.

Definition at line 43 of file OverlapSensor.h.

44 {
46 }

References Overlap.

◆ Init()

void AOverlapSensor::Init ( FOverlapSensorParameters  InParameters)

Definition at line 28 of file OverlapSensor.cpp.

29{
30 Parameters = InParameters;
31
32 Vehicle = Cast<AVehicle>(Parameters.OwningActor);
33
34 if (Vehicle)
35 {
36 VehicleName = IActorInformation::Execute_GetActorName(Vehicle);
37 VehicleID = IActorInformation::Execute_GetActorID(Vehicle);
38 }
39
40 UPrimitiveComponent* TriggerComponent = Cast<UPrimitiveComponent>(BoundsComponent);
41
42 if (!InParameters.AllChannels)
43 {
44 const int32 OverlapSensorIndex = 2;
45 const ECollisionChannel OverlapSensorChannel = UCollisionProfile::Get()->ConvertToCollisionChannel(false, OverlapSensorIndex);
46
47 BoundsComponent->SetCollisionObjectType(OverlapSensorChannel);
48 BoundsComponent->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
49 BoundsComponent->SetCollisionResponseToChannel(OverlapSensorChannel, ECollisionResponse::ECR_Overlap);
50 }
51 else
52 {
53 // Set to use custom collision profile defined in DefaultEngine.ini
54 BoundsComponent->SetCollisionProfileName(TEXT("OverlapSensorAll"));
55 }
56
57 BoundsComponent->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
58 BoundsComponent->SetGenerateOverlapEvents(true);
59 BoundsComponent->SetRelativeLocation(Parameters.RelativePosition);
60
61 if (RootComponent)
62 {
63 BoundsComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepWorldTransform);
64 }
65
66 TriggerComponent = BoundsComponent;
67
68 if (TriggerComponent)
69 {
70 SetOverlapBounds(InParameters.Size);
71 //SetRootComponent(TriggerComponent);
73
74 ROSMessages::std_msgs::String StringMsg;
75 ROSMessage = MakeShared<ROSMessages::std_msgs::String>(StringMsg);
76
78 {
80 }
81 }
82
84 {
85 FVector Size = FVector(Parameters.Size.X, Parameters.Size.Y, Parameters.Size.Z);
86 BoundsComponent->SetRelativeScale3D(Size);
87 BoundsComponent->SetRelativeLocation(Parameters.RelativePosition);
88
89 if (RootComponent)
90 {
91 BoundsComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepWorldTransform);
92 }
93 }
94
96 {
97 AttachToActor(Parameters.OwningActor, FAttachmentTransformRules::KeepWorldTransform);
98 }
99
101}
void CreateLogFile() override
void SetOverlapBounds(const FVector &NewSize)
void SetSimulateSensor(bool SimulateSensor)
Definition: Sensor.h:160
virtual void CreateROSTopic()
Definition: Sensor.cpp:190

References FOverlapSensorParameters::AllChannels, BoundsComponent, CreateLogFile(), FOverlapSensorParameters::CreateROSTopic, ASensor::CreateROSTopic(), FOverlapSensorParameters::OwningActor, Parameters, FOverlapSensorParameters::RelativePosition, ROSMessage, SetOverlapBounds(), ASensor::SetSimulateSensor(), FOverlapSensorParameters::Size, Vehicle, VehicleID, and VehicleName.

Referenced by USensorFactory::SpawnOverlapSensor().

◆ IsVisualizingOverlapArea()

bool AOverlapSensor::IsVisualizingOverlapArea ( ) const
inline

Definition at line 77 of file OverlapSensor.h.

78 {
79 return IsVisible;
80 }

◆ OnOverlapBegin()

void AOverlapSensor::OnOverlapBegin ( UPrimitiveComponent *  OverlappedComponent,
AActor *  OtherActor,
UPrimitiveComponent *  OtherComp,
int32  OtherBodyIndex,
bool  bFromSweep,
const FHitResult &  SweepResult 
)
protected

Definition at line 172 of file OverlapSensor.cpp.

174{
175 // Don't allow Overlapping with other Overlapping sensors..
176 AOverlapSensor* OtherOverlapSensor = Cast<AOverlapSensor>(OtherActor);
177 if (OtherOverlapSensor)
178 {
179 return;
180 }
181
182 BuildAndSendMessage("Overlap Begin with", OtherActor);
183}
void BuildAndSendMessage(const FString &Prefix, AActor *Actor)

References BuildAndSendMessage().

Referenced by BeginPlay(), and EndPlay().

◆ OnOverlapEnd()

void AOverlapSensor::OnOverlapEnd ( UPrimitiveComponent *  OverlappedComponent,
AActor *  OtherActor,
UPrimitiveComponent *  OtherComp,
int32  OtherBodyIndex 
)
protected

Definition at line 185 of file OverlapSensor.cpp.

187{
188 // Don't allow Overlapping with other Overlapping sensors..
189 AOverlapSensor* OtherOverlapSensor = Cast< AOverlapSensor>(OtherActor);
190 if (OtherOverlapSensor)
191 {
192 return;
193 }
194
195 BuildAndSendMessage("Overlap End with", OtherActor);
196}

References BuildAndSendMessage().

Referenced by BeginPlay(), and EndPlay().

◆ SetOverlapBounds()

void AOverlapSensor::SetOverlapBounds ( const FVector &  NewSize)

Set this Overlap sensor Overlap bounds.

Definition at line 119 of file OverlapSensor.cpp.

120{
121 Parameters.Size = NewSize;
122
123 if (BoundsComponent)
124 {
125 FVector Size = FVector(Parameters.Size.X, Parameters.Size.Y , Parameters.Size.Z);
126 BoundsComponent->SetRelativeScale3D(Size);
127 }
128
129 FString ActorID = IActorInformation::Execute_GetActorID(this);
130
131 FString Msg = FString::Printf(TEXT("OverlapSensor with ID: %s changed overlap bounds to: %s"), *ActorID, *NewSize.ToString());
133}

References BoundsComponent, SimulatorLog::Log(), Parameters, and FOverlapSensorParameters::Size.

Referenced by APIDDrone::ChangeDroneParameters(), UROSCommands::HandleChangeOverlapSensorBounds(), Init(), and AVehicle::SetVehicleParameters().

◆ SetOverlapRelativePosition()

void AOverlapSensor::SetOverlapRelativePosition ( const FVector &  Vector)

Set this Overlap sensor relative position to parent.

Definition at line 145 of file OverlapSensor.cpp.

146{
148
149 if (BoundsComponent)
150 {
151 BoundsComponent->SetRelativeLocation(Parameters.RelativePosition);
152 }
153
154 FString Msg = FString::Printf(TEXT("OverlapSensor.cpp: Changed overlap relative position to: %s"), *Vector.ToString());
156}

References BoundsComponent, SimulatorLog::Log(), Parameters, and FOverlapSensorParameters::RelativePosition.

Referenced by UROSCommands::HandleChangeOverlapSensorPosition().

◆ SetOverlapResponseToAllChannels()

void AOverlapSensor::SetOverlapResponseToAllChannels ( const ECollisionResponse  Response)

Set this sensor overlap response.

Parameters
ResponseThe desired collision response. ECR_Overlap: Allows all overlaps to be recognized. ECR_Ignore: Allows only Walker overlaps to be recognized. Other than ECR_Overlap or ECR_Ignore is ignored.

Definition at line 158 of file OverlapSensor.cpp.

159{
160 if (Response != ECollisionResponse::ECR_Overlap && Response != ECollisionResponse::ECR_Ignore)
161 {
162 // If Response is neither ECR_Overlap nor ECR_Ignore, return
163 return;
164 }
165
166 if (BoundsComponent)
167 {
168 BoundsComponent->SetCollisionResponseToAllChannels(Response);
169 }
170}

References BoundsComponent.

◆ SetVisualizeOverlapArea()

void AOverlapSensor::SetVisualizeOverlapArea ( bool  Visualize)

Set this Overlap sensor bounds visulization on or off.

Definition at line 135 of file OverlapSensor.cpp.

136{
137 IsVisible = Visualize;
138
139 if (BoundsComponent)
140 {
141 BoundsComponent->SetVisibility(IsVisible);
142 }
143}

References BoundsComponent, and IsVisible.

Referenced by APIDDrone::ChangeDroneParameters(), UROSCommands::HandleVisualizeOverlapSensorsBounds(), AVehicle::SetVehicleParameters(), and AVehicle::SetVisualizeVehicleOverlapArea().

◆ TryGetID()

FString AOverlapSensor::TryGetID ( AActor *  Actor)
private

Definition at line 306 of file OverlapSensor.cpp.

307{
308 FString ID;
309
310 if (Actor && Actor->GetClass()->ImplementsInterface(UActorInformation::StaticClass()))
311 {
312 if (Actor->Implements<UActorInformation>())
313 {
314 ID = IActorInformation::Execute_GetActorID(Actor);
315 }
316 }
317
318 return ID;
319}

Referenced by BuildAndSendMessage().

Member Data Documentation

◆ BoundsComponent

UBoundsVisualizerComponent* AOverlapSensor::BoundsComponent = nullptr
protected

◆ IsVisible

bool AOverlapSensor::IsVisible = false
private

Definition at line 125 of file OverlapSensor.h.

Referenced by SetVisualizeOverlapArea().

◆ Parameters

FOverlapSensorParameters AOverlapSensor::Parameters
private

Definition at line 116 of file OverlapSensor.h.

Referenced by Init(), SetOverlapBounds(), and SetOverlapRelativePosition().

◆ ROSMessage

TSharedPtr<ROSMessages::std_msgs::String> AOverlapSensor::ROSMessage
private

Definition at line 114 of file OverlapSensor.h.

Referenced by BuildAndSendMessage(), and Init().

◆ Vehicle

AVehicle* AOverlapSensor::Vehicle = nullptr
private

◆ VehicleID

FString AOverlapSensor::VehicleID
private

Definition at line 123 of file OverlapSensor.h.

Referenced by BuildAndSendMessage(), and Init().

◆ VehicleName

FString AOverlapSensor::VehicleName
private

Definition at line 121 of file OverlapSensor.h.

Referenced by BuildAndSendMessage(), and Init().


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