description: Actually does the point drawing; assumes Position is already transformed

code: virtual void InternalDrawTransformedPoint ( const FVector & Position, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float PointSize, bool bDepthTested )


description: Actually does the circle drawing

module: InteractiveToolsFramework

code: virtual void InternalDrawViewFacingCircle ( const FVector & Position, float Radius, int Steps, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float LineThickness, bool bDepthTested )


description: Actually does the line drawing; assumes A and B are already transformed

code: virtual void InternalDrawTransformedLine ( const FVector & A, const FVector & B, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float LineThickness, bool bDepthTested )


description: Actually does the square drawing

code: virtual void InternalDrawSquare ( const FVector & Center, const FVector & SideA, const FVector & SideB, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float LineThickness, bool bDepthTested )


description: Actually does the X drawing

code: virtual void InternalDrawViewFacingX ( const FVector & Position, float Width, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float LineThickness, bool bDepthTested )


description: Actually does the cylinder drawing

code: virtual void InternalDrawWireCylinder ( const FVector & Position, const FVector & Normal, float Radius, float Height, int Steps, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float LineThickness, bool bDepthTested )


description: Actually does the box drawing

code: virtual void InternalDrawWireBox ( const FBox & Box, const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float LineThickness, bool bDepthTested )


description: Clear the transform stack to identity

code: void PopAllTransforms()


description: Push a Transform onto the transform stack

code: void PushTransform ( const FTransform & Transform )


description: Pop a transform from the transform stack

code: void PopTransform()


description: ParametersUpdate the default line color and thickness

code: void SetLineParameters ( const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float Thickness )


description: Transform supportClear transform stack and push the given Transform

code: void SetTransform ( const FTransform & Transform )


description: Update the default point color and size

code: void SetPointParameters ( const [FLinearColor](API\Runtime\Core\Math\FLinearColor) & Color, float Size )


description: input Normal transformed by transform stack

code: FVector TransformN ( const FVector & Normal )


description: input Point transformed by transform stack

code: FVector TransformP ( const FVector & Point )


description: input Vector transformed by transform stack

code: FVector TransformV ( const FVector & Vector )


code: FToolDataVisualizer()


code: virtual ~FToolDataVisualizer()


className: FToolDataVisualizer

description: Currently uses PDI drawing but may use different back-ends in the future

code: class FToolDataVisualizer

bDepthTested

type: bool

description: Should lines be clipped by 3D geometry, or should they be drawn with quasi-transparency

CameraState

type: FViewCameraStat...

CurrentPDI

type: FPrimitiveDrawI...

description: We use this for drawing, extracted in InitializeFrame

DepthBias

type: float

description: Depth bias applied to lines

LineColor

type: FLinearColor

description: Default color used for drawing lines

LineThickness

description: Default thickness used for drawing lines

PDISizeScale

description: Screen-space line thicknesses and point sizes are multiplied by this value to try to normalize for variable thickness that occurs at different FOVs.

PointColor

description: Default color used for drawing points

PointSize

description: Default size used for drawing points

TotalTransform

type: FTransform

TransformStack

type: TArray< FTransf...


description: forward camera direction

code: FVector Forward() const


description: FOV normalization factor that should be applied when comparing angles


description: "up"/vertical direction in camera plane

code: FVector Up() const


description: scaling factor that should be applied to PDI thickness/size

code: float GetPDIScalingFactor() const


description: "right"/horizontal direction in camera plane

code: FVector Right() const


className: FViewCameraState

description: FViewCameraStateis a bucket of state information that a Tool might need to implement interactions that depend on the current scene view.

code: struct FViewCameraState

AspectRatio

description: Current Aspect Ratio

bIsOrthographic

description: Is current view an orthographic view

bIsVR

description: Is current view a VR view

HorizontalFOVDegrees

description: Current Horizontal Field of View Angle in Degrees. Only relevant if bIsOrthographic is false.

Orientation

type: FQuat

description: Current camera/head orientation

OrthoWorldCoordinateWidth

description: Current width of viewport in world space coordinates. Only valid if bIsOrthographic is true.

Position

type: FVector

description: Current camera/head position


code: void CheckAndUpdateWatched()


code: void CheckAndUpdate&40;&41;


code: void SilentUpdate&40;&41;


className: FPropertyWatcher

description: Property watching infrastructure

code: class FPropertyWatcher


code: virtual &126;FPropertyWatcher&40;&41;


code: [FWatchablePropertySet](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet) & operator= ( const [FWatchablePropertySet](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet) & )


description: Silently updates just a single watcher, using an index gotten from WatchProperty. Useful when you want watching to still work for other properties changed in the same tick.

code: void SilentUpdateWatcherAtIndex ( int32 i )


code: virtual void CheckAndUpdate&40;&41;


code: template<typename T> auto Requires &40; bool & Result, const T & A, const T & B &41;


className: CInequalityComparable

description:
Requires(
bool& Result,const T& A,const T& B)

code: struct CInequalityComparable


className: FChangedCallback

code: typedef TFunction< void(const PropType &)> FChangedCallback


className: FNotEqualTestFunction

code: typedef TFunction< bool(const PropType &, const PropType &)> FNotEqualTestFunction


className: FValueGetter

code: typedef TFunction< PropType(void)> FValueGetter


code: void SilentUpdateWatched()


code: virtual void SilentUpdate&40;&41;


description: If PropType isCInequalityComparable, allow the two-argument constructor and default to using the type's existing != operator. If PropType is notCInequalityComparable, the caller must use the three-argument constructor to provide a "not equal" function.

code: template<typename Q, typename> TPropertyWatcher &40; const PropType & Property, FChangedCallback OnChangedIn &41;


description: Two-argument constructor, enabled only if PropType isCInequalityComparable.

code: template<typename Q, typename> TPropertyWatcher &40; FValueGetter GetValueIn, FChangedCallback OnChangedIn &41;


code: TPropertyWatcher &40; const PropType & Property, FChangedCallback OnChangedIn, FNotEqualTestFunction NotEqualIn &41;


code: TPropertyWatcher &40; FValueGetter GetValueIn, FChangedCallback OnChangedIn, FNotEqualTestFunction NotEqualIn &41;


description: Indexof the watcher, which can be used in SilentUpdateWatcherAtIndex

code: template<typename PropType> int32 WatchProperty ( const PropType & ValueIn, typename [TPropertyWatcher](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet\TPropertyWatcher)< PropType >::FChangedCallback OnChangedIn )


code: template<typename PropType> int32 WatchProperty ( typename [TPropertyWatcher](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet\TPropertyWatcher)< PropType >::FValueGetter GetValueIn, typename [TPropertyWatcher](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet\TPropertyWatcher)< PropType >::FChangedCallback OnChangedIn )


className: TPropertyWatcher

code: template<typename PropType> class TPropertyWatcher : public [FWatchablePropertySet::FPropertyWatcher](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet\FPropertyWatcher)


code: template<typename PropType> int32 WatchProperty ( const PropType & ValueIn, typename [TPropertyWatcher](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet\TPropertyWatcher)< PropType >::FChangedCallback OnChangedIn, typename [TPropertyWatcher](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet\TPropertyWatcher)< PropType >::FNotEqualTestFunction NotEqualsIn )


code: template<typename PropType> int32 WatchProperty ( typename [TPropertyWatcher](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet\TPropertyWatcher)< PropType >::FValueGetter GetValueIn, typename [TPropertyWatcher](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet\TPropertyWatcher)< PropType >::FChangedCallback OnChangedIn, typename [TPropertyWatcher](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet\TPropertyWatcher)< PropType >::FNotEqualTestFunction NotEqualsIn )


code: FWatchablePropertySet()


code: FWatchablePropertySet ( const [FWatchablePropertySet](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet) & )


description: The currentUInputBehaviorSetfor this Source

code: const [UInputBehaviorSet](API\Runtime\InteractiveToolsFramework\UInputBehaviorSet) * GetInputBehaviors() const


className: IInputBehaviorSource

description: UObjects that implementIInputBehaviorSourcehave anUInputBehaviorSetthat they can provide (toUInputRouter, primarily)

code: class IInputBehaviorSource


className: FWatchablePropertySet

code: class FWatchablePropertySet


description: the current Focus Box

code: virtual FBox GetWorldSpaceFocusBox()


description: true if a Focus Point was found, can return false if (eg) the ray missed the target objects

code: virtual bool GetWorldSpaceFocusPoint ( const FRay & WorldRay, FVector & PointOut )


description: true if the implementation can provide a Focus Box


description: true if the implementation can provide a Focus Point


className: IInteractiveToolCameraFocusAPI

description: The above functions should not be called unless the corresponding SupportsX() function returns true.

code: class IInteractiveToolCameraFocusAPI


className: IInteractiveToolEditorGizmoAPI

description: IInteractiveToolEditorGizmoAPIprovides an API to indicate whether the standard editor gizmos can be enabled while this tool is active.

code: class IInteractiveToolEditorGizmoAPI


description: true if the tool implementing this API allows the editor gizmos to be enabled while the tool is active


className: IInteractiveToolExclusiveToolAPI

description: IInteractiveToolExclusiveToolAPIprovides an API to inform the ToolManager about tool exclusivity. An exclusive tool prevents other tools from building & activating while the tool is active. This is useful in scenarios where tools want to enforce an explicit Accept, Cancel or Complete user input to exit the tool.

code: class IInteractiveToolExclusiveToolAPI


description: true if the implementor of this API can currently consume a Cancel action

code: virtual bool CanCurrentlyNestedCancel()


description: true if the implementor of this API can currently consume an Accept action

code: virtual bool CanCurrentlyNestedAccept()


description:
Called by Editor levels to tell the implementor (eg Tool) to execute a nested Accept action
true if the implementor consumed the Accept action


description:
Called by Editor levels to tell the implementor (eg Tool) to execute a nested Cancel action
true if the implementor consumed the Cancel action


description: true if the implementor of this API may be able to consume an Accept action


description: true if the implementor of this API may be able to consume a Cancel action


className: IInteractiveToolNestedAcceptCancelAPI

description: IInteractiveToolNestedAcceptCancelAPIprovides an API for a Tool to publish intent and ability to Accept or Cancel sub-operations. For example in a Tool that has an editable active Selection, we might want the Escape hotkey to Clear any active selection, and then on a second press, to Cancel the Tool. This API allows a Tool to say "I can consume a Cancel action", and similarly for Accept (although this is much less common).


code: void BeginChange()


className: IToolCommandChangeSource

description: IToolCommandChangeSourceis a generic interface for generating a change object. This is useful to

code: class IToolCommandChangeSource


description: Forward anFChangeobject to the Context

code: void EmitObjectChange ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * TargetObject, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange) > Change, const [FText](API\Runtime\Core\Internationalization\FText) & Description )


