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

#include <Vehicle.h>

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

Public Member Functions

 AVehicle ()
 
virtual EVehicleTypes GetVehicleType () const
 
void TogglePhysics (bool isOn)
 
void SetVehicleMeshVisibility (bool Visible)
 
void TeleportVehicleTo (FVector NewLocation, FRotator NewRotation)
 
virtual void TeleportVehicleTo_Implementation (FVector NewLocation, FRotator NewRotation)
 
void ResetCamera ()
 
void ToggleLights (bool isOn)
 
void SetVisualizeVehicleOverlapArea (bool Visible)
 
FString ExportToJsonFile (const FString &FileName)
 
void SetVehicleIsInGarage (bool VehicleIsInGarage)
 
bool IsVehicleInGarage () const
 
USensorsManagerComponent * GetSensorsManager () const
 
ACollisionSensorGetCollisionSensor () const
 
ATransformSensorGetTransformSensor () const
 
AOverlapSensorGetOverlapSensor () const
 
FTransform GetMovedFromGarageTransform () const
 
virtual void SetCurrentTransformToMovedFromGarageTransform ()
 
virtual FText GetInteractableName_Implementation () const override
 
virtual FTransform GetInteractableWorldTransform_Implementation () const override
 
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 SetVehicleParameters (FWheeledVehicleParameters NewParameters)
 
FWheeledVehicleParameters GetVehicleParameters () const
 
void ApplyVehicleParameters (FWheeledVehicleParameters CurrentParameters)
 
virtual void PossessedBy (AController *NewController) override
 
- Public Member Functions inherited from IInteractable
FText GetInteractableName () const
 
FTransform GetInteractableWorldTransform () const
 
- 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)
 

Public Attributes

FText InteractableName
 
FVehicleGarageChangedDelegate OnVehicleGarageChanged
 

Protected Member Functions

virtual void BeginPlay () override
 
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason) override
 
virtual void ROSBridgeStateChanged (EROSState ROSState)
 

Protected Attributes

FWheeledVehicleParameters VehicleParameters
 
TObjectPtr< USensorsManagerComponent > SensorsManager
 
ACollisionSensorCollisionSensor = nullptr
 
ATransformSensorTransformSensor = nullptr
 
AOverlapSensorOverlapSensor = nullptr
 
UNiagaraComponent * NiagaraComponent = nullptr
 
TArray< UStaticMeshComponent * > ExtraTransformSensorPositions
 
FString ActorName
 
FString ActorID
 
FTransform OriginalCameraTransform
 
FTransform MovedFromGarageTransform
 
bool VehicleInGarage = false
 
TArray< ATransformSensor * > ExtraTransformSensors
 

Additional Inherited Members

- 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 ()
 

Detailed Description

Definition at line 41 of file Vehicle.h.

Constructor & Destructor Documentation

◆ AVehicle()

AVehicle::AVehicle ( )

Definition at line 23 of file Vehicle.cpp.

24{
25 PrimaryActorTick.bCanEverTick = false;
26 SensorsManager = CreateDefaultSubobject<USensorsManagerComponent>(TEXT("SensorsManagerComp"));
27 InteractableName = NSLOCTEXT("Agrarsense", "VehicleInteractableName", "Vehicle");
28}
FText InteractableName
Definition: Vehicle.h:263
TObjectPtr< USensorsManagerComponent > SensorsManager
Definition: Vehicle.h:287

References InteractableName, and SensorsManager.

Member Function Documentation

◆ ApplyVehicleParameters()

void AVehicle::ApplyVehicleParameters ( FWheeledVehicleParameters  CurrentParameters)

Referenced by BeginPlay(), and SetVehicleParameters().

◆ BeginPlay()

void AVehicle::BeginPlay ( )
overrideprotectedvirtual

Reimplemented in AForwarder, AHarvester, and APIDDrone.

Definition at line 30 of file Vehicle.cpp.

