Touch Interface Designer 2025.2
Create touch interface with a visual editor and manage all mobile inputs like gestures
Loading...
Searching...
No Matches
VirtualShapeDrawer.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 "DEPRECATED_LayoutSubsystem.h"
7#include "Blueprint/UserWidget.h"
8#include "VirtualShape.h"
9#include "VirtualShapeDrawer.generated.h"
10
12struct FDrawData;
14
15//TODO: Customization data for visualization
16
17//TODO: Make event like OnPointAdded(location), OnShapePointAdded(location) (when runtime detection will be available)
18
20UCLASS(Blueprintable)
21class TOUCHINTERFACE_API UVirtualShapeDrawer : public UUserWidget
22{
23 GENERATED_BODY()
24
25public:
26 UVirtualShapeDrawer(const FObjectInitializer& ObjectInitializer);
27
28 virtual void NativeConstruct() override;
29 virtual void NativeDestruct() override;
30
31 UFUNCTION()
32 void TouchBegan(int32 Index, FVector2D Location);
33
34 UFUNCTION()
35 void TouchMoving(int32 Index, FVector2D Location);
36
37 UFUNCTION()
38 void TouchEnded(int32 Index, FVector2D Location);
39
40
41protected:
42 virtual int32 NativePaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const override;
43
44
45public:
46 UFUNCTION(Category="Virtual Shape Drawer", BlueprintCallable)
47 void ShowVirtualShapeGuide(UVirtualShape* VirtualShape);
48
49 UFUNCTION(Category="Virtual Shape Drawer", BlueprintCallable)
51
52 UFUNCTION(Category="Virtual Shape Drawer", BlueprintCallable, BlueprintPure)
53 bool RecognitionReady() const { return bRecognitionReady; }
54
55private:
56 void LoadResources();
57
58 void ClearUserDrawing();
59
60public:
61 UPROPERTY()
63
64 UPROPERTY(meta=(DeprecatedProperty, DeprecationMessage="Use Touch Interface Subsystem instead"))
65 UDEPRECATED_LayoutSubsystem* LayoutSubsystem_DEPRECATED;
66
67
68 // Texture used for point
69 UPROPERTY(Category="Drawer", EditAnywhere, BlueprintReadWrite, meta=(AllowedClasses="/Script/Engine.Texture2D, /Script/Engine.Material"))
70 FSoftObjectPath DotBrush;
71
72 // Line size
73 UPROPERTY(Category="Drawer", EditAnywhere,BlueprintReadWrite, meta=(ClampMin=1.0f))
74 float DrawLineSize;
75
76 // Brush size
77 UPROPERTY(Category="Drawer", EditAnywhere,BlueprintReadWrite, meta=(ClampMin=1.0f))
78 float DrawBrushSize;
79
80 // Line color
81 UPROPERTY(Category="Drawer", EditAnywhere,BlueprintReadWrite)
82 FLinearColor DrawLineColor;
83
84 // Brush color
85 UPROPERTY(Category="Drawer", EditAnywhere,BlueprintReadWrite)
86 FLinearColor DrawBrushColor;
87
88 // Line should be draw
89 UPROPERTY(Category="Drawer", EditAnywhere,BlueprintReadWrite)
90 uint8 bDrawLines:1;
91
92 // Point/Brush should be draw
93 UPROPERTY(Category="Drawer", EditAnywhere, BlueprintReadWrite)
94 uint8 bDrawPoint:1;
95
96 //TODO: Separate into three color (near, far, too far)
97 UPROPERTY(Category="Drawer|Guide", EditAnywhere, BlueprintReadWrite)
98 FLinearColor GuideColor;
99
100private:
101 UPROPERTY()
102 UVirtualShape* VirtualShapeToDraw;
103
104 uint8 bDrawVirtualShape:1;
105
106 TArray<FDrawData> UserDrawing;
107
108 uint8 bIsDrawing:1;
109 uint8 bLaunchTimer:1;
110
111 FTimerHandle ComputeTimer;
112
113 float ShapeDotDistance;
114
115 TWeakObjectPtr<UObject> BrushResource;
116
117 FSlateBrush PointBrush;
118
119 bool bRecognitionReady;
120};
Blueprintable
Definition ComponentDecorator_Animation.h:40
Definition DEPRECATED_LayoutSubsystem.h:25
Definition TouchInterfaceSubsystem.h:70
BlueprintPure
Definition TouchInterfaceSubsystem.h:433
void TouchMoving(int32 Index, FVector2D Location)
Definition VirtualShapeDrawer.cpp:89
BlueprintCallable void ShowVirtualShapeGuide(UVirtualShape *VirtualShape)
Definition VirtualShapeDrawer.cpp:238
BlueprintReadWrite FLinearColor DrawBrushColor
Definition VirtualShapeDrawer.h:86
Category
Definition VirtualShapeDrawer.h:46
UVirtualShapeDrawer(const FObjectInitializer &ObjectInitializer)
Definition VirtualShapeDrawer.cpp:10
BlueprintReadWrite uint8 bDrawPoint
Definition VirtualShapeDrawer.h:94
BlueprintPure bool RecognitionReady() const
Definition VirtualShapeDrawer.h:53
meta
Definition VirtualShapeDrawer.h:64
void TouchEnded(int32 Index, FVector2D Location)
Definition VirtualShapeDrawer.cpp:100
BlueprintReadWrite FLinearColor DrawLineColor
Definition VirtualShapeDrawer.h:82
void TouchBegan(int32 Index, FVector2D Location)
Definition VirtualShapeDrawer.cpp:57
UTouchInterfaceSubsystem * TouchInterfaceSubsystem
Definition VirtualShapeDrawer.h:62
BlueprintReadWrite FLinearColor GuideColor
Definition VirtualShapeDrawer.h:98
BlueprintReadWrite
Definition VirtualShapeDrawer.h:69
EditAnywhere
Definition VirtualShapeDrawer.h:69
BlueprintCallable
Definition VirtualShapeDrawer.h:52
virtual int32 NativePaint(const FPaintArgs &Args, const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle, bool bParentEnabled) const override
Definition VirtualShapeDrawer.cpp:129
virtual void NativeDestruct() override
Definition VirtualShapeDrawer.cpp:46
BlueprintCallable void HideVirtualShapeGuide()
Definition VirtualShapeDrawer.cpp:250
BlueprintReadWrite uint8 bDrawLines
Definition VirtualShapeDrawer.h:90
virtual void NativeConstruct() override
Definition VirtualShapeDrawer.cpp:30
Definition VirtualShape.h:233
Definition VirtualShape.h:14