Touch Interface Designer 2025.2
Create touch interface with a visual editor and manage all mobile inputs like gestures
Loading...
Searching...
No Matches
SVirtualControl Class Reference

#include <SVirtualControl.h>

Inheritance diagram for SVirtualControl:
Collaboration diagram for SVirtualControl:

Public Member Functions

 SLATE_BEGIN_ARGS (SVirtualControl)
 SVirtualControl ()
void Construct (const FArguments &InArgs)
virtual ~SVirtualControl () override
virtual bool OnPress (const FGeometry &MyGeometry, const FPointerEvent &Event)
virtual void OnMove (const FGeometry &MyGeometry, const FPointerEvent &Event)
virtual void OnRelease (const FGeometry &MyGeometry, const FPointerEvent &Event)
virtual void OnTick (const FGeometry &MyGeometry, const float InScaleFactor, const double InCurrentTime, const float InDeltaTime, const bool InForceUpdate, const bool OrientToLandscape)
virtual int32 OnPaint (const FPaintArgs &Args, const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle, bool bParentEnabled) const override
virtual FVector2D ComputeDesiredSize (float LayoutScaleMultiplier) const override
virtual bool SupportsKeyboardFocus () const override
void SetCanvasSlot (SConstraintCanvas::FSlot *NewSlot)
virtual void RefreshPosition ()
virtual void DrawLayer (const FVisualLayer &InLayer, const FVector2D InSize, const FVector2D InBrushSize, float Angle, const FVector2D InOffset, const FGeometry &AllottedGeometry, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle) const
virtual bool IsInside (const FVector2D FingerPosition)
EControlType GetControlType () const
FName GetControlName () const
FVirtualControl GetData () const
FVirtualControlGetDataRef ()
TArray< UVirtualInputEvent * > GetVirtualInputEventInstances ()
void AddNewLayer (const FVisualLayer &VisualLayer)
void InsertNewLayer (const FVisualLayer &VisualLayer, const int32 Index)
void RemoveLayer (const FName LayerName)
void RemoveLayerByIndex (const int32 LayerIndex)
UMaterialInstanceDynamic * GetLayerDynamicMaterialInstance (const FName LayerName, UObject *InOuter)
bool ApplyModification ()
bool ContainPointerIndex (int32 PointerIndex)
UEnhancedInputLocalPlayerSubsystem * GetEnhancedInputSubsystem ()
void HandleOnOrientationChanged (const bool bOrientToLandscape)
void Reset ()
void ResetChild (const FVector2D ParentPosition)
virtual void FlushPressedKey ()
bool AddChild (TSharedPtr< SVirtualControl > Other)
void PreDestroy ()
bool RemoveChild (TSharedPtr< SVirtualControl > ChildToRemove)
bool IsParent () const
bool IsChild () const
const TArray< TSharedPtr< SVirtualControl > > & GetLinkedVirtualControls ()
void InjectInput (const UInputAction *Action, FInputActionValue RawValue)
void StopInjectingInput (const UInputAction *Action)
void SetEnableInput (const bool Enabled)
ULocalPlayer * GetLocalPlayer () const

Protected Member Functions

const UTouchInterfaceSettings * GetSettings ()
void AlignBoxIntoScreen (FVector2D &Position, const FVector2D &Size, const FVector2D &ScreenSize)
void ResolveRelativePosition (FVector2D &Position, const FVector2D RelativeTo)
virtual void CalculateCorrectedValues (const FVector2D &Center, const FVector2D Offset, const FGeometry &AllottedGeometry, const float InScaleFactor)
virtual void Recenter (const FVector2D DesiredPosition)
virtual void RefreshChild (const FGeometry &MyGeometry, const FVector2D ParentCenter, const float InScaleFactor)
virtual void RecenterChild (const FVector2D ParentPosition)
void SetLocalPosition (const FVector2D NewPosition, const bool IsNormalized)
bool MultitouchDetected () const

Protected Attributes