description: Request that the Context close and commit the open Transaction

code: void EndUndoTransaction()


description: Request that the Context open a Transaction, whatever that means to the current Context

code: void BeginUndoTransaction ( const [FText](API\Runtime\Core\Internationalization\FText) & Description )


className: IToolContextTransactionProvider

description: IToolContextTransactionProvideris aUInterfacethat defines several functions that InteractiveTool code uses to interface with the higher-level transaction system.UInteractiveToolManagerandUInteractiveGizmoManagerboth implement this interface.

code: class IToolContextTransactionProvider


className: IToolFrameworkComponent

description: IToolFrameworkComponentis an interface we can attach to custom Components used in the Tools framework. Currently this interface is only used to identify such Components (to prevent certain Actors from being deleted)

code: class IToolFrameworkComponent


description: Request current external coordinate-system setting. Defaults to World coordinates.

code: virtual EToolContextCoordinateSystem GetCurrentCoordinateSystem() const


description: theUWorldcurrently being targetted by the ToolsContext, default location for new Actors/etc

code: [UWorld](API\Runtime\Engine\Engine\UWorld) * GetCurrentEditingWorld() const


code: virtual ~IToolCommandChangeSource()


description: Collect up current-selection information for the current scene state (ie what is selected in Editor, etc)

code: void GetCurrentSelectionState ( [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & StateOut ) const


description: Request current external snapping settings. Defaults to no snapping.


description: Request current external Gizmo Mode setting. Defaulting this to Combined gizmo as this was the default behavior before UE-5.2.

code: virtual EToolContextTransformGizmoMode GetCurrentTransformGizmoMode() const


description: Request information about current view state

code: void GetCurrentViewState ( [FViewCameraState](API\Runtime\InteractiveToolsFramework\FViewCameraState) & StateOut ) const


description: the last valid viewport that received some input, or nullptr.

code: [FViewport](API\Runtime\Engine\FViewport) * GetFocusedViewport() const


description:
Many tools need standard types of materials that the user should provide (eg a vertex-color material, etc)
Instance of material to use for this purpose

code: [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * GetStandardMaterial ( EStandardToolContextMaterials MaterialType ) const


code: virtual ~IToolsContextQueriesAPI()


className: IToolsContextQueriesAPI

description: Users of the Tools Framework need to implementIToolsContextQueriesAPIto provide access to scene state information like the currentUWorld, active USelections, etc.

code: class IToolsContextQueriesAPI


description: the last valid viewport that was hovered, or nullptr.

code: [FViewport](API\Runtime\Engine\FViewport) * GetHoveredViewport() const


description: Current Camera State for this Render API


description: Current PDI


description: CurrentFSceneView

code: const [FSceneView](API\Runtime\Engine\FSceneView) * GetSceneView()


description: Current interaction state of the view to render


code: virtual ~IToolsContextRenderAPI()


className: IToolsContextRenderAPI

description: Users of the Tools Framework need to implementIToolsContextRenderAPIto allow Tools, Indicators, and Gizmos to make low-level rendering calls for things like line drawing. This API will be passed to egUInteractiveTool::Render(), so access is only provided when it makes sense to call the functions

code: class IToolsContextRenderAPI


description: Insert anFChangeinto the transaction history in the current Context. This cannot be called between Begin/EndUndoTransaction, theFChangeshould be automatically inserted into a Transaction.

code: void AppendChange ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * TargetObject, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange) > Change, const [FText](API\Runtime\Core\Internationalization\FText) & Description )


description: Begin a Transaction, whatever this means in the current Context. For example in the Editor it means open a GEditor Transaction. You must callEndUndoTransaction()after calling this.

code: void BeginUndoTransaction ( const [FText](API\Runtime\Core\Internationalization\FText) & Description )


description: Request that context display message information.

code: void DisplayMessage ( const [FText](API\Runtime\Core\Internationalization\FText) & Message, EToolMessageLevel Level )


description: Complete the Transaction. Assumption is that Begin/End are called in pairs.

code: void EndUndoTransaction()


description: Forward an invalidation request from Tools framework, to cause repaint/etc. This is not always necessary but in some situations (eg in Non-Realtime mode in Editor) a redraw will not happen every frame. SeeUInputRouterfor options to enable auto-invalidation.

code: void PostInvalidation()


description:
Request a modification to the current selected objects
true if the selection change could be applied

code: bool RequestSelectionChange ( const [FSelectedOjectsChangeList](API\Runtime\InteractiveToolsFramework\FSelectedOjectsChangeList) & SelectionChange )


code: virtual ~IToolsContextTransactionsAPI()


className: IToolsContextTransactionsAPI

description: Users of the Tools Framework need to implementIToolsContextTransactionsAPIso that the Tools have the ability to create Transactions and emit Changes. Note that this is technically optional, but that undo/redo won't be supported without it.

code: class IToolsContextTransactionsAPI


className: FSceneHitQueryRequest

description: Configuration variables for aUSceneSnappingManagerhit query request.

code: struct FSceneHitQueryRequest

VisibilityFilter

type: FSceneQueryVisi...

WorldRay

description: Scene query ray


className: FSceneHitQueryResult

description: Computed result of aUSceneSnappingManagerhit query request

code: struct FSceneHitQueryResult

HitResult

type: FHitResult

HitTriIndex

type: int

description: Integer ID of triangle that was hit

Normal

description: Hit normal

Position

description: Hit position

TargetActor

type: AActor*

description: Actor that owns hit target

TargetComponent

type: UPrimitiveCompo...

description: Component that owns hit target

TriVertices

description: Vertices of triangle that was hit (for debugging, may not be set)


code: void InitializeHitResult ( const [FSceneHitQueryRequest](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneHitQueryRequest) & FromRequest )


description: true if the Component is currently configured as visible (does not consider ComponentsToIgnore or InvisibleComponentsToInclude lists)

