UMeshSurfacePointTool

[UMeshSurfacePointTool](API\Runtime\InteractiveToolsFramework\BaseTools\UMeshSurfacePointTool) is a base Tool implementation that can be used to implement various "point on surface" interactions.

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

InteractiveToolsFramework

Header

/Engine/Source/Runtime/InteractiveToolsFramework/Public/BaseTools/MeshSurfacePointTool.h

Include

#include "BaseTools/MeshSurfacePointTool.h"

Syntax

class UMeshSurfacePointTool :
    public USingleSelectionTool,
    public IClickDragBehaviorTarget,
    public IHoverBehaviorTarget

Remarks

UMeshSurfacePointTool is a base Tool implementation that can be used to implement various "point on surface" interactions. The tool acts on an input IMeshDescriptionSource object, which the standard Builder can extract from the current selection (eg Editor selection).

Subclasses override the OnBeginDrag/OnUpdateDrag/OnEndDrag and OnUpdateHover functions to implement custom behavior.

Variables

Name Description

Protected variable

bool

 

bCtrlToggle

Current state of the ctrl modifier toggle

Protected variable

bool

 

bShiftToggle

Current state of the shift modifier toggle

Protected variable

FRay

 

LastWorldRay

Protected variable

IToolStylusStat...

 

StylusAPI

Functions

Name Description

Public function Virtual Const

bool

 

GetCtrlToggle()

Public function Virtual Const

float

 

GetCurrentDevicePressure()

Public function Virtual Const

bool

 

GetShiftToggle()

Public function Virtual

bool

 

HitTest

(
    const FRay& Ray,
    FHitResult& OutHit
)

Public function Virtual

void

 

OnBeginDrag

(
    const FRay& Ray
)

This function is called when the user begins a click-drag-release interaction

Public function Virtual

void

 

OnEndDrag

(
    const FRay& Ray
)

This function is called when the user releases the button driving a click-drag-release interaction

Public function Virtual

void

 

OnUpdateDrag

(
    const FRay& Ray
)

This function is called each frame that the user is in a click-drag-release interaction

Public function Virtual

void

 

SetCtrlToggle

(
    bool bCtrlDown
)

Called by registered InputBehaviors to set the state of the "shift" button (or device equivalent)

Public function Virtual

void

 

SetShiftToggle

(
    bool bShiftDown
)

Called by registered InputBehaviors to set the state of the "shift" button (or device equivalent)

Public function Virtual

void

 

SetStylusAPI

(
    IToolStylusStateProviderAPI* S...
)

Set current stlyus API source

Overridden from UInteractiveTool

Name Description

Public function Virtual

void

 

Setup()

Register InputBehaviors, etc

Overridden from IInteractiveToolCameraFocusAPI

Name Description

Public function Virtual

bool

 

GetWorldSpaceFocusPoint

(
    const FRay& WorldRay,
    FVector& PointOut
)

IInteractiveToolCameraFocusAPI implementation.

Overridden from IClickDragBehaviorTarget

Name Description

Public function Virtual

FInputRayHit

 

CanBeginClickDragSequence

(
    const FInputDeviceRay& PressPos
)

IClickDragBehaviorTarget implementation.

Public function Virtual

void

 

OnClickDrag

(
    const FInputDeviceRay& DragPos
)

Notify Target that input position has changed

Public function Virtual

void

 

OnClickPress

(
    const FInputDeviceRay& PressPos
)

Notify Target that click press ocurred

Public function Virtual

void

 

OnClickRelease

(
    const FInputDeviceRay& ReleasePos
)

Notify Target that click release occurred

Public function Virtual

void

 

OnTerminateDragSequence()

Notify Target that click-drag sequence has been explicitly terminated (eg by escape key)

Overridden from IModifierToggleBehaviorTarget

Name Description

Public function Virtual

void

 

OnUpdateModifierState

(
    int ModifierID,
    bool bIsOn
)

Notify target of current modifier state

Overridden from IHoverBehaviorTarget

Name Description

Public function Virtual

FInputRayHit

 

BeginHoverSequenceHitTest

(
    const FInputDeviceRay& PressPos
)

Do hover hit-test

Public function Virtual

void

 

OnBeginHover

(
    const FInputDeviceRay& DevicePos
)

Initialize hover sequence at given position

Public function Virtual

void

 

OnEndHover()

Terminate active hover sequence

Public function Virtual

bool

 

OnUpdateHover

(
    const FInputDeviceRay& DevicePos
)

Update active hover sequence with new input position