31{
32 Super::BeginPlay();
33
34 TogglePhysics(true);
35
36 UROSHandler* ROSHandler = UAgrarsenseStatics::GetROSHandle(GetWorld());
37 if (ROSHandler)
38 {
39 ROSHandler->OnROSStateChanged.AddUniqueDynamic(this, &AVehicle::ROSBridgeStateChanged);
40 }
41
42 bool IsDrone = GetVehicleType() == EVehicleTypes::Drone;
43
44
45 FTransform transform = GetTransform();
46
47 // Create Collision sensor
48 FString VehicleCollisionSensorID = ActorID + "/collision";
49 FSensorSpawnParameters CollisionSensorSpawnParams;
50 CollisionSensorSpawnParams.Transform = transform;
51 CollisionSensorSpawnParams.SensorIdentifier = VehicleCollisionSensorID;
52 CollisionSensorSpawnParams.SensorName = "collision";
53 CollisionSensorSpawnParams.SimulateSensor = true;
54 CollisionSensorSpawnParams.Parent = this;
55
56 CollisionSensor = USensorFactory::SpawnCollisionSensor(CollisionSensorSpawnParams);
57
58 if (!IsDrone)
59 {
60 // Create Transform sensor for forwarder and harvester
61 FString VehicleTransformSensorID = ActorID + "/transform";
62 FSensorSpawnParameters TransformSensorSpawnParams;
63 TransformSensorSpawnParams.Transform = transform;
64 TransformSensorSpawnParams.SensorIdentifier = VehicleTransformSensorID;
65 TransformSensorSpawnParams.SensorName = "transform";
66 TransformSensorSpawnParams.SimulateSensor = true;
67 TransformSensorSpawnParams.Parent = this;
68
69 FTransformSensorParameters SensorParams;
70 SensorParams.SaveTransformDataToDisk = true;
71 SensorParams.OwningActor = this;
72
73 TransformSensor = USensorFactory::SpawnTransformSensor(TransformSensorSpawnParams, SensorParams);
74 }
75
76
77 // If in the bluerprint side, we have added extra transform sensor positions,
78 // we will create Transform sensors for those positions as well (eg. forwarder/harvester front and back sensors).
79 for (UStaticMeshComponent* Comp : ExtraTransformSensorPositions)
80 {
81 if (Comp)
82 {
83 FString CompName = Comp->GetName();
84
85 const FString VehicleTransformSensorID = FString::Printf(TEXT("%s/%s/transform"), *ActorID, *CompName);
86
87 FSensorSpawnParameters TransformSensorSpawnParams;
88 TransformSensorSpawnParams.Transform = transform;
89 TransformSensorSpawnParams.SensorIdentifier = VehicleTransformSensorID;
90 TransformSensorSpawnParams.SensorName = "transform";
91 TransformSensorSpawnParams.SimulateSensor = true;
92 TransformSensorSpawnParams.Parent = this;
93
95 Params.OwningActor = this;
96 Params.SaveTransformDataToDisk = false;
97 Params.UseOwningActorTransform = false;
98 Params.UsePrimiteRelativeTransform = false;
99 Params.PrimitiveComponent = Cast<UPrimitiveComponent>(Comp);
100
101 ExtraTransformSensors.AddUnique(USensorFactory::SpawnTransformSensor(TransformSensorSpawnParams, Params));
102 }
103 }
104
105 float NiagaraComponentHeight = 500.0f;
106 float OverlapBoundsSize = 50.0f;
107
108 if (IsDrone)
109 {
110 NiagaraComponentHeight = 200.0f;
111 }
112
113 FVector RelativePosition = FVector(0.0f, 0.0f, 0.0f);
115 {
116 // TODO make better solution for this.
117 RelativePosition = FVector(150.0f, -120.0f, 250.0f);
118 }
119
120 if (!IsDrone)
121 {
122 // Create overlap sensor for Forwarder and Harvester
123 // Drone overlap sensor(s) are created in PIDDrone BeginPlay
124
125 FString OverlapSensorID = ActorID + "/overlap";
126
127 FSensorSpawnParameters OverlapSensorSpawnParams;
128 OverlapSensorSpawnParams.Transform = transform;
129 OverlapSensorSpawnParams.SensorIdentifier = OverlapSensorID;
130 OverlapSensorSpawnParams.SensorName = "transform";
131 OverlapSensorSpawnParams.SimulateSensor = true;
132 OverlapSensorSpawnParams.Parent = this;
133
134 FOverlapSensorParameters SensorParams;
135 SensorParams.OwningActor = this;
136 SensorParams.Size = FVector(OverlapBoundsSize, OverlapBoundsSize, OverlapBoundsSize);
137 SensorParams.RelativePosition = RelativePosition;
138
139 OverlapSensor = USensorFactory::SpawnOverlapSensor(OverlapSensorSpawnParams, SensorParams);
140 }
141
142 // Load and setup rain/snow fall niagara system
143 UNiagaraSystem* NiagaraSystem = LoadObject<UNiagaraSystem>(nullptr, TEXT("/Game/Agrarsense/Particles/WaterAndSnow/NS_Particles.NS_Particles"));
144 if (NiagaraSystem)
145 {
146 NiagaraComponent = UNiagaraFunctionLibrary::SpawnSystemAttached(NiagaraSystem, this->GetRootComponent(),
147 FName("NiagaraEmitterSocketName"),
148 FVector(0.0, 0.0, NiagaraComponentHeight), FRotator::ZeroRotator, EAttachLocation::KeepRelativeOffset, true);
149 }
150 else
151 {
152 UE_LOG(LogTemp, Warning, TEXT("Vehicle.cpp: Couldn't find NS_Particles"));
153 }
154
156}
ACollisionSensor * CollisionSensor
Definition: Vehicle.h:290
TArray< UStaticMeshComponent * > ExtraTransformSensorPositions
Definition: Vehicle.h:304
FWheeledVehicleParameters VehicleParameters
Definition: Vehicle.h:281
TArray< ATransformSensor * > ExtraTransformSensors
Definition: Vehicle.h:319
FString ActorID
Definition: Vehicle.h:310
AOverlapSensor * OverlapSensor
Definition: Vehicle.h:296
virtual EVehicleTypes GetVehicleType() const
Definition: Vehicle.h:54
void ApplyVehicleParameters(FWheeledVehicleParameters CurrentParameters)
void TogglePhysics(bool isOn)
ATransformSensor * TransformSensor
Definition: Vehicle.h:293
UNiagaraComponent * NiagaraComponent
Definition: Vehicle.h:299
virtual void ROSBridgeStateChanged(EROSState ROSState)
Definition: Vehicle.cpp:220
static UROSHandler * GetROSHandle(const UObject *WorldContextObject)
FROSDelegate_ROState OnROSStateChanged
Definition: ROSHandler.h:81
static ATransformSensor * SpawnTransformSensor(const FSensorSpawnParameters SpawnParameters, FTransformSensorParameters SensorParameters)
static ACollisionSensor * SpawnCollisionSensor(const FSensorSpawnParameters SpawnParameters)
static AOverlapSensor * SpawnOverlapSensor(const FSensorSpawnParameters SpawnParameters, FOverlapSensorParameters SensorParameters)
UPrimitiveComponent * PrimitiveComponent