TSharedPtr< SDeprecatedTouchInterfaceParentWidget
TArray< int32 > CapturePointerIndex
FVirtualControl VirtualControl
UVirtualInputVirtualInput
SConstraintCanvas::FSlot * CanvasSlot
TAttribute< float > TouchInterfaceOpacity
TAttribute< float > ScaleFactor
TAttribute< bool > DrawDebug
uint8 bIsPressed:1
uint8 bBlockInput:1
uint8 bRefreshPosition:1
uint8 bAutoPositioning:1
uint8 bUseLandscapePosition:1
uint8 bSupportMultitouch:1
FVector2D AbsoluteCenter
FVector2D CorrectedCenter
FVector2D CorrectedVisualSize
FVector2D CorrectedInteractionSize
FVector2D ParentOffset
FVector2D CorrectedOffset
float CorrectedInteractionRadiusSize
float CircleHitMaxLength
float CurrentScaleFactor
float PreviousScaleFactor
double CurrentTime
float DeltaTime
float ElapsedTime
float LastElapsedTime
float DebugOpacity

Constructor & Destructor Documentation

◆ SVirtualControl()

SVirtualControl::SVirtualControl ( )

◆ ~SVirtualControl()

SVirtualControl::~SVirtualControl ( )
overridevirtual

Called when this widget is destroyed

Member Function Documentation

◆ AddChild()

bool SVirtualControl::AddChild ( TSharedPtr< SVirtualControl > Other)

◆ AddNewLayer()

void SVirtualControl::AddNewLayer ( const FVisualLayer & VisualLayer)

Add new layer in default group

◆ AlignBoxIntoScreen()

void SVirtualControl::AlignBoxIntoScreen ( FVector2D & Position,
const FVector2D & Size,
const FVector2D & ScreenSize )
protected

Clamp control position into screen

◆ ApplyModification()

bool SVirtualControl::ApplyModification ( )

Apply changes to the structure (FVirtualControl)

◆ CalculateCorrectedValues()

void SVirtualControl::CalculateCorrectedValues ( const FVector2D & Center,
const FVector2D Offset,
const FGeometry & AllottedGeometry,
const float InScaleFactor )
protectedvirtual

Adjust all virtual control properties based on geometry and ScaleFactor

Parameters
CenterCenter of control in screen in relative
OffsetOffset from CorrectedCenter in absolute
AllottedGeometryTouch Interface Geometry
InScaleFactorScaleFactor used by Touch Interface

Reimplemented in SVirtualControlJoystick.

◆ ComputeDesiredSize()

FVector2D SVirtualControl::ComputeDesiredSize ( float LayoutScaleMultiplier) const
overridevirtual

Reimplemented in STouchRegion, and SVirtualControlJoystick.

◆ Construct()

void SVirtualControl::Construct ( const FArguments & InArgs)

Constructs this widget with InArgs

◆ ContainPointerIndex()

bool SVirtualControl::ContainPointerIndex ( int32 PointerIndex)

◆ DrawLayer()

void SVirtualControl::DrawLayer ( const FVisualLayer & InLayer,
const FVector2D InSize,
const FVector2D InBrushSize,
float Angle,
const FVector2D InOffset,
const FGeometry & AllottedGeometry,
FSlateWindowElementList & OutDrawElements,
int32 LayerId,
const FWidgetStyle & InWidgetStyle ) const
virtual

◆ FlushPressedKey()

void SVirtualControl::FlushPressedKey ( )
virtual

◆ GetControlName()

FName SVirtualControl::GetControlName ( ) const
inline

◆ GetControlType()

EControlType SVirtualControl::GetControlType ( ) const
inline

◆ GetData()

FVirtualControl SVirtualControl::GetData ( ) const
inline

◆ GetDataRef()

FVirtualControl & SVirtualControl::GetDataRef ( )
inline

◆ GetEnhancedInputSubsystem()

UEnhancedInputLocalPlayerSubsystem * SVirtualControl::GetEnhancedInputSubsystem ( )

◆ GetLayerDynamicMaterialInstance()

UMaterialInstanceDynamic * SVirtualControl::GetLayerDynamicMaterialInstance ( const FName LayerName,
UObject * InOuter )

