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
 
void SetSensorName (const FString newName)
 
virtual FString GetTopicName ()
 
UTopic * GetROSTopic () const
 
void SetSimulateSensor (bool SimulateSensor)
 
bool CanSimulateSensor () const
 
ASensorModelGetSensorModel () const
 
void SetSensorModel (ASensorModel *NewSensorModel)
 
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
 
- 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
 
virtual void CreateROSTopic ()
 
virtual void DestroyROSTopic ()
 
virtual void CreateDataSavePath ()
 
bool IsLogFileCreated ()
 
virtual void CreateLogFile ()
 
void WriteToLogFile (const FString &Message)
 

Protected Attributes

UBoxComponent * BoxComponent = nullptr
 
USphereComponent * SphereComponent = nullptr
 
UBoundsVisualizerComponent * VisualizerComponent = nullptr
 
- Protected Attributes inherited from ASensor
UTopic * ROSTopic = nullptr
 
bool SendDataToROS = true
 
ULogFileLogFile = 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)
 
FString TryGetID (AActor *Actor)
 

Private Attributes

TSharedPtr< ROSMessages::std_msgs::String > ROSMessage
 
ETriggerShape OverlapShape = ETriggerShape::Sphere
 
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 30 of file OverlapSensor.h.

Constructor & Destructor Documentation

◆ AOverlapSensor()

AOverlapSensor::AOverlapSensor ( const FObjectInitializer &  ObjectInitializer)

Definition at line 19 of file OverlapSensor.cpp.

19 : Super(ObjectInitializer)
20{
21 PrimaryActorTick.bCanEverTick = false;
22
23 VisualizerComponent = CreateDefaultSubobject<UBoundsVisualizerComponent>(TEXT("BoundsVisualizerComponent"));
24 VisualizerComponent->SetupAttachment(RootComponent);
25 VisualizerComponent->SetGenerateOverlapEvents(false);
26 VisualizerComponent->SetVisibility(false);
27
28 BoxComponent = CreateDefaultSubobject<UBoxComponent>(TEXT("BoxComponent"));
29 BoxComponent->SetGenerateOverlapEvents(false);
30 BoxComponent->SetVisibility(false);
31
32 SphereComponent = CreateDefaultSubobject<USphereComponent>(TEXT("SphereComponent"));
33 SphereComponent->SetGenerateOverlapEvents(false);
34 SphereComponent->SetVisibility(false);
35}
USphereComponent * SphereComponent
UBoundsVisualizerComponent * VisualizerComponent
UBoxComponent * BoxComponent

References BoxComponent, SphereComponent, and VisualizerComponent.

Member Function Documentation

◆ BeginPlay()

void AOverlapSensor::BeginPlay ( )
overrideprivatevirtual

Reimplemented from ASensor.

Definition at line 136 of file OverlapSensor.cpp.

137{
138 Super::BeginPlay();
139
141 {
142 BoxComponent->OnComponentBeginOverlap.AddDynamic(this, &AOverlapSensor::OnOverlapBegin);
143 BoxComponent->OnComponentEndOverlap.AddDynamic(this, &AOverlapSensor::OnOverlapEnd);
144 }
146 {
147 SphereComponent->OnComponentBeginOverlap.AddDynamic(this, &AOverlapSensor::OnOverlapBegin);
148 SphereComponent->OnComponentEndOverlap.AddDynamic(this, &AOverlapSensor::OnOverlapEnd);
149 }
150}
void OnOverlapEnd(UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex)
ETriggerShape OverlapShape
void OnOverlapBegin(UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)

References Box, BoxComponent, OnOverlapBegin(), OnOverlapEnd(), OverlapShape, Sphere, and SphereComponent.

◆ BuildAndSendMessage()

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

Definition at line 290 of file OverlapSensor.cpp.

291{
292 if (!Actor)
293 {
294 return;
295 }
296
297 FString ID = TryGetID(Actor);
298 FString Message;
299
300 if (ID.IsEmpty())
301 {
302 Message = FString::Printf(TEXT("%s: %s"), *Prefix, *Actor->GetName());
303 }
304 else
305 {
306 Message = FString::Printf(TEXT("%s: %s: ID: %s"), *Prefix, *Actor->GetName(), *ID);
307 }
308
309 UTopic* Topic = GetROSTopic();
310 if (ROSMessage.IsValid() && Topic && IsROSConnected())
311 {
312 ROSMessage->_Data = Message;
313 Topic->Publish(ROSMessage);
314 }
315
316 WriteToLogFile(Message);
317
318 if (Vehicle)
319 {
320 FString Msg = FString::Printf(TEXT("Actor '%s' with ID: '%s' %s"), *VehicleName, *VehicleID, *Message);
322 }
323}
TSharedPtr< ROSMessages::std_msgs::String > ROSMessage
FString VehicleName
AVehicle * Vehicle
FString TryGetID(AActor *Actor)
UTopic * GetROSTopic() const
Definition: Sensor.h:141
bool IsROSConnected() const
Definition: Sensor.h:192
void WriteToLogFile(const FString &Message)
Definition: Sensor.cpp:242
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().