References ActorID, ApplyVehicleParameters(), CollisionSensor, Drone, ExtraTransformSensorPositions, ExtraTransformSensors, Forwarder, UAgrarsenseStatics::GetROSHandle(), GetVehicleType(), NiagaraComponent, UROSHandler::OnROSStateChanged, OverlapSensor, FOverlapSensorParameters::OwningActor, FTransformSensorParameters::OwningActor, FSensorSpawnParameters::Parent, FTransformSensorParameters::PrimitiveComponent, FOverlapSensorParameters::RelativePosition, ROSBridgeStateChanged(), FTransformSensorParameters::SaveTransformDataToDisk, FSensorSpawnParameters::SensorIdentifier, FSensorSpawnParameters::SensorName, FSensorSpawnParameters::SimulateSensor, FOverlapSensorParameters::Size, USensorFactory::SpawnCollisionSensor(), USensorFactory::SpawnOverlapSensor(), USensorFactory::SpawnTransformSensor(), TogglePhysics(), FSensorSpawnParameters::Transform, TransformSensor, FTransformSensorParameters::UseOwningActorTransform, FTransformSensorParameters::UsePrimiteRelativeTransform, and VehicleParameters.

◆ EndPlay()

void AVehicle::EndPlay ( const EEndPlayReason::Type  EndPlayReason)
overrideprotectedvirtual

Reimplemented in AForwarder, AHarvester, and APIDDrone.