code: bool IsVisible ( const [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * Component ) const


className: FSceneQueryVisibilityFilter

code: struct FSceneQueryVisibilityFilter

ComponentsToIgnore

type: constTArray< c...

description: Optional: components to consider invisible even if they aren't.

InvisibleComponentsToInclude

description: Optional: components to consider visible even if they aren't.


className: FSceneSnapQueryRequest

description: Configuration variables for aUSceneSnappingManagersnap query request.

code: struct FSceneSnapQueryRequest

DeltaRotation

description: Snap input rotation delta

GridSize

type: TOptional< FVec...

description: Optional explicitly specified position grid

Position

description: Snap input position

RequestType

type: ESceneSnapQuery...

description: What type of snap query geometry is this

RotGridSize

type: TOptional< FRot...

description: Optional explicitly specified rotation grid

TargetTypes

description: What does caller want to try to snap to

VisualAngleThresholdDegrees

description: When considering if one point is close enough to another point for snapping purposes, they must deviate less than this number of degrees (in visual angle) to be considered an acceptable snap position.


className: FSceneSnapQueryResult

description: Computed result of aUSceneSnappingManagersnap query request

code: struct FSceneSnapQueryResult

DeltaRotation

description: Snap rotation delta (may not be set depending on query types)

Normal

description: Snap normal (may not be set depending on query types)

Position

description: Snap position (may not be set depending on query types)

TargetActor

description: Actor that owns snap target

TargetComponent

type: UActorComponent...

description: Component that owns snap target

TargetType

description: What kind of geometric element was snapped to

TriSnapIndex

description: Vertex/Edge index we snapped to in triangle

TriVertices

description: Vertices of triangle that contains result (for debugging, may not be set)


description:
implementations are not required (and may not be able) to support hit testing
true if any valid hit target was found

code: virtual bool ExecuteSceneHitQuery ( const [FSceneHitQueryRequest](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneHitQueryRequest) & Request, [FSceneHitQueryResult](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneHitQueryResult) & ResultOut ) const


description:
implementations are not required (and may not be able) to support snapping
true if any valid snap target/result was found

code: virtual bool ExecuteSceneSnapQuery ( const [FSceneSnapQueryRequest](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneSnapQueryRequest) & Request, [TArray](API\Runtime\Core\Containers\TArray)< [FSceneSnapQueryResult](API\Runtime\InteractiveToolsFramework\SceneQueries\FSceneSnapQueryResult) > & ResultsOut ) const


description: existingUSceneSnappingManagerregistered in context store via the ToolManager, or nullptr if not found

code: static [USceneSnappingManager](API\Runtime\InteractiveToolsFramework\SceneQueries\USceneSnappingManager) * Find ( [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * ToolManager )


code: static [USceneSnappingManager](API\Runtime\InteractiveToolsFramework\SceneQueries\USceneSnappingManager) * Find ( [UInteractiveGizmoManager](API\Runtime\InteractiveToolsFramework\UInteractiveGizmoManager) * GizmoManager )


code: FCommitMeshParameters()


className: USceneSnappingManager

description: SeeUModelingSceneSnappingManagerfor a sample implementation.

code: class USceneSnappingManager : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


code: FCommitMeshParameters ( bool bHaveTargetLOD, EMeshLODIdentifier TargetLOD )


className: FCommitMeshParameters

description: FCommitMeshParametersis used by ToolTarget Interfaces/Implementations that support setting a mesh (eg on a StaticMesh Asset), to allow the client to specify various options

code: struct FCommitMeshParameters

bHaveTargetLOD

type: bool

description: If true, TargetLOD specifies which mesh LOD should be set/updated

TargetLOD

type: EMeshLODIdentif...

description: Specify which LOD to set in a mesh-containing ToolTarget. Ignored unless bHaveTargetLOD == true.


className: FComponentMaterialSet

description: FComponentMaterialSetis the set of materials assigned to a component (ie Material Slots on a StaticMesh)

code: struct FComponentMaterialSet

Materials

type: TArray<UMateri...


code: bool operator!= ( const [FComponentMaterialSet](API\Runtime\InteractiveToolsFramework\TargetInterfaces\FComponentMaterialSet) & Other ) const


code: FGetMeshParameters()


code: FGetMeshParameters ( bool bHaveRequestLOD, EMeshLODIdentifier RequestLOD )


className: FGetMeshParameters

description: FGetMeshParametersis used by ToolTarget Interfaces/Implementations that support returning a mesh, to allow clients to specify various options like a specific LOD of a mesh, which attributes are required, etc.

code: struct FGetMeshParameters

bHaveRequestLOD

description: If true, RequestLOD specifies which mesh LOD should be returned, if available.

bWantMeshTangents

description: If true, returned Mesh should have Tangents available.

RequestLOD

description: Specify which LOD to fetch from a mesh-containing ToolTarget.


description: the underlying source asset for this Target.

code: [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetSourceData() const


code: virtual bool HasSameSourceData ( [UToolTarget](API\Runtime\InteractiveToolsFramework\ToolTargets\UToolTarget) * OtherTarget ) const


className: IAssetBackedTarget

code: class IAssetBackedTarget


description:
Get pointer to a Material provided by this Source
MaterialInterface pointer, or null if MaterialIndex is invalid

code: [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * GetMaterial ( int32 MaterialIndex ) const


description:
TODO: We may decide that we want some functions to query whether the object allows one or the other, or we may break this out into a separate interface. We'll wait to see when this actually becomes necessary to see the most convenient way to go at that point.
true if successful

code: bool CommitMaterialSetUpdate ( const [FComponentMaterialSet](API\Runtime\InteractiveToolsFramework\TargetInterfaces\FComponentMaterialSet) & MaterialSet, bool bApplyToAsset )


description: Get material set provided by this source

code: void GetMaterialSet ( [FComponentMaterialSet](API\Runtime\InteractiveToolsFramework\TargetInterfaces\FComponentMaterialSet) & MaterialSetOut, bool bPreferAssetMaterials ) const


description: number of material indices in use by this Component

code: int32 GetNumMaterials() const


className: IMaterialProvider

code: class IMaterialProvider


description: Commits the givenFMeshDescription.

code: virtual bool CommitMeshDescription ( const [FMeshDescription](API\Runtime\MeshDescription\FMeshDescription) & Mesh, const [FCommitMeshParameters](API\Runtime\InteractiveToolsFramework\TargetInterfaces\FCommitMeshParameters) & CommitParams )


description: Commits the givenFMeshDescription.

code: virtual bool CommitMeshDescription ( [FMeshDescription](API\Runtime\MeshDescription\FMeshDescription) && Mesh, const [FCommitMeshParameters](API\Runtime\InteractiveToolsFramework\TargetInterfaces\FCommitMeshParameters) & CommitParams )


description: Commit a mesh description. The mesh description to be committed will be passed to the given function as a parameter, and it is up to the function to update it properly.

code: void CommitMeshDescription ( const [FCommitter](API\Runtime\InteractiveToolsFramework\TargetInterfaces\IMeshDescriptionCommitter\FCommitter) & Committer, const [FCommitMeshParameters](API\Runtime\InteractiveToolsFramework\TargetInterfaces\FCommitMeshParameters) & CommitParams )


className: FCommitterParams

code: struct FCommitterParams

MeshDescriptionOut

type: FMeshDescriptio...

description: Mesh description that should be populated/updated by the passed-in function and which will be committed to the target.


className: IMeshDescriptionCommitter

code: class IMeshDescriptionCommitter


description: For providers that have LODs (i.e. if SupportsLODs returns true), returns an array of all available LODs. Otherwise, returns an array with just the Default LOD.

code: virtual [TArray](API\Runtime\Core\Containers\TArray)< EMeshLODIdentifier > GetAvailableLODs ( bool bSkipAutoGenerated ) const


description: Note: Some of our code expects at leastFStaticMeshAttributesto be registered with the provided mesh description, and will break if some of the attributes thatFStaticMeshAttributesuses are not present. The only reason we don't provide a default implementation here that is identical to the one used in StaticMeshToolTarget.cpp is to avoid a dependency on the static mesh description module in ITF.


description:
Access the MeshDescription available through this Provider. Note that this MeshDescription may or may not be owned by the provider and should not be modified directly. UseIMeshDescriptionCommitterfor writes.
pointer to MeshDescription

code: const [FMeshDescription](API\Runtime\MeshDescription\FMeshDescription) * GetMeshDescription ( const [FGetMeshParameters](API\Runtime\InteractiveToolsFramework\TargetInterfaces\FGetMeshParameters) & GetMeshParams )


description: Get a copy of the MeshDescription available through this Provider.

code: virtual [FMeshDescription](API\Runtime\MeshDescription\FMeshDescription) GetMeshDescriptionCopy ( const [FGetMeshParameters](API\Runtime\InteractiveToolsFramework\TargetInterfaces\FGetMeshParameters) & GetMeshParams )


description: For providers that have LODs (i.e. if SupportsLODs returns true), returns the LOD that GetMeshDescription/etc will return. Otherwise, returns Default LOD.

code: virtual EMeshLODIdentifier GetMeshDescriptionLOD() const


description: true if the provider is able to provide different Mesh Descriptions for different requested LODs. If so,GetAvailableLODs()will return the available LODs.

code: virtual bool SupportsLODs() const


className: IMeshDescriptionProvider

code: class IMeshDescriptionProvider


description: TheUBodySetupfor this physics data source. If Nullptr, no physics data exists or is available.

code: [UBodySetup](API\Runtime\Engine\PhysicsEngine\UBodySetup) * GetBodySetup() const


description: The CollisionDataProvider for this physics data source. If Nullptr, no physics data exists or is available.


className: IPhysicsDataSource

description: IPhysicsDataSourceis a ToolTarget Interface that provides read/write access to physics-related data structures.

code: class IPhysicsDataSource


description: the Actor that owns this Component

code: [AActor](API\Runtime\Engine\GameFramework\AActor) * GetOwnerActor() const


description: the transform on this component

code: FTransform GetWorldTransform() const


description:
Compute ray intersection with the MeshDescription this Source is providing
true if ray intersected Component

code: bool HitTestComponent ( const FRay & WorldRay, [FHitResult](API\Runtime\Engine\Engine\FHitResult) & OutHit ) const


description: Set the visibility of the Component associated with this Source (ie to hide during Tool usage)

code: void SetOwnerVisibility ( bool bVisible ) const


className: IPrimitiveComponentBackedTarget

code: class IPrimitiveComponentBackedTarget


description: the underlying sourceUSkeletalMeshasset for this Target

code: [USkeletalMesh](API\Runtime\Engine\Engine\USkeletalMesh) * GetSkeletalMesh() const


description: the Component this is a Source for

code: [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * GetOwnerComponent() const


description: the underlying source asset for this Target.

code: virtual [UObject](API\Runtime\CoreUObject\UObject\UObject) * GetSourceData() const


className: ISkeletalMeshBackedTarget

code: class ISkeletalMeshBackedTarget : public [IAssetBackedTarget](API\Runtime\InteractiveToolsFramework\TargetInterfaces\IAssetBackedTarget)


description: the underlying source StaticMesh asset for this Target

code: [UStaticMesh](API\Runtime\Engine\Engine\UStaticMesh) * GetStaticMesh() const


className: IStaticMeshBackedTarget

code: class IStaticMeshBackedTarget : public [IAssetBackedTarget](API\Runtime\InteractiveToolsFramework\TargetInterfaces\IAssetBackedTarget)


className: UAssetBackedTarget

code: class UAssetBackedTarget : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


className: UMaterialProvider

code: class UMaterialProvider : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


className: UMeshDescriptionCommitter

code: class UMeshDescriptionCommitter : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


className: UMeshDescriptionProvider

code: class UMeshDescriptionProvider : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


className: UPhysicsDataSource

code: class UPhysicsDataSource : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


className: UPrimitiveComponentBackedTarget

code: class UPrimitiveComponentBackedTarget : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


className: UStaticMeshBackedTarget

code: class UStaticMeshBackedTarget : public [UAssetBackedTarget](API\Runtime\InteractiveToolsFramework\TargetInterfaces\UAssetBackedTarget)


className: USkeletalMeshBackedTarget

code: class USkeletalMeshBackedTarget : public [UAssetBackedTarget](API\Runtime\InteractiveToolsFramework\TargetInterfaces\UAssetBackedTarget)


description: Template Implementations

code: namespace ToolBuilderUtil { template<typename ComponentType> int ToolBuilderUtil::CountSelectedComponentsOfType ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState ) }


description: Determine if component support UVs.

code: namespace ToolBuilderUtil { INTERACTIVETOOLSFRAMEWORK_API bool ToolBuilderUtil::ComponentTypeCouldHaveUVs ( const [UActorComponent](API\Runtime\Engine\Components\UActorComponent) & Component ) }


description: Count number of selected Actors that pass predicate.

code: namespace ToolBuilderUtil { INTERACTIVETOOLSFRAMEWORK_API int32 ToolBuilderUtil::CountActors ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool([AActor](API\Runtime\Engine\GameFramework\AActor) *)> & Predicate ) }


description: Count number of selected components that pass predicate. If Component selection is not empty, returns that count, otherwise counts in all selected Actors

code: namespace ToolBuilderUtil { INTERACTIVETOOLSFRAMEWORK_API int ToolBuilderUtil::CountComponents ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool([UActorComponent](API\Runtime\Engine\Components\UActorComponent) *)> & Predicate ) }


description: Count number of selected Actors of given type.

code: namespace ToolBuilderUtil { template<typename ActorType> int ToolBuilderUtil::CountSelectedActorsOfType ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState ) }


code: namespace ToolBuilderUtil { INTERACTIVETOOLSFRAMEWORK_API void ToolBuilderUtil::EnumerateComponents ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState, [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< void([UActorComponent](API\Runtime\Engine\Components\UActorComponent) *)> ComponentFunc ) }


description: First all Actors that pass predicate. Searches Actors selection list.

code: namespace ToolBuilderUtil { INTERACTIVETOOLSFRAMEWORK_API [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > ToolBuilderUtil::FindAllActors ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool([AActor](API\Runtime\Engine\GameFramework\AActor) *)> & Predicate ) }


description: First all components that passes predicate. Searches Components selection list first, then all Actors

code: namespace ToolBuilderUtil { INTERACTIVETOOLSFRAMEWORK_API [TArray](API\Runtime\Core\Containers\TArray)< [UActorComponent](API\Runtime\Engine\Components\UActorComponent) * > ToolBuilderUtil::FindAllComponents ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool([UActorComponent](API\Runtime\Engine\Components\UActorComponent) *)> & Predicate ) }


description: First first available Actor that passes predicate. Searches Actors selection list.

code: namespace ToolBuilderUtil { INTERACTIVETOOLSFRAMEWORK_API [AActor](API\Runtime\Engine\GameFramework\AActor) * ToolBuilderUtil::FindFirstActor ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool([AActor](API\Runtime\Engine\GameFramework\AActor) *)> & Predicate ) }


description: Find first first available Actor of given type, or return nullptr if not found

code: namespace ToolBuilderUtil { template<typename ActorType> ActorType * ToolBuilderUtil::FindFirstActorOfType ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState ) }


description: First first available component that passes predicate. Searches Components selection list first, then all Actors

code: namespace ToolBuilderUtil { INTERACTIVETOOLSFRAMEWORK_API [UActorComponent](API\Runtime\Engine\Components\UActorComponent) * ToolBuilderUtil::FindFirstComponent ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool([UActorComponent](API\Runtime\Engine\Components\UActorComponent) *)> & Predicate ) }


