21 UPROPERTY(EditDefaultsOnly, Category=
"Input - Universal", meta=(Dispatch=
"Float"))
22 class UInputAction* Translation;
23 UPROPERTY(EditDefaultsOnly, Category=
"Input - Universal", meta=(Dispatch=
"Float"))
24 class UInputAction* Rotation;
25 UPROPERTY(EditDefaultsOnly, Category=
"Input - Universal", meta=(Dispatch=
"Float"))
26 class UInputAction* Zoom;
27 UPROPERTY(EditDefaultsOnly, Category=
"Input - Universal", meta=(Dispatch=
"Cycle"))
28 class UInputAction* ControlModeCycle;
29 UPROPERTY(EditDefaultsOnly, Category=
"Input - Universal", meta=(Dispatch=
"Cycle"))
30 class UInputAction* CameraCycle;
32 UPROPERTY(EditDefaultsOnly, Category=
"Input - Universal", meta=(Dispatch=
"Void"))
33 class UInputAction* Exit;
42 UPROPERTY(EditDefaultsOnly, Category=
"Input - Rover Drive", meta=(Dispatch=
"Float"))
43 class UInputAction* LeftThrottle;
44 UPROPERTY(EditDefaultsOnly, Category=
"Input - Rover Drive", meta=(Dispatch=
"Float"))
45 class UInputAction* RightThrottle;
47 UPROPERTY(EditDefaultsOnly, Category=
"Input - Rover Drive", meta=(Dispatch=
"Void"))
48 class UInputAction* SetSpawnPoint;
49 UPROPERTY(EditDefaultsOnly, Category=
"Input - Rover Drive", meta=(Dispatch=
"Void"))
50 class UInputAction* GotoSpawnPoint;
51 UPROPERTY(EditDefaultsOnly, Category=
"Input - Rover Drive", meta=(Dispatch=
"Void"))
52 class UInputAction* ResetSpline;
53 UPROPERTY(EditDefaultsOnly, Category=
"Input - Rover Drive", meta=(Dispatch=
"Void"))
54 class UInputAction* ToggleSpline;
55 UPROPERTY(EditDefaultsOnly, Category=
"Input - Rover Drive", meta=(Dispatch=
"Void"))
56 class UInputAction* TogglePointcloud;
57 UPROPERTY(EditDefaultsOnly, Category=
"Input - Rover Drive", meta=(Dispatch=
"Void"))
58 class UInputAction* ResetRover;
59 UPROPERTY(EditDefaultsOnly, Category=
"Input - Rover Drive", meta=(Dispatch=
"Void"))
60 class UInputAction* FlipRover;
69 UPROPERTY(EditDefaultsOnly, Category=
"Input - Arm", meta=(Dispatch=
"Float"))
71 class UInputAction* J1;
72 UPROPERTY(EditDefaultsOnly, Category=
"Input - Arm", meta=(Dispatch=
"Float"))
74 class UInputAction* J2;
75 UPROPERTY(EditDefaultsOnly, Category=
"Input - Arm", meta=(Dispatch=
"Float"))
77 class UInputAction* J3;
78 UPROPERTY(EditDefaultsOnly, Category=
"Input - Arm", meta=(Dispatch=
"Float"))
80 class UInputAction* J4;
81 UPROPERTY(EditDefaultsOnly, Category=
"Input - Arm", meta=(Dispatch=
"Float"))
83 class UInputAction* J5;
84 UPROPERTY(EditDefaultsOnly, Category=
"Input - Arm", meta=(Dispatch=
"Float"))
86 class UInputAction* J6;
87 UPROPERTY(EditDefaultsOnly, Category=
"Input - Arm", meta=(Dispatch=
"Float"))
89 class UInputAction* GripperOpenClose;
90 UPROPERTY(EditDefaultsOnly, Category=
"Input - Arm", meta=(Dispatch=
"Float"))
92 class UInputAction* SolenoidExtension;
94 UPROPERTY(EditDefaultsOnly, Category=
"Input - Arm", meta=(Dispatch=
"Void"))
95 class UInputAction* LaserOn;
96 UPROPERTY(EditDefaultsOnly, Category=
"Input - Arm", meta=(Dispatch=
"Void"))
97 class UInputAction* LaserOff;
118 UPROPERTY(EditDefaultsOnly)
119 UInputMappingContext* Universal;
120 UPROPERTY(EditDefaultsOnly)
121 UInputMappingContext* RoverDrive;
122 UPROPERTY(EditDefaultsOnly)
123 UInputMappingContext* Arm;
131class URoveSoSimulatorInputManager :
public UObject
137 void SetPlayerController(ARoveSoSimulatorPlayerController* newPlayerController) { PlayerController = newPlayerController; }
139 void SetupInputBindings(UEnhancedInputComponent* EI);
140 void SetupBindings(UEnhancedInputComponent* EI,
const UStruct* structType,
void* structData);
142 using FVoidCallback = TFunction<
void()>;
143 using FBoolCallback = TFunction<
void(
const bool)>;
144 using FIntCallback = TFunction<
void(
const int)>;
145 using FFloatCallback = TFunction<
void(
const float)>;
146 TMap<
const UInputAction*, FVoidCallback> VoidDispatch;
147 TMap<
const UInputAction*, FBoolCallback> BoolDispatch;
148 TMap<
const UInputAction*, FBoolCallback> CycleDispatch;
149 TMap<
const UInputAction*, FIntCallback> IntDispatch;
150 TMap<
const UInputAction*, FFloatCallback> FloatDispatch;
152 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
154 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
155 FInputMappingContexts Mappings;
158 URoveSoSimulatorInputManager();
160 ARoveSoSimulatorPlayerController* PlayerController;
163 void OnVoidInput(
const FInputActionInstance& Instance);
165 void OnBoolInput(
const FInputActionInstance& Instance);
167 void OnCycleInput(
const FInputActionInstance& Instance);
169 void OnIntInput(
const FInputActionInstance& Instance);
171 void OnFloatInput(
const FInputActionInstance& Instance);