Definition at line 158 of file Vehicle.cpp.

159{
160 Super::EndPlay(EndPlayReason);
161
162 UROSHandler* ROSHandler = UAgrarsenseStatics::GetROSHandle(GetWorld());
163 if (ROSHandler)
164 {
165 ROSHandler->OnROSStateChanged.RemoveDynamic(this, &AVehicle::ROSBridgeStateChanged);
166 }
167
168 if (TransformSensor)
169 {
170 TransformSensor->Destroy();
171 TransformSensor = nullptr;
172 }
173
174 for (int32 i = 0; i < ExtraTransformSensors.Num(); i++)
175 {
176 if (ATransformSensor* SensorPtr = ExtraTransformSensors[i])
177 {
178 SensorPtr->Destroy();
179 }
180 }
181 ExtraTransformSensors.Empty();
182
183 if (CollisionSensor)
184 {
185 CollisionSensor->Destroy();
186 CollisionSensor = nullptr;
187 }
188
189 if (OverlapSensor)
190 {
191 OverlapSensor->Destroy();
192 OverlapSensor = nullptr;
193 }
194
195 // Destroy attached sensors when vehicle is destroyed
196 if (IsValid(SensorsManager) && EndPlayReason == EEndPlayReason::Destroyed)
197 {
198 SensorsManager->DestroyAllSensors();
199 }
200
202 {
203 NiagaraComponent->UnregisterComponent();
204 NiagaraComponent->DestroyComponent();
205 NiagaraComponent = nullptr;
206 }
207
208 // Destroy all remaining Actors that are attached to this vehicle, if any
209 TArray<AActor*> AttachedActors;
210 GetAttachedActors(AttachedActors);
211 for (AActor* Actor : AttachedActors)
212 {
213 if (Actor)
214 {
215 Actor->Destroy();
216 }
217 }
218}

References CollisionSensor, ExtraTransformSensors, UAgrarsenseStatics::GetROSHandle(), NiagaraComponent, UROSHandler::OnROSStateChanged, OverlapSensor, ROSBridgeStateChanged(), SensorsManager, and TransformSensor.

◆ ExportToJsonFile()

FString AVehicle::ExportToJsonFile ( const FString &  FileName)

Export the Vehicle and its sensors to a JSON file.

Parameters
FileNameThe name of the file without extension.
Returns
FString representing the saved JSON file path, or an empty string if the export fails.

Definition at line 264 of file Vehicle.cpp.

265{
266 bool OverrideTransform = IsVehicleInGarage();
267
268 FTransform TransformToUse = GetActorTransform();
269
270 if (OverrideTransform)
271 {
272 TransformToUse = MovedFromGarageTransform;
273 }
274
275 return USimulatorJsonExporter::ExportVehicleAndSensorsToJSON(FileName, this, OverrideTransform, TransformToUse);
276}
FTransform MovedFromGarageTransform
Definition: Vehicle.h:315
bool IsVehicleInGarage() const
Definition: Vehicle.h:133
static FString ExportVehicleAndSensorsToJSON(FString FileName, AVehicle *Vehicle, bool OverrideTransform=false, const FTransform &Transform=FTransform())

References USimulatorJsonExporter::ExportVehicleAndSensorsToJSON(), IsVehicleInGarage(), and MovedFromGarageTransform.

Referenced by UROSCommands::HandleExportSensors(), and UROSCommands::HandleExportVehicles().

◆ GetActorID_Implementation()

virtual FString AVehicle::GetActorID_Implementation ( ) const
inlineoverridevirtual

Definition at line 204 of file Vehicle.h.

205 {
206 return ActorID;
207 }

Referenced by APIDDrone::CreateTopic().

◆ GetActorInformation_Implementation()

virtual FString AVehicle::GetActorInformation_Implementation ( ) const
inlineoverridevirtual

Definition at line 214 of file Vehicle.h.

