Navigation
API > API/Runtime > API/Runtime/InteractiveToolsFramework > API/Runtime/InteractiveToolsFramework/BaseBehaviors
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UInputBehavior
- UAnyButtonInputBehavior
- UMultiClickSequenceInputBehavior
References
| Module | InteractiveToolsFramework |
| Header | /Engine/Source/Runtime/InteractiveToolsFramework/Public/BaseBehaviors/MultiClickSequenceInputBehavior.h |
| Include | #include "BaseBehaviors/MultiClickSequenceInputBehavior.h" |
Syntax
class UMultiClickSequenceInputBehavior : public UAnyButtonInputBehavior
Remarks
UMultiClickSequenceInputBehavior implements a generic multi-click-sequence input behavior. For example this behavior could be used to implement a multi-click polygon-drawing interaction.
The internal state machine works as follows: 1) on input-device-button-press, check if target wants to begin sequence. If so, begin capture. 2) on button release, check if target wants to continue or terminate sequence a) if terminate, release capture b) if continue, do nothing (capture continues between presses)
The target will receive "preview" notifications (basically hover) during updates where there is not a release. This can be used to (eg) update a rubber-band selection end point
Variables
| Type | Name | Description | |
|---|---|---|---|
| TFunction< bool(const FInputDeviceState &)> | ModifierCheckFunc | The first click will only be accepted if this function returns true (or is null) | |
| FInputBehaviorModifierStates | Modifiers | The modifier set for this behavior | |
| ESequenceState | State | ||
| IClickSequenceBehaviorTarget * | Target | Click Target object |
Constructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | Initialize
(
IClickSequenceBehaviorTarget* Target |
Initialize this behavior with the given Target |
Overridden from UInputBehavior
| Type | Name | Description | |
|---|---|---|---|
| FInputCaptureUpdate | BeginCapture
(
const FInputDeviceState& InputState, |
Called after WantsCapture() returns a capture request that was accepted | |
| FInputCaptureUpdate | BeginHoverCapture
(
const FInputDeviceState& InputState, |
Called after WantsHoverCapture() returns a capture request that was accepted | |
| void | If a different hover capture begins, focus is lost, a tool starts, etc, any active hover visualization needs to terminate | ||
| void | ForceEndCapture
(
const FInputCaptureData& CaptureData |
If this is called, the Behavior has forcibly lost capture (eg due to app losing focus for example) and needs to clean up accordingly | |
| FInputCaptureUpdate | UpdateCapture
(
const FInputDeviceState& InputState, |
Called for each new input event during a capture sequence. | |
| FInputCaptureUpdate | UpdateHoverCapture
(
const FInputDeviceState& InputState |
Called on each new hover input event, ie if no other behavior is actively capturing input | |
| FInputCaptureRequest | WantsCapture
(
const FInputDeviceState& InputState |
Given the input state, does this Behavior want to begin capturing some input devices? | |
| FInputCaptureRequest | WantsHoverCapture
(
const FInputDeviceState& InputState |
Given the input state, does this Behavior want to begin capturing some input devices for hover | |
| bool | Hover support (optional)return true if this Behavior supports hover (ie passive input events) |
Enums
| Type | Name | Description | |
|---|---|---|---|
| ESequenceState |