description: First first available component of given type. Searches Components selection list first, then all Actors

code: namespace ToolBuilderUtil { template<typename ComponentType> ComponentType * ToolBuilderUtil::FindFirstComponentOfType ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InputState ) }


description: Determine if component is a volume or not.

code: namespace ToolBuilderUtil { INTERACTIVETOOLSFRAMEWORK_API bool ToolBuilderUtil::IsVolume ( const [UActorComponent](API\Runtime\Engine\Components\UActorComponent) & Component ) }


code: bool AreSatisfiedBy ( [UClass](API\Runtime\CoreUObject\UObject\UClass) * Class ) const


code: bool AreSatisfiedBy ( [UToolTarget](API\Runtime\InteractiveToolsFramework\ToolTargets\UToolTarget) * ToolTarget ) const


code: FToolTargetTypeRequirements()


code: FToolTargetTypeRequirements ( const [UClass](API\Runtime\CoreUObject\UObject\UClass) * Interface0 )


code: FToolTargetTypeRequirements ( const [TArray](API\Runtime\Core\Containers\TArray)< const [UClass](API\Runtime\CoreUObject\UObject\UClass) * > & InterfacesIn )


className: FToolTargetTypeRequirements

description: A structure used to specify the requirements of a tool for its target. E.g., a tool may need a target that has interfaces x,y,z.

code: class FToolTargetTypeRequirements

Interfaces

type: TArray< constU...


code: virtual [UToolTarget](API\Runtime\InteractiveToolsFramework\ToolTargets\UToolTarget) * BuildTarget ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * SourceObject, const [FToolTargetTypeRequirements](API\Runtime\InteractiveToolsFramework\ToolTargets\FToolTargetTypeRequirements) & TargetTypeInfo )


code: [FToolTargetTypeRequirements](API\Runtime\InteractiveToolsFramework\ToolTargets\FToolTargetTypeRequirements) & Add ( [UClass](API\Runtime\CoreUObject\UObject\UClass) * Interface )


code: virtual bool CanBuildTarget ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * SourceObject, const [FToolTargetTypeRequirements](API\Runtime\InteractiveToolsFramework\ToolTargets\FToolTargetTypeRequirements) & TargetTypeInfo ) const


className: UPrimitiveComponentToolTargetFactory

description: Factory forUPrimitiveComponentToolTargetto be used by the target manager.

code: class UPrimitiveComponentToolTargetFactory : public [UToolTargetFactory](API\Runtime\InteractiveToolsFramework\ToolTargets\UToolTargetFactory)


description: UObject.

code: virtual void BeginDestroy()


description: the Actor that owns this Component

code: virtual [AActor](API\Runtime\Engine\GameFramework\AActor) * GetOwnerActor() const


description: IPrimitiveComponentBackedTargetimplementation.

code: virtual [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * GetOwnerComponent() const


description: the transform on this component

code: virtual FTransform GetWorldTransform() const


description:
Compute ray intersection with the MeshDescription this Source is providing
true if ray intersected Component

code: virtual bool HitTestComponent ( const FRay & WorldRay, [FHitResult](API\Runtime\Engine\Engine\FHitResult) & OutHit ) const


code: void InitializeComponent ( [UPrimitiveComponent](API\Runtime\Engine\Components\UPrimitiveComponent) * ComponentIn )


description: UToolTarget.

code: virtual bool IsValid() const


description: Set the visibility of the Component associated with this Source (ie to hide during Tool usage)

code: virtual void SetOwnerVisibility ( bool bVisible ) const


className: UPrimitiveComponentToolTarget

description: A tool target to share some reusable code for tool targets that are backed by primitive components.

code: class UPrimitiveComponentToolTarget : public [UToolTarget](API\Runtime\InteractiveToolsFramework\ToolTargets\UToolTarget), public [IPrimitiveComponentBackedTarget](API\Runtime\InteractiveToolsFramework\TargetInterfaces\IPrimitiveCompon-)

Component

type: TWeakObjectPtr<...


description: true if target is still valid. May become invalid for various reasons (eg Component was deleted out from under us)


className: UToolTarget

description: Given an object, tool builders usually ask the target manager to turn it into a target that has the interfaces the tools needs. The tools cast the target to those interfaces to use them.

code: class UToolTarget : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


className: UToolTargetFactory

description: Base class for factories of tool targets, which let a tool manager build targets out of inputs without knowing anything about the inputs itself, as long as it has a factory registered that is able to process the input.

code: class UToolTargetFactory : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


description: Makes the change to the object

code: virtual void Apply ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * Object )


description: Reverts change to the object

code: virtual void Revert ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * Object )


description: Describes this change (for debugging)

code: virtual [FString](API\Runtime\Core\Containers\FString) ToString() const


description:
Adds a data object to the tool manager's set of shared data objects.
true if the addition is successful.

code: bool AddContextObject ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * InContextObject )


className: TWrappedToolCommandChange

description: Holds another Change and forwards Apply/Revert to it, with calls to Before/After lambas, allowing client classes to respond to a change without having to intercept it explicitly. (Be very careful with these lambdas!)

code: template<typename [ChangeType](API\Plugins\RigVM\RigVMCore\ERigVMOpCode)> class TWrappedToolCommandChange : public [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange)

AfterModify

type: TUniqueFunction...

WrappedChange

type: TUniquePtr<Cha...


description:
Finds the first the context object of the given type. Can return a subclass of the given type.
the found context object, casted to the given type, or nullptr if none matches.

code: template<typename TObjectType> TObjectType * FindContext() const


description:
Finds the first context object that derives from the given class.
the found context object, or nullptr if none matches.

code: [UObject](API\Runtime\CoreUObject\UObject\UObject) * FindContextByClass ( [UClass](API\Runtime\CoreUObject\UObject\UClass) * InClass ) const


code: template<class TObjectType> bool RemoveContextObjectsOfType()


description:
Removes any data objects from the tool manager's set of shared data objects that are of type
true if any objects are removed.

code: bool RemoveContextObjectsOfType ( const [UClass](API\Runtime\CoreUObject\UObject\UClass) * InClass )


description:
Removes a data object from the tool manager's set of shared data objects.
true if the removal is successful.

code: bool RemoveContextObject ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * InContextObject )


description: Shuts down the context object store, releasing hold on any stored content objects.

code: void Shutdown()


className: UContextObjectStore

description: A context object store allows tools to get access to arbitrary objects which expose data or APIs to enable additional functionality. Some example use cases of context objects:

code: class UContextObjectStore : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

ContextObjects

type: TArray<TObject...


description: Called afterWantsCapture()returns a capture request that was accepted

code: virtual [FInputCaptureUpdate](API\Runtime\InteractiveToolsFramework\FInputCaptureUpdate) BeginCapture ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & InputState, EInputCaptureSide eSide )


description: Called afterWantsHoverCapture()returns a capture request that was accepted

code: virtual [FInputCaptureUpdate](API\Runtime\InteractiveToolsFramework\FInputCaptureUpdate) BeginHoverCapture ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & InputState, EInputCaptureSide eSide )


description: If a different hover capture begins, focus is lost, a tool starts, etc, any active hover visualization needs to terminate

code: virtual void EndHoverCapture()


description: If this is called, the Behavior has forcibly lost capture (eg due to app losing focus for example) and needs to clean up accordingly

code: virtual void ForceEndCapture ( const [FInputCaptureData](API\Runtime\InteractiveToolsFramework\FInputCaptureData) & CaptureData )


description: The priority is used to resolve situations where multiple behaviors want the same capture


description: Which device types does this Behavior support


description: Configure the default priority of an instance of this behavior

code: virtual void SetDefaultPriority ( const [FInputCapturePriority](API\Runtime\InteractiveToolsFramework\FInputCapturePriority) & Priority )


description: Called for each new input event during a capture sequence. Return Continue to keep capturing, or End to finish capturing.

code: virtual [FInputCaptureUpdate](API\Runtime\InteractiveToolsFramework\FInputCaptureUpdate) UpdateCapture ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & InputState, const [FInputCaptureData](API\Runtime\InteractiveToolsFramework\FInputCaptureData) & CaptureData )


description: Called on each new hover input event, ie if no other behavior is actively capturing input

code: virtual [FInputCaptureUpdate](API\Runtime\InteractiveToolsFramework\FInputCaptureUpdate) UpdateHoverCapture ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & InputState )


description: Given the input state, does this Behavior want to begin capturing some input devices?

code: virtual [FInputCaptureRequest](API\Runtime\InteractiveToolsFramework\FInputCaptureRequest) WantsCapture ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & InputState )


description: Given the input state, does this Behavior want to begin capturing some input devices for hover

code: virtual [FInputCaptureRequest](API\Runtime\InteractiveToolsFramework\FInputCaptureRequest) WantsHoverCapture ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & InputState )


code: UInputBehavior()


description: Hover support (optional)return true if this Behavior supports hover (ie passive input events)

code: virtual bool WantsHoverEvents()


className: UInputBehavior

description: Implementing interactions in this way allows the input handling to be separated from functionality.

code: class UInputBehavior : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

DefaultPriority

type: FInputCapturePr...

description: Priority returned byGetPriority()


description: Add a Behavior to the set

code: virtual void Add ( [UInputBehavior](API\Runtime\InteractiveToolsFramework\UInputBehavior) * Behavior, void * Source, const [FString](API\Runtime\Core\Containers\FString) & GroupName )


description: Merge another BehaviorSet into this Set

code: virtual void Add ( const [UInputBehaviorSet](API\Runtime\InteractiveToolsFramework\UInputBehaviorSet) * OtherSet, void * NewSource, const [FString](API\Runtime\Core\Containers\FString) & NewGroupName )


description: Called internally when Behaviors list is updated, to re-sort by Priority, etc (

code: virtual void BehaviorsModified()


description: Queries and Event Forwarding CallUInputBehavior::WantsCapture()on each valid Behavior and collect up the requests that indicated a Capture was desired.

code: virtual void CollectWantsCapture ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & InputState, [TArray](API\Runtime\Core\Containers\TArray)< [FInputCaptureRequest](API\Runtime\InteractiveToolsFramework\FInputCaptureRequest) > & ResultOut )


description: CallUInputBehavior::WantsCapture()on each valid Behavior and collect up the requests that indicated a Capture was desired.

code: virtual void CollectWantsHoverCapture ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & InputState, [TArray](API\Runtime\Core\Containers\TArray)< [FInputCaptureRequest](API\Runtime\InteractiveToolsFramework\FInputCaptureRequest) > & ResultOut )


description:
Set Management
true if there are no Behaviors in set

code: virtual bool IsEmpty() const


description:
Remove a Behavior from the Set
true if Behavior was found and removed

code: virtual bool Remove ( [UInputBehavior](API\Runtime\InteractiveToolsFramework\UInputBehavior) * Behavior )


