8#include "Components/ActorComponent.h"
9#include "Layout/Geometry.h"
10#include "Input/Events.h"
12#include "GestureRecognizerComp.generated.h"
76 UPROPERTY(
Category=
"Swipe Data", BlueprintReadOnly)
79 UPROPERTY(
Category=
"Swipe Data", BlueprintReadOnly)
82 UPROPERTY(
Category=
"Swipe Data", BlueprintReadOnly)
85 UPROPERTY(
Category=
"Swipe Data", BlueprintReadOnly)
88 UPROPERTY(
Category=
"Swipe Data", BlueprintReadOnly)
91 UPROPERTY(
Category=
"Swipe Data", BlueprintReadOnly)
94 UPROPERTY(
Category=
"Swipe Data", BlueprintReadOnly)
148 , bFirstTouchDetected(false)
149 , bDoubleTapDetected(false)
150 , bLongPressDetected(false)
151 , bDragDetected(false)
152 , bFirstTapSend(false)
153 , bSlideDetected(false)
154 , bSlideVertically(false)
157 FMemory::Memzero(
this,
sizeof(*
this));
167 uint8 bFirstTouchDetected:1;
168 uint8 bDoubleTapDetected:1;
169 uint8 bLongPressDetected:1;
170 uint8 bDragDetected:1;
171 uint8 bFirstTapSend:1;
172 uint8 bSlideDetected:1;
173 uint8 bSlideVertically:1;
176 FTimerHandle TapHandle;
192 bFirstTouchDetected =
false;
193 bDoubleTapDetected =
false;
194 bLongPressDetected =
false;
195 bDragDetected =
false;
205 bDoubleTapDetected =
false;
217 UPROPERTY(
Category=
"Touch", BlueprintReadOnly)
220 UPROPERTY(
Category=
"Touch", BlueprintReadOnly)
223 UPROPERTY(
Category=
"Touch", BlueprintReadOnly)
226 UPROPERTY(
Category=
"Touch", BlueprintReadOnly)
229 UPROPERTY(
Category=
"Touch", BlueprintReadOnly)
232 UPROPERTY(
Category=
"Touch", BlueprintReadOnly)
242 ,
Delta(ForceInitToZero)
252 ,
Location(FingersData.CurrentPosition)
280 UGestureRecognizerComp();
283 virtual void BeginPlay()
override;
286 virtual bool OnTouchStarted(
const int32 FingerIndex,
const FVector2D Location)
override;
287 virtual void OnTouchMoved(
const int32 FingerIndex,
const FVector2D Location)
override;
288 virtual void OnTouchEnded(
const int32 FingerIndex,
const FVector2D Location)
override;
290 virtual void TickComponent(
float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
override;
293 virtual void TapGesture(
FFingerData& FingerData, FVector2D Location);
294 virtual void SlideGesture(
FFingerData& FingerData, FVector2D Location);
295 virtual void DragGesture(
FFingerData& FingerData, FVector2D Location);
296 virtual void SwipeGesture(
FFingerData& FingerData, FVector2D Location);
304 virtual void HandleOnOrientationChanged()
override;
307 UFUNCTION(Category=
"Gesture Manager", BlueprintCallable, BlueprintPure)
308 bool IsThereAnActiveFinger();
311 UFUNCTION(Category=
"Gesture Manager", BlueprintCallable, BlueprintPure)
312 int32 GetActiveFingerCount();
315 UFUNCTION(Category=
"Gesture Manager", BlueprintCallable, BlueprintPure)
316 TArray<FVector2D> GetFingerPositions();
319 UFUNCTION(Category=
"Gesture Manager", BlueprintCallable, BlueprintPure)
320 FVector2D GetFingerAveragePosition();
328 TArray<int32> GetActiveFingerIndex();
330 bool GetLastTwoActiveFinger(int32& First, int32& Second);
332 bool GetLastFingerTouchingScreen(int32& FingerIndex);
337 UPROPERTY(Category=
"General", EditAnywhere, BlueprintReadWrite,
meta=(AllowPrivateAccess=
"true"))
338 uint8 bEnableTwoFingerGesture:1;
341 UPROPERTY(Category=
"General", EditAnywhere, BlueprintReadWrite,
meta=(AllowPrivateAccess=
"true"))
344 UPROPERTY(Category=
"Gesture Config", EditAnywhere, BlueprintReadWrite,
meta=(AllowPrivateAccess=
"true"))
345 uint8 bOverrideGestureConfig:1;
347 UPROPERTY(Category=
"Gesture Config", EditAnywhere, BlueprintReadWrite,
meta=(AllowPrivateAccess=
"true", EditCondition=
"bOverrideGestureConfig", EditConditionHides))
351 UPROPERTY(Category=
"General", EditAnywhere, BlueprintReadWrite, Instanced,
meta=(AllowPrivateAccess=
"true"))
352 TArray<TObjectPtr<UGestureBase>> Gestures;
357 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
358 FOnSimpleGestureSignature OnTouchBegin;
360 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
361 FOnSimpleGestureSignature OnTouchMove;
363 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
364 FOnSimpleGestureSignature OnTouchEnd;
366 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
367 FOnMultiTouchSignature OnMultiTouch;
371 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
372 FOnSimpleGestureSignature OnTap;
375 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
376 FOnSimpleGestureSignature OnTwoFingerTap;
379 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
380 FOnSimpleGestureSignature OnDoubleTap;
383 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
384 FOnMultiTapSignature OnMultiTap;
388 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
389 FOnSimpleGestureSignature OnLongPress;
392 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
393 FOnDragSignature OnDragBegin;
398 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
399 FOnDragSignature OnDrag;
402 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
403 FOnDragSignature OnDragEnd;
406 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
407 FOnSlideSignature OnSlide;
410 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
411 FOnSwipeGestureSignature OnSwipe;
414 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
415 FOnSwipeGestureSignature OnTwoFingerSwipe;
418 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
419 FOnComplexGesture OnZoom;
422 UPROPERTY(Category=
"Gesture Manager|Gestures", BlueprintAssignable)
423 FOnComplexGesture OnRotate;
428 TArray<FFingerData> GestureData;
436 FVector2D StartDirection;
438 int32 GestureFirstIndex;
439 int32 GestureSecondIndex;
441 uint8 bTwoFingerGestureDetected:1;
443 float StartOffsetBetweenFinger;
444 float LastZoomOffset;
445 float LastRotationOffset;
447 float TotalRotationAngle;
BlueprintType
Definition ComponentDecorator_Animation.h:40
DisplayName
Definition DecoratorRotationAnim.h:15
DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FOnSlideSignature, int32, FingerIndex, ESlideDirection, Direction, FVector2D, Location, float, Delta)
EMultiTouchBehavior
Definition GestureRecognizerComp.h:36
@ KeepFirstAndUpdateLast
Definition GestureRecognizerComp.h:44
@ DoNothing
Definition GestureRecognizerComp.h:38
@ KeepExistingIndex
Definition GestureRecognizerComp.h:41
@ UpdateBoth
Definition GestureRecognizerComp.h:47
meta
Definition GestureRecognizerComp.h:274
ESwipeDirection
Definition GestureRecognizerComp.h:52
@ Down
Definition GestureRecognizerComp.h:56
@ LeftUp
Definition GestureRecognizerComp.h:60
@ Up
Definition GestureRecognizerComp.h:54
@ RightUp
Definition GestureRecognizerComp.h:58
@ Custom
Definition GestureRecognizerComp.h:53
@ Right
Definition GestureRecognizerComp.h:55
@ Left
Definition GestureRecognizerComp.h:57
@ LeftDown
Definition GestureRecognizerComp.h:61
@ RightDown
Definition GestureRecognizerComp.h:59
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnComplexGesture, float, Delta, float, CurrentOffset, FVector2D, Direction)
ESlideDirection
Definition GestureRecognizerComp.h:66
@ Vertical
Definition GestureRecognizerComp.h:68
@ Horizontal
Definition GestureRecognizerComp.h:67
ETouchMode
Definition GestureRecognizerComp.h:19
@ DoubleTouch
Definition GestureRecognizerComp.h:26
@ SingleTouch
Definition GestureRecognizerComp.h:22
@ MultiTouch
Definition GestureRecognizerComp.h:30
ClassGroup
Definition GestureRecognizerComp.h:274
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnDragSignature, FTouch, Touch)
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnSimpleGestureSignature, int32, FingerIndex, FVector2D, Location)
Config
Definition TouchInterfaceSettings.h:162
Definition GestureBase.h:134
Definition TouchInterfaceListener.h:16
Definition GestureRecognizerComp.h:111
FVector2D BeginPosition
Definition GestureRecognizerComp.h:123
float PressDuration
Definition GestureRecognizerComp.h:117
double TouchStartTime
Definition GestureRecognizerComp.h:118
double TouchEndTime
Definition GestureRecognizerComp.h:119
double LastTapTime
Definition GestureRecognizerComp.h:115
uint32 PointerIndex
Definition GestureRecognizerComp.h:112
double AccumulatedTime
Definition GestureRecognizerComp.h:121
FVector2D LastTapPosition
Definition GestureRecognizerComp.h:127
FFingerData()
Definition GestureRecognizerComp.h:134
bool AcceptPointerIndex(const uint32 InPointerIndex) const
Definition GestureRecognizerComp.h:129
FVector2D CurrentPosition
Definition GestureRecognizerComp.h:124
FVector2D LastPosition
Definition GestureRecognizerComp.h:125
double StartTapTime
Definition GestureRecognizerComp.h:120
int32 TapAmount
Definition GestureRecognizerComp.h:116
friend class UGestureRecognizerComp
Definition GestureRecognizerComp.h:161
FVector2D OffsetFromBegin
Definition GestureRecognizerComp.h:126
Definition TouchInterfaceSettings.h:29
Definition GestureRecognizerComp.h:73
BlueprintReadOnly FVector2D Offset
Definition GestureRecognizerComp.h:89
BlueprintReadOnly float Velocity
Definition GestureRecognizerComp.h:92
BlueprintReadOnly FVector2D BeginPosition
Definition GestureRecognizerComp.h:80
BlueprintReadOnly FVector2D EndPosition
Definition GestureRecognizerComp.h:83
Category
Definition GestureRecognizerComp.h:76
BlueprintReadOnly float Duration
Definition GestureRecognizerComp.h:95
FSwipeData()
Definition GestureRecognizerComp.h:97
BlueprintReadOnly ESwipeDirection Direction
Definition GestureRecognizerComp.h:77
BlueprintReadOnly FVector2D CustomDirection
Definition GestureRecognizerComp.h:86
Definition GestureRecognizerComp.h:211
FTouch()
Definition GestureRecognizerComp.h:235
BlueprintReadOnly FVector2D OffsetFromStart
Definition GestureRecognizerComp.h:230
BlueprintReadOnly double StartTime
Definition GestureRecognizerComp.h:218
BlueprintReadOnly FVector2D Delta
Definition GestureRecognizerComp.h:233
BlueprintReadOnly FVector2D BeginLocation
Definition GestureRecognizerComp.h:224
BlueprintReadOnly double PressDuration
Definition GestureRecognizerComp.h:221
Category
Definition GestureRecognizerComp.h:214
BlueprintReadOnly int32 FingerIndex
Definition GestureRecognizerComp.h:215
FTouch(const FFingerData &FingersData)
Definition GestureRecognizerComp.h:247
BlueprintReadOnly FVector2D Location
Definition GestureRecognizerComp.h:227