215 {
217 const FString ID = IActorInformation::Execute_GetActorID(this);
218 const FString Name = IActorInformation::Execute_GetActorName(this);
219 const FTransform VehicleTransform = GetActorTransform();
220 const FVector Location = VehicleTransform.GetLocation();
221 const FRotator Rotation = VehicleTransform.Rotator();
222 FString Information = FString::Printf(TEXT("Vehicle: %s, Name: %s, ID: %s, Location: %s, Rotation: %s"), *Vehicle, *Name, *ID, *Location.ToString(), *Rotation.ToString());
223
224 return Information;
225 }
static FString ConvertVehicleTypeToString(EVehicleTypes VehicleType)

References UEnumUtilities::ConvertVehicleTypeToString(), and AOverlapSensor::Vehicle.

◆ GetActorName_Implementation()

virtual FString AVehicle::GetActorName_Implementation ( ) const
inlineoverridevirtual

Definition at line 209 of file Vehicle.h.

210 {
211 return ActorName;
212 }
FString ActorName
Definition: Vehicle.h:307

◆ GetCollisionSensor()

ACollisionSensor * AVehicle::GetCollisionSensor ( ) const
inline

Get collision sensor attached to this Vehicle

Returns
ACollisionSensor pointer

Definition at line 153 of file Vehicle.h.

154 {
155 return CollisionSensor;
156 }

◆ GetInteractableName_Implementation()

virtual FText AVehicle::GetInteractableName_Implementation ( ) const
inlineoverridevirtual

Definition at line 194 of file Vehicle.h.

195 {
196 return InteractableName;
197 }

◆ GetInteractableWorldTransform_Implementation()

virtual FTransform AVehicle::GetInteractableWorldTransform_Implementation ( ) const
inlineoverridevirtual

Reimplemented in APIDDrone.

Definition at line 199 of file Vehicle.h.

200 {
201 return GetActorTransform();
202 }

◆ GetMovedFromGarageTransform()

FTransform AVehicle::GetMovedFromGarageTransform ( ) const
inline

Get transform of the vehicle when it moved to garage

Returns

Definition at line 183 of file Vehicle.h.

184 {
186 }

◆ GetOverlapSensor()

AOverlapSensor * AVehicle::GetOverlapSensor ( ) const
inline

Get overlap sensor attached to this Vehicle

Returns
AOverlapSensor pointer

Definition at line 173 of file Vehicle.h.

174 {
175 return OverlapSensor;
176 }

◆ GetSensorsManager()

USensorsManagerComponent * AVehicle::GetSensorsManager ( ) const
inline

Get sensor manager attached to this Vehicle

Returns
USensorsManagerComponent pointer

Definition at line 143 of file Vehicle.h.

144 {
145 return SensorsManager;
146 }

◆ GetTransformSensor()

ATransformSensor * AVehicle::GetTransformSensor ( ) const
inline

Get transform sensor attached to this Vehicle

Returns
ATransformSensor pointer

Definition at line 163 of file Vehicle.h.

164 {
165 return TransformSensor;
166 }

◆ GetVehicleParameters()

FWheeledVehicleParameters AVehicle::GetVehicleParameters ( ) const
inline

Definition at line 249 of file Vehicle.h.

250 {
251 return VehicleParameters;
252 }

Referenced by USimulatorJsonParser::ParseAndSetWheeledVehicleParameters().

◆ GetVehicleType()

virtual EVehicleTypes AVehicle::GetVehicleType ( ) const
inlinevirtual

Get type of the Vehicle

Returns
Vehicle's type

Reimplemented in AForwarder, AHarvester, and APIDDrone.

Definition at line 54 of file Vehicle.h.

55 {
57 }

References NONE.

Referenced by BeginPlay(), and SetVehicleParameters().

◆ IsVehicleInGarage()

bool AVehicle::IsVehicleInGarage ( ) const
inline

Checks if the vehicle is currently in the "Garage" where vehicle can be setup with sensors.

Returns
True if the vehicle is in the garage, false otherwise.

Definition at line 133 of file Vehicle.h.

134 {
135 return VehicleInGarage;
136 }
bool VehicleInGarage
Definition: Vehicle.h:317

Referenced by ExportToJsonFile(), ACamera::PreActorTick(), and APIDDrone::Tick().

◆ PossessedBy()

void AVehicle::PossessedBy ( AController *  NewController)
overridevirtual

Definition at line 244 of file Vehicle.cpp.

245{
246 Super::PossessedBy(NewController);
247
248 ResetCamera();
249}
void ResetCamera()