description: Remove all Behaviors from the set

code: virtual void RemoveAll()


description:
Remove a group of Behaviors from the Set
true if any Behaviors were found and removed

code: virtual bool RemoveByGroup ( const [FString](API\Runtime\Core\Containers\FString) & GroupName )


code: virtual bool RemoveBySource ( void * Source )


description: true if Behavior supports InputState.InputDevice

code: bool SupportsInputType ( [UInputBehavior](API\Runtime\InteractiveToolsFramework\UInputBehavior) * Behavior, const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & InputState )


code: UInputBehaviorSet()


code: virtual ~UInputBehaviorSet()


className: UInputBehaviorSet

description: Behaviors in the set each have a source pointer and group tag, which allows sets of behaviors to be managed together. For example oneUInputBehaviorSetcan be merged into another and removed later.

code: class UInputBehaviorSet : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

Behaviors

type: TArray<FBehavi...

description: Current set of known Behaviors


className: UInputBehaviorSource

description: UInterfacefor IInputBehavior.

code: class UInputBehaviorSource : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


code: void CheckForKeyboardCaptures ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & Input )


code: void CheckForMouseCaptures ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & Input )


description: Remove Behaviors from this Source from the active set

code: virtual void DeregisterSource ( [IInputBehaviorSource](API\Runtime\InteractiveToolsFramework\IInputBehaviorSource) * Source )


description: Terminate any active captures and end all hovers

code: virtual void ForceTerminateAll()


code: void HandleCapturedKeyboardInput ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & Input )


description: If this Behavior is capturing, call ForceEndCapture() to notify that we are taking capture away

code: virtual void ForceTerminateSource ( [IInputBehaviorSource](API\Runtime\InteractiveToolsFramework\IInputBehaviorSource) * Source )


code: void HandleCapturedMouseInput ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & Input )


description: Returns true if there is an active mouse capture

code: virtual bool HasActiveMouseCapture() const


description: Initialize the InputRouter with the necessary Context-level state.UInteractiveToolsContextcalls this, you should not.

code: virtual void Initialize ( [IToolsContextTransactionsAPI](API\Runtime\InteractiveToolsFramework\IToolsContextTransactionsAPI) * TransactionsAPI )


description: Insert a new input event which is used to check for new captures, or forwarded to active capture

code: virtual bool PostInputEvent ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & Input )


description: Insert a new hover input event which is forwarded to all hover-enabled Behaviors

code: virtual void PostHoverInputEvent ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & Input )


code: virtual void PostInputEvent_Mouse ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & Input )


code: virtual void PostInputEvent_Keyboard ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & Input )


code: bool ProcessMouseHover ( const [FInputDeviceState](API\Runtime\InteractiveToolsFramework\FInputDeviceState) & Input )


description: Add a new behavior Source. Behaviors from this source will be added to the active behavior set.

code: virtual void RegisterSource ( [IInputBehaviorSource](API\Runtime\InteractiveToolsFramework\IInputBehaviorSource) * Source )


description: Shutdown the InputRouter. Called byUInteractiveToolsContext.

code: virtual void Shutdown()


code: void TerminateHover ( EInputCaptureSide Side )


className: UInputRouter

description: If the input device supports "hover",PostHoverInputEvent()will forward hover events to InputBehaviors that also support it.

code: class UInputRouter : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

ActiveInputBehaviors

type: TObjectPtr<UIn...

ActiveKeyboardCapture

type: UInputBehavior...

ActiveKeyboardCaptureData

type: FInputCaptureDa...

ActiveKeyboardCaptureOwner

type: void *

ActiveLeftHoverCapture

description: Hover support

bAutoInvalidateOnCapture

description: If true, then we post an Invalidation (ie redraw) request on every captured input event (default false)

bAutoInvalidateOnHover

description: If true, then we post an Invalidation (ie redraw) request if any active InputBehavior responds to Hover events (default false)

LastMouseInputState

type: FInputDeviceSta...

TransactionsAPI

type: IToolsContextTr...


description: Add a PropertySet object for this Mechanic to parent Tool

code: virtual void AddToolPropertySource ( [UInteractiveToolPropertySet](API\Runtime\InteractiveToolsFramework\UInteractiveToolPropertySet) * PropertySet )