◆ GetLinkedVirtualControls()

const TArray< TSharedPtr< SVirtualControl > > & SVirtualControl::GetLinkedVirtualControls ( )
inline

◆ GetLocalPlayer()

ULocalPlayer * SVirtualControl::GetLocalPlayer ( ) const
inline

◆ GetSettings()

const UTouchInterfaceSettings * SVirtualControl::GetSettings ( )
protected

Get Virtual control Designer Settings

◆ GetVirtualInputEventInstances()

TArray< UVirtualInputEvent * > SVirtualControl::GetVirtualInputEventInstances ( )
inline

◆ HandleOnOrientationChanged()

void SVirtualControl::HandleOnOrientationChanged ( const bool bOrientToLandscape)

◆ InjectInput()

void SVirtualControl::InjectInput ( const UInputAction * Action,
FInputActionValue RawValue )

◆ InsertNewLayer()

void SVirtualControl::InsertNewLayer ( const FVisualLayer & VisualLayer,
const int32 Index )

Add new layer in group. Group allow to manage visual layer 0 means default group

◆ IsChild()

bool SVirtualControl::IsChild ( ) const
inline

◆ IsInside()

bool SVirtualControl::IsInside ( const FVector2D FingerPosition)
virtual

◆ IsParent()

bool SVirtualControl::IsParent ( ) const
inline

◆ MultitouchDetected()

bool SVirtualControl::MultitouchDetected ( ) const
inlineprotected

◆ OnMove()

void SVirtualControl::OnMove ( const FGeometry & MyGeometry,
const FPointerEvent & Event )
virtual

◆ OnPaint()

int32 SVirtualControl::OnPaint ( const FPaintArgs & Args,
const FGeometry & AllottedGeometry,
const FSlateRect & MyCullingRect,
FSlateWindowElementList & OutDrawElements,
int32 LayerId,
const FWidgetStyle & InWidgetStyle,
bool bParentEnabled ) const
overridevirtual

◆ OnPress()

bool SVirtualControl::OnPress ( const FGeometry & MyGeometry,
const FPointerEvent & Event )
virtual

return true if control block touch region input

Reimplemented in STouchRegion, SVirtualButton, and SVirtualControlJoystick.

◆ OnRelease()

void SVirtualControl::OnRelease ( const FGeometry & MyGeometry,
const FPointerEvent & Event )
virtual

◆ OnTick()

void SVirtualControl::OnTick ( const FGeometry & MyGeometry,
const float InScaleFactor,
const double InCurrentTime,
const float InDeltaTime,
const bool InForceUpdate,
const bool OrientToLandscape )
virtual

◆ PreDestroy()

void SVirtualControl::PreDestroy ( )

◆ Recenter()

void SVirtualControl::Recenter ( const FVector2D DesiredPosition)
protectedvirtual

Recenter virtual control position at desired position

Reimplemented in SVirtualControlJoystick.

◆ RecenterChild()

void SVirtualControl::RecenterChild ( const FVector2D ParentPosition)
protectedvirtual

◆ RefreshChild()

void SVirtualControl::RefreshChild ( const FGeometry & MyGeometry,
const FVector2D ParentCenter,
const float InScaleFactor )
protectedvirtual

Called by parent control to refresh position of children

◆ RefreshPosition()

virtual void SVirtualControl::RefreshPosition ( )
inlinevirtual

Re-calculate position of control

◆ RemoveChild()

bool SVirtualControl::RemoveChild ( TSharedPtr< SVirtualControl > ChildToRemove)

◆ RemoveLayer()

void SVirtualControl::RemoveLayer ( const FName LayerName)

◆ RemoveLayerByIndex()

void SVirtualControl::RemoveLayerByIndex ( const int32 LayerIndex)

◆ Reset()

void SVirtualControl::Reset ( )

◆ ResetChild()

void SVirtualControl::ResetChild ( const FVector2D ParentPosition)

◆ ResolveRelativePosition()

void SVirtualControl::ResolveRelativePosition ( FVector2D & Position,
const FVector2D RelativeTo )
protected

Set Position value based on RelativeTo (Normalized to Local)