◆ EndPlay()

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

Reimplemented from ASensor.

Definition at line 152 of file OverlapSensor.cpp.

153{
154 Super::EndPlay(EndPlayReason);
155
157 {
158 BoxComponent->OnComponentBeginOverlap.RemoveDynamic(this, &AOverlapSensor::OnOverlapBegin);
159 BoxComponent->OnComponentEndOverlap.RemoveDynamic(this, &AOverlapSensor::OnOverlapEnd);
160 }
162 {
163 SphereComponent->OnComponentBeginOverlap.RemoveDynamic(this, &AOverlapSensor::OnOverlapBegin);
164 SphereComponent->OnComponentEndOverlap.RemoveDynamic(this, &AOverlapSensor::OnOverlapEnd);
165 }
166}

References Box, BoxComponent, OnOverlapBegin(), OnOverlapEnd(), OverlapShape, Sphere, and SphereComponent.

◆ GetParametersAsString()

virtual FString AOverlapSensor::GetParametersAsString ( ) const
inlineoverridevirtual

Get this sensor parameters as string

Reimplemented from ASensor.

Definition at line 84 of file OverlapSensor.h.

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

◆ GetSensorType()

virtual ESensorTypes AOverlapSensor::GetSensorType ( ) const
inlineoverridevirtual

Get type of the sensor

Returns
Sensor's type

Reimplemented from ASensor.

Definition at line 45 of file OverlapSensor.h.

46 {
48 }

References Overlap.

◆ Init()

void AOverlapSensor::Init ( FOverlapSensorParameters  InParameters)

Definition at line 37 of file OverlapSensor.cpp.

38{
39 Parameters = InParameters;
40
41 Vehicle = Cast<AVehicle>(Parameters.OwningActor);
42
43 if (Vehicle)
44 {
47 }
48
50
51 UPrimitiveComponent* TriggerComponent = (OverlapShape == ETriggerShape::Box)
52 ? Cast<UPrimitiveComponent>(BoxComponent) : Cast<UPrimitiveComponent>(SphereComponent);
53
54 // if you change DefaultEngine.ini collision channels then this index must be changed as well!
55 const int32 OverlapSensorIndex = 2;
56
58 {
59 BoxComponent->SetGenerateOverlapEvents(true);
60 SphereComponent->SetGenerateOverlapEvents(false);
61 TriggerComponent = BoxComponent;
62
63 const ECollisionChannel OverlapSensorChannel = UCollisionProfile::Get()->ConvertToCollisionChannel(false, OverlapSensorIndex);
64 BoxComponent->SetCollisionObjectType(OverlapSensorChannel);
65 BoxComponent->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
66 BoxComponent->SetCollisionResponseToChannel(OverlapSensorChannel, ECollisionResponse::ECR_Overlap);
67 BoxComponent->SetRelativeLocation(Parameters.RelativePosition);
68
69 SphereComponent->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
70
71 if (RootComponent)
72 {
73 BoxComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepWorldTransform);
74 }
75
77 {
78 VisualizerComponent->SetCubeMesh();
79 }
80 }
82 {
83 BoxComponent->SetGenerateOverlapEvents(false);
84 SphereComponent->SetGenerateOverlapEvents(true);
85
86 const ECollisionChannel OverlapSensorChannel = UCollisionProfile::Get()->ConvertToCollisionChannel(false, OverlapSensorIndex);
87 SphereComponent->SetCollisionObjectType(OverlapSensorChannel);
88 SphereComponent->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
89 SphereComponent->SetCollisionResponseToChannel(OverlapSensorChannel, ECollisionResponse::ECR_Overlap);
90 SphereComponent->SetRelativeLocation(Parameters.RelativePosition);
91
92 BoxComponent->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
93
94 if (RootComponent)
95 {
96 SphereComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepWorldTransform);
97 }
98
99 TriggerComponent = SphereComponent;
100 }
101
102 if (TriggerComponent)
103 {
104 SetOverlapBounds(InParameters.Size);
105 //SetRootComponent(TriggerComponent);
106 SetSimulateSensor(true);
107
108 ROSMessages::std_msgs::String StringMsg;
109 ROSMessage = MakeShared<ROSMessages::std_msgs::String>(StringMsg);
110
112 {
114 }
115 }
116
118 {
119 // Adjust the scale of the Sphere/Box component bounds to match the scale of the VisualizerComponent mesh
120 FVector ScaledVector = FVector(Parameters.Size.X / SIZE_DIVISOR, Parameters.Size.Y / SIZE_DIVISOR, Parameters.Size.Z / SIZE_DIVISOR);
121 VisualizerComponent->SetRelativeScale3D(ScaledVector);
122 VisualizerComponent->SetRelativeLocation(Parameters.RelativePosition);
123
124 if (RootComponent)
125 {
126 VisualizerComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepWorldTransform);
127 }
128 }
129
131 {
132 AttachToActor(Parameters.OwningActor, FAttachmentTransformRules::KeepWorldTransform);
133 }
134}
static constexpr float SIZE_DIVISOR
void SetOverlapBounds(const FVector &NewSize)
void SetSimulateSensor(bool SimulateSensor)
Definition: Sensor.h:151
virtual void CreateROSTopic()
Definition: Sensor.cpp:146
virtual FString GetActorID_Implementation() const override
Definition: Vehicle.h:203
virtual FString GetActorName_Implementation() const override
Definition: Vehicle.h:208