code: [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * GetParentTool() const


description: Enable/Disable a PropertySet object for the parent tool.

code: virtual bool SetToolPropertySourceEnabled ( [UInteractiveToolPropertySet](API\Runtime\InteractiveToolsFramework\UInteractiveToolPropertySet) * PropertySet, bool bEnabled )


description: Allow the Mechanic to do any custom drawing (ie via PDI/RHI)

code: virtual void Render ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: Called to initialize the InteractionMechanic

code: virtual void Setup ( [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * ParentTool )


description: Called to clean up the InteractionMechanic


description: ALlow the Mechanic to Tick

code: virtual void Tick ( float DeltaTime )


code: UInteractionMechanic()


className: UInteractionMechanic

description: (This class is still a work in progress)

code: class UInteractionMechanic : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


description: true if it is safe to callExecuteCommand()with the given Arguments

code: virtual bool CanExecuteCommand ( [UInteractiveCommandArguments](API\Runtime\InteractiveToolsFramework\UInteractiveCommandArguments) * Arguments )


description: a short text string that can be used for the command in (eg) Editor transaction/undo toasts

code: virtual [FText](API\Runtime\Core\Internationalization\FText) GetCommandShortString() const


className: UInteractiveCommand

description: AUInteractiveCommandis an atomic action that can be executed via some user interaction. For example clicking a button that deletes an active selection can be considered an Interactive Command. This differs from an Interactive Tool in that there is no ongoing user interaction once the command has been initiated.

code: class UInteractiveCommand : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


code: virtual [IToolsContextTransactionsAPI](API\Runtime\InteractiveToolsFramework\IToolsContextTransactionsAPI) * GetTransactionsAPI() const


code: virtual bool HasTransactionsAPI() const


code: virtual void SetTransactionsAPI ( [IToolsContextTransactionsAPI](API\Runtime\InteractiveToolsFramework\IToolsContextTransactionsAPI) * TransactionsAPIIn )


className: UInteractiveCommandArguments

description: The baseUInteractiveCommandArgumentsprovides support for transactions via aIToolsContextTransactionsAPI

code: class UInteractiveCommandArguments : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


className: UInteractiveCommandResult

description: UInteractiveCommandResultsubclasses are returned from UInteractiveCommands, to allow commands to return custom information.

code: class UInteractiveCommandResult : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


description: Input Behaviors support Add an input behavior for this Gizmo

code: virtual void AddInputBehavior ( [UInputBehavior](API\Runtime\InteractiveToolsFramework\UInputBehavior) * Behavior )


description: Execute the command with the given Arguments

code: virtual void ExecuteCommand ( [UInteractiveCommandArguments](API\Runtime\InteractiveToolsFramework\UInteractiveCommandArguments) * Arguments, [UInteractiveCommandResult](API\Runtime\InteractiveToolsFramework\UInteractiveCommandResult) ** Result )


description: Allow the Gizmo to do any custom screen space drawing

code: virtual void DrawHUD ( [FCanvas](API\Runtime\Engine\FCanvas) * Canvas, [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: GizmoManager that owns this Gizmo

code: virtual [UInteractiveGizmoManager](API\Runtime\InteractiveToolsFramework\UInteractiveGizmoManager) * GetGizmoManager() const


description: Current input behavior set.

code: virtual const [UInputBehaviorSet](API\Runtime\InteractiveToolsFramework\UInputBehaviorSet) * GetInputBehaviors() const


description: Allow the Gizmo to do any custom drawing (ie via PDI/RHI)

code: virtual void Render ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: Called by GizmoManager to initialize the GizmoafterGizmoBuilder::BuildGizmo() has been called

code: virtual void Setup()


description: Called by GizmoManager to shut down the Gizmo

code: virtual void Shutdown()


description: Allow the Gizmo to do any necessary processing on Tick

code: virtual void Tick ( float DeltaTime )


code: UInteractiveGizmo()


className: UInteractiveGizmo

description: UInteractiveGizmois the base class for all Gizmos in the InteractiveToolsFramework.

code: class UInteractiveGizmo : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [IInputBehaviorSource](API\Runtime\InteractiveToolsFramework\IInputBehaviorSource)

InputBehaviors

description: The current set of InputBehaviors provided by this Gizmo


description:
Create a new instance of this builder's Gizmo
a new instance of the Gizmo, or nullptr on error/failure

code: virtual [UInteractiveGizmo](API\Runtime\InteractiveToolsFramework\UInteractiveGizmo) * BuildGizmo ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & SceneState ) const


description: Request that the Context open a Transaction, whatever that means to the current Context

code: virtual void BeginUndoTransaction ( const [FText](API\Runtime\Core\Internationalization\FText) & Description )


description:
Activate a new instance of the default 3-axis transformation Gizmo.RegisterDefaultGizmos()must have been called first.
new Gizmo instance that has been created and initialized

code: virtual [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * Create3AxisTransformGizmo ( void * Owner, const [FString](API\Runtime\Core\Containers\FString) & InstanceIdentifier )


code: virtual [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * CreateCustomRepositionableTransformGizmo ( ETransformGizmoSubElements Elements, void * Owner, const [FString](API\Runtime\Core\Containers\FString) & InstanceIdentifier )


description:
Try to activate a new Gizmo instance
new Gizmo instance that has been created and initialized

code: virtual [UInteractiveGizmo](API\Runtime\InteractiveToolsFramework\UInteractiveGizmo) * CreateGizmo ( const [FString](API\Runtime\Core\Containers\FString) & BuilderIdentifier, const [FString](API\Runtime\Core\Containers\FString) & InstanceIdentifier, void * Owner )


description:
Activate a new customized instance of the default 3-axis transformation Gizmo, with only certain elements included.RegisterDefaultGizmos()must have been called first.
new Gizmo instance that has been created and initialized

code: virtual [UCombinedTransformGizmo](API\Runtime\InteractiveToolsFramework\BaseGizmos\UCombinedTransformGizmo) * CreateCustomTransformGizmo ( ETransformGizmoSubElements Elements, void * Owner, const [FString](API\Runtime\Core\Containers\FString) & InstanceIdentifier )


description:
Try to activate a new Gizmo instance
new Gizmo instance that has been created and initialized, and cast to template type

code: template<typename GizmoType> GizmoType * CreateGizmo ( const [FString](API\Runtime\Core\Containers\FString) & BuilderIdentifier, const [FString](API\Runtime\Core\Containers\FString) & InstanceIdentifier, void * Owner )


className: UInteractiveGizmoBuilder

description: AUInteractiveGizmoBuildercreates a new instance of an InteractiveGizmo (basically this is a Factory). These are registered with the InteractiveGizmoManager, which callsBuildGizmo(). This is an abstract base class, you must subclass it in order to create your particular Gizmo instance

code: class UInteractiveGizmoBuilder : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


code: static const [FString](API\Runtime\Core\Containers\FString) CustomRepositionableThreeAxisTransformBuilderIdentifier = TEXT("CustomRepositionableThreeAxisTransformBuilderIdentifier");


code: static const [FString](API\Runtime\Core\Containers\FString) CustomThreeAxisTransformBuilderIdentifier = TEXT("CustomThreeAxisTransformBuilderIdentifier");


className: DefaultAxisAngleBuilderIdentifier

code: static [FString](API\Runtime\Core\Containers\FString) DefaultAxisAngleBuilderIdentifier = TEXT("StandardXFormAxisRotationGizmo");


className: DefaultAxisPositionBuilderIdentifier

description: Builder identifiers for default gizmo types. Perhaps should have an API for this...

code: static [FString](API\Runtime\Core\Containers\FString) DefaultAxisPositionBuilderIdentifier = TEXT("StandardXFormAxisTranslationGizmo");


className: DefaultPlanePositionBuilderIdentifier

code: static [FString](API\Runtime\Core\Containers\FString) DefaultPlanePositionBuilderIdentifier = TEXT("StandardXFormPlaneTranslationGizmo");


className: DefaultScalableSphereBuilderIdentifier

code: static [FString](API\Runtime\Core\Containers\FString) DefaultScalableSphereBuilderIdentifier = TEXT("DefaultScalableSphereBuilderIdentifier");


code: static [FString](API\Runtime\Core\Containers\FString) DefaultThreeAxisTransformBuilderIdentifier = TEXT("DefaultThreeAxisTransformBuilderIdentifier");


description:
Remove a GizmoBuilder from the set of known GizmoBuilders
true if Builder was found and deregistered

code: virtual bool DeregisterGizmoType ( const [FString](API\Runtime\Core\Containers\FString) & BuilderIdentifier )


description: Destroy all Gizmos that were created by the identified GizmoBuilder

code: virtual void DestroyAllGizmosOfType ( const [FString](API\Runtime\Core\Containers\FString) & BuilderIdentifier )


description: Destroy all Gizmos that are owned by the given pointer

code: virtual void DestroyAllGizmosByOwner ( void * Owner )


description: Functions that Gizmos can call to interact with Transactions APIPost a message via the Transactions API

code: virtual void DisplayMessage ( const [FText](API\Runtime\Core\Internationalization\FText) & Message, EToolMessageLevel Level )


description:
Shutdown and remove a Gizmo
true if the Gizmo was found and removed

code: virtual bool DestroyGizmo ( [UInteractiveGizmo](API\Runtime\InteractiveToolsFramework\UInteractiveGizmo) * Gizmo )


description: Let active Gizmos do screen space drawing. Called byUInteractiveToolsContext

code: virtual void DrawHUD ( [FCanvas](API\Runtime\Engine\FCanvas) * Canvas, [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: Forward anFChangeobject to the Context

code: virtual void EmitObjectChange ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * TargetObject, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange) > Change, const [FText](API\Runtime\Core\Internationalization\FText) & Description )


description: Request that the Context close and commit the open Transaction

code: virtual void EndUndoTransaction()


description:
Find all the existing Gizmo instances that were created by the identified GizmoBuilder
list of found Gizmos

code: virtual [TArray](API\Runtime\Core\Containers\TArray)< [UInteractiveGizmo](API\Runtime\InteractiveToolsFramework\UInteractiveGizmo) * > FindAllGizmosOfType ( const [FString](API\Runtime\Core\Containers\FString) & BuilderIdentifier )


description: the context object store from the owning tools context.

code: [UContextObjectStore](API\Runtime\InteractiveToolsFramework\UContextObjectStore) * GetContextObjectStore() const


description:
Find the Gizmo that was created with the given instance identifier
the found Gizmo, or null

code: virtual [UInteractiveGizmo](API\Runtime\InteractiveToolsFramework\UInteractiveGizmo) * FindGizmoByInstanceIdentifier ( const [FString](API\Runtime\Core\Containers\FString) & Identifier )


description:
Access to APIs, etc
currentIToolsContextQueriesAPI


description: Initialize the GizmoManager with the necessary Context-level state.UInteractiveToolsContextcalls this, you should not.

code: virtual void Initialize ( [IToolsContextQueriesAPI](API\Runtime\InteractiveToolsFramework\IToolsContextQueriesAPI) * QueriesAPI, [IToolsContextTransactionsAPI](API\Runtime\InteractiveToolsFramework\IToolsContextTransactionsAPI) * TransactionsAPI, [UInputRouter](API\Runtime\InteractiveToolsFramework\UInputRouter) * InputRouter )


description: Request an Invalidation via the Transactions API (ie to cause a repaint, etc)

code: virtual void PostInvalidation()


description: Standard Gizmos Register default gizmo types

code: virtual void RegisterDefaultGizmos()


description: Render any active Gizmos. Called byUInteractiveToolsContext.

code: virtual void Render ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: GizmoBuilder Registration and Gizmo Creation/Shutdown Register a new GizmoBuilder

code: virtual void RegisterGizmoType ( const [FString](API\Runtime\Core\Containers\FString) & BuilderIdentifier, [UInteractiveGizmoBuilder](API\Runtime\InteractiveToolsFramework\UInteractiveGizmoBuilder) * Builder )


description: Shutdown the GizmoManager. Called byUInteractiveToolsContext.

code: virtual void Shutdown()


description: State control (Tick any active Gizmos. Called byUInteractiveToolsContext

code: virtual void Tick ( float DeltaTime )


code: UInteractiveGizmoManager()


className: UInteractiveGizmoManager

description: UInteractiveGizmoManagerallows users of the Tools framework to create and operate Gizmo instances. For each Gizmo, a (string,GizmoBuilder) pair is registered with the GizmoManager. Gizmos can then be activated via the string identifier.

code: class UInteractiveGizmoManager : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [IToolContextTransactionProvider](API\Runtime\InteractiveToolsFramework\IToolContextTransactionProvider)

ActiveGizmos

type: TArray<FActive...

description: Set of Currently-active Gizmos

bDefaultGizmosRegistered

type: bool

GizmoActorBuilder

type: TSharedPtr<FCo...

GizmoBuilders

type: TMap<FString, ...

description: Current set of named GizmoBuilders

InputRouter

type: UInputRouter&#...

description: Current InputRouter (Context owns this)

QueriesAPI

type: IToolsContextQu...

description: Current Context-Queries implementation

TransactionsAPI

description: Current Transactions implementation


description: Input Behaviors support Add an input behavior for this Tool. Typically only effective when called during toolSetup(), as the behavior set gets submitted to the input router after that call.

code: virtual void AddInputBehavior ( [UInputBehavior](API\Runtime\InteractiveToolsFramework\UInputBehavior) * Behavior, void * Source )


description: Add a Property object for this Tool

code: virtual void AddToolPropertySource ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * PropertyObject )


description: Add a PropertySet object for this Tool

code: virtual void AddToolPropertySource ( [UInteractiveToolPropertySet](API\Runtime\InteractiveToolsFramework\UInteractiveToolPropertySet) * PropertySet )


description: true if this Tool is currently in a state where it can be Accepted. This may be false if for example there was an error in the Tool.

code: virtual bool CanAccept() const


description: Allow the Tool to do any custom screen space drawing

code: virtual void DrawHUD ( [FCanvas](API\Runtime\Engine\FCanvas) * Canvas, [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


className: EAcceptWarning

code: enum EAcceptWarning { NoWarning, EmptyForbidden, }


description:
Your Tool subclass can register a set of "Actions" it can execute by overloadingRegisterActions(). Then external systems can useGetActionSet()to find out what Actions your Tool supports, andExecuteAction()to run those actions. Get the internal Action Set for this Tool. The action set is created and registered on-demand.
pointer to initialized Action set

code: virtual [FInteractiveToolActionSet](API\Runtime\InteractiveToolsFramework\FInteractiveToolActionSet) * GetActionSet()


description: Request that the Action identified by ActionID be executed. Default implementation forwards these requests to internal ToolActionSet.

code: virtual void ExecuteAction ( int32 ActionID )


description:
Tool Information (name, icon, help text, etc)
ToolInfo structure for this Tool

code: virtual [FInteractiveToolInfo](API\Runtime\InteractiveToolsFramework\FInteractiveToolInfo) GetToolInfo() const


description: Current input behavior set.

code: virtual const [UInputBehaviorSet](API\Runtime\InteractiveToolsFramework\UInputBehaviorSet) * GetInputBehaviors() const


description: ToolManager that owns this Tool

code: virtual [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) * GetToolManager() const


description:
Property support
list of property UObjects for this tool (ie to add to a DetailsViewPanel, for example)

code: virtual [TArray](API\Runtime\Core\Containers\TArray)< [UObject](API\Runtime\CoreUObject\UObject\UObject) * > GetToolProperties ( bool bEnabledOnly ) const


description: true if this Tool support being Accepted, ie calling Shutdown(EToolShutdownType::Accept)

code: virtual bool HasAccept() const


description: true if this Tool support being Cancelled, ie calling Shutdown(EToolShutdownType::Cancel)

code: virtual bool HasCancel() const


description: Call after changing a propertyset internally in the tool to allow external views of the property set to update properly. This is meant as an outward notification mechanism, not a way to to pass along notifications, so don't call this if the property is changed externally (i.e., this should not usually be called from OnPropertyModified unless the tool adds changes of its own).

code: virtual void NotifyOfPropertyChangeByTool ( [UInteractiveToolPropertySet](API\Runtime\InteractiveToolsFramework\UInteractiveToolPropertySet) * PropertySet ) const


className: OnInteractiveToolPropertySetsModified

description: OnPropertySetsModified is broadcast whenever the contents of the ToolPropertyObjects array is modified

code: typedef TMulticastDelegate_NoParams< void > OnInteractiveToolPropertySetsModified


description: This should only broadcast when the tool itself is responsible for the change, so it typically isn't broadcast from the tool's OnPropertyModified function.

code: typedef TMulticastDelegate_OneParam< void, [UObject](API\Runtime\CoreUObject\UObject\UObject) * > OnInteractiveToolPropertyInternallyModified


description: Automatically called byUInteractiveToolPropertySet.OnModifieddelegate to notify Tool of child property set changes

code: virtual void OnPropertyModified ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * PropertySet, [FProperty](API\Runtime\CoreUObject\UObject\FProperty) * Property )


description: Allow the Tool to do any necessary processing on Tick

code: virtual void OnTick ( float DeltaTime )


description: Override this function to register the set of Actions this Tool supports, usingFInteractiveToolActionSet::RegisterAction. Note that for the actions to be triggered, you will also need to add corresponding registration per tool  see Engine\Plugins\Editor\ModelingToolsEditorMode\Source\ModelingToolsEditorMode\Public\ModelingToolsActions.h for examples

code: virtual void RegisterActions ( [FInteractiveToolActionSet](API\Runtime\InteractiveToolsFramework\FInteractiveToolActionSet) & ActionSet )


description: Remove all input behaviors that had the given source pointer set during their addition. Typically only effective when called during toolSetup(), as the behavior set gets submitted to the input router after that call.

code: virtual void RemoveInputBehaviorsBySource ( void * Source )


description:
Remove a PropertySet object from this Tool. If found, will broadcast OnPropertySetsModified
true if PropertySet is found and removed

code: virtual bool RemoveToolPropertySource ( [UInteractiveToolPropertySet](API\Runtime\InteractiveToolsFramework\UInteractiveToolPropertySet) * PropertySet )


description: Allow the Tool to do any custom drawing (ie via PDI/RHI)

code: virtual void Render ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: Set Tool name

code: virtual void SetToolDisplayName ( const [FText](API\Runtime\Core\Internationalization\FText) & NewName )


description:
Replace a PropertySet object on this Tool with another property set. If replaced, will broadcast OnPropertySetsModified
true if CurPropertySet is found and replaced

code: virtual bool ReplaceToolPropertySource ( [UInteractiveToolPropertySet](API\Runtime\InteractiveToolsFramework\UInteractiveToolPropertySet) * CurPropertySet, [UInteractiveToolPropertySet](API\Runtime\InteractiveToolsFramework\UInteractiveToolPropertySet) * ReplaceWith, bool bSetToEnabled )


description: Replace existing ToolInfo with new data

code: virtual void SetToolInfo ( const [FInteractiveToolInfo](API\Runtime\InteractiveToolsFramework\FInteractiveToolInfo) & NewInfo )


description:
Enable/Disable a PropertySet object for this Tool. If found and state was modified, will broadcast OnPropertySetsModified
true if PropertySet was found

code: virtual bool SetToolPropertySourceEnabled ( [UInteractiveToolPropertySet](API\Runtime\InteractiveToolsFramework\UInteractiveToolPropertySet) * PropertySet, bool bEnabled )


description: Called by ToolManager to initialize the ToolafterToolBuilder::BuildTool() has been called

code: virtual void Setup()


description: Called by ToolManager to shut down the Tool

code: virtual void Shutdown ( EToolShutdownType ShutdownType )


description: Non overrideable func which does processing and calls the tool's OnTick

code: virtual void Tick ( float DeltaTime )


description: Helper function to update a standard warning when we need to explain why "Accept" is disabled Note that calling this base implementation will clear any unrelated warnings. Note that this function is not automatically called by the base class.

code: virtual void UpdateAcceptWarnings ( [EAcceptWarning](API\Runtime\InteractiveToolsFramework\UInteractiveTool\EAcceptWarning) Warning )


code: UInteractiveTool()


className: UInteractiveTool

description: In the framework, you do not create instances ofUInteractiveToolyourself. You provide aUInteractiveToolBuilderimplementation 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 thenUInteractiveToolManager::ActivateTool()is used to kick things off.

code: class UInteractiveTool : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [IInputBehaviorSource](API\Runtime\InteractiveToolsFramework\IInputBehaviorSource)

InputBehaviors

description: The current set of InputBehaviors provided by this Tool

OnPropertyModifiedDirectlyByTool

type: OnInteractiveTo...

ToolPropertyObjects

description: The current set of Property UObjects provided by this Tool. May contain pointer to itself.


description:
Create a new instance of this builder's Tool
a new instance of the Tool, or nullptr on error/failure

code: virtual [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * BuildTool ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & SceneState ) const


description:
Check if, given the current scene state, a new instance of this builder's Tool can be created
true if a new Tool instance can be created

code: virtual bool CanBuildTool ( const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & SceneState ) const


description: PostBuildTool is called by the ToolManager after a new Tool instance has been built. This allows clients to extend a ToolBuilder with additional customization/etc, instead of having to entirely replace the existingBuildTool()a new instance of the Tool, or nullptr on error/failure

code: virtual void PostBuildTool ( [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & SceneState ) const


className: UInteractiveToolBuilder

description: AUInteractiveToolBuildercreates a new instance of an InteractiveTool (basically this is a Factory). These are registered with the InteractiveToolManager, which callsBuildTool()ifCanBuildTool()returns true. In additionCanBuildTool()will be queried to (for example) enable/disable UI buttons, etc. This is an abstract base class, you must subclass it in order to create your particular Tool instance

code: class UInteractiveToolBuilder : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


description: PostBuildTool is called by the ToolManager after a new Tool instance has been built andSetup()has been called. This allows clients to make modifications to Tools like changing initial parameters without subclassing the Tool

code: virtual void PostSetupTool ( [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & SceneState ) const


className: UInteractiveToolCameraFocusAPI

description: Below are various interfaces that aUInteractiveToolcan implement to allow higher-level code (eg like an EdMode) to query into the Tool.

code: class UInteractiveToolCameraFocusAPI : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


className: UInteractiveToolEditorGizmoAPI

description: UInterfaceforIInteractiveToolEditorGizmoAPI.

code: class UInteractiveToolEditorGizmoAPI : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


className: UInteractiveToolExclusiveToolAPI

description: UInterfaceforIInteractiveToolExclusiveToolAPI.

code: class UInteractiveToolExclusiveToolAPI : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


description:
Try to activate a new Tool instance on the given Side
true if a new Tool instance was created and initialized

code: virtual bool ActivateTool ( EToolSide Side )


code: virtual bool ActivateToolInternal ( EToolSide Side )


description: Request that the Context open a Transaction, whatever that means to the current Context

code: virtual void BeginUndoTransaction ( const [FText](API\Runtime\Core\Internationalization\FText) & Description )


description:
Check if an active Tool on the given Side can be Accepted in its current state
true if there is an active Tool and it returns true from HasAccept() and CanAccept()

code: virtual bool CanAcceptActiveTool ( EToolSide Side )


description:
Check if a named Tool type can currently be activated on the given ToolSide
true if the Tool type could be activated

code: virtual bool CanActivateTool ( EToolSide eSide, [FString](API\Runtime\Core\Containers\FString) Identifier )


description:
Check if an active Tool on the given Side can be Canceled
true if there is an active Tool and it returns true from HasCancel()

code: virtual bool CanCancelActiveTool ( EToolSide Side )


description: Configure how tool changes emit change events. See EToolChangeTrackingMode for details.

code: virtual void ConfigureChangeTrackingMode ( EToolChangeTrackingMode ChangeMode )


description: Shut down an active Tool on the given side

code: virtual void DeactivateTool ( EToolSide Side, EToolShutdownType ShutdownType )


code: virtual void DeactivateToolInternal ( EToolSide Side, EToolShutdownType ShutdownType )


description: Functions that Tools can call to interact with Transactions APIPost a message via the Transactions API

code: virtual void DisplayMessage ( const [FText](API\Runtime\Core\Internationalization\FText) & Message, EToolMessageLevel Level )


description: Called immediately after a tool is built. Broadcasts OnToolPostBuild.

code: virtual void DoPostBuild ( EToolSide Side, [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * InBuiltTool, [UInteractiveToolBuilder](API\Runtime\InteractiveToolsFramework\UInteractiveToolBuilder) * InToolBuilder, const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InBuilderState )


description: Called immediately after a tool's Setup is called. Broadcasts OnToolPostSetup.

code: virtual void DoPostSetup ( EToolSide Side, [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * InInteractiveTool, [UInteractiveToolBuilder](API\Runtime\InteractiveToolsFramework\UInteractiveToolBuilder) * InToolBuilder, const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & InBuilderState )


description: Let active Tools do their screen space drawing. Called byUInteractiveToolsContext.

code: virtual void DrawHUD ( [FCanvas](API\Runtime\Engine\FCanvas) * Canvas, [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: Forward anFChangeobject to the Context

code: virtual void EmitObjectChange ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * TargetObject, [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FToolCommandChange](API\Runtime\InteractiveToolsFramework\FToolCommandChange) > Change, const [FText](API\Runtime\Core\Internationalization\FText) & Description )


description: Request that the Context close and commit the open Transaction

code: virtual void EndUndoTransaction()


className: FOnToolShutdownRequest

code: typedef TBaseDelegate_ThreeParams< bool, [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) *, [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) *, EToolShutdownType > FOnToolShutdownRequest


className: FOnToolUnexpectedShutdownMessage

code: typedef TMulticastDelegate_FourParams< void, [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) *, [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) *, const [FText](API\Runtime\Core\Internationalization\FText) &[Message](API\Plugins\BackChannel\BackChannel\Protocol\OSC\OSCPacketType), bool bWasDuringToolSetup > FOnToolUnexpectedShutdownMessage


className: FToolManagerToolStartedSignature

code: typedef TMulticastDelegate_TwoParams< void, [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) *, [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * > FToolManagerToolStartedSignature


className: FToolManagerToolPostBuildSignature

code: typedef TMulticastDelegate_FiveParams< void, [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) *, EToolSide, [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) *, [UInteractiveToolBuilder](API\Runtime\InteractiveToolsFramework\UInteractiveToolBuilder) *, const [FToolBuilderState](API\Runtime\InteractiveToolsFramework\FToolBuilderState) & > FToolManagerToolPostBuildSignature


className: FToolManagerToolPostSetupSignature

code: typedef TMulticastDelegate_ThreeParams< void, [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) *, EToolSide, [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * > FToolManagerToolPostSetupSignature


className: FToolManagerToolEndedSignature

code: typedef TMulticastDelegate_TwoParams< void, [UInteractiveToolManager](API\Runtime\InteractiveToolsFramework\UInteractiveToolManager) *, [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * > FToolManagerToolEndedSignature


description:
Get pointer to active Tool on a given side
pointer to Tool instance active on that Side, or nullptr if no such Tool exists

code: virtual [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * GetActiveTool ( EToolSide Side )


description:
Get pointer to active Tool Builder on a given side
pointer to Tool Builder instance active on that Side, or nullptr if no such ToolBuilder exists

code: virtual [UInteractiveToolBuilder](API\Runtime\InteractiveToolsFramework\UInteractiveToolBuilder) * GetActiveToolBuilder ( EToolSide Side )


description: the context object store from the owning tools context.

code: [UContextObjectStore](API\Runtime\InteractiveToolsFramework\UContextObjectStore) * GetContextObjectStore() const


description:
Get name of registered ToolBuilder that created active tool for given side, or empty string if no tool is active
name of tool, or empty string if no tool is active

code: virtual [FString](API\Runtime\Core\Containers\FString) GetActiveToolName ( EToolSide Side )


description:
Access to APIs, etc
currentIToolsContextQueriesAPI


description: currentIToolsContextTransactionsAPI


description:
Check if there is an active Tool on the given Side
true if there is an active Tool on that side

code: virtual bool HasActiveTool ( EToolSide Side ) const


description: true if there are any active tools

code: virtual bool HasAnyActiveTool() const


description: Initialize the ToolManager with the necessary Context-level state.UInteractiveToolsContextcalls this, you should not.

code: virtual void Initialize ( [IToolsContextQueriesAPI](API\Runtime\InteractiveToolsFramework\IToolsContextQueriesAPI) * QueriesAPI, [IToolsContextTransactionsAPI](API\Runtime\InteractiveToolsFramework\IToolsContextTransactionsAPI) * TransactionsAPI, [UInputRouter](API\Runtime\InteractiveToolsFramework\UInputRouter) * InputRouter )


description: true if ToolManager is currently active, ie betweenInitialize()andShutdown()

code: bool IsActive() const


description: If this function is called during InteractiveTool::Setup(), the Tool invocation will be aborted, ie the Tool will be immediately shutdown with EToolShutdownType::Cancel, and never become "Active"/etc. Note also that in this case the shutdown requestwill notbe forwarded to the OnToolShutdownRequest delegate.

code: virtual bool PostActiveToolShutdownRequest ( [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * Tool, EToolShutdownType ShutdownType, bool bShowUnexpectedShutdownMessage, const [FText](API\Runtime\Core\Internationalization\FText) & UnexpectedShutdownMessage )


description: Request an Invalidation via the Transactions API (ie to cause a repaint, etc)

code: virtual void PostInvalidation()


description: Tool registration and Current Tool state Register a new ToolBuilder

code: virtual void RegisterToolType ( const [FString](API\Runtime\Core\Containers\FString) & Identifier, [UInteractiveToolBuilder](API\Runtime\InteractiveToolsFramework\UInteractiveToolBuilder) * Builder )


description: Render any active Tools. Called byUInteractiveToolsContext.

code: virtual void Render ( [IToolsContextRenderAPI](API\Runtime\InteractiveToolsFramework\IToolsContextRenderAPI) * RenderAPI )


description: Forward anFChangeobject to the Context

code: virtual bool RequestSelectionChange ( const [FSelectedOjectsChangeList](API\Runtime\InteractiveToolsFramework\FSelectedOjectsChangeList) & SelectionChange )


description: Set active ToolBuilder for a ToolSide via string identifier

code: virtual bool SelectActiveToolType ( EToolSide Side, const [FString](API\Runtime\Core\Containers\FString) & Identifier )


description: Shutdown the ToolManager. Called byUInteractiveToolsContext.

code: virtual void Shutdown()


description: State control (Tick any active Tools. Called byUInteractiveToolsContext

code: virtual void Tick ( float DeltaTime )


description: Unregisters a ToolBuilder

code: virtual void UnregisterToolType ( const [FString](API\Runtime\Core\Containers\FString) & Identifier )


code: UInteractiveToolManager()


className: UInteractiveToolManager

description: Tools are not directly created. Use SelectActiveToolType(side,string) to set the active ToolBuilder on a given side, and then useActivateTool()to create the new Tool instance.

code: class UInteractiveToolManager : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [IToolContextTransactionProvider](API\Runtime\InteractiveToolsFramework\IToolContextTransactionProvider)

ActiveLeftBuilder

type: UInteractiveToo...

ActiveLeftBuilderName

type: FString

description: Currently-active Left ToolBuilder

ActiveLeftTool

description: Currently-active Left Tool, or null if no Tool is active

ActiveRightBuilderName

description: Currently-active Right ToolBuilder

ActiveRightTool

description: Currently-active Right Tool, or null if no Tool is active

ActiveToolChangeTrackingMode

type: EToolChangeTrac...

bActiveToolMadeSelectionStoreRequest

description: Tracks whether the last activated tool has made a request to store a tool selection.

bInToolSetup

description: This bool is for handling the case where a Tool posts a shutdown request during it'sSetup()call.

bIsActive

description: This flag is set to true onInitialize()and false onShutdown().

InputRouter

description: Pointer to current InputRouter (Context owns this)

OnToolEnded

type: FToolManagerToo...

OnToolShutdownRequest

type: FOnToolShutdown...

description: If bound, OnToolShutdownRequest is called by PostActiveToolShutdownRequest to optionally handle requests to shut down a Tool (which may be sent by the Tool itself).

OnToolUnexpectedShutdownMessage

type: FOnToolUnexpect...

description: PostActiveToolShutdownRequest()will broadcast this delegate with a Message if bShowUnexpectedShutdownMessage=true.

QueriesAPI

description: Pointer to current Context-Queries implementation

ToolBuilders

description: Current set of named ToolBuilders

TransactionsAPI

description: Pointer to current Transactions implementation


className: UInteractiveToolNestedAcceptCancelAPI

description: UInterfaceforIInteractiveToolNestedAcceptCancelAPI.

code: class UInteractiveToolNestedAcceptCancelAPI : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


description:
GetDynamicPropertyCache return class-internal objects that subclasses can use to save/restore properties.
instance of the current subclass that can be used to save/restore values

code: [TObjectPtr](API\Runtime\Core\Delegates\TObjectPtr)< [UInteractiveToolPropertySet](API\Runtime\InteractiveToolsFramework\UInteractiveToolPropertySet) > GetDynamicPropertyCache ( const [FString](API\Runtime\Core\Containers\FString) & CacheIdentifier, bool & bWasCreatedOut )


description: the multicast delegate that is called when properties are modified


description: Return true if this property set is enabled. Enabled/Disable state is intended to be used to control things like visibility in UI/etc.

code: bool IsPropertySetEnabled() const


description: this function is currently only called in Editor (not at runtime)

code: virtual void PostEditChangeProperty ( [FPropertyChangedEvent](API\Runtime\CoreUObject\UObject\FPropertyChangedEvent) & PropertyChangedEvent )


description: Restore the values of the Property Set with the given CacheIdentifier. The Tool parameter is currently ignored.

code: virtual void RestoreProperties ( [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * RestoreToTool, const [FString](API\Runtime\Core\Containers\FString) & CacheIdentifier )


description: Note: the current design of this system assumes that the CDO will keep the referenced objects alive. This assumption is incorrect in Runtime builds, and some external mechanism must be used to keep the elements in the CachedPropertiesMap alive. Save the values of this PropertySet with the given CacheIdentifier. The Tool parameter is currently ignored.

code: virtual void SaveProperties ( [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * SaveFromTool, const [FString](API\Runtime\Core\Containers\FString) & CacheIdentifier )


description: Utility func used to implement the default Save/RestoreProperties funcs.

code: virtual void SaveRestoreProperties ( [UInteractiveTool](API\Runtime\InteractiveToolsFramework\UInteractiveTool) * RestoreToTool, const [FString](API\Runtime\Core\Containers\FString) & CacheIdentifier, bool bSaving )


className: UInteractiveToolPropertySet

description: If you make your property set UObjects subclasses ofUInteractiveToolPropertySet, then when the Tool Properties are changedin the Editor, the parent Tool will be automatically notified. You can overrideUInteractiveTool::OnPropertyModified()to act on these notifications

code: class UInteractiveToolPropertySet : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [FWatchablePropertySet](API\Runtime\InteractiveToolsFramework\FWatchablePropertySet)

bIsPropertySetEnabled

description: Controls whether a property set is shown in the UI. Transient so that disabling a PropertySet in one tool doesn't disable it in others.

OnModified

type: FInteractiveToo...


code: bool ActiveToolHasAccept ( EToolSide WhichSide ) const


code: bool CanCancelActiveTool ( EToolSide WhichSide ) const


code: bool CanAcceptActiveTool ( EToolSide WhichSide ) const


code: bool CanCompleteActiveTool ( EToolSide WhichSide ) const


code: bool CanStartTool ( EToolSide WhichSide, const [FString](API\Runtime\Core\Containers\FString) & ToolTypeIdentifier ) const


code: virtual void DeactivateActiveTool ( EToolSide WhichSide, EToolShutdownType ShutdownType )


code: virtual void DeactivateAllActiveTools ( EToolShutdownType ShutdownType )


code: void EndTool ( EToolSide WhichSide, EToolShutdownType ShutdownType )


className: FContextInitInfo

description: FContextInitInfois used byInitialize()to pass information to the various creator functions below. See ::UInteractiveToolsContext() andInitialize()for how these fields are used/initialized. In particular, InputRouter will not be set until after theUInputRouterhas been created

code: struct FContextInitInfo


className: FToolsContextToolNotification

code: typedef TMulticastDelegate_OneParam< void, const [FText](API\Runtime\Core\Internationalization\FText) & > FToolsContextToolNotification


code: [FString](API\Runtime\Core\Containers\FString) GetActiveToolName ( EToolSide WhichSide ) const


code: bool HasActiveTool ( EToolSide WhichSide ) const


description: Initialize the Context. This creates the InputRouter, ToolManager, GizmoManager, TargetManager, and ContextStore

code: virtual void Initialize ( [IToolsContextQueriesAPI](API\Runtime\InteractiveToolsFramework\IToolsContextQueriesAPI) * QueriesAPI, [IToolsContextTransactionsAPI](API\Runtime\InteractiveToolsFramework\IToolsContextTransactionsAPI) * TransactionsAPI )


code: bool IsToolActive ( EToolSide WhichSide, const [FString](API\Runtime\Core\Containers\FString) ToolIdentifier ) const


description: Forwards message to OnToolNotificationMessage delegate

code: virtual void PostToolNotificationMessage ( const [FText](API\Runtime\Core\Internationalization\FText) & Message )


code: virtual void PostToolWarningMessage ( const [FText](API\Runtime\Core\Internationalization\FText) & Message )


code: virtual void SetCreateContextStoreFunc ( [TUniqueFunction](API\Runtime\Core\Templates\TUniqueFunction)< [UContextObjectStore](API\Runtime\InteractiveToolsFramework\UContextObjectStore) *(const [FContextInitInfo](API\Runtime\InteractiveToolsFramework\UInteractiveToolsContext\FContextInitInfo) &)> Func )


code: virtual void SetCreateGizmoManagerFunc ( [TUniqueFunction](API\Runtime\Core\Templates\TUniqueFunction)< [UInteractiveGizmoManager](API\Runtime\InteractiveToolsFramework\UInteractiveGizmoManager) *(const [FContextInitInfo](API\Runtime\InteractiveToolsFramework\UInteractiveToolsContext\FContextInitInfo) &)> Func )