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

#include <Walker.h>

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

Public Member Functions

 AWalker ()
 
virtual void PauseWalker ()
 
virtual void ResumeWalker ()
 
virtual void SetIgnoreInput (bool IgnoreInput)
 
void SetWalkerParameters (const FWalkerParameters &InParameters)
 
FString ExportToJsonFile (const FString &FileName)
 
void ChangeWalkerParameters (const FWalkerParameters &newParameters)
 
void DebugDrawLinesBetweenPoints (float LifeTime=10.0f)
 
virtual EWalkerType GetWalkerType () const
 
FWalkerParameters GetWalkerParameters () const
 
FTransform GetStartTransform () const
 
FTransform GetEndTransform () const
 
bool IsWalkerPaused () const
 
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
 
- 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

FWalkerEventDelegate_ParametersChanged OnWalkerParametersChanged
 
FText InteractableName
 
ATransformSensorTransformSensor = nullptr
 

Protected Member Functions

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

Protected Attributes

FString ActorName
 
FString ActorID
 

Private Attributes

bool WalkerIsPaused = true
 
FWalkerParameters WalkerParameters
 
FWalkerParameters PreviousParameters
 

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 29 of file Walker.h.

Constructor & Destructor Documentation

◆ AWalker()

AWalker::AWalker ( )

Definition at line 20 of file Walker.cpp.

21{
22 PrimaryActorTick.bCanEverTick = false;
23 InteractableName = NSLOCTEXT("Agrarsense", "WalkerInteractableName", "Walker");
24}
FText InteractableName
Definition: Walker.h:155

References InteractableName.

Member Function Documentation

◆ BeginPlay()

void AWalker::BeginPlay ( )
overrideprotectedvirtual

Definition at line 26 of file Walker.cpp.

27{
28 Super::BeginPlay();
29
31 {
33 Params.SaveTransformDataToDisk = false;
34 Params.OwningActor = this;
35
36 FString TransformSensorID = ActorID + "/transform";
37 TransformSensor = USensorFactory::SpawnTransformSensor(GetActorTransform(), Params, TransformSensorID, "transform", true, this);
38 }
39}
FWalkerParameters WalkerParameters
Definition: Walker.h:178
ATransformSensor * TransformSensor
Definition: Walker.h:158
FString ActorID
Definition: Walker.h:170
static ATransformSensor * SpawnTransformSensor(const FTransform &transform, FTransformSensorParameters Parameters, const FString sensorIdentifier, const FString sensorName, bool SimulateSensor=true, AActor *Parent=nullptr)

References ActorID, FWalkerParameters::CreateTransformTopic, FTransformSensorParameters::OwningActor, FTransformSensorParameters::SaveTransformDataToDisk, USensorFactory::SpawnTransformSensor(), TransformSensor, and WalkerParameters.

◆ ChangeWalkerParameters()

void AWalker::ChangeWalkerParameters ( const FWalkerParameters newParameters)
inline

Definition at line 57 of file Walker.h.

58 {
59 SetWalkerParameters(newParameters);
61 }
void SetWalkerParameters(const FWalkerParameters &InParameters)
Definition: Walker.cpp:80
FWalkerEventDelegate_ParametersChanged OnWalkerParametersChanged
Definition: Walker.h:152

Referenced by PauseWalker(), and ResumeWalker().

◆ DebugDrawLinesBetweenPoints()

void AWalker::DebugDrawLinesBetweenPoints ( float  LifeTime = 10.0f)

Definition at line 90 of file Walker.cpp.

91{
92#ifdef WITH_EDITOR
94 {
95 return;
96 }
97
98 TArray<FTransform>& Transforms = WalkerParameters.Points;
99
100 // Draw lines between the points
101 for (int32 i = 0; i < Transforms.Num() - 1; ++i)
102 {
103 const FVector Start = Transforms[i].GetLocation();
104 const FVector End = Transforms[i + 1].GetLocation();
105 DrawDebugLine(GetWorld(), Start, End, FColor::Green, false, LifeTime, 0, 5);
106 }
107#endif
108}
EWalkerAction WalkerAction
TArray< FTransform > Points

References FollowPath, FWalkerParameters::Points, FWalkerParameters::WalkerAction, and WalkerParameters.

◆ EndPlay()

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

Definition at line 41 of file Walker.cpp.

42{
43 Super::EndPlay(EndPlayReason);
44
45 if (TransformSensor)
46 {
47 TransformSensor->Destroy();
48 }
49}

References TransformSensor.

◆ ExportToJsonFile()

FString AWalker::ExportToJsonFile ( const FString &  FileName)

Export this Walker and parameters to a JSON file.

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

Definition at line 85 of file Walker.cpp.

86{
87 return USimulatorJsonExporter::ExportWalkerToJSON(FileName, this);
88}
static FString ExportWalkerToJSON(const FString &FileName, AWalker *Walker)

References USimulatorJsonExporter::ExportWalkerToJSON().

◆ GetActorID_Implementation()

virtual FString AWalker::GetActorID_Implementation ( ) const
inlineoverridevirtual

Definition at line 116 of file Walker.h.

117 {
118 return ActorID;
119 }

◆ GetActorInformation_Implementation()

virtual FString AWalker::GetActorInformation_Implementation ( ) const
inlineoverridevirtual

Definition at line 126 of file Walker.h.

127 {
129 const FString ID = IActorInformation::Execute_GetActorID(this);
130 const FString Name = IActorInformation::Execute_GetActorName(this);
131 const FTransform VehicleTransform = GetActorTransform();
132 const FVector Location = VehicleTransform.GetLocation();
133 const FRotator Rotation = VehicleTransform.Rotator();
134 FString Information = FString::Printf(TEXT("Walker: %s, Name: %s, ID: %s, Location: %s, Rotation: %s"), *Walker, *Name, *ID, *Location.ToString(), *Rotation.ToString());
135
136 return Information;
137 }
static FString ConvertWalkerTypeToString(EWalkerType WalkerType)
EWalkerType WalkerType