◆ SetCanvasSlot()

void SVirtualControl::SetCanvasSlot ( SConstraintCanvas::FSlot * NewSlot)
inline

◆ SetEnableInput()

void SVirtualControl::SetEnableInput ( const bool Enabled)
inline

◆ SetLocalPosition()

void SVirtualControl::SetLocalPosition ( const FVector2D NewPosition,
const bool IsNormalized )
protected

Set position in canvas. If

◆ SLATE_BEGIN_ARGS()

SVirtualControl::SLATE_BEGIN_ARGS ( SVirtualControl )
inline

◆ StopInjectingInput()

void SVirtualControl::StopInjectingInput ( const UInputAction * Action)

◆ SupportsKeyboardFocus()

virtual bool SVirtualControl::SupportsKeyboardFocus ( ) const
inlineoverridevirtual

Member Data Documentation

◆ AbsoluteCenter

FVector2D SVirtualControl::AbsoluteCenter
protected

◆ bAutoPositioning

uint8 SVirtualControl::bAutoPositioning
protected

◆ bBlockInput

uint8 SVirtualControl::bBlockInput
protected

◆ bIsPressed

uint8 SVirtualControl::bIsPressed
protected

◆ bRefreshPosition

uint8 SVirtualControl::bRefreshPosition
protected

◆ bSupportMultitouch

uint8 SVirtualControl::bSupportMultitouch
protected

◆ bUseLandscapePosition

uint8 SVirtualControl::bUseLandscapePosition
protected

◆ CanvasSlot

SConstraintCanvas::FSlot* SVirtualControl::CanvasSlot
protected

◆ CapturePointerIndex

TArray<int32> SVirtualControl::CapturePointerIndex
protected

◆ CircleHitMaxLength

float SVirtualControl::CircleHitMaxLength
protected

◆ CorrectedCenter

FVector2D SVirtualControl::CorrectedCenter
protected

◆ CorrectedInteractionRadiusSize

float SVirtualControl::CorrectedInteractionRadiusSize
protected

◆ CorrectedInteractionSize

FVector2D SVirtualControl::CorrectedInteractionSize
protected

◆ CorrectedOffset

FVector2D SVirtualControl::CorrectedOffset
protected

◆ CorrectedVisualSize

FVector2D SVirtualControl::CorrectedVisualSize
protected

◆ CurrentScaleFactor

float SVirtualControl::CurrentScaleFactor
protected

◆ CurrentTime

double SVirtualControl::CurrentTime
protected

Time since creation

◆ DebugOpacity

float SVirtualControl::DebugOpacity
protected

◆ DeltaTime

float SVirtualControl::DeltaTime
protected

Time since last frame

◆ DrawDebug

TAttribute<bool> SVirtualControl::DrawDebug
protected

◆ ElapsedTime

float SVirtualControl::ElapsedTime
protected

Duration from press to release

◆ LastElapsedTime

float SVirtualControl::LastElapsedTime
protected

◆ ParentOffset

FVector2D SVirtualControl::ParentOffset
protected

◆ ParentWidget

TSharedPtr<SDeprecatedTouchInterface> SVirtualControl::ParentWidget
protected

◆ PreviousScaleFactor

float SVirtualControl::PreviousScaleFactor
protected

◆ ScaleFactor

TAttribute<float> SVirtualControl::ScaleFactor
protected

◆ TouchInterfaceOpacity

TAttribute<float> SVirtualControl::TouchInterfaceOpacity
protected

◆ VirtualControl

FVirtualControl SVirtualControl::VirtualControl
protected

◆ VirtualInput

UVirtualInput* SVirtualControl::VirtualInput
protected

The documentation for this class was generated from the following files:
  • D:/MEGA/TouchProject/TouchProjectNext/Plugins/TouchInterfaceDesigner/Source/TouchInterface/Public/TouchInterface/SVirtualControl.h
  • D:/MEGA/TouchProject/TouchProjectNext/Plugins/TouchInterfaceDesigner/Source/TouchInterface/Private/TouchInterface/SVirtualControl.cpp