LEAP Documentation 40220
Documentation for the LEAP project
GameAnalogCursor.h
Go to the documentation of this file.
1// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "AnalogCursor.h"
6#include "Runtime/SlateCore/Public/Widgets/SWidget.h"
7#include "Runtime/Engine/Classes/Engine/LocalPlayer.h"
8
9class FGameAnalogCursor : public FAnalogCursor
10{
11public:
13 PROJECTX_API static void EnableAnalogCursor(class APlayerController* PC, TSharedPtr<SWidget> WidgetToFocus);
14 PROJECTX_API static void DisableAnalogCursor(class APlayerController* PC);
15 PROJECTX_API static void SetAnalogCursorSensitivity(const float Multiplier = 1.0f);
16
18 FGameAnalogCursor(class APlayerController* PC, float _Radius);
19
20 static TSharedPtr<FGameAnalogCursor> AnalogCursor;
21
24 {}
25
27 virtual void Tick(const float DeltaTime, FSlateApplication& SlateApp, TSharedRef<ICursor> Cursor) override;
28
30 FORCEINLINE FName GetHoveredWidgetName() const
31 {
32 return HoveredWidgetName;
33 }
34
36 FORCEINLINE bool IsHovered() const
37 {
38 return HoveredWidgetName != NAME_None;
39 }
40
42 FORCEINLINE FVector2D GetCurrentPosition() const
43 {
44 return CurrentPosition;
45 }
46
48 FORCEINLINE FVector2D GetVelocity() const
49 {
50 return Velocity;
51 }
52
54 FORCEINLINE bool GetIsUsingAnalogCursor() const
55 {
56 return bIsUsingAnalogCursor;
57 }
58
60 FORCEINLINE FVector2D GetLastCursorDirection() const
61 {
62 return LastCursorDirection;
63 }
64
66 FORCEINLINE float GetRadius() const
67 {
68 return Radius;
69 }
70
71private:
72
74 FVector2D GetAnalogCursorAccelerationValue(const FVector2D& AnalogVal, float DPIScale);
75
77 FVector2D Velocity;
78
80 FVector2D CurrentPosition;
81
83 FVector2D LastCursorDirection;
84
86 FName HoveredWidgetName;
87
89 bool bIsUsingAnalogCursor;
90
92 float Radius;
93
94 float SensitivityMultiplier = 1.0f;
95
97 FLocalPlayerContext PlayerContext;
98};
Definition: GameAnalogCursor.h:10
static PROJECTX_API void DisableAnalogCursor(class APlayerController *PC)
Definition: GameAnalogCursor.cpp:43
FORCEINLINE bool IsHovered() const
Definition: GameAnalogCursor.h:36
virtual ~FGameAnalogCursor()
Definition: GameAnalogCursor.h:23
FORCEINLINE FVector2D GetVelocity() const
Definition: GameAnalogCursor.h:48
static PROJECTX_API void EnableAnalogCursor(class APlayerController *PC, TSharedPtr< SWidget > WidgetToFocus)
Definition: GameAnalogCursor.cpp:23
FGameAnalogCursor(class APlayerController *PC, float _Radius)
Definition: GameAnalogCursor.cpp:71
FORCEINLINE FVector2D GetLastCursorDirection() const
Definition: GameAnalogCursor.h:60
FORCEINLINE FVector2D GetCurrentPosition() const
Definition: GameAnalogCursor.h:42
FORCEINLINE FName GetHoveredWidgetName() const
Definition: GameAnalogCursor.h:30
FORCEINLINE float GetRadius() const
Definition: GameAnalogCursor.h:66
static PROJECTX_API void SetAnalogCursorSensitivity(const float Multiplier=1.0f)
Definition: GameAnalogCursor.cpp:63
virtual void Tick(const float DeltaTime, FSlateApplication &SlateApp, TSharedRef< ICursor > Cursor) override
Definition: GameAnalogCursor.cpp:83
static TSharedPtr< FGameAnalogCursor > AnalogCursor
Definition: GameAnalogCursor.h:20
FORCEINLINE bool GetIsUsingAnalogCursor() const
Definition: GameAnalogCursor.h:54