References UEnumUtilities::ConvertWalkerTypeToString(), and Walker.

◆ GetActorName_Implementation()

virtual FString AWalker::GetActorName_Implementation ( ) const
inlineoverridevirtual

Definition at line 121 of file Walker.h.

122 {
123 return ActorName;
124 }
FString ActorName
Definition: Walker.h:167

◆ GetEndTransform()

FTransform AWalker::GetEndTransform ( ) const
inline

Definition at line 90 of file Walker.h.

91 {
92 if (!WalkerParameters.Points.IsEmpty())
93 {
94 return WalkerParameters.Points.Last();
95 }
96
97 return FTransform::Identity;
98 }

◆ GetInteractableName_Implementation()

virtual FText AWalker::GetInteractableName_Implementation ( ) const
inlineoverridevirtual

Definition at line 106 of file Walker.h.

107 {
108 return InteractableName;
109 }

◆ GetInteractableWorldTransform_Implementation()

virtual FTransform AWalker::GetInteractableWorldTransform_Implementation ( ) const
inlineoverridevirtual

Definition at line 111 of file Walker.h.

112 {
113 return GetActorTransform();
114 }

◆ GetStartTransform()

FTransform AWalker::GetStartTransform ( ) const
inline

Definition at line 79 of file Walker.h.

80 {
81 if (!WalkerParameters.Points.IsEmpty())
82 {
83 return WalkerParameters.Points[0];
84 }
85
86 return FTransform::Identity;
87 }

References FWalkerParameters::Points.

◆ GetWalkerParameters()

FWalkerParameters AWalker::GetWalkerParameters ( ) const
inline

Definition at line 73 of file Walker.h.

74 {
75 return WalkerParameters;
76 }

◆ GetWalkerType()

virtual EWalkerType AWalker::GetWalkerType ( ) const
inlinevirtual

Definition at line 67 of file Walker.h.

68 {
70 }

◆ IsWalkerPaused()

bool AWalker::IsWalkerPaused ( ) const
inline

Definition at line 101 of file Walker.h.

102 {
103 return WalkerIsPaused;
104 }
bool WalkerIsPaused
Definition: Walker.h:175

◆ PauseWalker()

void AWalker::PauseWalker ( )
virtual

Definition at line 51 of file Walker.cpp.

52{
55 SetIgnoreInput(true);
57}
FWalkerParameters PreviousParameters
Definition: Walker.h:180
virtual void SetIgnoreInput(bool IgnoreInput)
Definition: Walker.cpp:69
void ChangeWalkerParameters(const FWalkerParameters &newParameters)
Definition: Walker.h:57

References ChangeWalkerParameters(), PreviousParameters, SetIgnoreInput(), Stationary, FWalkerParameters::WalkerAction, and WalkerParameters.

◆ ResumeWalker()

void AWalker::ResumeWalker ( )
virtual

◆ SetActorIDAndName_Implementation()

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

Definition at line 144 of file Walker.h.

145 {
146 ActorName = NewActorName;
147 ActorID = NewID;
148 SetAndValidateActorIDAndName(ActorName, ActorID, TWeakObjectPtr<AActor>(this));
149 }
static void SetAndValidateActorIDAndName(FString &ActorName, FString &ActorID, TWeakObjectPtr< AActor > Actor)

References IActorInformation::SetAndValidateActorIDAndName().

◆ SetActorName_Implementation()

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

Definition at line 139 of file Walker.h.

140 {
141 ActorName = NewActorName;
142 }

◆ SetIgnoreInput()

void AWalker::SetIgnoreInput ( bool  IgnoreInput)
virtual

Definition at line 69 of file Walker.cpp.

70{
71 WalkerIsPaused = IgnoreInput;
72
73 AAIController* AIControllerPtr = Cast<AAIController>(GetController());
74 if (AIControllerPtr)
75 {
76 AIControllerPtr->SetIgnoreMoveInput(WalkerIsPaused);
77 }
78}

References WalkerIsPaused.

Referenced by PauseWalker(), and ResumeWalker().

◆ SetWalkerParameters()

void AWalker::SetWalkerParameters ( const FWalkerParameters InParameters)

Definition at line 80 of file Walker.cpp.

81{
82 WalkerParameters = InParameters;
83}

References WalkerParameters.

Member Data Documentation

◆ ActorID

FString AWalker::ActorID
protected

Definition at line 170 of file Walker.h.

Referenced by BeginPlay().

◆ ActorName

FString AWalker::ActorName
protected

Definition at line 167 of file Walker.h.

◆ InteractableName

FText AWalker::InteractableName

Definition at line 155 of file Walker.h.

Referenced by AWalker().

◆ OnWalkerParametersChanged

FWalkerEventDelegate_ParametersChanged AWalker::OnWalkerParametersChanged

Definition at line 152 of file Walker.h.

◆ PreviousParameters

FWalkerParameters AWalker::PreviousParameters
private

Definition at line 180 of file Walker.h.

Referenced by PauseWalker(), and ResumeWalker().

◆ TransformSensor

ATransformSensor* AWalker::TransformSensor = nullptr

Definition at line 158 of file Walker.h.

Referenced by BeginPlay(), and EndPlay().

◆ WalkerIsPaused

bool AWalker::WalkerIsPaused = true
private

Definition at line 175 of file Walker.h.

Referenced by ResumeWalker(), and SetIgnoreInput().

◆ WalkerParameters

FWalkerParameters AWalker::WalkerParameters
private

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