Module |
|
Header |
/Engine/Source/Runtime/Experimental/InteractiveToolsFramework/Public/InteractiveTool.h |
Include |
#include "InteractiveTool.h" |
class UInteractiveTool :
public UObject,
public IInputBehaviorSource
UInteractiveTool is the base class for all Tools in the InteractiveToolsFramework. A Tool is is a "lightweight mode" that may "own" one or more Actors/Components/etc in the current scene, may capture certain input devices or event streams, and so on. The base implementation essentially does nothing but provide sane default behaviors.
The BaseTools/ subfolder contains implementations of various kinds of standard "tool behavior", like a tool that responds to a mouse click, etc, that can be extended to implement custom behaviors.
In the framework, you do not create instances of UInteractiveTool yourself. You provide a UInteractiveToolBuilder implementation that can properly construct an instance of your Tool, this is where for example default parameters would be set. The ToolBuilder is registered with the ToolManager, and then UInteractiveToolManager::ActivateTool() is used to kick things off.
Name | Description | ||
---|---|---|---|
|
InputBehaviors |
The current set of InputBehaviors provided by this Tool |
|
|
OnPropertySetsModified |
||
|
ToolPropertyObjects |
The current set of Property UObjects provided by this Tool. May contain pointer to itself. |
Name | Description | |
---|---|---|
|
UInteractiveTool() |
Name | Description | ||
---|---|---|---|
|
AddInputBehavior ( |
Input Behaviors support Add an input behavior for this Tool |
|
|
AddToolPropertySource ( |
Add a Property object for this Tool |
|
|
AddToolPropertySource ( |
Add a PropertySet object for this Tool |
|
|
CanAccept() |
||
|
DrawHUD ( |
Allow the Tool to do any custom screen space drawing |
|
|
ExecuteAction ( |
Request that the Action identified by ActionID be executed. |
|
|
FInteractive... |
GetActionSet() |
Get the internal Action Set for this Tool. The action set is created and registered on-demand. |
|
FInteractive... |
GetToolInfo() |
Tool Information (name, icon, help text, etc) |
|
UInteractive... |
GetToolManager() |
|
|
GetToolProperties ( |
Property support |
|
|
HasAccept() |
||
|
HasCancel() |
||
|
OnPropertyModified |
Automatically called by UInteractiveToolPropertySet.OnModified delegate to notify Tool of child property set changes |
|
|
RegisterActions ( |
Override this function to register the set of Actions this Tool supports, using FInteractiveToolActionSet::RegisterAction. |
|
|
RemoveToolPropertySource ( |
Remove a PropertySet object from this Tool. If found, will broadcast OnPropertySetsModified |
|
|
Render ( |
Allow the Tool to do any custom drawing (ie via PDI/RHI) |
|
|
ReplaceToolPropertySource ( |
Replace a PropertySet object on this Tool with another property set. |
|
|
SetToolDisplayName ( |
Set Tool name |
|
|
SetToolInfo ( |
Replace existing ToolInfo with new data |
|
|
SetToolPropertySourceEnabled ( |
Enable/Disable a PropertySet object for this Tool. |
|
|
Setup() |
Called by ToolManager to initialize the Tool after ToolBuilder::BuildTool() has been called |
|
|
Shutdown ( |
Called by ToolManager to shut down the Tool |
|
|
Tick ( |
Non overrideable func which does processing and calls the tool's OnTick |
Name | Description | ||
---|---|---|---|
|
const UInput... |
GetInputBehaviors() |
Name |
Description |
---|---|
OnInteractiveToolPropertySetsModified |
OnPropertySetsModified is broadcast whenever the contents of the ToolPropertyObjects array is modified |