References Box, BoxComponent, FOverlapSensorParameters::CreateROSTopic, ASensor::CreateROSTopic(), AVehicle::GetActorID_Implementation(), AVehicle::GetActorName_Implementation(), OverlapShape, FOverlapSensorParameters::OwningActor, Parameters, FOverlapSensorParameters::RelativePosition, ROSMessage, SetOverlapBounds(), ASensor::SetSimulateSensor(), FOverlapSensorParameters::Size, SIZE_DIVISOR, Sphere, SphereComponent, FOverlapSensorParameters::TriggerShape, Vehicle, VehicleID, VehicleName, and VisualizerComponent.

Referenced by USensorFactory::SpawnOverlapSensor().

◆ IsVisualizingOverlapArea()

bool AOverlapSensor::IsVisualizingOverlapArea ( ) const
inline

Definition at line 79 of file OverlapSensor.h.

80 {
81 return IsVisible;
82 }

◆ OnOverlapBegin()

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

Definition at line 264 of file OverlapSensor.cpp.

266{
267 // Don't allow Overlapping with other Overlapping sensors..
268 AOverlapSensor* OtherOverlapSensor = Cast< AOverlapSensor>(OtherActor);
269 if (OtherOverlapSensor)
270 {
271 return;
272 }
273
274 BuildAndSendMessage("Overlap Begin with", OtherActor);
275}
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 277 of file OverlapSensor.cpp.

279{
280 // Don't allow Overlapping with other Overlapping sensors..
281 AOverlapSensor* OtherOverlapSensor = Cast< AOverlapSensor>(OtherActor);
282 if (OtherOverlapSensor)
283 {
284 return;
285 }
286
287 BuildAndSendMessage("Overlap End with", OtherActor);
288}

References BuildAndSendMessage().

Referenced by BeginPlay(), and EndPlay().

◆ SetOverlapBounds()

void AOverlapSensor::SetOverlapBounds ( const FVector &  NewSize)

Set this Overlap sensor Overlap bounds.

Definition at line 168 of file OverlapSensor.cpp.

169{
170 Parameters.Size = NewSize;
171
173 {
174 BoxComponent->SetBoxExtent(NewSize);
175 }
177 {
178 SphereComponent->SetSphereRadius(FMath::Max3(NewSize.X, NewSize.Y, NewSize.Z));
179 }
180
182 {
183 // Adjust the scale of the Sphere/Box component bounds to match the scale of the VisualizerComponent mesh
184 FVector ScaledVector = FVector(Parameters.Size.X / SIZE_DIVISOR, Parameters.Size.Y / SIZE_DIVISOR, Parameters.Size.Z / SIZE_DIVISOR);
185 VisualizerComponent->SetRelativeScale3D(ScaledVector);
186 }
187
188 FString Msg = FString::Printf(TEXT("OverlapSensor with ID: %s changed overlap bounds to: %s"), *GetActorID_Implementation(), *NewSize.ToString());
190}
virtual FString GetActorID_Implementation() const override
Definition: Sensor.h:207

References Box, BoxComponent, ASensor::GetActorID_Implementation(), SimulatorLog::Log(), OverlapShape, Parameters, FOverlapSensorParameters::Size, SIZE_DIVISOR, Sphere, SphereComponent, and VisualizerComponent.

Referenced by UROSCommands::HandleChangeOverlapSensorBounds(), and Init().

◆ SetOverlapRelativePosition()

void AOverlapSensor::SetOverlapRelativePosition ( const FVector &  Vector)

Set this Overlap sensor relative position to parent.

Definition at line 222 of file OverlapSensor.cpp.