References ResetCamera().

◆ ResetCamera()

void AVehicle::ResetCamera ( )

Reset the camera to original position and rotation BlueprintImplementableEvent meant to be implemented in blueprint e.g. BP_Forwarder

Referenced by PossessedBy().

◆ ROSBridgeStateChanged()

void AVehicle::ROSBridgeStateChanged ( EROSState  ROSState)
protectedvirtual

Reimplemented in APIDDrone.

Definition at line 220 of file Vehicle.cpp.

221{
222
223}

Referenced by BeginPlay(), and EndPlay().

◆ SetActorIDAndName_Implementation()

virtual void AVehicle::SetActorIDAndName_Implementation ( const FString &  NewActorName,
const FString &  NewID 
)
inlineoverridevirtual

Definition at line 232 of file Vehicle.h.

233 {
234 ActorName = NewActorName;
235 ActorID = NewID;
236 SetAndValidateActorIDAndName(ActorName, ActorID, TWeakObjectPtr<AActor>(this));
237 }
static void SetAndValidateActorIDAndName(FString &ActorName, FString &ActorID, TWeakObjectPtr< AActor > Actor)

References IActorInformation::SetAndValidateActorIDAndName().

◆ SetActorName_Implementation()

virtual void AVehicle::SetActorName_Implementation ( const FString &  NewActorName)
inlineoverridevirtual

Definition at line 227 of file Vehicle.h.

228 {
229 ActorName = NewActorName;
230 }

◆ SetCurrentTransformToMovedFromGarageTransform()

virtual void AVehicle::SetCurrentTransformToMovedFromGarageTransform ( )
inlinevirtual

Reimplemented in APIDDrone.

Definition at line 189 of file Vehicle.h.

190 {
191 MovedFromGarageTransform = GetTransform();
192 }

◆ SetVehicleIsInGarage()

void AVehicle::SetVehicleIsInGarage ( bool  VehicleIsInGarage)
inline

Sets the state of the vehicle garage state boolean.

Parameters
VehicleIsInGarage- A boolean indicating whether the vehicle is in the garage or not.

Definition at line 122 of file Vehicle.h.

123 {
124 VehicleInGarage = VehicleIsInGarage;
126 }
FVehicleGarageChangedDelegate OnVehicleGarageChanged
Definition: Vehicle.h:266

◆ SetVehicleMeshVisibility()

void AVehicle::SetVehicleMeshVisibility ( bool  Visible)

Toggle the visibility of the vehicle mesh. This is a BlueprintImplementableEvent intended to be implemented in Blueprint (e.g., BP_Forwarder).

Parameters
VisibleWhether the vehicle mesh should be visible.

◆ SetVehicleParameters()

void AVehicle::SetVehicleParameters ( FWheeledVehicleParameters  NewParameters)

Definition at line 225 of file Vehicle.cpp.

226{
227 VehicleParameters = NewParameters;
228
230 {
232
234 {
235 const float BoundsSizeMEters = VehicleParameters.OverlapRadiusMeters;
236 OverlapSensor->SetOverlapBounds(FVector(BoundsSizeMEters, BoundsSizeMEters, BoundsSizeMEters));
237 }
238 }
239
240 // BlueprintImplementableEvent, this is handled in BP_Forwarder and BP_harvester.
242}
void SetVisualizeOverlapArea(bool Visualize)
void SetOverlapBounds(const FVector &NewSize)

References ApplyVehicleParameters(), Drone, GetVehicleType(), FWheeledVehicleParameters::OverlapRadiusMeters, OverlapSensor, AOverlapSensor::SetOverlapBounds(), AOverlapSensor::SetVisualizeOverlapArea(), VehicleParameters, and FWheeledVehicleParameters::VisualizeOverlap.

Referenced by USimulatorJsonParser::ParseAndSetWheeledVehicleParameters().

◆ SetVisualizeVehicleOverlapArea()

void AVehicle::SetVisualizeVehicleOverlapArea ( bool  Visible)

Sets the visibility of the vehicle overlap area visualization.

Parameters
VisibleWhether the vehicle overlap area should be visible or not.

Definition at line 256 of file Vehicle.cpp.

257{
258 if (OverlapSensor)
259 {
261 }
262}

