Touch Interface Designer 2025.2
Create touch interface with a visual editor and manage all mobile inputs like gestures
Loading...
Searching...
No Matches
MultitouchLogic.h
Go to the documentation of this file.
1// Copyright 2024 Lost in Game Studio. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "ComponentLogic.h"
7#include "MultitouchLogic.generated.h"
8
10//class UTwoFingerGestureBase;
11//struct FGestureData;
12
13USTRUCT(BlueprintType)
14struct FFinger
15{
16 GENERATED_BODY()
17
18 UPROPERTY(Category="Finger", VisibleAnywhere)
20
21 UPROPERTY(Category="Finger", VisibleAnywhere)
22 FVector2D BeginLocation;
23
24 UPROPERTY(Category="Finger", VisibleAnywhere)
25 FVector2D Location;
26
27 UPROPERTY(Category="Finger", VisibleAnywhere)
28 FVector2D Offset;
29
30 UPROPERTY(Category="Finger", VisibleAnywhere)
32
34 : bIsActive(false)
35 , BeginLocation(ForceInitToZero)
36 , Location(ForceInitToZero)
37 , Offset(ForceInitToZero)
38 , ElapsedTime(0.0f)
39 {
40
41 }
42
43 void Reset()
44 {
45 bIsActive = false;
46 BeginLocation = FVector2D::ZeroVector;
47 Location = FVector2D::ZeroVector;
48 Offset = FVector2D::ZeroVector;
49 ElapsedTime = 0.0f;
50 }
51};
52
54UCLASS(Abstract)
55class TOUCHINTERFACE_API UMultitouchLogic : public UComponentLogic
56{
57 GENERATED_BODY()
58
59public:
61
62protected:
63 virtual void Initialize_Implementation() override;
64 virtual void OnPress_Implementation(const FGeometry& ComponentGeometry, const FPointerEvent& PointerEvent) override;
65 virtual void OnMove_Implementation(const FGeometry& ComponentGeometry, const FPointerEvent& PointerEvent) override;
66 virtual void OnRelease_Implementation(const FGeometry& ComponentGeometry, const FPointerEvent& PointerEvent) override;
67 virtual void OnTick_Implementation(const FGeometry& ComponentGeometry, const FPointerEvent& PointerEvent, const double InCurrentTime, const float InDeltaTime) override;
68
69 //TODO: Implement multitouch without gesture recognizer?
70
71 // //Called when two finger hit this component
72 // UFUNCTION(Category="Multitouch", BlueprintNativeEvent)
73 // void OnMultiTouchBegan(const TArray<FGestureData>& GestureData);
74 //
75 // //Called when two fingers moves
76 // UFUNCTION(Category="Multitouch", BlueprintNativeEvent)
77 // void OnMultiTouchUpdate(const TArray<FGestureData>& GestureData);
78 //
79 // //Called when
80 // UFUNCTION(Category="Multitouch", BlueprintNativeEvent)
81 // void OnMultiTouchEnd(const TArray<FGestureData>& GestureData);
82
83 UFUNCTION(Category="Multitouch", BlueprintCallable)
84 void SetSupportGesture(const bool bEnable) { bSupportGesture = bEnable; }
85
86 //TODO: Implement Drawing support. Add, Remove, Get, Show, Hide drawer instance
87
88 //UPROPERTY(Category="Free Touch", EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess="true"))
89 //uint8 bSupportVirtualShape:1;
90
91public:
92 // UFUNCTION(Category="Multitouch", BlueprintCallable, BlueprintPure)
93 // TArray<UTwoFingerGestureBase*> GetGestureObjects();
94
95private:
96 // If enabled, send multitouch event to gesture recognizer
97 UPROPERTY(Category="Multitouch", EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess="true"))
98 uint8 bSupportGesture:1;
99
100 //Add any two finger gestures you wish to recognize.
101 //UPROPERTY(Category="Multitouch", EditAnywhere, BlueprintReadOnly, Instanced, meta=(AllowPrivateAccess="true"))
102 //TArray<TObjectPtr<UTwoFingerGestureBase>> TwoFingerGestures;
103
104
105 TArray<int32> CapturePointerIndex;
106
107 TArray<FFinger> FingerData;
108
109 //TArray<FGestureData> SavedGestureData;
110
111 UPROPERTY()
112 TArray<UTouchInterfaceListener*> Listeners;
113
114 double CurrentTime;
115};
Abstract
Definition ComponentDecorator_Animation.h:40
BlueprintType
Definition ComponentDecorator_Animation.h:40
meta
Definition GestureRecognizerComp.h:274
Category
Definition MultitouchLogic.h:83
virtual void Initialize_Implementation() override
Definition MultitouchLogic.cpp:16
UMultitouchLogic()
Definition MultitouchLogic.cpp:9
virtual void OnPress_Implementation(const FGeometry &ComponentGeometry, const FPointerEvent &PointerEvent) override
Definition MultitouchLogic.cpp:37
virtual void OnMove_Implementation(const FGeometry &ComponentGeometry, const FPointerEvent &PointerEvent) override
Definition MultitouchLogic.cpp:90
virtual void OnTick_Implementation(const FGeometry &ComponentGeometry, const FPointerEvent &PointerEvent, const double InCurrentTime, const float InDeltaTime) override
Definition MultitouchLogic.cpp:167
virtual void OnRelease_Implementation(const FGeometry &ComponentGeometry, const FPointerEvent &PointerEvent) override
Definition MultitouchLogic.cpp:130
BlueprintCallable void SetSupportGesture(const bool bEnable)
Definition MultitouchLogic.h:84
Definition TouchInterfaceListener.h:16
EditAnywhere
Definition TouchInterfaceListener.h:68
BlueprintReadWrite
Definition TouchInterfaceListener.h:68
BlueprintCallable
Definition TouchInterfaceListener.h:56
Category
Definition TouchInterfaceListener.h:56
Definition MultitouchLogic.h:15
Category
Definition MultitouchLogic.h:18
VisibleAnywhere FVector2D Location
Definition MultitouchLogic.h:25
VisibleAnywhere float ElapsedTime
Definition MultitouchLogic.h:31
void Reset()
Definition MultitouchLogic.h:43
VisibleAnywhere FVector2D Offset
Definition MultitouchLogic.h:28
FFinger()
Definition MultitouchLogic.h:33
VisibleAnywhere FVector2D BeginLocation
Definition MultitouchLogic.h:22
VisibleAnywhere bool bIsActive
Definition MultitouchLogic.h:19