223{
225
226 if (SphereComponent)
227 {
228 SphereComponent->SetRelativeLocation(Parameters.RelativePosition);
229 }
230
231 if (BoxComponent)
232 {
233 BoxComponent->SetRelativeLocation(Parameters.RelativePosition);
234 }
235
237 {
238 VisualizerComponent->SetRelativeLocation(Parameters.RelativePosition);
239 }
240
241 FString Msg = FString::Printf(TEXT("OverlapSensor.cpp: Changed overlap relative position to: %s"), *Vector.ToString());
243}

References BoxComponent, SimulatorLog::Log(), Parameters, FOverlapSensorParameters::RelativePosition, SphereComponent, and VisualizerComponent.

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 245 of file OverlapSensor.cpp.

246{
247 if (Response != ECollisionResponse::ECR_Overlap && Response != ECollisionResponse::ECR_Ignore)
248 {
249 // If Response is neither ECR_Overlap nor ECR_Ignore, return
250 return;
251 }
252
253 if (SphereComponent)
254 {
255 SphereComponent->SetCollisionResponseToAllChannels(Response);
256 }
257
258 if (BoxComponent)
259 {
260 BoxComponent->SetCollisionResponseToAllChannels(Response);
261 }
262}

References BoxComponent, and SphereComponent.

◆ SetVisualizeOverlapArea()

void AOverlapSensor::SetVisualizeOverlapArea ( bool  Visualize)

Set this Overlap sensor bounds visulization on or off.

Definition at line 192 of file OverlapSensor.cpp.

193{
194 IsVisible = Visualize;
195
197 {
198 VisualizerComponent->SetVisibility(Visualize);
199 }
200
201#if WITH_EDITOR
202 // Visualize BoxComponent/SphereComponent with DrawDebug for debugging purposes,
203 // BoxComponent/SphereComponent and VisualizerComponent bounds should be equal
204 if (Visualize)
205 {
207 {
208 BoxComponent->SetGenerateOverlapEvents(true);
209 DrawDebugBox(GetWorld(), GetActorLocation(), BoxComponent->GetScaledBoxExtent(), FColor::Red, false, 3.0f);
210 }
212 {
213 SphereComponent->SetGenerateOverlapEvents(true);
214 DrawDebugSphere(GetWorld(), GetActorLocation(), SphereComponent->GetScaledSphereRadius(), 32, FColor::Red, false, 3.0f);
215 }
216 }
217
218 UE_LOG(LogTemp, Warning, TEXT("OverlapSensor.cpp: Visualize overlap bounds: %s"), (Visualize ? TEXT("true") : TEXT("false")));
219#endif
220}

References Box, BoxComponent, IsVisible, OverlapShape, Sphere, SphereComponent, and VisualizerComponent.

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

◆ TryGetID()

FString AOverlapSensor::TryGetID ( AActor *  Actor)
private

Definition at line 325 of file OverlapSensor.cpp.

326{
327 FString ID;
328
329 if (Actor && Actor->GetClass()->ImplementsInterface(UActorInformation::StaticClass()))
330 {
331 IActorInformation* ActorInfo = Cast<IActorInformation>(Actor);
332 if (ActorInfo)
333 {
334 ID = ActorInfo->GetActorID_Implementation();
335 }
336 }
337
338 return ID;
339}

Referenced by BuildAndSendMessage().

Member Data Documentation

◆ BoxComponent

UBoxComponent* AOverlapSensor::BoxComponent = nullptr
protected

◆ IsVisible

bool AOverlapSensor::IsVisible = false
private

Definition at line 131 of file OverlapSensor.h.

Referenced by SetVisualizeOverlapArea().

◆ OverlapShape

ETriggerShape AOverlapSensor::OverlapShape = ETriggerShape::Sphere
private

Definition at line 120 of file OverlapSensor.h.

Referenced by BeginPlay(), EndPlay(), Init(), SetOverlapBounds(), and SetVisualizeOverlapArea().

◆ Parameters

FOverlapSensorParameters AOverlapSensor::Parameters
private

Definition at line 122 of file OverlapSensor.h.

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

◆ ROSMessage

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

Definition at line 118 of file OverlapSensor.h.

Referenced by BuildAndSendMessage(), and Init().

◆ SphereComponent

USphereComponent* AOverlapSensor::SphereComponent = nullptr
protected

◆ Vehicle

AVehicle* AOverlapSensor::Vehicle = nullptr
private

◆ VehicleID

FString AOverlapSensor::VehicleID
private

Definition at line 129 of file OverlapSensor.h.

Referenced by BuildAndSendMessage(), and Init().

◆ VehicleName

FString AOverlapSensor::VehicleName
private

Definition at line 127 of file OverlapSensor.h.

Referenced by BuildAndSendMessage(), and Init().

◆ VisualizerComponent

UBoundsVisualizerComponent* AOverlapSensor::VisualizerComponent = nullptr
protected

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