References OverlapSensor, and AOverlapSensor::SetVisualizeOverlapArea().

◆ TeleportVehicleTo()

void AVehicle::TeleportVehicleTo ( FVector  NewLocation,
FRotator  NewRotation 
)

Teleport the vehicle into a specific location and rotation

Parameters
NewLocation
NewRotation

◆ TeleportVehicleTo_Implementation()

void AVehicle::TeleportVehicleTo_Implementation ( FVector  NewLocation,
FRotator  NewRotation 
)
virtual

Teleport to implementation

Parameters
NewLocation
NewRotation

Definition at line 251 of file Vehicle.cpp.

252{
253 SetActorLocationAndRotation(NewLocation, NewRotation, false, nullptr, ETeleportType::TeleportPhysics);
254}

◆ ToggleLights()

void AVehicle::ToggleLights ( bool  isOn)

Toggle lights of the vehicle on or off. BlueprintImplementableEvent meant to be implemented in blueprint e.g. BP_Forwarder

Parameters
isOnPhysics on or off

◆ TogglePhysics()

void AVehicle::TogglePhysics ( bool  isOn)

Toggle physics of the vehicle on or off. BlueprintImplementableEvent meant to be implemented in blueprint e.g. BP_Forwarder

Parameters
isOnPhysics on or off

Referenced by BeginPlay(), and UROSCommands::HandleTeleportActorByID().

Member Data Documentation

◆ ActorID

FString AVehicle::ActorID
protected

Definition at line 310 of file Vehicle.h.

Referenced by APIDDrone::BeginPlay(), BeginPlay(), and APIDDrone::ChangeDroneParameters().

◆ ActorName

FString AVehicle::ActorName
protected

Definition at line 307 of file Vehicle.h.

◆ CollisionSensor

ACollisionSensor* AVehicle::CollisionSensor = nullptr
protected

Definition at line 290 of file Vehicle.h.

Referenced by BeginPlay(), and EndPlay().

◆ ExtraTransformSensorPositions

TArray<UStaticMeshComponent*> AVehicle::ExtraTransformSensorPositions
protected

Definition at line 304 of file Vehicle.h.

Referenced by BeginPlay().

◆ ExtraTransformSensors

TArray<ATransformSensor*> AVehicle::ExtraTransformSensors
protected

Definition at line 319 of file Vehicle.h.

Referenced by BeginPlay(), and EndPlay().

◆ InteractableName

FText AVehicle::InteractableName

◆ MovedFromGarageTransform

FTransform AVehicle::MovedFromGarageTransform
protected

Definition at line 315 of file Vehicle.h.

Referenced by ExportToJsonFile().

◆ NiagaraComponent

UNiagaraComponent* AVehicle::NiagaraComponent = nullptr
protected

Definition at line 299 of file Vehicle.h.

Referenced by APIDDrone::BeginPlay(), BeginPlay(), and EndPlay().

◆ OnVehicleGarageChanged

FVehicleGarageChangedDelegate AVehicle::OnVehicleGarageChanged

Definition at line 266 of file Vehicle.h.

◆ OriginalCameraTransform

FTransform AVehicle::OriginalCameraTransform
protected

Definition at line 313 of file Vehicle.h.

◆ OverlapSensor

AOverlapSensor* AVehicle::OverlapSensor = nullptr
protected

◆ SensorsManager

TObjectPtr<USensorsManagerComponent> AVehicle::SensorsManager
protected

Definition at line 287 of file Vehicle.h.

Referenced by AVehicle(), EndPlay(), and ASimulationLevelManager::GetSensorsManager().

◆ TransformSensor

ATransformSensor* AVehicle::TransformSensor = nullptr
protected

Definition at line 293 of file Vehicle.h.

Referenced by APIDDrone::BeginPlay(), BeginPlay(), APIDDrone::EndPlay(), and EndPlay().

◆ VehicleInGarage

bool AVehicle::VehicleInGarage = false
protected

Definition at line 317 of file Vehicle.h.

◆ VehicleParameters

FWheeledVehicleParameters AVehicle::VehicleParameters
protected

Definition at line 281 of file Vehicle.h.

Referenced by BeginPlay(), and SetVehicleParameters().


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