40 virtual void BeginPlay()
override;
41 virtual void Tick(
float DeltaTime)
override;
42 void SetupPlayerInput();
43 void OnControlStateChange();
44 void OnCameraStateChange();
45 void OnAttachmentStateChange();
46 void ZeroRoverMovement();
47 void ApplyTorque(TArray<int32> wheelIndices,
float throttle);
48 void RotateCamera(
float yaw,
float pitch);
49 void SplineDrawTick();
50 void UpdateBackPanel();
51 void SendCompassTelemetry();
52 void SendRoveCommTelemetry();
56 uint8 AttachmentState;
57 float TranslationThrottle;
62 FVector SavedSpawnPoint;
63 FRotator SavedSpawnRotation;
66 FVector LastSplineLocation;
68 bool PointcloudVisible;
72 ARoveSoSimulatorPlayerController* PlayerController;
73 UChaosWheeledVehicleMovementComponent* VehicleMovement;
74 TUniquePtr<IRoverInterface> RoverInterface;
76 AGeoReferencingSystem* GeoRefSystem;
78 FTimerHandle RoveCommTimerHandle;
79 URoveCommPacketWrapper* GPSTelemetryPacket;
80 URoveCommPacketWrapper* AccuracyTelemetryPacket;
81 FTimerHandle CompassTimerHandle;
82 URoveCommPacketWrapper* CompassTelemetryPacket;
84 USpringArmComponent* CameraSpringArm;
85 UCameraComponent* Camera;
87 UStaticMeshComponent* BackPanel;
88 UMaterialInstanceDynamic* BackPanelMaterial;
90 USplineComponent* Spline;
91 TArray<USplineMeshComponent*> SplineMeshes;
93 TWeakObjectPtr<UStaticMeshComponent> AutoHead;
94 TWeakObjectPtr<UChildActorComponent> Arm;
96 USpringArmComponent* ZEDSpringArm;
97 TSubclassOf<AActor> ZED2iStereoCamera;
98 UChildActorComponent* FrontZEDCamera;
99 UChildActorComponent* RearZEDCamera;
103 UPROPERTY(EditDefaultsOnly, Category=
"Rover Setup")
104 ERoverInterfaceSubclasses RoverInterfaceSubclass;
106 UPROPERTY(EditDefaultsOnly, Category=
"Rover Setup")
109 UPROPERTY(EditDefaultsOnly, Category=
"Rover Setup")
110 float SplineTrailDistance;
112 UPROPERTY(EditDefaultsOnly, Category=
"Rover Setup")
113 UStaticMesh* SplineTrailMesh;
115 UPROPERTY(EditDefaultsOnly, Category=
"Rover Setup")
116 UMaterial* SplineTrailMaterial;
119 UPROPERTY(EditDefaultsOnly, Category=
"Rover Setup")
120 FVector RoverResetLocation;
123 UPROPERTY(EditAnywhere, Category =
"Rover Setup")
124 float MotorMaxTorque;
126 UPROPERTY(EditAnywhere, Category =
"Rover Setup")
129 UPROPERTY(EditAnywhere, Category =
"Rover Setup")
130 float FinalGearRatio;
132 UPROPERTY(EditAnywhere, Category =
"Rover Setup")
133 float FinalMechanicalEfficiency;
136 UPROPERTY(EditAnywhere, Category =
"Rover Setup")
137 TArray<int32> LeftWheelIndices;
139 UPROPERTY(EditAnywhere, Category =
"Rover Setup")
140 TArray<int32> RightWheelIndices;
143 void RoveCommDriveCallback();
144 void RoveCommBackpanelCallback();
146 void SetSpawnPointCallback();
147 void GotoSpawnPointCallback();
148 void ResetSplineCallback();
149 void ToggleSplineCallback();
150 void TogglePointcloudCallback();
151 void ResetRoverCallback();
152 void FlipRoverCallback();
154 friend class ITalos2025Interface;